您好,欢迎访问三七文档
第二章软件测试方法第二章软件测试方法本章概要第二章软件测试方法软件测试方法概述静态测试和动态测试黑盒测试和白盒测试2.1软件测试方法概述第二章软件测试方法软件测试的方法多种多样,可以从不同角度加以分类:从是否需要执行被测软件的角度,分为静态测试和动态测试;从是针对系统的外部功能还是针对系统的内部结构的角度,分为黑盒测试和白盒测试;从软件测试的策略和过程的角度,分为单元测试、集成测试、确认测试、系统测试和验收测试等。2.2静态测试与动态测试第二章软件测试方法图2-1静态测试与动态测试的比喻图2.2.1静态测试第二章软件测试方法静态方法的主要特征是在用计算机测试源程序时,计算机并不真正运行被测试的程序,只对被测程序进行特性分析。因此,静态方法常称为“分析”。2.2.1静态测试第二章软件测试方法•检查算法的逻辑正确性,确定算法是否实现了所要求的功能;•检查模块接口的正确性,确定形参的个数、数据类型、顺序是否正确,确定返回值类型及返回值的正确性;•检查输入参数是否有合法性检查。检查调用其他模块的接口是否正确,检查实参类型、实参个数是否正确,返回值是否正确。若被调用模块出现异常或错误,程序是否有适当的出错处理代码;•检查是否设置了适当的出错处理,以便在程序出错时,能对出错部分进行重做安排,保证其逻辑的正确性;•检查表达式、语句是否正确,是否含有二义性;•检查常量或全局变量使用是否正确;•检查标识符的使用是否规范、一致,变量命名是否能够望名知义、简洁、规范和易记;•检查程序风格的一致性、规范性,代码是否符合行业规范,检查代码是否可以优化,算法效率是否最高;•检查代码注释是否完整,是否正确反映了代码的功能,并查找错误的注释。2.2.1静态测试第二章软件测试方法2.2.2动态测试第二章软件测试方法动态方法是通过源程序运行时所体现出来的特征,来进行执行跟踪、时间分析以及测试覆盖等方面的测试。动态测试是真正运行被测程序,在执行过程中,通过输入有效的测试用例,对其输入与输出的对应关系进行分析,以达到检测的目的。动态测试方法的基本步骤:•选取定义域的有效值,或选取定义域外的无效值;•对已选取值决定预期的结果;•用选取值执行程序;•执行结果与预期的结果相比,不吻合则说明程序有错2.3黑盒测试方法第二章软件测试方法黑盒测试(Black-boxTesting)又称为功能测试、数据驱动测试和基于规格说明的测试。黑盒测试的基本观点是:任何程序都可以看作是从输入定义域映射到输出值域的函数过程,被测程序被认为是一个打不开的黑盒子,黑盒中的内容(实现过程)完全不知道,只明确要做到什么。黑盒测试作为软件功能的测试手段,主要根据规格说明设计测试用例,并不涉及程序内部结构和内部特性,只依靠被测程序输入和输出之间的关系或程序的功能设计测试用例。2.3.1黑盒测试方法概述第二章软件测试方法黑盒测试是以用户的观点,从输入数据与输出数据的对应关系出发进行测试的,它不涉及到程序的内部结构。主要是为了发现以下错误:1.是否有不正确的功能,是否有遗漏的功能;2.在接口上,是否能够正确地接收输入数据并产生正确的输出结果;3.是否有数据结构错误或外部信息访问错误;4.性能上是否能够满足要求;5.是否有程序初始化和终止方面的错误。2.3.1黑盒测试方法概述第二章软件测试方法黑盒测试有两个显著的特点:黑盒测试不考虑软件的具体实现过程,当在软件实现的过程发生变化时,测试用例仍然可以使用;黑盒测试用例的设计可以和软件实现同时进行,这样能够压缩总的开发时间。第二章软件测试方法黑盒测试的优点如下:①适用于各个测试阶段;②从产品功能角度进行测试;③容易入手生成测试数据。黑盒测试的缺点如下:①某些代码得不到测试;②如果规则说明有误,无法发现;③不易进行充分行测试。2.3.1黑盒测试方法概述第二章软件测试方法黑盒测试有两种基本方法,即通过测试和失败测试。黑盒测试的具体技术方法主要包括:•边界值分析法•等价类划分法•因果图法•决策表法2.3.2等价类划分法第二章软件测试方法1.等价类划分法概述等价类划分法是把所有可能的输入数据,即程序的输入域划分成若干部分(子集),然后从每一个子集中选取少数具有代表性的数据作为测试用例。所谓等价类是指输入域的某个子集合,所有等价类的并集就是整个输入域。在等价类中,各个输入数据对于揭露程序中的错误都是等效的,它们具有等价特性。2.3.2等价类划分法第二章软件测试方法有效等价类是指对软件规格说明来说,合理、有意义的输入数据所构成的集合。利用有效等价类可以检验程序是否满足规格说明所规定的功能和性能。无效等价类则和有效等价类相反,即不满足程序输入要求或者无效的输入数据所构成的集合。利用无效等价类可以检验程序异常情况的处理。2.3.2等价类划分法第二章软件测试方法根据已列出的等价类表,按以下步骤确定测试用例:•为每一个等价类规定一个唯一的编号;•设计一个新的测试用例,使其尽可能多地覆盖尚未被覆盖的有效等价类,重复这个过程,直至所有的有效等价类均被测试用例所覆盖;•设计一个新的测试用例,使其仅覆盖一个无效等价类,重复这个过程,直至所有的无效等价类均被测试用例所覆盖。2.3.2等价类划分法第二章软件测试方法输入条件等价类编号有效等价类等价类编号无效等价类三个数1三个数4只有一条边5只有两条边6多于三条边整数2整数7一边为非整数8两边为非整数9三边为非整数取值范围在1~10031≤a≤1001≤b≤1001≤c≤10010一边为011两边为012三边为013一边小于014两边小于015三边小于016一边大于10017两边大于10018三边大于100表2-2三角形问题的等价类2.3.2等价类划分法第二章软件测试方法2.常见等价类划分形式针对是否对无效数据进行测试,可以将等价类测试分为标准等价类测试、健壮等价类测试以及对等区间的划分。(1)标准等价类测试标准等价类测试不考虑无效数据值,测试用例使用每个等价类中的一个值。因此,利用这些信息可以确定下列值域等价类:R1={〈a,b,c〉:边为a,b,c的等边三角形}R2={〈a,b,c〉:边为a,b,c的等腰三角形}R3={〈a,b,c〉:边为a,b,c的一般三角形}R4={〈a,b,c〉:边为a,b,c不构成三角形}4个标准等价类测试用例如表2-3所示。2.3.2等价类划分法第二章软件测试方法测试用例abc预期输出TestCase1101010等边三角形TestCase210105等腰三角形TestCase3345一般三角形TestCase4115不构成三角形表2-3三角形问题的标准等价类测试用例2.3.2等价类划分法第二章软件测试方法(2)健壮等价类测试健壮等价类测试主要的出发点是考虑了无效等价类。对有效输入,测试用例从每个有效等价类中取一个值;对无效输入,一个测试用例有一个无效值,其他值均取有效值。健壮等价类测试存在两个问题:•需要花费精力定义无效测试用例的期望输出;•对强类型的语言没有必要考虑无效的输入。2.3.2等价类划分法第二章软件测试方法(3)对等区间划分对等区间划分是测试用例设计的非常规形式化的方法。它将被测对象的输入/输出划分成一些区间,被测软件对一个特定区间的任何值都是等价的。对等区间划分假定位于单个区间的所有值对测试都是对等的,应为每个区间的一个值设计一个测试用例。举例说明如下:平方根函数要求当输入值为0或大于0时,返回输入数的平方根;当输入值小于0时,显示错误信息“平方根错误,输入值小于0”,并返回0。输入区间输出区间ⅰ0A=0ⅱ=0BError2.3.2等价类划分法第二章软件测试方法2.3.3边界值分析法第二章软件测试方法1.边界值分析法边界值分析法(BoundaryValueAnalysis,BVA)是一种补充等价类划分法的测试用例设计技术,它不是选择等价类的任意元素,而是选择等价类边界的测试用例。在实际的软件设计过程中,会涉及到大量的边界值条件和过程,2.3.3边界值分析法第二章软件测试方法在应用边界值分析法设计测试用例时,应遵循以下几条原则:•如果输入条件规定了值的范围,则应该选取刚达到这个范围的边界值,以及刚刚超过这个范围边界的值作为测试输入数据。•如果输入条件规定了值的个数,则用最大个数、最小个数、比最小个数少1、比最大个数多1的数作为测试数据。•根据规格说明的每一个输出条件,分别使用以上两个原则。•如果程序的规格说明给出的输入域或者输出域是有序集合(如有序表、顺序文件等),则应选取集合的第一个元素和最后一个元素作为测试用例。•如果程序中使用了一个内部数据结构,则应当选择这个内部数据结构的边界值作为测试用例。•分析规格说明,找出其他可能的边界条件。第二章软件测试方法2.边界条件与次边界条件边界值分析法是对输入的边界值进行测试。在测试用例设计中,需要对输入的条件进行分析并且找出其中的边界值条件,通过对这些边界值的测试来查出更多的错误。提出边界条件时,一定要测试临近边界的有效数据,测试最后一个可能有效的数据,同时测试刚超过边界的无效数据。通常情况下,软件测试所包含的边界检验有几种类型:数值、字符、位置、数量、速度、尺寸等,在设计测试用例时要考虑边界检验的类型特征:第一个/最后一个、开始/完成、空/满、最大值/最小值、最快/最慢、最高/最低、最长/最短等。这些不是确定的列表,而是一些可能出现的边界条件。2.3.3边界值分析法第二章软件测试方法2.3.3边界值分析法3.边界值分析法测试用例以三角形问题为例,要求输入三个整数a、b、c,分别作为三角形的三条边,取值范围在1~100之间,判断由三条边构成的三角形类型为等边三角形、等腰三角形、一般三角形(包括直角三角形)以及非三角形。如表2-9所示给出了边界值分析测试用例。第二章软件测试方法2.3.3边界值分析法测试用例abc预期输出TestCase115050等腰三角形TestCase225050等腰三角形TestCase3505050等边三角形TestCase4995050等腰三角形TestCase51005050非三角形TestCase650150等腰三角形TestCase750250等腰三角形TestCase8509950等腰三角形TestCase95010050非三角形TestCase1050501等腰三角形TestCase1150502等腰三角形TestCase12505099等腰三角形TestCase135050100非三角形表2-9边界值分析测试用例2.3.4决策表法第二章软件测试方法1.决策表法在所有的黑盒测试方法中,基于决策表(也称判定表)的测试是最为严格、最具有逻辑性的测试方法。决策表是分析和表达多个逻辑条件下执行不同操作情况的工具。决策表通常由四个部分组成,如图2-2所示。•条件桩:列出了问题的所有条件。•动作桩:列出了问题规定的可能采取的操作。•条件项:针对条件桩给出的条件列出所有可能的取值。•动作项:与条件项紧密相关,列出在条件项的各组取值情况下应该采取的动作。2.3.4决策表法第二章软件测试方法图2-2决策表的组成2.3.4决策表法第二章软件测试方法根据软件规格说明,建立决策表的步骤如下:①确定规则的个数。假如有n个条件,每个条件有两个取值,故有2n种规则。②列出所有的条件桩和动作桩。③填入条件项。④填入动作项,得到初始决策表。⑤化简。合并相似规则(相同动作)。2.3.4决策表法第二章软件测试方法决策表法适用于下列情况:•规格说明以决策表形式给出,或很容易转换成决策表。•条件的排列顺序不会也不应影响执行哪些操作。•规则的排列顺序不会也不应影响执行哪些操作。•每当某一规则的条件已经满足,并确定要执行的操作后,不必检验别的规则。•如果某一规则得到满足要执行多个操作,这些操作的执行顺序无关紧要。2.3.4决策表法第二章软件测试方法2.决策表法的应用决策表最突出的优点是,能够将复杂的问题按照各种可能的情况全部列举出来,简明并避免遗漏。因此,利用决策表能够设计出完整的测试用例集合。运用决策表设计测试用例,可以将条件理解为输入,将动
本文标题:第2章软件测试
链接地址:https://www.777doc.com/doc-3672754 .html