《软件测试说明》PPT课件.ppt
《《软件测试说明》PPT课件.ppt》由会员分享,可在线阅读,更多相关《《软件测试说明》PPT课件.ppt(62页珍藏版)》请在三一办公上搜索。
1、8.1 软件测试的基本概念,8.2 软件测试方法,8.3 测试用例的设计,8.4 软件测试的步骤,8.5 调试,退出,第八章 软件测试,8.6 软件可靠性,8.7 测试工具,8.1 软件测试的基本概念,8.1.1 软件测试的定义,8.1.2 软件测试的基本原则,退出,8.1.3 软件测试的步骤,8.1.4 软件测试的信息流计,关于测试目的,给出了以下的观点:,测试的定义:为了发现程序中的错误而执行程序的过程。具体地说,软件测试是根据软件开发各阶段的规格说明和程序的内部结构而精心设计出一批测试用例,并利用测试用例来运行程序,以发现程序错误的过程。,8.1.1 软件测试的定义,(1)测试是为了发现
2、程序中的错误而执行程序的过程;(2)好的测试方案是极可能发现迄今为止尚未发现的错误的测试方案;(3)成功的测试是发现了至今为止尚未发现的错误的测试。,软件测试的基本原则,(1)尽早地、不断地进行软件测试。(2)设计测试用例时,要给出测试的预期结果。(3)开发小组和测试小组分开。(4)要设计非法输入的测试用例。(5)在对程序修改之后要进行回归测试。(6)程序中尚未发现的错误的数量往往与在该段程序中已发现的错误的数量成正比。,软件测试的步骤,1单元测试又称模块测试。每个程序模块完成一个相对独立的子功能,所以可以对该模块进行单独的测试。由于每个模块都有清晰定义的功能,所以通常比较容易设计相应的测试方
3、案,以检验每个模块的正确性。,2集成测试在单元测试完成后,要考虑将模块集成为系统的过程中可能出现的问题,例如,模块之间的通信和协调问题,所以在单元测试结束之后还要进行集成测试。这个步骤着重测试模块间的接口,子功能的组合是否达到了预期要求的功能,全程数据结构是否有问题等。,3有效性测试,4系统测试系统测试是把通过有效性测试的软件,作为基于计算机系统的一个整体元素,与整个系统的其他元素结合起来,在实际运行环境下,对计算机系统进行一系列的集成测试和有效性测试。,集成测试通过后,应在用户的参与下进行有效性测试。这个时候往往使用实际数据进行测试,从而验证系统是否能满足用户的实际需要。,软件测试信息流,8
4、.2 软件测试方法,8.2.1 黑盒测试,8.2.2 白盒测试,退出,地址:北京市海淀区学院路40号大唐电信测试空间楼联系电话:010-62303223 62303260 62303230,8.2.1 黑盒测试,任何产品都可以使用以下两种方法进行测试:(1)如果已知产品的功能,则可以对它的每一个功能进行测试,看是否都达到了预期的要求;(2)如果已知产品的内部工作过程,则可以对它的每种内部操作进行测试,看是否符合设计要求。第一种方法是黑盒测试,第二种方法是白盒测试。,黑盒测试时完全不考虑程序内部的结构和处理过程,只按照规格说明书的规定来检查程序是否符合它的功能要求。黑盒测试是在程序接口进行的测试
5、,又称为功能测试。,黑盒测试检查的主要方面有:程序的功能是否正确或完善;数据的输入能否正确接收,输出是否正确;是否能保证外部信息(如数据文件)的完整性等。用黑盒法设计测试用例时,必须用所有可能的输入数据来检查程序是否都能产生正确的输出。,黑盒测试不可能实现穷尽测试:,假设有一个很简单的小程序,输入量只有两个:A和B,输出量只有一个:C。如果计算机的字长为32位,A和B的数据类型都只是整数类型。利用黑盒法进行测试时,将A和B的可能取值进行排列组合,输入数据的可能性有:232232264种。假设这个程序执行一次需要1毫秒,要完成所有的测试,计算机需要连续工作5亿年。显然,这是不能容忍的,而且,设计
6、测试用例时,不仅要有合法的输入,而且还应该有非法的输入,在这个例子中,输入还应该包括实数、字符串等,这样,输入数据的可能性就更多了。所以说,穷尽测试是不可能实现的。,白盒测试时将程序看作是一个透明的盒子,也就是说测试人员完全了解程序的内部结构和处理过程。所以测试时按照程序内部的逻辑测试程序、检验程序中的每条通路是否都能按预定的要求正确工作。白盒测试又称为结构测试。利用白盒测试设计测试用例时,应包括以下三类测试:(1)语句测试:要求程序中的每个语句至少测试一次;(2)分支测试:要求程序中的每个分支至少测试一次;(3)路径测试:要求程序中的每条路径至少测试一次。,8.2.2 白盒测试,白盒测试也不
7、能实现穷尽测试:,左图所示的一个小程序的控制流程,其中每个圆圈代表一段源程序(或语句块),图中的曲线代表执行次数不超过20的循环,循环体中共有5条通路。这样,可能执行的路径有520条,近似为1014条可能的路径。如果完成一个路径的测试需要1毫秒,那么整个测试过程需要3170年。显然,这也是不能接受的。,8.3 测试用例的设计,8.3.1 逻辑覆盖,8.3.2 等价类划分,退出,8.3.3 边界值分析,8.3.4 错误推测法,逻辑覆盖是以程序的内部逻辑结构为基础的测试用例设计技术,属于白盒测试。它要求测试人员十分清楚程序的逻辑结构,考虑的是测试用例对程序内部逻辑覆盖的程度。根据覆盖的目标,逻辑覆
8、盖又可以分为:语句覆盖判定覆盖条件覆盖判定条件覆盖条件组合覆盖,8.3.1 逻辑覆盖,1、语句覆盖,语句覆盖就是设计足够的调试用例,使得程序中的每个语句至少执行一次。,左图程序段中共有4条路径:P1(ace)、P2(abd)、P3(abe)、P4(acd)。,语句覆盖不能发现判断中的逻辑运算中的错误。第一个判断中的逻辑运算符“&”若错写成了“|”,利用上面的输入数据则检查不出这个错误。,P1正好满足语句覆盖的条件。可以设计如下的输入数据:A2,B0,x4,2、判定覆盖,判定覆盖就是设计足够的测试用例,使得程序中每个判定的取“真”分支和取“假”分支至少都执行一次,判定覆盖又称分支覆盖。,测试用例
9、如果能够测试路径P1(ace)和P2(abd),就可以满足判定覆盖要求。可以设计如下两组输入数据:A2,B0,x4A1,B1,x1也可以让测试用例测试路径P3(abe)和P4(acd)。相应的两组输入数据如下:A2,B1,x1A4,B0,x4判定覆盖比语句覆盖强,但是仍不能保证判断条件的正确性。例如:第二个判断条件中的x1若错写成了x1,利用上面的输入数据就不能检查出这个错误。,3、条件覆盖,条件覆盖就是设计足够的测试用例,使得程序判定中的每个条件能获得各种可能的结果。,条件:A1,B0,A2,x1。需要有足够的测试用例使得上述四个条件都能有满足和不满足的情况。以下这两组输入数据能满足这些要求
10、:A2,B0,x4A1,B1,x1这两组数据不仅满足条件覆盖的要求,而且也满足判定覆盖的要求。但并不是所有的满足条件覆盖要求的数据都满足判定覆盖的要求。下面的两组数据满足条件覆盖的要求:A1,B0,x3A2,B1,x1但是这组数据不满足判定覆盖的要求。为了解决这个问题,可以采用下面的判定条件覆盖。,4、判定条件覆盖,判定条件覆盖就是设计足够的测试用例,使得判定中的每个条件都取到各种可能的值,而且每个判定表达式也都取到各种可能的结果。,对于上面的例子,下述两组输入数据能满足这些要求:A2,B0,x4A1,B1,x1判定条件覆盖仍有缺陷。从表面上看,它测试了所有条件的所有可能结果,但事实上并不是这
11、样。因为某些条件掩盖了另一些条件。例如,在逻辑表达式中,如果“与”表达式中某一条件为“假”,则整个表达式的值为“假”,这个表达式中另外的几个条件就不起作用了。同样地,如果在“或”表达式中,某一条件为“真”,则整个表达式的值为“真”,其它条件也就不起作用了。因此,采用判定条件覆盖时,逻辑表达式中的错误不一定能测试出来。,5、条件组合覆盖,条件组合覆盖就是设计足够的测试用例,使得每个判定中的条件的各种可能组合都至少出现一次。,可能的条件组合:(1)A1,B0(2)A1,B0(3)A1,B0(4)A1,B0(5)A2,x1(6)A2,x1(7)A2,x1(8)A2,x1,相应的输入数据:A2,B0,
12、x4 满足(1)和(5)A2,B1,x1 满足(2)和(6)A1,B0,x2 满足(3)和(7)A1,B1,x1 满足(4)和(8),显然,满足条件组合覆盖的测试数据,也一定满足判定覆盖、条件覆盖和判定条件覆盖标准。但是,满足条件组合覆盖标准的测试数据并不一定覆盖了程序中的每条路径,例如,利用上述四组测试数据就遗漏了路径P4(acd)。,等价类划分,等价类划分是一种实用的测试技术,属于黑盒测试。与逻辑覆盖不同,使用等价类划分设计测试用例时,完全不需要考虑程序的内部逻辑结构,而主要依据程序的功能说明。穷尽测试是不可能实现的,实际上也是不必要的,我们可以从所有可能的输入数据中选择一个子集来进行测试
13、。如何选择这个子集,使得这个子集具有代表性,能尽可能多地发现程序中的错误,等价类划分就是基于这种考虑的一种实现方法。该方法根据输入数据和输出数据的特点,将程序输入域划分成若干个部分,即子集,然后从每个子集中选取具有代表性的数据作为测试用例。,1、划分等价类,等价类的划分在很大程度上依靠的是测试人员的经验,下面给出几条基本原则:(1)如果输入条件规定了取值范围,则可划分出一个有效的等价类(输入值在此范围内)和两个无效的等价类(输入值小于最小值、输入值大于最大值)。(2)如果输入条件规定了输入数据的个数,则可相应地划分出一个有效的等价类(输入数据的个数等于给定的个数要求)和两个无效的等价类(输入数
14、据的个数少于给定的个数要求、输入数据的个数多于给定的个数要求)。(3)如果输入条件规定了输入数据的一组可能的值,而且程序对这组可能的值做相同的处理,则可将这组可能的值划分为一个有效的等价类,而这些值以外的值划分成无效的等价类。,(4)如果输入条件规定了输入数据的一组可能的值,但是程序对不同的输入值做不同的处理,则每个输入值是一个有效的等价类,此外还有一个无效的等价类(所有不允许值的集合)。,(5)如果输入条件规定了输入数据必须遵循的规则,则可以划分一个有效的等价类(符合规则)和若干个无效的等价类(从各种角度违反规则)。,2、确定测试用例,划分出等价类后,根据以下原则设计测试用例:(1)为每个等
15、价类编号。(2)设计一个新的测试用例,使它能包含尽可能多的尚未被覆盖的有效等价类。重复这一过程,直到所有的有效等价类都被覆盖。(3)设计一个新的测试用例,使它包含一个尚未被覆盖的无效等价类。重复这一过程,直到所有的无效等价类都被覆盖。,边界值分析,人们在长期的测试中发现,程序往往在处理边界值的时候容易出错,比如数组的下标,循环的上下界等。针对这种情况设计测试用例的方法就是边界值分析方法。使用边界值分析方法设计测试用例时,首先要确定边界情况。通常输入等价类和输出等价类的边界,就是应该着重测试的程序边界情况。也就是说,应该选取恰好等于、小于和大于边界的值作为测试数据,而不是选取每个等价类内的典型值
16、或任意值作为测试数据。边界值分析也属于黑盒测试,可以看作是对等价类划分的一个补充。在设计测试用例时,往往联合等价类划分和边界值分析这两种方法。,错误推测法,错误推测法的基本想法是:列举出程序中所有可能有的错误和容易发生错误的特殊情况,根据它们选择测试用例。例如,输入数据为零或输出数据为零的地方往往容易出错;各模块间对公有变量的引用也是容易出错的地方。,8.4 软件测试的步骤,8.4.1 单元测试,8.4.2 集成测试,退出,8.4.3 有效性测试,8.4.4 系统测试,单元测试又称模块测试,集中对软件设计的最小单位模块进行测试,主要是为了发现模块内部可能存在的各种错误和不足。进行单元测试时,根
17、据程序的内部结构设计测试用例,主要使用白盒测试法。由于各模块间相对独立,因而对多个模块的测试可以并行地进行,以提高测试效率。,8.4.1 单元测试,1、单元测试的内容,(1)模块接口主要进行的测试项目有以下几方面:所测模块的形式参数和调用该模块的实际输入参数在参数数目、属性和顺序上是否匹配;是否修改了只做输入用的形式参数;输出给被调用模块的参数在数目、属性和顺序上是否正确;全程变量的定义和用法在各个模块中是否一致。若模块中有外部的I/O操作,还应该进行以下的测试项目:文件属性是否正确;打开文件语句和关闭语句是否正确;格式说明书与输入输出语句是否一致;缓冲区的大小与记录长度是否匹配;使用文件之前
18、是否先打开了文件;文件操作结束后是否关闭了文件;是否进行了输入输出错误检查并进行了相应的处理。,(2)局部数据结构,模块的局部数据结构是常见的错误来源,测试者应该仔细设计测试用例,以便发现这样一些类型的错误:错误的变量名(变量名拼写错或被编译程序截短);错误的或不一致的数据类型说明;使用尚未赋值或尚未初始化的变量;错误的初始值或错误的缺省值;数据类型不相容;上溢、下溢或地址异常。如果有可能的话,在单元测试期间除了局部数据结构之外,还应该检查全程数据对模块的影响。,(3)重要的执行路径,选择适当的测试用例,对模块中的最有代表性、最可能发现错误的执行路径进行测试。错误的计算主要集中在以下几个方面:
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件测试说明 软件 测试 说明 PPT 课件
链接地址:https://www.31ppt.com/p-4861167.html