[计算机]第8章 软件测试ppt课件_第1页
[计算机]第8章 软件测试ppt课件_第2页
[计算机]第8章 软件测试ppt课件_第3页
[计算机]第8章 软件测试ppt课件_第4页
[计算机]第8章 软件测试ppt课件_第5页
已阅读5页,还剩58页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第第8章章 软件测试软件测试 软件测试是在软件投入运行之前软件测试是在软件投入运行之前,对软件的对软件的需求分析、需求分析、设计规格说明和编码设计规格说明和编码的的最后复审最后复审。软件必须测试的原因软件必须测试的原因: 由于软件开发的各个阶段均包含了大量的人的创造由于软件开发的各个阶段均包含了大量的人的创造性劳动,不可防止地会引入错误,尤其是大型、复杂的性劳动,不可防止地会引入错误,尤其是大型、复杂的软件系统。软件系统。软件测试的概念和意义软件测试的概念和意义什么是软件测试什么是软件测试? 软件测试的定义软件测试的定义:软件测试是:软件测试是为了发现错误而运行为了发现错误而运行程序的过程程序

2、的过程。 根据软件开发各阶段的规格说明和程序内部构造精根据软件开发各阶段的规格说明和程序内部构造精心设计一批测试用例,并利用这些用例去运行程序,以心设计一批测试用例,并利用这些用例去运行程序,以发现程序中的错误。发现程序中的错误。软件测试的概念和意义软件测试的概念和意义 软件测试在软件生命期中,软件测试在软件生命期中,跨越两个阶段跨越两个阶段。 编写每一个模块后,进展编写每一个模块后,进展单元测试单元测试。通常模块的编。通常模块的编写者和测试者是同一个人。写者和测试者是同一个人。 每一个模块完成单元测试后,对软件进展各种每一个模块完成单元测试后,对软件进展各种综合综合测试测试。由专门的测试人员

3、完成。由专门的测试人员完成。软件测试的目的和原那么软件测试的目的和原那么软件测试的目的:软件测试的目的: 1、软件测试软件测试是为了发现错误而运行程序的过程。是为了发现错误而运行程序的过程。 2、一个、一个好的测试用例好的测试用例可以发现至今尚未发现的错误。可以发现至今尚未发现的错误。 3、一次、一次成功的测试成功的测试是发现了至今尚未发现的错误的测试。是发现了至今尚未发现的错误的测试。软件测试的目的和原那么软件测试的目的和原那么软件测试的原那么:软件测试的原那么:1设计测试用例时,要给出测试的预期结果。设计测试用例时,要给出测试的预期结果。 测试用例测试用例=输入数据输入数据+预期的输出结果

4、预期的输出结果2软件测试工作应该由独立的专业的软件测试机构来软件测试工作应该由独立的专业的软件测试机构来完成完成 。3测试工作要全面如非法输入等,但不可能实现测试工作要全面如非法输入等,但不可能实现“穷举穷举。软件测试的目的和原那么软件测试的目的和原那么4把把Pareto原理原理应用到软件测试中。即对发现错误较应用到软件测试中。即对发现错误较多的程序段,应进展更深化的测试。多的程序段,应进展更深化的测试。5妥善保存一切测试过程文档。妥善保存一切测试过程文档。6不要希望在极短的时间内完成一个高程度的测试。不要希望在极短的时间内完成一个高程度的测试。7错误经过修改后,错误经过修改后,相关的测试相关

5、的测试必不可少。必不可少。软件测试的目的和原那么软件测试的目的和原那么帕累托原理:帕累托原理: 帕累托帕累托Pareto是十九世纪意大利的社会学家,他是十九世纪意大利的社会学家,他利用图表显示:国家财富的利用图表显示:国家财富的80%掌握在掌握在20%的人的手中,的人的手中,这种这种80%20%的关系,即是的关系,即是帕累托原理帕累托原理。我们可以从。我们可以从生活中的许多事件得到印证,举例来说:生活中的许多事件得到印证,举例来说:公司公司80%的收入是由其全部产品中的的收入是由其全部产品中的20%所赚得的。所赚得的。 消费线上消费线上80%的故障,发生在的故障,发生在20%的机器上。的机器上

6、。80%的员工问题,是由的员工问题,是由20%的员工所引起的。的员工所引起的。 软件测试的范围软件测试的范围软件测试的对象软件测试的对象: 软件测试软件测试不等于程序测试不等于程序测试,在软件定义与开发的整个,在软件定义与开发的整个期间所得到的各种文档资料,都是测试对象。期间所得到的各种文档资料,都是测试对象。 测试对象包括测试对象包括需求规格说明、概要设计规格说明、详需求规格说明、概要设计规格说明、详细设计规格说明、源程序细设计规格说明、源程序等。等。 据有关统计说明,在查找出的软件错误中,属于需求分析和软件设计的错误约占错误总量的64%,而属于程序编写的错误那么仅占错误总量的36%。软件错

