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