第九章 软件测试.ppt
《第九章 软件测试.ppt》由会员分享,可在线阅读,更多相关《第九章 软件测试.ppt(183页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、qq 测试的基本概念测试的基本概念qq 黑盒测试黑盒测试qq 白盒白盒测试测试qq 测试用例设计测试用例设计qq 软件的纠错软件的纠错qq 多多模块程序的测试策模块程序的测试策略略qq 面向对象系统面向对象系统的测试的测试软件测试的目的w基于不同的立场,存在着两种完全基于不同的立场,存在着两种完全不同的测试目的。不同的测试目的。w从从用户的角度用户的角度出发,普遍希望通过出发,普遍希望通过软件测试软件测试暴露软件中隐藏的错误和暴露软件中隐藏的错误和缺陷缺陷,以考虑是否可接受该产品。,以考虑是否可接受该产品。w从从软件开发者的角度软件开发者的角度出发,则希望出发,则希望测试成为测试成为表明软件产
2、品中不存在错表明软件产品中不存在错误误的过程,验证该软件已正确地实的过程,验证该软件已正确地实现了用户的要求,确立人们对软件现了用户的要求,确立人们对软件质量的信心。质量的信心。Myers软件测试目的(1)测试是测试是程序的执行过程程序的执行过程,目,目的在于的在于发现错误发现错误;(2)一个好的测试用例在于一个好的测试用例在于能发能发现至今未发现的错误现至今未发现的错误;(3)一个成功的测试是一个成功的测试是发现了至发现了至今未发现的错误的测试今未发现的错误的测试。w换言之,测试的目的是换言之,测试的目的是 想以最少的时间和人力,想以最少的时间和人力,系统地找出软系统地找出软件中潜在的各种错
3、误和缺陷件中潜在的各种错误和缺陷。如果我们。如果我们成功地实施了测试,我们就能够发现软成功地实施了测试,我们就能够发现软件中的错误。件中的错误。测试的附带收获是,它测试的附带收获是,它能够证明软件的能够证明软件的功能和性能与需求说明相符合功能和性能与需求说明相符合。实施测试收集到的测试结果数据为可靠实施测试收集到的测试结果数据为可靠性分析提供了依据。性分析提供了依据。测试不能表明软件中不存在错误,它只测试不能表明软件中不存在错误,它只能说明软件中存在错误。能说明软件中存在错误。测试信息流测试信息流测试信息流w软件配置软件配置:软件需求规格说明、软:软件需求规格说明、软件设计规格说明、源代码等;
4、件设计规格说明、源代码等;w测试配置测试配置:测试计划、测试用例、:测试计划、测试用例、测试程序等;测试程序等;w测试工具测试工具:测试数据自动生成程序、:测试数据自动生成程序、静态分析程序、动态分析程序、测静态分析程序、动态分析程序、测试结果分析程序、以及驱动测试的试结果分析程序、以及驱动测试的测试数据库等等。测试数据库等等。w测试结果分析测试结果分析:比较实测结果与预:比较实测结果与预期结果,评价错误是否发生。期结果,评价错误是否发生。w排错排错(调试调试):对已经发现的错误进:对已经发现的错误进行错误定位和确定出错性质,并改行错误定位和确定出错性质,并改正这些错误,同时修改相关的文档。正
5、这些错误,同时修改相关的文档。w修正后的文档再测试修正后的文档再测试:直到通过测:直到通过测试为止。试为止。w通过收集和分析测试结果数据,对通过收集和分析测试结果数据,对软件建立可靠性模型软件建立可靠性模型w利用可靠性分析,评价软件质量:利用可靠性分析,评价软件质量:软件的质量和可靠性达到可以接受的软件的质量和可靠性达到可以接受的程度;程度;所做的测试不足以发现严重的错误;所做的测试不足以发现严重的错误;w如果测试发现不了错误,可以肯定,如果测试发现不了错误,可以肯定,测试配置考虑得不够细致充分,错测试配置考虑得不够细致充分,错误仍然潜伏在软件中。误仍然潜伏在软件中。软件测试的原则1.应当把应
6、当把“尽早地和不断地进行软尽早地和不断地进行软件测试件测试”作为软件开发者的座右作为软件开发者的座右铭。铭。2.测试用例应由测试用例应由测试输入数据测试输入数据和对和对应的应的预期输出结果预期输出结果这两部分组成。这两部分组成。3.程序员应避免检查自己的程序。程序员应避免检查自己的程序。4.在设计测试用例时,应包括在设计测试用例时,应包括合理合理的输入条件的输入条件和和不合理的输入条件不合理的输入条件。5.充分注意测试中的群集现象。充分注意测试中的群集现象。经验表明,经验表明,测试后测试后程序中残存的错程序中残存的错误数目与该程序中已发现的错误数误数目与该程序中已发现的错误数目成正比目成正比。
7、6.严格执行测试计划,严格执行测试计划,排除测试的随排除测试的随意性意性。7.应当对每一个测试结果做全面检查。应当对每一个测试结果做全面检查。8.妥善保存测试计划,测试用例,出妥善保存测试计划,测试用例,出错统计和最终分析报告,为维护提错统计和最终分析报告,为维护提供方便。供方便。测试的特性w挑剔性挑剔性:测试是证明程序有错,而:测试是证明程序有错,而不是证明程序无错;不是证明程序无错;w复杂性复杂性:设计测试用例是一项需要:设计测试用例是一项需要细致和高度技巧的工作,不亚于程细致和高度技巧的工作,不亚于程序的开发;序的开发;w不彻底性不彻底性:不可能让被测程序在一:不可能让被测程序在一切可能
8、的输入情况下全部执行一遍。切可能的输入情况下全部执行一遍。测试的种类程序程序程序程序测试测试测试测试静态分析静态分析静态分析静态分析(程序不执行程序不执行程序不执行程序不执行)动态分析动态分析动态分析动态分析(程序执行程序执行程序执行程序执行)静态分析器分析静态分析器分析静态分析器分析静态分析器分析(自动方式自动方式自动方式自动方式)代码评审代码评审代码评审代码评审(人工方式人工方式人工方式人工方式)代码会审代码会审代码会审代码会审走查走查走查走查办公桌检查办公桌检查办公桌检查办公桌检查黑盒测试黑盒测试黑盒测试黑盒测试(测试程序功能测试程序功能测试程序功能测试程序功能)白盒测试白盒测试白盒测试
9、白盒测试(测试程序结构测试程序结构测试程序结构测试程序结构)软 件 测 试 的 对 象w软件测试并不等于程序测试。软件测试并不等于程序测试。软件软件测试应贯穿于软件定义与开发的整测试应贯穿于软件定义与开发的整个期间个期间。w需求分析需求分析、概要设计概要设计、详细设计以详细设计以及程序编码及程序编码等各阶段所得到的等各阶段所得到的文档文档,包括需求规格说明、概要设计规格包括需求规格说明、概要设计规格说明、详细设计规格说明以及源程说明、详细设计规格说明以及源程序,序,都应成为软件测试的对象都应成为软件测试的对象。w从源程序的测试中找到的程序错误不一定都是程序编写过程中造成的。w据美国一家公司的统
10、计表明,在查找出的软件错误中,属于需求分析和软件设计的错误约占64%,属于程序编写的错误约占36%。w为把握软件开发各个环节的正确性,为把握软件开发各个环节的正确性,需要进行各种需要进行各种确认确认和和验证验证工作。工作。w确认确认(Validation),是一系列的活是一系列的活动和过程,目的是想证实在一个给动和过程,目的是想证实在一个给定的外部环境中软件的逻辑正确性。定的外部环境中软件的逻辑正确性。需求规格说明确认需求规格说明确认 程序确认程序确认(静态确认、动态确认静态确认、动态确认)w验证验证(Verification),试图证明在试图证明在软件生存期各个阶段,以及阶段间软件生存期各个
11、阶段,以及阶段间的逻辑协调性、完备性和正确性。的逻辑协调性、完备性和正确性。测试与软件开发各阶段的关系w软件开发过程是一个自顶向下,软件开发过程是一个自顶向下,逐步细化的过程逐步细化的过程w软件计划阶段定义软件作用域软件计划阶段定义软件作用域w软件需求分析建立软件信息域、软件需求分析建立软件信息域、功能和性能需求、约束等功能和性能需求、约束等w软件设计软件设计w把设计用某种程序设计语言转把设计用某种程序设计语言转换成程序代码换成程序代码w测试过程是依相反顺序安排的测试过程是依相反顺序安排的自底向上,逐步集成的过程。自底向上,逐步集成的过程。测试用例设计w两种常用的测试方法两种常用的测试方法 黑
12、盒测试黑盒测试 白盒测试白盒测试动态黑盒测试动态黑盒测试 闭着眼睛闭着眼睛测试软件测试软件软件输入输入 不深入代码细节的测试方法称为动态黑盒测试。不深入代码细节的测试方法称为动态黑盒测试。软件测试员充当客户来使用它。软件测试员充当客户来使用它。输出输出动态白盒测试动态白盒测试 带上带上X光光眼镜测试眼镜测试?3581322.293419985680302829734315250*(1+0.015)*(1+0.015)360-1)/0.015250*(1+0.015)*(1+0.015)360-1)/0.015 假如知道一个盒子包含一台计算机假如知道一个盒子包含一台计算机,而另一个而另一个盒子是
13、人用纸笔计算盒子是人用纸笔计算,就会选择不同的测试用例就会选择不同的测试用例了解软件的运作方式会影响测试手段了解软件的运作方式会影响测试手段黑盒测试w这种方法是把这种方法是把测试对象测试对象看做看做一一个黑盒子个黑盒子,测试人员完全不考,测试人员完全不考虑程序内部的逻辑结构和内部虑程序内部的逻辑结构和内部特性,只依据程序的需求规格特性,只依据程序的需求规格说明书,检查程序的功能是否说明书,检查程序的功能是否符合它的功能说明。符合它的功能说明。w黑盒测试又叫做黑盒测试又叫做功能测试功能测试或或数数据驱动测试据驱动测试。w黑盒测试方法是在程序接口上进行黑盒测试方法是在程序接口上进行测试,主要是为了
14、发现以下错误测试,主要是为了发现以下错误:是否有不正确或遗漏了的功能是否有不正确或遗漏了的功能?在接口上,在接口上,输入能否正确地接受输入能否正确地接受?能能否输出正确的结果否输出正确的结果?是否有数据结构错误或外部信息是否有数据结构错误或外部信息(例例如数据文件如数据文件)访问错误访问错误?性能上是否能够满足要求性能上是否能够满足要求?是否有初始化或终止性错误是否有初始化或终止性错误?w用黑盒测试发现程序中的错误,用黑盒测试发现程序中的错误,必须在必须在所有可能的输入条件和所有可能的输入条件和输出条件输出条件中确定测试数据,来中确定测试数据,来检查程序是否都能产生正确的检查程序是否都能产生正
15、确的输出。输出。w但这是但这是不可能不可能的。的。w假设一个假设一个程序程序P有有输入量输入量X和和Y及及输输出量出量Z。在字长为在字长为32位的计算机上位的计算机上运行。若运行。若X、Y取整数,按黑盒方法取整数,按黑盒方法进行穷举测试:进行穷举测试:w可能采用的可能采用的 测试数据组:测试数据组:232232 264 w如果测试一组数据需要如果测试一组数据需要1毫秒,一毫秒,一年工作年工作365 24小时,完成所有测试小时,完成所有测试需需5亿年。亿年。白盒测试w此方法此方法把测试对象看做一个透明的把测试对象看做一个透明的盒子盒子,它允许测试人员利用程序内,它允许测试人员利用程序内部的逻辑结
16、构及有关信息,设计或部的逻辑结构及有关信息,设计或选择测试用例,对程序所有逻辑路选择测试用例,对程序所有逻辑路径进行测试。径进行测试。w通过在不同点检查程序的状态,确通过在不同点检查程序的状态,确定实际的状态是否与预期的状态一定实际的状态是否与预期的状态一致。因此白盒测试又称为结构测试致。因此白盒测试又称为结构测试或逻辑驱动测试。或逻辑驱动测试。w软件人员使用白盒测试方法,主软件人员使用白盒测试方法,主要想对程序模块进行如下的检要想对程序模块进行如下的检查:查:对对所有的逻辑判定所有的逻辑判定,取取“真真”与与取取“假假”的两种情况都至少测试的两种情况都至少测试一次一次,称逻辑覆盖测试。称逻辑
17、覆盖测试。对程序模块的对程序模块的所有独立的执行路所有独立的执行路径径至少测试一次,称路径测试。至少测试一次,称路径测试。w对一个具有对一个具有多重选择和循环嵌套多重选择和循环嵌套的程序,的程序,不同的路径数目可能是不同的路径数目可能是天文数字天文数字。给出一个小程序的流。给出一个小程序的流程图,它包括了一个执行程图,它包括了一个执行20次的次的循环。循环。w包含的不同执行路径数达包含的不同执行路径数达520条,条,对每一条路径进行测试需要对每一条路径进行测试需要1毫秒,毫秒,假定一年工作假定一年工作365 24小时,要想小时,要想把所有路径测试完,需把所有路径测试完,需3170年。年。黑盒测
18、试与白盒测试比黑盒测试与白盒测试比较较 黑盒测试黑盒测试是从用户观点,按规格是从用户观点,按规格说明书要求的输入数据与输出数据说明书要求的输入数据与输出数据的对应关系设计测试用例的对应关系设计测试用例,是根据程是根据程序序外部特征外部特征进行测试。进行测试。白盒测试白盒测试是根据程序是根据程序内部逻辑结内部逻辑结构构进行测试。进行测试。黑盒测试与白盒测试黑盒测试与白盒测试 不论黑盒还是白盒测试都不论黑盒还是白盒测试都不能不能进行穷尽测试进行穷尽测试,所以软件测试不可所以软件测试不可能发现程序中存在的所有错误,能发现程序中存在的所有错误,因因此需精心设计测试方案,此需精心设计测试方案,力争尽可力
19、争尽可能少的次数,测出尽可能多的错误能少的次数,测出尽可能多的错误。等价分类法w把输入数据的可能值把输入数据的可能值划分为若干等价划分为若干等价类类,使每类中的任何一个测试用例,使每类中的任何一个测试用例,都能代表同一等价类中的其他测试用都能代表同一等价类中的其他测试用例。换句话说,例。换句话说,如果从某一等价类中如果从某一等价类中任意选出一个测试用例未能发现程序任意选出一个测试用例未能发现程序的错误,该类中的其他测试用例也不的错误,该类中的其他测试用例也不会发现错误。会发现错误。w不仅考虑有效等价类,还要考虑无不仅考虑有效等价类,还要考虑无效等价类。效等价类。如何划分等价类?如何划分等价类?
20、有效等价类有效等价类(合理等价类合理等价类)无效等价类无效等价类(不合理等价类不合理等价类)划分等价类的标准:划分等价类的标准:覆盖覆盖不相交不相交代表性代表性划分等价类的规则划分等价类的规则(1)(1)如果如果输入输入条件规定了取值条件规定了取值范围范围,可定义可定义一个有效等价类和两个无一个有效等价类和两个无 效等价类。效等价类。例例 输入输入值是学生成绩,范围是值是学生成绩,范围是0 01001000 1000 100 有效有效等价类等价类11成绩成绩100100无效等价类无效等价类 成绩成绩100100 无效等价类无效等价类 成绩成绩00(2)如果某个输入条件规定了输入数据的个数,则可
21、划分为一个有效等价类和两个无效等价类。例如:每名学生一学期内只能选修13门课程。有效等价类:选修13无效等价类:不选修和选修超过3门划分等价类的规则划分等价类的规则划分等价类的规则划分等价类的规则(3)(3)如如规规定定了了输输入入数数据据的的一一组组值值,且且程程序序对对不不同同输输入入值值做做不不同同处处理理,则则每每个个允允许许的的输输入入值值是是一一个个有有效效等等价价类类,并并有有一一个个无无效效等等价类价类(所有不允许的输入值的集合所有不允许的输入值的集合)。例例:输输入入条条件件说说明明学学历历可可为为:专专科科、本本科科、硕硕士士、博博士士四四种种之之一一,则则分分别别取取这这
22、四四种种这这四四个个值值作作为为四四个个有有效效等等价价类类,另另外外把把四四种种学学历历之之外外的的任任何何学历作为无效等价类学历作为无效等价类.划分等价类的规则:划分等价类的规则:(4)(4)如果某个如果某个输入输入条件规定了一组必须成条件规定了一组必须成立的条件立的条件,则可,则可定义定义一个有效等价类和一个有效等价类和一个无效等价类。一个无效等价类。例如,标志符的第一个字符必须是字母。例如,标志符的第一个字符必须是字母。有效等价类:第一个字符是字母有效等价类:第一个字符是字母无效等价类:第一个字符不是字母无效等价类:第一个字符不是字母划分等价类的规则:划分等价类的规则:w(5)如果某个
23、输入条件是一个布尔量,如果某个输入条件是一个布尔量,则可定义一个有效等价类和一个无效等则可定义一个有效等价类和一个无效等价类。价类。划分等价类的规则:划分等价类的规则:w(6)如果规定了输入数据为整数,则可如果规定了输入数据为整数,则可以划分为正整数、零和负整数三个有效以划分为正整数、零和负整数三个有效等价类和一个无效等价类。等价类和一个无效等价类。用等价类划分法设计测试用等价类划分法设计测试用例步骤用例步骤(1)(1)形成等价类表,每一等价类规定形成等价类表,每一等价类规定 一个唯一的编号;一个唯一的编号;(2)(2)设计一测试用例,使其尽可能多设计一测试用例,使其尽可能多 地覆盖尚未覆盖的
24、有效等价类,地覆盖尚未覆盖的有效等价类,重复这一步骤,直到所有有效等重复这一步骤,直到所有有效等 价类均被测试用例所覆盖;价类均被测试用例所覆盖;(3)(3)设计一新测试用例,使其只覆盖设计一新测试用例,使其只覆盖 一个无效等价类,重复这一步骤一个无效等价类,重复这一步骤 直到所有无效等价类均被覆盖;直到所有无效等价类均被覆盖;例例:某报表处理系统要求用户输入处理某报表处理系统要求用户输入处理 报表的日期,日期限制在报表的日期,日期限制在20012001年年1 1 月至月至20052005年年1212月,即系统只能对该月,即系统只能对该 段期间内的报表进行处理,如日期段期间内的报表进行处理,如
25、日期 不在此范围内,则显示输入错误信不在此范围内,则显示输入错误信 息。息。系统日期规定由年、月的系统日期规定由年、月的6 6位数字位数字 字符组成,前四位代表年,后两位字符组成,前四位代表年,后两位 代表月。代表月。如何用等价类划分法设计测试用例如何用等价类划分法设计测试用例,来测试程序的日期检查功能?来测试程序的日期检查功能?第一步:等价类划分第一步:等价类划分输入输入等价类等价类 有效等价类有效等价类 无效等价类无效等价类 报表日期的报表日期的类型及长度类型及长度6 6位数字位数字字符字符(1)(1)有非数字字符有非数字字符 (4)(4)少于少于6 6个个数字数字字符字符 (5)(5)多
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第九章 软件测试 第九 软件 测试
限制150内