7、误分类方法软件错误分类方法按照按照错误的影响和造成的后果错误的影响和造成的后果进展分类:进展分类:较小错误中等错误较严重错误严重错误 按照按照软件生存周期各个阶段软件生存周期各个阶段分类:分类:问题定义需求分析错误 规格说明错误设计错误编码错误软件测试的分类软件测试的分类软件测试分类:软件测试分类: 静态测试静态测试 软件测试软件测试 动态测试动态测试黑盒测试黑盒测试白盒测试白盒测试软件测试的分类软件测试的分类静态测试:静态测试: 静态测试指被测程序不在机器上运行,而静态测试指被测程序不在机器上运行,而采用人工检采用人工检测和计算机辅助静态检测测和计算机辅助静态检测的手段对程序进展测试。的手段

8、对程序进展测试。 软件测试的分类软件测试的分类静态测试方法:静态测试方法: 1、人工检测:、人工检测:人工审查程序或评审软件。人工审查程序或评审软件。 人工审查程序侧重于编码质量的检验。人工审查程序侧重于编码质量的检验。 人工评审软件除了审查编码还要对各阶段的软件产品人工评审软件除了审查编码还要对各阶段的软件产品进展检验。进展检验。 人工检测可以发现计算机不易发现的错误,据统计人人工检测可以发现计算机不易发现的错误,据统计人工检测可发现工检测可发现30%70%的逻辑设计和编码错误,从而的逻辑设计和编码错误,从而减少系统测试的总工作量。减少系统测试的总工作量。 2、计算机辅助静态检测:、计算机辅

9、助静态检测:利用静态检测工具如利用静态检测工具如Splint,PC-LINT 等对程序进展测试。对程序进展测试。 软件测试的分类软件测试的分类动态测试:动态测试: 动态测试是通过动态测试是通过运行程序运行程序发现错误。发现错误。 一般意义上的测试都是动态测试一般意义上的测试都是动态测试。为使测试发现尽可能多的。为使测试发现尽可能多的错误错误,动态测试时需采用一些有效的测试方法。动态测试时需采用一些有效的测试方法。动态测试的方法:动态测试的方法:黑盒测试:黑盒测试:测试产品的功能。测试产品的功能。白盒测试:白盒测试:测试产品的内部构造和处理过程。测试产品的内部构造和处理过程。软件测试需要的配置软

10、件测试需要的配置软件测试过程中需要的配置:软件测试过程中需要的配置: 测试过程需要三类信息:测试过程需要三类信息: 1、软件配置:软件配置:包括需求规格说明、软件设计规格说明、源包括需求规格说明、软件设计规格说明、源程序等;程序等; 2、测试配置:测试配置:包括测试方案、测试用例、测试驱动程序等;包括测试方案、测试用例、测试驱动程序等; 3、测试工具:测试工具:计算机辅助测试的有关工具。如测试数据自计算机辅助测试的有关工具。如测试数据自动生成工具、静态分析程序、动态分析程序、测试结果分析程序动生成工具、静态分析程序、动态分析程序、测试结果分析程序等。等。 软件测试需要的配置软件测试需要的配置

11、测试测试结果结果分析分析可靠性可靠性分析分析排错排错软件配置软件配置测试配置测试配置测试工具测试工具测试结果测试结果预期结果预期结果错误错误出错率出错率数据数据改正的软件改正的软件预测的可靠性预测的可靠性软件测试方法软件测试方法白盒测试:白盒测试: 白盒测试也称为白盒测试也称为构造测试构造测试,通过分析程序的,通过分析程序的内部的逻内部的逻辑与执行途径辑与执行途径来设计测试用例,并对用例进展测试的方法。来设计测试用例,并对用例进展测试的方法。被测对象根本上是源程序。被测对象根本上是源程序。 软件测试方法软件测试方法 为了选用高产的测试数据集,做尽可能完备的测试,可以参考以下一些根本的测试原那么

