第七软件测试课件.ppt
《第七软件测试课件.ppt》由会员分享,可在线阅读,更多相关《第七软件测试课件.ppt(71页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第七软件测试第1页,此课件共71页哦第七章第七章 软件测试软件测试对需求分析、设计、编码的复查并测试,保证软件的可靠性。对需求分析、设计、编码的复查并测试,保证软件的可靠性。主要内容:主要内容:软件测试的目的及原则软件测试的目的及原则软件测试方法软件测试方法静态与动态测试静态与动态测试黑盒测试与白盒测试黑盒测试与白盒测试测试用例的设计测试用例的设计白盒技术白盒技术黑盒技术黑盒技术测试过程测试过程调试调试第2页,此课件共71页哦7.1软件测试的目的及原则软件测试的目的及原则7.1.1软件测试的目的软件测试的目的G.J.Myers提出了软件测试的目的:提出了软件测试的目的:(1)软件测试是为了发现
2、错误而执行程序的过程)软件测试是为了发现错误而执行程序的过程(2)一个好的测试用例能发现至今尚未发现的错误)一个好的测试用例能发现至今尚未发现的错误(3)一个成功的测试是发现了至今尚未发现的错误的测)一个成功的测试是发现了至今尚未发现的错误的测试试 软件测试的基本任务:软件测试的基本任务:根据开发各阶段的文档资料和程序的内部结构,精心设计一组根据开发各阶段的文档资料和程序的内部结构,精心设计一组“高产高产”的测试用例,利用这些实例执行程序,找出软件中各种潜的测试用例,利用这些实例执行程序,找出软件中各种潜在的错误好缺陷。在的错误好缺陷。第3页,此课件共71页哦7.1.2软件测试的原则软件测试的
3、原则软件测试中的原则软件测试中的原则:(1)测试用例应由输入数据和预期的输出数据两部分组成,便于对照检查,测试用例应由输入数据和预期的输出数据两部分组成,便于对照检查,做到做到“有的放矢有的放矢”。(2)测试用例不仅选用合理的数据,还要选择不合理的输入数据。能测试用例不仅选用合理的数据,还要选择不合理的输入数据。能够较多的发现错误,提高程序的可靠性。对于不合理的输入数够较多的发现错误,提高程序的可靠性。对于不合理的输入数据,程序应拒绝接受,并给出相应的提示。据,程序应拒绝接受,并给出相应的提示。(3)除了检查程序是否做了它应该做的事,还应该检查程序是否做除了检查程序是否做了它应该做的事,还应该
4、检查程序是否做了它不应该做的事。了它不应该做的事。(4)应制定测试计划并严格执行,排除随意性。应制定测试计划并严格执行,排除随意性。(5)长期保留测试用例,测试用例必须作为文档保存。以便回归测试和长期保留测试用例,测试用例必须作为文档保存。以便回归测试和维护时使用。维护时使用。(6)对于发现错误较多的程序,应该更深入的测试。对于发现错误较多的程序,应该更深入的测试。(7)程序员避免测试自己的程序,由别人或机构来测试程序会更客观,程序员避免测试自己的程序,由别人或机构来测试程序会更客观,更有效。更有效。第4页,此课件共71页哦7.2 测试方法测试方法 测试方法分类:测试方法分类:动态测试动态测试
5、静态测试静态测试黑盒测试黑盒测试白盒测试白盒测试人工检测人工检测计算机辅助静态分析计算机辅助静态分析第5页,此课件共71页哦7.2.1静态测试和动态测试静态测试和动态测试1.静态测试静态测试静态测试:指被测试程序不在机器上运行,而是采用人工检测和静态测试:指被测试程序不在机器上运行,而是采用人工检测和计算机辅助静态分析的手段对程序进行检测。计算机辅助静态分析的手段对程序进行检测。人工检测人工检测人工审查程序偏重于编码质量的检验,对软件审查除了人工审查程序偏重于编码质量的检验,对软件审查除了审查编码以外,还要对各阶段的软件产品进行检验。审查编码以外,还要对各阶段的软件产品进行检验。计算机辅助静态
6、分析计算机辅助静态分析计算机辅助静态分析工具对被测试程序进行特性分析,计算机辅助静态分析工具对被测试程序进行特性分析,从程序中提取一些信息,以便于检查程序逻辑的各种从程序中提取一些信息,以便于检查程序逻辑的各种缺陷和可疑的程序构造。缺陷和可疑的程序构造。如:用错的局部和全局变量、不匹配的参数、不适当的如:用错的局部和全局变量、不匹配的参数、不适当的循环嵌套和分支嵌套、潜在的死循环、不会执行到的循环嵌套和分支嵌套、潜在的死循环、不会执行到的代码、过程的调用层次等等代码、过程的调用层次等等第6页,此课件共71页哦2.动态测试动态测试指通过程序运行发现错误。指通过程序运行发现错误。两种测试方法:黑盒
7、法和白盒法两种测试方法:黑盒法和白盒法第7页,此课件共71页哦7.2.2黑盒测试法和白盒测试法黑盒测试法和白盒测试法1.黑盒法:又称功能测试或数据驱动测试法黑盒法:又称功能测试或数据驱动测试法把被测试对象看成一个黑盒子,无须考虑程序内部结构和处理过程把被测试对象看成一个黑盒子,无须考虑程序内部结构和处理过程,只在软件接口处进行测试。依据需求规格说明书,检查程序是否,只在软件接口处进行测试。依据需求规格说明书,检查程序是否满足功能要求。满足功能要求。黑盒法主要发现以下错误:黑盒法主要发现以下错误:(1)是否有不正确或遗漏的功能)是否有不正确或遗漏的功能(2)在接口上,能否正确的接受输入数据,能否
8、产生正确的输)在接口上,能否正确的接受输入数据,能否产生正确的输出信息出信息(3)访问外部信息是否有错)访问外部信息是否有错(4)性能上是否满足要求等等)性能上是否满足要求等等不能用穷举法确定测试数据,但必须在所有可能输入和输出条件中确不能用穷举法确定测试数据,但必须在所有可能输入和输出条件中确定测试数据。定测试数据。第8页,此课件共71页哦2.白盒法白盒法 测试程序内部结构和处理过程。以检查处理过程的细节为基测试程序内部结构和处理过程。以检查处理过程的细节为基础,对程序中尽可能多的逻辑路径进行测试。础,对程序中尽可能多的逻辑路径进行测试。注:黑盒法和白盒法都不能使测试达到彻底。为此,要精心设
9、计注:黑盒法和白盒法都不能使测试达到彻底。为此,要精心设计测试用例,用有限的测试发现更多的错误。测试用例,用有限的测试发现更多的错误。第9页,此课件共71页哦7.3 测试用例设计测试用例设计7.3.1 白盒技术白盒技术 测试对象:源程序测试对象:源程序 设计测试用例的基础:程序内部逻辑结构设计测试用例的基础:程序内部逻辑结构 设计测试用例的设计方法:设计测试用例的设计方法:逻辑覆盖逻辑覆盖判定覆盖判定覆盖条件覆盖条件覆盖判定判定/条件覆盖条件覆盖条件组合条件组合路径组合路径组合循环覆盖循环覆盖语句覆盖语句覆盖第10页,此课件共71页哦1.逻辑覆盖逻辑覆盖(1)语句覆盖)语句覆盖 指设计足够的测
10、试用例,使被测程序中指设计足够的测试用例,使被测程序中每个语句至少执行一次每个语句至少执行一次。(覆盖标准)(覆盖标准)例:例:语句段语句段语句段语句段(a1)AND(b=0)(a=2)OR(x1)15T 2T 43FF若测试若测试124,选择数据为:,选择数据为:a=2,b=0,x=3,可保证每个语句至,可保证每个语句至少执行。满足语句覆盖标准。少执行。满足语句覆盖标准。第11页,此课件共71页哦 从每个语句都能执行来看,似乎全面的检验了每个语句,从每个语句都能执行来看,似乎全面的检验了每个语句,但只测试了逻辑表达式为但只测试了逻辑表达式为“真真”的条件。的条件。若将第一个逻辑表达式中的若将
11、第一个逻辑表达式中的“AND”误写成误写成“OR”仍用上仍用上述数据测试,则不能发现这个错误。同理将第一个逻述数据测试,则不能发现这个错误。同理将第一个逻辑表达式辑表达式“X1”错写成错写成“X1”错写成错写成“X1,b=0,a=2,x1 要选择足够的数据,使判定表达式要选择足够的数据,使判定表达式1出现结果:出现结果:a1,b=0 a2,b0 并使判定表达式并使判定表达式2出现结果:出现结果:a=2,x 1 a2,x 1 才能达到覆盖标准。才能达到覆盖标准。第14页,此课件共71页哦为满足上述要求,设计下列两组测试用例:为满足上述要求,设计下列两组测试用例:a=2,b=0,x=3;满足;满足
12、a1,b=0,a=2,x1,通过路径,通过路径124a=1,b=1,x=1;满足;满足a1,b0,a2,x1,通过路径,通过路径135它们不断覆盖了表达式中所有条件的可能取值,而且覆盖了所有取它们不断覆盖了表达式中所有条件的可能取值,而且覆盖了所有取”真真”和和“假假”的值的分支。的值的分支。这种情况下,条件覆盖强于判定覆盖。这种情况下,条件覆盖强于判定覆盖。但是,满足但是,满足“条件覆盖条件覆盖”不一定满足不一定满足“判定覆盖判定覆盖”假定选择另外两组测试用例:假定选择另外两组测试用例:a=1,b=0,x=3;满足;满足a 1,b=0,a2,x1a=2,b=1,x=1;满足;满足a1,b0,
13、a=2,x1覆盖了表达式中所有条件结果,满足条件覆盖。但不满足判定覆盖覆盖了表达式中所有条件结果,满足条件覆盖。但不满足判定覆盖标准。标准。上面用例只覆盖了第一个判定表达式取上面用例只覆盖了第一个判定表达式取“假假”分支和第二个判定表达式取分支和第二个判定表达式取“真真”分支,即只测试了路径分支,即只测试了路径134。因此,此用例不满足判定标准。因此,此用例不满足判定标准。第15页,此课件共71页哦(4)判定)判定/条件覆盖条件覆盖 设计足够的测试用例,使得判定表达式的每一个条件的所有可设计足够的测试用例,使得判定表达式的每一个条件的所有可能取值至少出现一次,并能使每一判定表达式所有可能的结果
14、能取值至少出现一次,并能使每一判定表达式所有可能的结果也至少出现一次。也至少出现一次。(判定(判定/条件覆盖)条件覆盖)显然:其覆盖标准同时满足判定覆盖和条件覆盖的要求标准。显然:其覆盖标准同时满足判定覆盖和条件覆盖的要求标准。判定判定/条件覆盖强于条件覆盖强于判定覆盖判定覆盖和和条件覆盖。条件覆盖。例如:对上述程序设计例如:对上述程序设计两组测试用例满足判定两组测试用例满足判定/条件覆盖:条件覆盖:a=2,b=0,x=3;(沿路径;(沿路径124执行)执行)a=1,b=1,x=1;(沿路径(沿路径135执行)执行)从表面上看,判定从表面上看,判定/条件覆盖能使各种条件取到所有可能的值,但实条
15、件覆盖能使各种条件取到所有可能的值,但实际上条件组合中某些条件会抑制其它条件。际上条件组合中某些条件会抑制其它条件。如:第一个条件表达式中,含有如:第一个条件表达式中,含有“与与”运算,当第一个条件为运算,当第一个条件为“假假”,则后面的其它条件均不起作用。条件表达式取值为,则后面的其它条件均不起作用。条件表达式取值为“假假”;在;在含有含有“与与”运算的运算的表达式中,表达式中,当第一个条件为当第一个条件为“真真”时,则后面的其时,则后面的其它条件也不起作用,表达式取值为它条件也不起作用,表达式取值为“真真”。因此,后面其它条件有写错。因此,后面其它条件有写错的情况就测试不出来。的情况就测试
16、不出来。第16页,此课件共71页哦(5)条件组合覆盖)条件组合覆盖 设计足够的测试用例,使得每一个判定表达式的条件的各种设计足够的测试用例,使得每一个判定表达式的条件的各种可能的组合。(条件组合覆盖标准)可能的组合。(条件组合覆盖标准)上述程序中,有两个判定表达式共有上述程序中,有两个判定表达式共有4个条件,因此有个条件,因此有8种种组合:组合:a1,b=0,a1,b0 a1,b=0,a1,b0,a=2,x1,a=2,x 1 a2,x1,a2,x 1 下面下面4组测试用例就可以满足条件组合覆盖标准:组测试用例就可以满足条件组合覆盖标准:第17页,此课件共71页哦 a=2,b=0,x=2,覆盖条
17、件组合,覆盖条件组合和和,通过路径,通过路径124 a=2,b=1,x=1,覆盖条件组合,覆盖条件组合 和和,通过路径,通过路径134 a=1,b=0,x=2,覆盖条件组合,覆盖条件组合 和和,通过路径,通过路径134 a=1,b=1,x=1,覆盖条件组合,覆盖条件组合 和和,通过路径,通过路径135 每个条件不止一次的取得真假值,但没有覆盖可能的全部每个条件不止一次的取得真假值,但没有覆盖可能的全部路径,路径,125漏掉了。漏掉了。显然:满足条件组合覆盖的测试,一定满足判定覆盖显然:满足条件组合覆盖的测试,一定满足判定覆盖、条件覆盖和判定覆盖、条件覆盖和判定覆盖/条件覆盖。条件覆盖。第18页
18、,此课件共71页哦(6)路径覆盖)路径覆盖 设计足够的测试用例,覆盖被测试程序中所有可能的路径。(设计足够的测试用例,覆盖被测试程序中所有可能的路径。(路径覆盖标准)路径覆盖标准)对上例,选择下列测试用例,覆盖程序中的所有对上例,选择下列测试用例,覆盖程序中的所有4条路径:条路径:a=2,b=0,x=2,覆盖路径,覆盖路径124;覆盖条件组合;覆盖条件组合和和,a=2,b=1,x=1,覆盖路径,覆盖路径134;覆盖条件组合;覆盖条件组合 和和 a=1,b=1,x=1,覆盖路径,覆盖路径135;覆盖条件组合;覆盖条件组合 和和 a=3,b=0,x=1,覆盖路径,覆盖路径125;覆盖条件组合;覆盖
19、条件组合 和和可以看出,满足路径覆盖却没有满足条件组合覆盖。可以看出,满足路径覆盖却没有满足条件组合覆盖。六种覆盖标准的比较:六种覆盖标准的比较:第19页,此课件共71页哦发现发现 弱弱错误错误的能的能力力 强强语句覆盖语句覆盖每个语句至少执行一次每个语句至少执行一次判定覆盖判定覆盖每个判定的分支至少执行一次每个判定的分支至少执行一次条件覆盖条件覆盖每个判定的每个条件应取到各种可每个判定的每个条件应取到各种可能的值能的值判定判定/条件覆盖条件覆盖同时满足判定覆盖和条件覆盖同时满足判定覆盖和条件覆盖条件组合覆盖条件组合覆盖每个判定中各个条件的每种组合至每个判定中各个条件的每种组合至少出现一次少出
20、现一次路径覆盖路径覆盖程序中每条可能的路径至少执行一程序中每条可能的路径至少执行一次次第20页,此课件共71页哦语句覆盖发现错误的能力最弱;判定覆盖包含了语句覆盖,但它语句覆盖发现错误的能力最弱;判定覆盖包含了语句覆盖,但它会使一些条件得不到满足。会使一些条件得不到满足。条件覆盖对一条件进行单独检查,一般情况下,它的检查能力条件覆盖对一条件进行单独检查,一般情况下,它的检查能力较判定覆盖强,但有时达不到判定覆盖的要求。较判定覆盖强,但有时达不到判定覆盖的要求。判定判定/条件覆盖包含了判定覆盖和条件覆盖的要求。由于软件实现条件覆盖包含了判定覆盖和条件覆盖的要求。由于软件实现方式的限制,实际上不一
21、定达到条件覆盖的标准。方式的限制,实际上不一定达到条件覆盖的标准。条件组合覆盖发现错误的能力较强,凡满足某覆盖标准的测试用例条件组合覆盖发现错误的能力较强,凡满足某覆盖标准的测试用例,必满足前,必满足前4种覆盖标准。种覆盖标准。前前5种覆盖把测试集中注意力放到判定或判定的各个条件上种覆盖把测试集中注意力放到判定或判定的各个条件上,可能会使程序某种路径上没有执行到。,可能会使程序某种路径上没有执行到。路径覆盖以判定的整体组合条件出发设计测试用例,可能使测试路径覆盖以判定的整体组合条件出发设计测试用例,可能使测试用例达不到条件组合覆盖的要求。用例达不到条件组合覆盖的要求。在实际测试中,一般以条件组
22、合覆盖为主设计测试用例,然后在实际测试中,一般以条件组合覆盖为主设计测试用例,然后补充部分用例,以达到路径覆盖的标准。补充部分用例,以达到路径覆盖的标准。例:例:06年试题年试题40题:设有如下的程序流程图:题:设有如下的程序流程图:第21页,此课件共71页哦XY测试数据组100测试数据组203测试数据组33-1测试数据组44-2测试数据组541(x0)Y1X4语句1语句3语句2FFFTTT1324567第22页,此课件共71页哦根据表中的测试数据组回答下列问题:根据表中的测试数据组回答下列问题:1.满足语句覆盖的最少测试组合是什么?满足语句覆盖的最少测试组合是什么?2.满足判定覆盖的最少测试
23、组合是什么?满足判定覆盖的最少测试组合是什么?3.满足条件组合覆盖的最少测试组合是什么?满足条件组合覆盖的最少测试组合是什么?解:解:1.语句覆盖标准,每个语句至少执行语句覆盖标准,每个语句至少执行1次。次。6个语句至少执行个语句至少执行1次。由次。由1可知:可知:测试组测试组1:x=0,y=0,可测试,可测试136路径,不执行非判定语句路径,不执行非判定语句 测试组测试组2:x=0,y=3,可测试,可测试137路径,执行语句路径,执行语句1 测试组测试组3:x=3,y=-1,可测试,可测试124路径,执行语句路径,执行语句3 测试组测试组4:x=4,y=-2,可测试,可测试125路径,执行语
24、句路径,执行语句2 测试组测试组2,3,4为最少测试组合。为最少测试组合。2.判定覆盖标准:每个判定的每个分支至少执行判定覆盖标准:每个判定的每个分支至少执行1次。次。6个分支至少执行个分支至少执行1次。由次。由1可知:可知:测试组测试组1,2,3,4使得使得6个分支至少执行个分支至少执行1次,且为最后少的次,且为最后少的 测试组;测试组;第23页,此课件共71页哦 或者:测试组或者:测试组5:x=4,y=1,可测试,可测试136路径,则满足要求的另一个最路径,则满足要求的另一个最少测试组组合:少测试组组合:2,3,4,5.3.条件组合覆盖标准:每个判定中各个条件的每种组合至少执行条件组合覆盖
25、标准:每个判定中各个条件的每种组合至少执行1次。次。程序中有程序中有4个判定条件,共有个判定条件,共有8种组合:种组合:X0 X0 X3,Y0 X4 Y1 Y1 测试组测试组4 覆盖条件组合覆盖条件组合 测试组测试组2 覆盖条件组合覆盖条件组合 测试组测试组1 覆盖条件组合覆盖条件组合 测试组测试组5,4,3 覆盖条件组合覆盖条件组合 满足条件组合覆盖的最少测试组合:满足条件组合覆盖的最少测试组合:1,2,3,4,5第24页,此课件共71页哦 2.循环覆盖循环覆盖 以上讨论了程序内部有判定存在的逻辑结以上讨论了程序内部有判定存在的逻辑结构的测试用例设计技术。构的测试用例设计技术。下面讨论循环结
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第七 软件 测试 课件
限制150内