软件测试理论课件.ppt
《软件测试理论课件.ppt》由会员分享,可在线阅读,更多相关《软件测试理论课件.ppt(62页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、软件测试理论第1页,此课件共62页哦5.1软件测试的目标和原则软件测试的目标和原则5.2软件测试的方法软件测试的方法5.3软件测试的步骤和策略软件测试的步骤和策略5.4停止测试停止测试5.5自动化测试工具自动化测试工具学习内容:学习内容:第五章第五章软件测试软件测试第2页,此课件共62页哦第五章第五章软件测试软件测试项目后期阶段包括项目后期阶段包括软件测试、软件维护、软件项目后期管理软件测试、软件维护、软件项目后期管理等若等若干阶段。通常软件开发的干阶段。通常软件开发的2/3以上时间都处于项目后期阶段,其中以上时间都处于项目后期阶段,其中软件软件测试工作量占整个项目开发工作量的测试工作量占整个
2、项目开发工作量的40%左右左右。软软件件测测试试是是为为了了发发现现错错误误而而执执行行程程序序的的过过程程,软软件件测测试试是是保保证证软软件件可可靠靠性性的的主主要要手手段段。测测试试阶阶段段的的主主要要任任务务是是发发现现并并改改正正软软件件中中的的错错误误。白白盒盒测测试试和和黑黑盒盒测测试试是是软软件件测测试试的的两两类类基基本本方方法法。软软件件测测试通常至少分为试通常至少分为单元测试、集成测试和系统测试单元测试、集成测试和系统测试三个基本阶段。三个基本阶段。软软件件维维护护的的目目的的是是要要保保证证软软件件的的正正常常运运行行,尽尽可可能能延延长长软软件件生生命命周期。周期。第
3、3页,此课件共62页哦软件测试的目标:软件测试的目标:Glen Myers(梅尔斯)在他的软件测试著作中就软件测试的目的提出下列观点观点:(1)(1)(1)(1)测试是一个为了寻找错误而运行程序的过程。测试是一个为了寻找错误而运行程序的过程。测试是一个为了寻找错误而运行程序的过程。测试是一个为了寻找错误而运行程序的过程。(2)(2)(2)(2)一个好的测试用例是指很可能找到迄今为止尚未发现的错一个好的测试用例是指很可能找到迄今为止尚未发现的错一个好的测试用例是指很可能找到迄今为止尚未发现的错一个好的测试用例是指很可能找到迄今为止尚未发现的错误的用例。误的用例。误的用例。误的用例。(3)(3)(
4、3)(3)一个成功的测试是指揭示了迄今为止尚未发现的错误的测试。一个成功的测试是指揭示了迄今为止尚未发现的错误的测试。一个成功的测试是指揭示了迄今为止尚未发现的错误的测试。一个成功的测试是指揭示了迄今为止尚未发现的错误的测试。软件(程序)测试是为了发现错误而执行程序的过程。软件(程序)测试是为了发现错误而执行程序的过程。5.1软件测试的目标和原则软件测试的目标和原则第4页,此课件共62页哦vv换言之,测试的目的是换言之,测试的目的是 想以最少的时间和人力,想以最少的时间和人力,系统地找出软件系统地找出软件中潜在的各种错误和缺陷中潜在的各种错误和缺陷。如果我们成功。如果我们成功地实施了测试,我们
5、就能够发现软件中的地实施了测试,我们就能够发现软件中的错误。错误。测试的附带收获是,它测试的附带收获是,它能够证明软件的功能够证明软件的功能和性能与需求说明相符合能和性能与需求说明相符合。实施测试收集到的测试结果数据为可靠实施测试收集到的测试结果数据为可靠性分析提供了依据。性分析提供了依据。测试不能表明软件中不存在错误,它只能说测试不能表明软件中不存在错误,它只能说明软件中存在错误。明软件中存在错误。第5页,此课件共62页哦基于不同的立场,存在着两种基于不同的立场,存在着两种完全不同的测试目的完全不同的测试目的vv从从用户的角度用户的角度出发,普遍希望通过软件出发,普遍希望通过软件测试测试暴露
6、软件中隐藏的错误和缺陷暴露软件中隐藏的错误和缺陷,以,以考虑是否可接受该产品。考虑是否可接受该产品。vv从从软件开发者的角度软件开发者的角度出发,则希望测试出发,则希望测试成为成为表明软件产品中不存在错误表明软件产品中不存在错误的过程,的过程,验证该软件已正确地实现了用户的要求,验证该软件已正确地实现了用户的要求,确立人们对软件质量的信心。确立人们对软件质量的信心。第6页,此课件共62页哦软件测试的原则1.1.应当把应当把“尽早地和不断地进行软件测尽早地和不断地进行软件测试试”作为软件开发者的座右铭。作为软件开发者的座右铭。2.2.测试用例应由测试用例应由测试输入数据测试输入数据和对应的和对应
7、的预期输出结果预期输出结果这两部分组成。这两部分组成。3.3.程序员应避免检查自己的程序。程序员应避免检查自己的程序。4.4.在设计测试用例时,应包括在设计测试用例时,应包括合理的输合理的输入条件入条件和和不合理的输入条件不合理的输入条件。第7页,此课件共62页哦5.充分注意测试中的群集现象。充分注意测试中的群集现象。经验表明,经验表明,测试后测试后程序中残存的错误数程序中残存的错误数目与该程序中已发现的错误数目成正比目与该程序中已发现的错误数目成正比。6.严格执行测试计划,严格执行测试计划,排除测试的随意性排除测试的随意性。7.应当对每一个测试结果做全面检查。应当对每一个测试结果做全面检查。
8、8.妥善保存测试计划,测试用例,出错统妥善保存测试计划,测试用例,出错统计和最终分析报告,为维护提供方便。计和最终分析报告,为维护提供方便。第8页,此课件共62页哦软 件 测 试 的 对 象vv软件测试并不等于程序测试。软件测试并不等于程序测试。软件测试软件测试应贯穿于软件定义与开发的整个期间应贯穿于软件定义与开发的整个期间。vv需求分析需求分析、概要设计概要设计、详细设计以及程详细设计以及程序编码序编码等各阶段所得到的等各阶段所得到的文档文档,包括需,包括需求规格说明、概要设计规格说明、详细求规格说明、概要设计规格说明、详细设计规格说明以及源程序,设计规格说明以及源程序,都应成为软都应成为软
9、件测试的对象件测试的对象。第9页,此课件共62页哦5.5.充分注意测试中的群集现象。充分注意测试中的群集现象。经验表明,经验表明,测试后测试后程序中残存的错误数程序中残存的错误数目与该程序中已发现的错误数目成正比目与该程序中已发现的错误数目成正比。6.6.严格执行测试计划,严格执行测试计划,排除测试的随意排除测试的随意性性。7.7.应当对每一个测试结果做全面检查。应当对每一个测试结果做全面检查。8.8.妥善保存测试计划,测试用例,出错妥善保存测试计划,测试用例,出错统计和最终分析报告,为维护提供方便。统计和最终分析报告,为维护提供方便。第10页,此课件共62页哦5.2软件测试的方法软件测试的方
10、法系统分析测试系统分析测试 系统分析测试是测试项目是否能体现整个系统的需求,对用户的需系统分析测试是测试项目是否能体现整个系统的需求,对用户的需求从具体到抽象的一个过程的验证。注意:软件测试应贯穿于软件定义与求从具体到抽象的一个过程的验证。注意:软件测试应贯穿于软件定义与开发的整个期间。开发的整个期间。5.2.1静态测试和动态测试静态测试和动态测试1.1.静态测试静态测试:指被测试程序不在机器上运行,而是采用人工测试和计算机指被测试程序不在机器上运行,而是采用人工测试和计算机辅助静态分析的手段对程序进行测试。包括:人工测试和计算机辅助静态辅助静态分析的手段对程序进行测试。包括:人工测试和计算机
11、辅助静态分析测试分析测试.(发现(发现30%70%30%70%逻辑和编码错误)逻辑和编码错误)2.2.动态测试动态测试:指通过运行程序发现错误。大多测试采用动态测试。包括指通过运行程序发现错误。大多测试采用动态测试。包括白盒测试法和黑盒测试法。白盒测试法和黑盒测试法。第11页,此课件共62页哦测试信息流:vv软件配置软件配置:软件需求规格说明、软件:软件需求规格说明、软件设计规格说明、源代码等;设计规格说明、源代码等;vv测试配置测试配置:测试计划、测试用例、测:测试计划、测试用例、测试程序等;试程序等;vv测试工具测试工具:测试数据自动生成程序、:测试数据自动生成程序、静态分析程序、动态分析
12、程序、测试静态分析程序、动态分析程序、测试结果分析程序、以及驱动测试的测试结果分析程序、以及驱动测试的测试数据库等等。数据库等等。第12页,此课件共62页哦vv测试结果分析测试结果分析:比较实测结果与预期:比较实测结果与预期结果,评价错误是否发生。结果,评价错误是否发生。vv排错排错(调试调试):对已经发现的错误进行错:对已经发现的错误进行错误定位和确定出错性质,并改正这些误定位和确定出错性质,并改正这些错误,同时修改相关的文档。错误,同时修改相关的文档。vv修正后的文档再测试修正后的文档再测试:直到通过测试:直到通过测试为止。为止。第13页,此课件共62页哦5.2.2 系统测试用例的设计系统
13、测试用例的设计1.测试方法测试方法(1)黑盒法黑盒法 该方法把被测试对象看成一个黑盒子,该方法把被测试对象看成一个黑盒子,测试人员测试人员完全不考虑程序的内部结构和处理过程,只在软件的完全不考虑程序的内部结构和处理过程,只在软件的接口处进行测试,接口处进行测试,依据需求规格说明书,检查程序依据需求规格说明书,检查程序是否满足功能要求。因此,是否满足功能要求。因此,黑盒测试又称为功能测黑盒测试又称为功能测试或数据驱动测试。试或数据驱动测试。第14页,此课件共62页哦 通过黑盒测试主要发现下面错误:是否有不正确或遗漏了的通过黑盒测试主要发现下面错误:是否有不正确或遗漏了的功能;在接口上,能否正确地
14、接受输入数据,能否产生正确的输功能;在接口上,能否正确地接受输入数据,能否产生正确的输出信息;访问外部信息是否有错;性能上是否满足要求等等。出信息;访问外部信息是否有错;性能上是否满足要求等等。(2)白盒法白盒法该该方方法法把把被被测测试试对对象象看看成成一一个个白白盒盒子子,测测试试人人员员须须了了解解程程序序的的内内部部结结构构和和处处理理过过程程,以以检检查查处处理理过过程程的的细细节节为为基基础础,对对程程序序中中尽尽可可能能多多的的逻逻辑辑路路径径进进行行测测试试,检检验验内内部部控控制制结结构构和和数数据据结结构构是是否否有有错错,实实际际的的运运行行状状态态与与预预期期的的状状态
15、态是是否否一一致致。白白盒盒测测试试又又称称为为结结构构测测试试或或逻逻辑辑驱驱动动测测试试。下下图图给出一个白盒测试实例:给出一个白盒测试实例:第15页,此课件共62页哦某软件研制测试报告图第16页,此课件共62页哦2.白盒技术测试用例的设计白盒技术测试用例的设计 测测试试用用例例设设计计的的基基本本目目的的是是确确定定一一组组最最有有可可能能发发现现某某个个错错误误或或某某类类错错误误的的测测试试数数据据。实实际际工工作作中中,采采用用黑黑盒盒与与白白盒盒相相结结合合的的技技术术是是较较为为合合理理的做法。的做法。白白盒盒测测试试属属于于结结构构测测试试,所所以以被被测测对对象象基基本本上
16、上是是源源程程序序,以程序的内部逻辑为基础来设计测试用例。以程序的内部逻辑为基础来设计测试用例。一一、逻逻辑辑覆覆盖盖:是是以以程程序序内内部部逻逻辑辑为为基基础础的的测测试试技技术术,属属白白盒盒测测试试。这这一一测测试试考考虑虑测测试试用用例例对对程程序序内内部部逻逻辑辑覆覆盖盖的的程程度度。目目目目前前前前常常常常用用用用的的的的一一一一些些些些覆覆覆覆盖盖盖盖技术有以下八种。技术有以下八种。技术有以下八种。技术有以下八种。第17页,此课件共62页哦 1 1).语句覆盖语句覆盖 语句覆盖的含义是选择足够多的测试用例,使得被测程序中语句覆盖的含义是选择足够多的测试用例,使得被测程序中语句覆
17、盖的含义是选择足够多的测试用例,使得被测程序中语句覆盖的含义是选择足够多的测试用例,使得被测程序中的每条语句至少执行一次。的每条语句至少执行一次。的每条语句至少执行一次。的每条语句至少执行一次。下面是测试的一段程序的流程图对应下面是测试的一段程序的流程图对应的的C C源程序源程序(用用C C语言书写语言书写)。float A,B,X;float A,B,X;if(A if(A1&B=0)1&B=0)X=X/A;X=X/A;if(A=2|X1)if(A=2|X1)X=X+1;X=X+1;第18页,此课件共62页哦 为了使每条语句都执行一次,程序应该按为了使每条语句都执行一次,程序应该按sacbe
18、dsacbed路径执行,为实现路径执行,为实现此路径而选取下面的一组输入数据此路径而选取下面的一组输入数据(实际上实际上X X可以是任意实数可以是任意实数):A=2,):A=2,B=0,X=2B=0,X=2图5.1语句覆盖第19页,此课件共62页哦 通过上例可以看出,这组数据只测试了条件为真的情况,若实通过上例可以看出,这组数据只测试了条件为真的情况,若实际输入的条件为假时有错误显然测试不出来。事实上,语句覆盖对际输入的条件为假时有错误显然测试不出来。事实上,语句覆盖对程序的逻辑覆盖很少,语句覆盖只关心判定表达式的值,而没有分程序的逻辑覆盖很少,语句覆盖只关心判定表达式的值,而没有分别测试判定
19、表达式中每个条件取不同值的情况。别测试判定表达式中每个条件取不同值的情况。与后面所介绍的其他覆盖相比,语句覆盖是最弱的逻辑覆与后面所介绍的其他覆盖相比,语句覆盖是最弱的逻辑覆与后面所介绍的其他覆盖相比,语句覆盖是最弱的逻辑覆与后面所介绍的其他覆盖相比,语句覆盖是最弱的逻辑覆盖准则。盖准则。盖准则。盖准则。第20页,此课件共62页哦 2 2).判定覆盖判定覆盖 判定覆盖就是设计若干个测试用例,运行所测程序,使得程序中每个判判定覆盖就是设计若干个测试用例,运行所测程序,使得程序中每个判判定覆盖就是设计若干个测试用例,运行所测程序,使得程序中每个判判定覆盖就是设计若干个测试用例,运行所测程序,使得程
20、序中每个判断的取真分支和取假分支至少经历一次。判定覆盖又称为分支覆盖。判定覆断的取真分支和取假分支至少经历一次。判定覆盖又称为分支覆盖。判定覆断的取真分支和取假分支至少经历一次。判定覆盖又称为分支覆盖。判定覆断的取真分支和取假分支至少经历一次。判定覆盖又称为分支覆盖。判定覆盖的每个语句至少经历一次。盖的每个语句至少经历一次。盖的每个语句至少经历一次。盖的每个语句至少经历一次。例如对于图5.1来说,能够分别覆盖路径sacbed和sabd的一组测试数据,或者覆盖路径sacbd和sabed的两组测试数据均可满足判定覆盖标准。例如,以两组测试数据就可做到判定覆盖:(1)A=4,B=0,X=1(覆盖sa
21、cbd);(2)A=2,B=1,X=3(覆盖sabed)。判定覆盖的缺点仍然是覆盖的不全,只覆盖了路径的一半,如将X1误写成X1,上组(1)数据仍覆盖sacbd,可见判定覆盖仍然很弱,但比语句覆盖强。第21页,此课件共62页哦 3 3).条件覆盖条件覆盖 条件覆盖就是设计若干个测试用例,运行所测程序,使得程序条件覆盖就是设计若干个测试用例,运行所测程序,使得程序条件覆盖就是设计若干个测试用例,运行所测程序,使得程序条件覆盖就是设计若干个测试用例,运行所测程序,使得程序中每个判断的每个条件的可能取值至少执行一次。中每个判断的每个条件的可能取值至少执行一次。中每个判断的每个条件的可能取值至少执行一
22、次。中每个判断的每个条件的可能取值至少执行一次。(条件覆盖使得每条件覆盖使得每条件覆盖使得每条件覆盖使得每个语句至少执行一次。个语句至少执行一次。个语句至少执行一次。个语句至少执行一次。)例如对于图例如对于图5.15.1来说,共有两个判定来说,共有两个判定表达式,每个表达式中有两个条件。为满足条件覆盖,在a点有以下几种情况出现:A1,A1,B0,B0;在b点有以下几种情况出现:A=2,A2,X1,X1。因而,只需要使用下面两组测试数据就可达到上述覆盖标准。第22页,此课件共62页哦 (1)A=2,B=0,X=3(满足A1,B0,A=2和X1的条件,执行路径sacbed);(2)A=0,B=1,
23、X=0(满足A1,B0,A2和X1的条件执行路径sabd)。条件覆盖一般比判定覆盖强,因为条件覆盖使判定表达式中每个条件覆盖一般比判定覆盖强,因为条件覆盖使判定表达式中每个条件覆盖一般比判定覆盖强,因为条件覆盖使判定表达式中每个条件覆盖一般比判定覆盖强,因为条件覆盖使判定表达式中每个条件都取到了两个不同的结果,判定覆盖却只关心整个判定表达式的条件都取到了两个不同的结果,判定覆盖却只关心整个判定表达式的条件都取到了两个不同的结果,判定覆盖却只关心整个判定表达式的条件都取到了两个不同的结果,判定覆盖却只关心整个判定表达式的值。值。值。值。上例两组测试数据也同时满足判定覆盖标准。但是,也可能有上例两
24、组测试数据也同时满足判定覆盖标准。但是,也可能有相反情况:虽然每个条件都取到了两个不同的结果,判定表达式却相反情况:虽然每个条件都取到了两个不同的结果,判定表达式却始终只取一个值。例如,若使用以下两组测试数据,则只满足条件始终只取一个值。例如,若使用以下两组测试数据,则只满足条件覆盖标准并不满足判定覆盖标准。覆盖标准并不满足判定覆盖标准。第23页,此课件共62页哦 (1)A=2,B=0,X=1(满足A1,B0,A=2和X1的条件,执行路径sacbed);(2)A=1,B=1,X=2(满足A1,B0,A2和X1的条件,执行路径sabed)。上述例子的第二个判定表达式的值总为真,不满足判定覆盖的要
25、求,为解决这一矛盾,需要对条件和分支兼顾。第24页,此课件共62页哦 4 4).判定判定/条件覆盖条件覆盖 判定判定判定判定/条件覆盖就是设计足够的测试用例,条件覆盖就是设计足够的测试用例,条件覆盖就是设计足够的测试用例,条件覆盖就是设计足够的测试用例,使得判断中每个条件的所使得判断中每个条件的所使得判断中每个条件的所使得判断中每个条件的所有可能取值至少执行一次,同时每个判断的所有可能判断结果至少执有可能取值至少执行一次,同时每个判断的所有可能判断结果至少执有可能取值至少执行一次,同时每个判断的所有可能判断结果至少执有可能取值至少执行一次,同时每个判断的所有可能判断结果至少执行一次。即要求各个
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件 测试 理论 课件
限制150内