12、:1保证程序模块中每一个独立的途径至少测试一次;2保证所有判断的每一个分支至少测试一次;3保证每一个循环都在边界条件和一般条件下至少测试一次;4测试所有内部数据构造的有效性。 软件测试方法软件测试方法 介绍几种用白盒法测试时选择测试用例的方法:介绍几种用白盒法测试时选择测试用例的方法:1、逻辑覆盖、逻辑覆盖 以程序内部的逻辑构造为根底来设计测试用例以程序内部的逻辑构造为根底来设计测试用例,即以,即以程序流程图为根据程序流程图为根据来设计测试用例。重点考察图中的菱形来设计测试用例。重点考察图中的菱形框的内容,即框的内容,即断定条件断定条件,因为断定条件通常与条件构造及,因为断定条件通常与条件构造

13、及循环构造联络在一起。循环构造联络在一起。软件测试方法软件测试方法 根据覆盖标准不同,逻辑覆盖可以分为以下几类:根据覆盖标准不同,逻辑覆盖可以分为以下几类:语句覆盖语句覆盖断定覆盖断定覆盖条件覆盖条件覆盖断定断定/条件覆盖条件覆盖条件组合覆盖条件组合覆盖软件测试方法软件测试方法下面通过以下例子分别讲述每种覆盖:例:C语言程序代码如下:Float X;Example float A,BifA1&B=0X=X/A;ifA=2|X1X=X+1;软件测试方法软件测试方法常用的覆盖技术有:常用的覆盖技术有:1语句覆盖:语句覆盖: 为了进步发现错误的可能性,在测试时应该执行到程序中的每一个语为了进

14、步发现错误的可能性,在测试时应该执行到程序中的每一个语句。语句覆盖是指设计足够的测试用例,使被测程序的每个语句至少执行一句。语句覆盖是指设计足够的测试用例,使被测程序的每个语句至少执行一次。次。(A1)AND(B=0)(A=2)OR(X1)X=X/AX=X+1TFFT12345 测试途径为测试途径为1-2-4,即可保证每个语,即可保证每个语句至少执行一次。所以测试用例为:句至少执行一次。所以测试用例为:A=2、B=0 、X=3。程序每个语句都能程序每个语句都能执行,语句覆盖似乎全面地检查了每个语执行,语句覆盖似乎全面地检查了每个语句,但该测试用例只检查了逻辑表达式为句,但该测试用例只检查了逻辑

15、表达式为“真的情况,如将真的情况,如将“AND 错写为错写为“ OR 、 X1错写为错写为X1错写为错写为X1)AND(B=0)(A=2)OR(X1)X=X/AX=X+1TFFT12345软件测试方法软件测试方法常用的覆盖技术有:常用的覆盖技术有: 3条件覆盖:条件覆盖: 条件覆盖是指设计足够的测试用例,使被测程序的每个断定表达式中每条件覆盖是指设计足够的测试用例,使被测程序的每个断定表达式中每个条件的各种可能的值至少出现一次。即对该程序中的四个条件个条件的各种可能的值至少出现一次。即对该程序中的四个条件A1 B=o A=2,X1 要选择足够的测试用例,使得:要选择足够的测试用例,使得: 断定

16、表达式断定表达式1出现:出现:A1,B=0;A1,B0 断定表达式断定表达式2出现:出现:A=2, X1; A2, X1到达条件覆盖标准。到达条件覆盖标准。为满足上述要求,选择以下两组数据:为满足上述要求,选择以下两组数据: A=2,B=0, X=3满足满足A1 ,B=0, A=2 , X1 通过途径通过途径124 A=1,B=1, X=1满足满足A1,B0, X 1, A2通过途径通过途径135 软件测试方法软件测试方法常用的覆盖技术有:常用的覆盖技术有: 3条件覆盖:条件覆盖: 以上两组数据不仅覆盖了断定表达式中的所有条件的可能取值,而且覆以上两组数据不仅覆盖了断定表达式中的所有条件的可能

17、取值,而且覆盖了盖了 所有断定的取所有断定的取“真分支和取真分支和取“假分支,在这种情况下条件覆盖强假分支,在这种情况下条件覆盖强于断定覆盖。但也有例外,如选择以下两组数据:于断定覆盖。但也有例外,如选择以下两组数据: A=1,B=0, X=3满足满足A 1 ,B=0,A 2 ,X1 A=2,B=1, X=1满足满足A1,B0, X 1, A=2 以上两组数据覆盖了断定表达式中的所有条件的可能取值,但只覆盖了以上两组数据覆盖了断定表达式中的所有条件的可能取值,但只覆盖了 第一个断定表达式的取第一个断定表达式的取“假分支和第二个断定表达式的取假分支和第二个断定表达式的取“真分支,此真分支,此例不

18、满足断定覆盖。所以满足条件覆盖不一定满足断定覆盖。为理解决此问例不满足断定覆盖。所以满足条件覆盖不一定满足断定覆盖。为理解决此问题,需要对条件和分支兼顾。题,需要对条件和分支兼顾。软件测试方法软件测试方法常用的覆盖技术有:常用的覆盖技术有: 4断定断定/条件覆盖:条件覆盖: 该覆盖标准是指设计足够的测试用例,使被测程序的每个断定表达式中该覆盖标准是指设计足够的测试用例,使被测程序的每个断定表达式中每个条件的各种可能的值至少出现一次。并使每个断定表达式所有可能的结每个条件的各种可能的值至少出现一次。并使每个断定表达式所有可能的结果也至少出现一次。对该例程序,可选择以下两组数据到达断定果也至少出现

19、一次。对该例程序,可选择以下两组数据到达断定/条件覆盖条件覆盖标准:标准: A=2,B=0, X=3 A=1,B=1, X=1 从外表上看,断定从外表上看,断定/条件覆盖测试了所有条件的取值,但实际上条件条件覆盖测试了所有条件的取值,但实际上条件组合中的某些条件会抑制其它的条件,如组合中的某些条件会抑制其它的条件,如“与运算的断定表达式中,第一与运算的断定表达式中,第一个条件为个条件为“假,那么这个表达式后面的几个条件均不起作用,后面的表达假,那么这个表达式后面的几个条件均不起作用,后面的表达式中的错误也就测试不出来。式中的错误也就测试不出来。软件测试方法软件测试方法5条件组合覆盖:条件组合覆

20、盖: 该覆盖标准是指设计足够的测试用例,使被测程序的每个断定表达式中每该覆盖标准是指设计足够的测试用例,使被测程序的每个断定表达式中每个条件的各种可能的值的组合至少出现一次。条件组合覆盖是较强的覆盖标准。个条件的各种可能的值的组合至少出现一次。条件组合覆盖是较强的覆盖标准。该例中,两个断定表达式共有该例中,两个断定表达式共有4个条件,有个条件,有8种组合:种组合: A1, B=0 ; A1, B0 ; A1,B=0; A1, B0 ; A=2, X1 ; A=2, X1; A2, X1; A2, X1 ; 测试用例测试用例4组数据:组数据: A=2, B=0, X=2;覆盖条件组合覆盖条件组合

21、 ,途径,途径124 A=2, B=1, X=1;覆盖条件组合覆盖条件组合 ,途径,途径134 A=1, B=1, X=1;覆盖条件组合覆盖条件组合 ,途径,途径135 A=1, B=0, X=2;覆盖条件组合覆盖条件组合 ,途径,途径134 显然,满足条件组合覆盖的测试,一定满足断定覆盖、条件覆盖、断定显然,满足条件组合覆盖的测试,一定满足断定覆盖、条件覆盖、断定/条件条件覆盖,但该测试没有覆盖程序所有可能的执行途径,覆盖,但该测试没有覆盖程序所有可能的执行途径,125途径没有覆盖。途径没有覆盖。软件测试方法软件测试方法五种覆盖的比较:五种覆盖的比较: 语句覆盖语句覆盖 每条语句至少执行一次

22、每条语句至少执行一次 断定覆盖断定覆盖 每个断定的每个分支至少执行一次每个断定的每个分支至少执行一次条件覆盖条件覆盖 每个断定的每个条件应取到各种可能的值每个断定的每个条件应取到各种可能的值断定断定/条件覆盖条件覆盖 同时满足断定覆盖和条件覆盖同时满足断定覆盖和条件覆盖条件组合覆盖条件组合覆盖 每个断定中各条件的每一种组合至少出现一次每个断定中各条件的每一种组合至少出现一次发现错误才能发现错误才能强强力弱弱力软件测试的方法软件测试的方法黑盒测试法黑盒测试法 黑盒测试着重黑盒测试着重测试软件功能测试软件功能,它检查的内容只包括它检查的内容只包括程序功能是否能按照规格说明书的内容正常使用,程序是程

23、序功能是否能按照规格说明书的内容正常使用,程序是否接收输入数据产生正确的输出信息否接收输入数据产生正确的输出信息等。等。 黑盒测试与白盒测试是黑盒测试与白盒测试是互补互补的测试方法,黑盒测试的测试方法,黑盒测试很可能发现白盒测试不易发现的错误。很可能发现白盒测试不易发现的错误。 白盒测试在测试过程的早期阶段进展,而黑盒测试白盒测试在测试过程的早期阶段进展,而黑盒测试主要用于测试过程的主要用于测试过程的后期后期。 软件测试的方法软件测试的方法黑盒测试力图发现下述类型的错误:黑盒测试力图发现下述类型的错误:功能不正确或遗漏了功能;功能不正确或遗漏了功能;接口错误;接口错误; 软件测试的方法软件测试

24、的方法黑盒测试法分类:黑盒测试法分类:等价类划分法等价类划分法边界值分析法边界值分析法错误推测法错误推测法 软件测试的方法软件测试的方法1、等价类划分法等价分类法、等价类划分法等价分类法 等价类等价类:指某个:指某个输入域的子集合输入域的子集合,在该集合中,各个,在该集合中,各个输入数据对暴露程序中的错误是输入数据对暴露程序中的错误是等效的等效的。 假如使用某个等价类中的一个输入条件,作为测试数假如使用某个等价类中的一个输入条件,作为测试数据检测出了错误,那么用这一等价类中的其它数据进展测据检测出了错误,那么用这一等价类中的其它数据进展测试会发现同样的错误,反之亦然。试会发现同样的错误,反之亦

25、然。 软件测试的方法软件测试的方法等价类划分的思想:等价类划分的思想: 将输入数据域按将输入数据域按有效的或无效的有效的或无效的合理的或不合理的划合理的或不合理的划分成假设干类,分成假设干类,测试每个等价类的代表值测试每个等价类的代表值。 假如某个等价类中任选一个测试用例,未发现程序错误,假如某个等价类中任选一个测试用例,未发现程序错误,那么该类中的其他测试用例,也不会发现程序错误。那么该类中的其他测试用例,也不会发现程序错误。 这样用少量有这样用少量有代表性的例子代表性的例子可代替大量测试目的一样的例可代替大量测试目的一样的例子,明显的子,明显的进步了测试效率进步了测试效率。 7.2 软件测

26、试的方法软件测试的方法利用等价类划分法测试的步骤:利用等价类划分法测试的步骤:划分等价类划分等价类 从程序的功能说明中找出每个输入条件,然后将其划分从程序的功能说明中找出每个输入条件,然后将其划分成假设干个有效和无效的等价类。成假设干个有效和无效的等价类。 有效等价类:有效等价类:对程序的规格说明来说是正确的,有意义对程序的规格说明来说是正确的,有意义的输入数据的集合。的输入数据的集合。 无效等价类:无效等价类:对程序的规格说明来说是错误的,无意义对程序的规格说明来说是错误的,无意义的输入数据的集合。的输入数据的集合。 软件测试的方法软件测试的方法下面给出等价类划分的几条下面给出等价类划分的几

27、条经历性原那么经历性原那么供参考:供参考: 假如假如规定了输入值的范围规定了输入值的范围,那么可划分出一个有效的,那么可划分出一个有效的等价类输入值在此范围内和两个无效的等价类输入值等价类输入值在此范围内和两个无效的等价类输入值小于最小值或大于最大值。小于最小值或大于最大值。 假如假如规定了数据输入的个数规定了数据输入的个数,那么可划分出一个有效,那么可划分出一个有效的等价类输入值的个数符合规定和两个无效的等价类的等价类输入值的个数符合规定和两个无效的等价类输入值的个数少于或多于规定个数。输入值的个数少于或多于规定个数。软件测试的方法软件测试的方法 假如假如规定了输入数据是一组值规定了输入数据

28、是一组值,那么每个数据都符合要,那么每个数据都符合要求是一个有效的等价类,此外还有一个无效的等价类规定求是一个有效的等价类,此外还有一个无效的等价类规定的这一组值以外的值。的这一组值以外的值。 假如规定了假如规定了输入数据必须遵循的规那么输入数据必须遵循的规那么,那么可划分出,那么可划分出一个有效的等价类符合规那么和假设干个无效的等价类一个有效的等价类符合规那么和假设干个无效的等价类从不同的角度违背规那么。从不同的角度违背规那么。 假如假如规定了输入数据的类型规定了输入数据的类型,那么可划分出一个有效的,那么可划分出一个有效的等价类符合该数据类型和一个无效的等价类其他数据等价类符合该数据类型和

29、一个无效的等价类其他数据类型。类型。软件测试的方法软件测试的方法设计测试用例设计测试用例设计测试用例的步骤:设计测试用例的步骤:将第一步划分的等价类将第一步划分的等价类编号编号。为有效等价类设计一个测试用例为有效等价类设计一个测试用例,使其尽可能多地覆,使其尽可能多地覆盖尚未被覆盖过的有效等价类。如此重复,直到所有有盖尚未被覆盖过的有效等价类。如此重复,直到所有有效等价类都被覆盖为止。效等价类都被覆盖为止。设计一个新的测试用例,设计一个新的测试用例,覆盖且仅覆盖一个无效等价覆盖且仅覆盖一个无效等价类类,如此重复,直到所有无效等价类都被覆盖为止。,如此重复,直到所有无效等价类都被覆盖为止。软件测

30、试的方法软件测试的方法例:某程序的功能是输入三个正数作为三角形例:某程序的功能是输入三个正数作为三角形的边长,求三角形的面积。用等价类划分法对的边长,求三角形的面积。用等价类划分法对这个程序进展测试。这个程序进展测试。步骤:步骤: 1划分等价类划分等价类 2设计测试用例设计测试用例软件测试方法软件测试方法2、边界值分析、边界值分析 边界值分析也是一种黑盒测试法,是对等价类划分法边界值分析也是一种黑盒测试法,是对等价类划分法的的补充补充。 理论经历说明,理论经历说明,程序往往在处理边界情况时发生错误程序往往在处理边界情况时发生错误。边界情况指输入等价类、输出等价类边界上的情况。检查边界情况指输入

31、等价类、输出等价类边界上的情况。检查边界情况的测试用例是比较高效的,可以查出更多的错误。边界情况的测试用例是比较高效的,可以查出更多的错误。 软件测试的方法软件测试的方法下面给出边值分析法的几条下面给出边值分析法的几条经历性原那么经历性原那么供参考:供参考: 假如输入条件指定了假如输入条件指定了范围范围a,b,那么,那么a、b以及紧以及紧挨挨a、b左右的各一个值都应作为测试用例。比方,学生成左右的各一个值都应作为测试用例。比方,学生成绩为绩为0,100,应取,应取-1、0、1、99、100、101共共6个值个值作为测试用例。作为测试用例。 假如输入条件指定了输入数据的假如输入条件指定了输入数据

32、的个数个数范围,那么按范围,那么按最大、最小个数及超出个数范围的临界个数各设计一个测最大、最小个数及超出个数范围的临界个数各设计一个测试用例。比方,一个输入文件应包括试用例。比方,一个输入文件应包括1255个记录,那么个记录,那么应分别设计输入应分别设计输入0个、个、1个、个、2个、个、254个、个、255个、个、256个记录的测试用例。个记录的测试用例。软件测试的方法软件测试的方法 将规那么将规那么和和应用于应用于输出条件输出条件,即设计测试用例使,即设计测试用例使输出值到达边界值及其左右的值。输出值到达边界值及其左右的值。 假如程序规格说明中提到的输入或输出域是个假如程序规格说明中提到的输

33、入或输出域是个有序集有序集合合如顺序文件、表格等,应注意选取有序集的第一个和如顺序文件、表格等,应注意选取有序集的第一个和最后一个元素作为测试用例。最后一个元素作为测试用例。 分析规格说明,找出分析规格说明,找出其他其他的可能边界条件。的可能边界条件。 软件测试方法软件测试方法3、错误推测、错误推测 错误推测法的根本思想是错误推测法的根本思想是:程序测试员:程序测试员通过已经掌握通过已经掌握的测试理论和实际测试中积累的经历,推测程序在哪些情的测试理论和实际测试中积累的经历,推测程序在哪些情况下可能发生错误况下可能发生错误,并将可能发生错误的情况列出,然后,并将可能发生错误的情况列出,然后为每一

34、可能发生错误的情况各设计一个测试用例。为每一可能发生错误的情况各设计一个测试用例。 软件测试方法软件测试方法 例如例如,测试一个对线性表比方数组进展排序的程,测试一个对线性表比方数组进展排序的程序,可推测列出以下几项需要特别测试的情况:序,可推测列出以下几项需要特别测试的情况:1输入的线性表为空表;输入的线性表为空表;2表中只含有一个元素;表中只含有一个元素;3输入表中所有元素已排好序;输入表中所有元素已排好序;4输入表已按逆序排好;输入表已按逆序排好;5输入表中部分或全部元素一样。输入表中部分或全部元素一样。 于是,可以针对以上列出的每一种情况各设计一个测试于是,可以针对以上列出的每一种情况

35、各设计一个测试用例。用例。软件测试过程软件测试过程测试过程分为测试过程分为4个步骤:个步骤: 单元测试单元测试 组装测试组装测试 确认测试确认测试 系统测试系统测试单元单元测试测试单元单元测试测试单元单元测试测试被测模块被测模块被测模块被测模块被测模块被测模块组装组装测试测试设计信息设计信息确认确认测试测试系统系统测试测试已集成的已集成的软件软件已确认的已确认的软件软件可交付的可交付的软件软件软件需求软件需求系统其它元素系统其它元素已测试已测试模块模块1、单元测试、单元测试 单元测试也称单元测试也称模块测试模块测试,是针对软件设计的最小单元,是针对软件设计的最小单元程序模块进展测试的工作。程序

36、模块进展测试的工作。目的目的是发现模块内部的错误是发现模块内部的错误。单元测试主要从以下五个方面进展:单元测试主要从以下五个方面进展: 1模块接口测试参数的类型、个数、顺序是否正确模块接口测试参数的类型、个数、顺序是否正确2部分数据构造测试变量定义、使用、初始化是否正确部分数据构造测试变量定义、使用、初始化是否正确3途径测试途径测试4程序异常测试强健性测试程序异常测试强健性测试5边界条件测试边界条件测试软件测试过程软件测试过程 单元测试属于动态测试动态测试,需要运行被测模块,而被测模块通常不是一个独立的程序,不能独立运行不能独立运行,因此要引入驱动模块和桩模块驱动模块和桩模块,模拟与被测模块相

37、联络的调用模块和被调用模块。 驱动模块驱动模块 模拟被测模块的调用模块。模拟被测模块的调用模块。支持模块桩模块支持模块桩模块 模拟被测模块的下属模块。模拟被测模块的下属模块。软件测试过程软件测试过程2、集成测试、集成测试 集成测试也称集成测试也称组装测试或结合测试组装测试或结合测试,它的任务是按照一,它的任务是按照一定的策略对经过单元测试的模块进展组装,并在组装过程中定的策略对经过单元测试的模块进展组装,并在组装过程中对对模块接口与系统功能模块接口与系统功能进展测试。进展测试。 1一次性组装方式非增殖式一次性组装方式非增殖式 一次性组装方式的一次性组装方式的根本思想根本思想是首先分别测试每个模

38、块,是首先分别测试每个模块,然后将所有模块全部组装起来进展测试,形成最终的软件系然后将所有模块全部组装起来进展测试,形成最终的软件系统。统。 软件测试过程软件测试过程一次性组装方式测试的一次性组装方式测试的缺点:缺点: 一次将所有模块组装后的一次将所有模块组装后的程序会很庞大程序会很庞大,各模块之间,各模块之间互相影响,情况非常复杂。互相影响,情况非常复杂。 在测试过程中会同时出现很多错误,对这些在测试过程中会同时出现很多错误,对这些错误的定错误的定位难度增大位难度增大,修改的过程中可能又会引发其它错误或激发其,修改的过程中可能又会引发其它错误或激发其它潜在的错误。它潜在的错误。 测试工作非常

39、的漫长测试工作非常的漫长。 软件测试过程软件测试过程2增殖式组装方式增殖式组装方式 增殖式组装方式是采用增殖式组装方式是采用循序渐进循序渐进的方式,每次增加一个模块到已的方式,每次增加一个模块到已测试好的模块中。测试好的模块中。 1自顶向下增殖方式自顶向下增殖方式详细的施行步骤如下:详细的施行步骤如下: 先测试主控制模块,测试时使用先测试主控制模块,测试时使用存根模块桩模块存根模块桩模块代替所有直接代替所有直接附属主控制模块的功能模块;附属主控制模块的功能模块; 用用某种结合策略某种结合策略广度优先,用实际模块代替相应的存根模块;广度优先,用实际模块代替相应的存根模块; 对结合后的模块进展测试

40、;对结合后的模块进展测试; 为了保证参加的模块没有引进新的错误,需要进展为了保证参加的模块没有引进新的错误,需要进展回归测试回归测试; 重复操作重复操作2 2、3 3、4 4步,完成集成测试。步,完成集成测试。 软件测试过程软件测试过程2自底向上增殖方式自底向上增殖方式详细的详细的结合策略结合策略如下:如下: 将低层模块组合成实现某个子功能的簇;将低层模块组合成实现某个子功能的簇; 写一个驱动模块,用来提供该功能簇的执行入口和输写一个驱动模块,用来提供该功能簇的执行入口和输入入/输出界面;输出界面; 对该功能簇进展测试;对该功能簇进展测试; 在低层继续寻找模块,将该功能簇扩大,重新修改驱在低层

41、继续寻找模块,将该功能簇扩大,重新修改驱动程序,以适应对当前功能簇的测试。动程序,以适应对当前功能簇的测试。 不断重复前面的步骤,完成测试。不断重复前面的步骤,完成测试。 软件测试过程软件测试过程3混合增殖式测试混合增殖式测试 自顶向下增殖方式和自底向上增殖方式各有优缺点,自顶向下增殖方式和自底向上增殖方式各有优缺点,在实际的测试过程中,可根据详细情况将两种方法结合起在实际的测试过程中,可根据详细情况将两种方法结合起来使用。来使用。 改进的自顶向下的增殖测试:改进的自顶向下的增殖测试:它的根本思想是对涉及它的根本思想是对涉及输入输出模块和复杂算法的模块先采用自底向上的测试输入输出模块和复杂算法

42、的模块先采用自底向上的测试方法,将这些模块组装成为功能相对完好且相对独立的子方法,将这些模块组装成为功能相对完好且相对独立的子系统,然后由主模块开场自顶向下进展增殖测试。系统,然后由主模块开场自顶向下进展增殖测试。软件测试过程软件测试过程3、确认测试确认测试 确认测试也称确认测试也称有效性测试有效性测试,目的是验证软件的有效性目的是验证软件的有效性,即验,即验证软件的功能和性能及其它特性是否符合用户要证软件的功能和性能及其它特性是否符合用户要求求 。确认测试是确认测试是软件交付使用前一项很重要的活动,它最终决定用户对该软件的软件交付使用前一项很重要的活动,它最终决定用户对该软件的认可程度。认可

43、程度。1 测试:测试: 测试是邀请用户参加,在测试是邀请用户参加,在开发场地进展的测试开发场地进展的测试,由开发组,由开发组成员或用户实际操作运行,对测试过程中出现的问题,由开发者成员或用户实际操作运行,对测试过程中出现的问题,由开发者记录下来,作为修改的根据。记录下来,作为修改的根据。 它的最大特点是整个测试过程是在它的最大特点是整个测试过程是在受控环境受控环境下进展。下进展。软件测试过程软件测试过程2 测试:测试: 测试是由部分用户在测试是由部分用户在实际的使用环境实际的使用环境下进展的测试。测试过下进展的测试。测试过程中开发者不在现场,由程中开发者不在现场,由用户独立操作用户独立操作,验

44、证程序的各项功能,验证程序的各项功能,用户发现的问题全部记录下来,反响给程序开发者,开发者对软用户发现的问题全部记录下来,反响给程序开发者,开发者对软件进展必要的修改,并准备最终的软件产品发布。件进展必要的修改,并准备最终的软件产品发布。 测试的最大特点是测试的最大特点是实际的使用环境实际的使用环境下进展的测试。下进展的测试。确认测试的结果可分为两种情况:确认测试的结果可分为两种情况:测试结果与预期结果相符,程序的功能和性能满足用户需求;测试结果与预期结果相符,程序的功能和性能满足用户需求;测试结果与预期结果不相符,将存在的问题列出清单,提供给测试结果与预期结果不相符,将存在的问题列出清单,提

45、供给开发者作为修改根据。开发者作为修改根据。软件测试过程软件测试过程4 4、系统测试、系统测试 系统测试的系统测试的目的目的是充分运行系统,验证系统各部件是是充分运行系统,验证系统各部件是否都能正常工作并完成所赋予的任务。否都能正常工作并完成所赋予的任务。 系统测试的系统测试的任务任务主要有:测试软件系统是否能与硬件主要有:测试软件系统是否能与硬件协调工作,测试与其它软件协调运行的状况。协调工作,测试与其它软件协调运行的状况。软件测试过程软件测试过程系统测试分类:系统测试分类:1恢复测试:恢复测试:主要检查系统的主要检查系统的容错才能容错才能。 2平安测试:平安测试:主要检查系统对非法侵入的主

46、要检查系统对非法侵入的防范才能防范才能。 3强度测试:强度测试:主要检查程序在一些主要检查程序在一些极限条件下极限条件下的运行情的运行情况。况。 4性能测试:性能测试:主要检查系统主要检查系统是否满足需求说明书中规定是否满足需求说明书中规定的性能的性能。 5其它:其它:版本间的兼容性测试、安装测试,最终提交的版本间的兼容性测试、安装测试,最终提交的文档测试等文档测试等 。软件测试过程软件测试过程见标准文档见标准文档测试相关文档测试相关文档软件调试软件调试调试调试debug,排错排错 调试功能是将在测试过程中出现的错误调试功能是将在测试过程中出现的错误进一步的诊断进一步的诊断并且改正程序中存在的潜在错误并且改正程序中存在的潜在错误,保证软件运行的正确性,保证软件运行的正确性和可靠性。和可靠性。软件调试活动主要分为以下两部分软件调试活动主要分为以下

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论