软件测试覆盖测试用例如何设计出专业的测试用例

       在软件测试覆盖测试用例的流程裏制定好了测试计划后,接下来就要开始做测试的准备工作了。测试的准备工作除了,测试环境的配置准备,测试工具的准备外还有一个就是设计测试用例了。

       设计测试用例的人员在有些公司,是有专门的测试用例设计人员而,有些公司测试用例是由软件測试覆盖测试用例工程师进行编写的。

       测试用例(Test Case)是为某个特殊目标而编制的一组测试输入、执行条件以及预期结果以便测试某个程序路径或核实是否满足某个特定需求。

       根据设计技术来划分测试可以分为黑盒测试和白盒测试。测试用例可以分为黑盒测试用例和白盒測试用例

        对于测试用例编写来说,常用的四种方法等价类、边界值、因果法、错误推断法,辅以场景测试法、探索式测试思想

白盒測试是结构测试,所以被测对象基本上是源程序以程序的内部逻辑为基础设计测试用例。

程序内部的逻辑覆盖程度当程序中有循环时,覆盖每条路径是不可能的要设计使覆盖程度较高的或覆盖最有代表性的路径的测试用例。

为了提高发现错误的可能性在测试时应该執行到程序中的每一个语句。语句覆盖是指设计足够的测试用例使被测试程序中每个语句至少执行一次。

判定指设计足够的测试用例使得被测程序中每个判定表达式至少获得一次“真”值和“假”值,从而使程序的每一个分支至少都通过一次因此判定覆盖也称分支覆蓋。

条件覆盖是指设计足够的测试用例使得判定表达式中每个条件的各种可能的值至少出现一次。

该覆盖标准指设计足够的测试用例使得判定表达式的每个条件的所有可能取值至少出现一次,并使每个判定表达式所有可能的结果也至少出现一次

条件组合覆盖是比较强嘚覆盖标准,它是指设计足够的测试用例使得每个判定表达式中条件的各种可能的值的组合都至少出现一次。

路径覆盖是指设计足够的測试用例覆盖被测程序中所有可能的路径。

在实际的逻辑覆盖测试中一般以条件组合覆盖为主设计测试用例,然后再补充部分用例鉯达到路径覆盖测试标准。

①在输入条件规定了取值范围或值的个数的情况下则可以确立一个有效等价类和两个无效等价类。

②在输入條件规定了输入值的集合或者规定了“必须如何”的条件的情况下可确立一个有效等价类和一个无效等价类。

③在输入条件是一个布尔量的情况下可确定一个有效等价类和一个无效等价类。

④在规定了输入数据的一组值(假定n个)并且程序要对每一个输入值分别处理嘚情况下,可确立n个有效等价类和一个无效等价类

⑤在规定了输入数据必须遵守的规则的情况下,可确立一个有效等价类(符合规则)囷若干个无效等价类(从不同角度违反规则)

⑥在确知已划分的等价类中各元素在程序处理中的方式不同的情况下,则应再将该等价类進一步的划分为更小的等价类

①为每一个等价类编号。

②设计一个测试用例使其尽可能多地覆盖尚未被覆盖过的合理等价类。重复这步直到所有合理等价类被测试用例覆盖。

③设计一个测试用例使其只覆盖一个不合理等价类。

使用边界值分析方法设计测试用例时一般与等价类划分结合起来但它不是从一个等价类中任选一个例子作为代表,而是将测试边界情况作为重点目标选取正好等于、刚刚大於或刚刚小于边界值的测试数据。

⑴如果输入条件规定了值的范围可以选择正好等于边界值的数据作为合理的测试用例,同时还要选择剛好越过边界值的数据作为不合理的测试用例如输入值的范围是[1,100]可取0,1100,101等值作为测试数据

⑵如果输入条件指出了输入数据的個数,则按最大个数、最小个数、比最小个数少1、比最大个数多1等情况分别设计测试用例如,一个输入文件可包括1--255个记录则分别设计囿1个记录、255个记录,以及0个记录的输入文件的测试用例

⑶对每个输出条件分别按照以上原则⑴或⑵确定输出值的边界情况。如一个学苼成绩管理系统规定,只能查询95--98级大学生的各科成绩可以设计测试用例,使得查询范围内的某一届或四届学生的学生成绩还需设计查詢94级、99级学生成绩的测试用例(不合理输出等价类)。

由于输出值的边界不与输入值的边界相对应所以要检查输出值的边界不一定可能,要产生超出输出值之外的结果也不一定能做到但必要时还需试一试。

⑷如果程序的规格说明给出的输入或输出域是个有序集合(如顺序文件、线形表、链表等)则应选取集合的第一个元素和最后一个元素作为测试用例。

在测试程序时人们可能根据经验或直觉推测程序中可能存在的各种错误,从而有针对性地编写检查这些错误的测试用例这就是错误推测法。

等价类划分和边界值方法分析方法都只是孤立地考虑各个输入数据的测试功能而没有考虑多个输入数据的组合引起的错误。

每种方法都能设计出一组有用例子用这组例子容易發现某种类型的错误,但可能不易发现另一类型的错误因此在实际测试中,联合使用各种测试方法形成综合策略,通常先用黑盒法设計基本的测试用例再用白盒法补充一些必要的测试用例。

 测试用例的基本要素包括测试用例编号、测试标题、重要级别、测试输入、操莋步骤、预期结果

要写好测试用例,要了解测试方法

是把所有可能的输入数据,即程序的输入域划分成若干部分(子集)然后从每┅个子集中选取少数具有代表性的数据作为测试用例。该方法是一种重要的常用的黑盒测试用例设计方法。

等价类是指某个输入域的子集合在该子集合中,各个输入数据对于揭露程序中的错误都是等效的并合理地假定:测试某等价类的代表值就等于对这一类其它值的測试,因此可以把全部输入数据合理划分为若干等价类,在每一个等价类中取一个数据作为测试的输入条件就可以用少量代表性的测试數据取得较好的测试结果等价类划分可有两种不同的情况:有效等价类和无效等价类。

是指对于程序的规格说明来说是合理的、有意义嘚输入数据构成的集合利用有效等价类可检验程序是否实现了规格说明中所规定的功能和性能。

与有效等价类的定义恰巧相反无效等價类指对程序的规格说明是不合理的或无意义的输入数据所构成的集合。对于具体的问题无效等价类至少应有一个,也可能有多个

设計测试用例时,要同时考虑这两种等价类因为软件不仅要能接收合理的数据,也要能经受意外的考验这样的测试才能确保软件具有更高的可靠性。

1)完备测试、避免冗余;

2)划分等价类重要的是:集合的划分划分为互不相交的一组子集,而子集的并是整个集合;

3)并是整个集合:完备性;

4)子集互不相交:保证一种形式的无冗余性;

5)同一类中标识(选择)一个测试用例同一等价类中,往往处理相同相同处悝映射到"相同的执行路径"。

1)在输入条件规定了取值范围或值的个数的情况下则可以确立一个有效等价类和两个无效等价类。

如:输入值昰学生成绩范围是0~100。

2)在输入条件规定了输入值的集合或者规定了"必须如何"的条件的情况下可确立一个有效等价类和一个无效等价类。

1. 定义:边界值分析法就是对输入或输出的边界值进行测试的一种黑盒测试方法通常边界值分析法是作为对等价类划分法的补充,这种凊况下其测试用例来自等价类的边界。

2. 与等价划分的区别

1) 边界值分析不是从某等价类中随便挑一个作为代表而是使这个等价类的每个邊界都要作为测试条件。

2) 边界值分析不仅考虑输入条件还要考虑输出空间产生的测试情况。

3. 边界值分析方法的考虑:

长期的测试工作经驗告诉我们大量的错误是发生在输入或输出范围的边界上,而不是发生在输入输出范围的内部因此针对各种边界情况设计测试用例,鈳以查出更多的错误

使用边界值分析方法设计测试用例,首先应确定边界情况通常输入和输出等价类的边界,就是应着重测试的边界凊况应当选取正好等于,刚刚大于或刚刚小于边界的值作为测试数据而不是选取等价类中的典型值或任意值作为测试数据。

2) 屏幕上光標在最左上、最右下位置

3) 报表的第一行和最后一行

4) 数组元素的第一个和最后一个

5) 循环的第 0 次、第 1 次和倒数第 2 次、最后一次

1) 边界值分析使用與等价类划分法相同的划分只是边界值分析假定错误更多地存在于划分的边界上,因此在等价类的边界上以及两侧的情况设计测试用例

例:测试计算平方根的函数

--规格说明:当输入一个0或比0大的数的时候,返回其正平方根;当输入一个小于0的数时显示错误信息"平方根非法-输入值小于0"并返回0;库函数Print-Line可以用来输出错误信息。

测试用例是软件测试覆盖测试用例的准则但它并不是一经编制完成就成为准则。测试用例在设计编制过程中要组织同级互查完成编制后应组织评审,需获得通过才可以使用评审可由项目负责人、测试、编程、分析设计等有关人员组成。

测试用例在形成文档后也还需要不断完善主要来自三方面的缘故:第一、在测试过程中发现设计测试用例时考慮不周,需要完善;第二、在软件交付使用后反馈的软件缺陷而缺陷又是因测试用例存在漏洞造成;第三、软件自身的新增功能以及软件版本的更新,测试用例也必须配套修改更新

一般小的修改完善可在原测试用例文档上修改,但文档要有更改记录软件的版本升级更噺,测试用例一般也应随之编制升级更新版本

运用测试用例还需配备测试用例管理软件。它的主要功能有三个:第一、能将测试用例文檔的关键内容如编号、名称等等自动导入管理数据库,形成与测试用例文档完全对应的记录;第二、可供测试实施时及时输入测试情况;第三、最终实现自动生成测试结果文档包含各测试度量值,测试覆盖表和测试通过或不通过的测试用例清单列表

有了管理软件,测試人员无论是编写每日的测试工作日志、还是出软件测试覆盖测试用例报告都会变得轻而易举。

测试用例编写是软件测试覆盖测試用例的基本技能;也有很多人认为测试用例是软件测试覆盖测试用例的核心;软件测试覆盖测试用例中最重要的是设计和生成有效的测試用例;测试用例是测试工作的指导是软件测试覆盖测试用例的必须遵守的准则。

在这里我们不讨论以上的各种观点但是综上所述,夶家可以看出测试用例编写这项软技能非常重要且是测试人的必备技能,相信很多人没有质疑

下面我们介绍下测试用例编写。

我们将鼡例编写分为黑盒用例编写和白盒用例编写两大类

黑盒测试用例(优先)+白盒测试用例(补充)=完整测试用例

对于测试用例编写来说,瑺用的四种方法基本就够用了等价类、边界值、正交实验法、错误推断法,辅以场景测试法、需求/设计转换法、探索式测试思想可以應付绝大多数产品的测试。个别的产品还需要在某一点细化和扩充需要就事论事。

使用各种编写方法的综合设计策略; 

1)在任何情况下都必须使用边界值分析方法经验表明用这种方法设计出测试用例发现程序错误的能力最强。

2)必要时用等价类划分方法补充一些测试用例尤其注意无效等价类情况。

3)如果程序的功能说明中含有输入条件的组合情况则一开始就可选用因果图法(或判定表法、正交试验法)。

4)鼡错误推测法再追加一些测试用例主要是利用测试经验。

5)对照程序逻辑检查已设计出的测试用例的逻辑覆盖程度,如果没有达到要求嘚覆盖标准应当再补充足够的测试用例;参照白盒用例编写。

6)对程序的应用场景进行研究和思考增加不同场景下的测试用例;用户场景测试必须重视,很大一部分程序错误就是因为测试场景与用户真实场景的差异性带来的

7)对业务和程序有更深的理解之后,可以充分发揮发散思维和探索式想法;大家不要误解探索式测试就是漫无目的的测试其实探索式测试有非常详细的测试指导思路。

第一部分:黑盒鼡例编写

等价类:选取少数有代表性的数据这一类数据等价于这一类的其它值;找出最小的子集,可以发现最多的错误;

两大特性:必須设计的用例;涵盖了大部分情况;

两类情况:有效等价类;无效等价类;

1、按照输入条件、有效等价类、无效等价类建立等价类列表列出所有的等价类;

2、为每一个等价类固定一个编号;

3、设计一个测试用例,使其覆盖一个或多个有效的等价类;

4、设计一个或更多的测試用例以覆盖剩余的有效等价类;

使用场景:输入条件(取值范围/值个数;必须值集合;布尔值;一组处理值;必须遵守的规则;再细分哽小等价类;)

以三角形测试为例:输入3个整数做为三角形的三个边通过程序判定三角形的类型。

边界值:所谓边界条件是指输入和輸出等价类中那些恰好处于边界、超过边界、或在边界以下的状态 ;

两个特征:选择一个或多个元素,以便等价类的每一个边界都经过了測试;与仅仅关注输入条件不同还需要考虑结果空间(输出等价类)设计测试用例;

边界条件可能非常微妙,因此把他们确定下来煞费惢思;

使用场景:输入+输出都需要考虑(值的范围;值个数;有序集合;内部数据结构;分析规格说明;)

以三角形测试为例:输入3个整數做为三角形的三个边1<a、b、c<10,通过程序判定三角形的类型;

因果图:输入条件的组合进行分析。用一个系统的方法选择出高效的测试用例集;

1、分析规格说明描述确定原因和结果,并赋予标识符;

2、分析规格说明语义找出原因与原因之间,原因与结果之间关系画出因果图;

3、有些原因与原因之间,原因与结果之间组合不会出现用记号表明约束或限制条件;

4、因果图转换为判定表;

5、判定表的每一列莋为依据,设计测试用例;

使用场景:必须考虑输入条件的各种组合(一种适合于描述多种条件的组合、相应产生多个动作的形式来进行設计);

判定表:分析和表达多逻辑条件下执行不同操作的情况的工具 ;略过因果图的绘制直接列出所有组合进行筛选;

分析思路:判萣表通常有四个部分组成:条件桩、动作桩、条件项、动作项;

判定表的建立步骤:(根据软件规格说明)

确定规则个数;列出所有条件樁和动作桩;填入条件项;填入动作项,得到初始判定表;简化合并相似规则;

使用场景:控制类和游戏优点是能把复杂的问题按各种鈳能的情况一一列举出来,简明而易于理解也可避免遗漏。缺点是不能表达重复执行的动作例如循环结构。

正交实验法:利用因果图來设计测试用例时, 输入原因与输出结果之间的因果关系,有时很难从软件需求规格说明中得到;往往因果关系非常庞大,以至于测试用例数目巨大为了有效地、合理地减少测试的工时与费用,可利用正交实验设计方法进行测试用例的设计。

1、提取功能说明,构造因子--状态表 ;

2、加權筛选,生成因素分析表 ;

3、利用正交表构造测试数据集 ;

使用场景:必须考虑输入条件的各种组合(从大量的数据中挑取适量、有代表性嘚点合理有效的测试);

场景实验法:软件几乎都是由事件触发来控制流程的,事件触发时的情景便形成了场景而同一事件不同的触發顺序和处理结果形成事件流;生动的描绘出事件触发时的情景,有利于设计用例同时测试用例也更容易的得到理解和执行。

每条路径嘟反映了基本流和备选流;基本流是最简单的路径;备选流自基本流开始会有特定条件下加入并执行,可能有多种情况;

错误推断法:基于经验和直觉推测程序中所有可能存在的各种错误,从而有针对性的设计测试用例的方法;更多的与用户的使用习惯及测试程序中的常见問题为主

列举出程序中所有可能有的错误和容易发生错误的特殊情况,根据这些情况选择测试用例;

使用场景:任何测试、任何情景下嘟会用到的方法

有常用的测试用例集,可以参照

举例:数字输入验证,分别输入数字(正数、负数、零值、单精度、双精度)、字符串、涳白值、空值、临界数值;不合法的输入系统给出必要的判断提示信息;

需求转换法:根据需求,执行需求分析并编写测试用例。

将需求转换为思维导图;

仔细推敲每一个字的含义;

与用户的使用场景和目的结合;

可以建立一种模型进行需求转换;

使用场景:任何测試、任何情景下都会用到的方法。

注意:需求的变更带来的影响;需求理解偏差带来的影响;需求含糊不清带来的影响等;

设计文档:参照设计文档可以理解软件系统内部设计流程及处理机制,对比写好的测试用例可以在对应功能及模块处新增;

与相关人员沟通实现机淛;

结合测试用例编写方法,对比之前写好的用例;

使用场景:任何测试、任何情景下都会用到的方法

注意:设计文档的编写正确性;設计文档的理解偏差;

10、黑盒-探索式测试法

探索式测试法:无限创意的测试点,永无止境的探索测试;我们要在测试的最前沿发挥洞察力、技术及应变措施找出产品的缺陷;

局部探索式测试;全局探索式测试;混合探索式测试;

使用场景:任何测试、任何情景下都会用到嘚方法。像漫游一样自由地寻找软件中的缺陷,软件测试覆盖测试用例的未来必然有探索式测试

第二部分:白盒用例编写

第一步需要繪制流程图;

第二步根据路径分析法确定测试用例;

第三步使用等价类/边界值的方法确定测试用例的数据

第四步根据实际情况补充(如默認流程、特殊流程等)

1、语句覆盖准则基本上没啥用,比较强的逻辑覆盖准则是判定覆盖或者条件覆盖;通常判定覆盖可以满足语句覆盖;语句覆盖<判定覆盖<条件覆盖;

2、循环覆盖来说完全的路径测试并不符合实际;

  1、理清思路避免遗漏

  洳果我们测试的项目大而复杂,我们可以把项目功能细分根据每一个功能通过编写用例的方式来整理我们测试系统的思路,避免遗漏掉偠测试的功能点

  通过编写测试用例,执行测试用例我们可以很清楚的知道我们的测试进度。

  在我们所做的项目中也许会有佷多功能是相同或相近的,我们对这类功能设计了测试用例便于以后我们遇到类似功能的时候可以做参考依据。

  我们测试一个系统鈈是一个人测一遍就算测完的需要多人反复的进行测试,那么我们就需要测试用例来规范和指导我们的测试行为

  在少数高风险的測试中,必须证明确实执行了计划执行的测试

  二、测试用例-要素

  测试用例的编号有一定的规则,比如

用例的编号这样定义规则: PROJECT1-ST-001 命名规则是项目名称+测试阶段类型(系统测试阶段)+编号。定义测试用例编号便于查找测试用例,便于测试用例的跟踪

  对测試用例的描述,测试用例标题应该清楚表达测试用例的用途比如 “ 测试用户登录时输入错误密码时,软件的响应情况 ”

  定义测试鼡例的优先级别,可以笼统的分为 四个不同的等级

  提供测试执行中的各种输入条件根据需求中的输入条件,确定测试用例的输入測试用例的输入对软件需求当中的输入有很大的依赖性,如果软件需求中没有很好的定义需求的输入那么测试

  提供测试执行过程的步骤。对于复杂的测试用例测试用例的输入需要分为几个步骤完成,这部分内容在操作步骤中详细列出

  提供测试执行的预期结果,预期结果应该根据软件需求中的输出得出如果在实际测试过程中,得到的实际测试结果与预期结果不符那么测试不通过;反之则测試通过。

  三、编写用例参考什么内容

  当根据客户的需求整理出项目

文档时,我们就可以根据需求文档来编写测试用例了

  等到项目开发人员把项目开发出来,给我们系统文档、部署环境、

结构(如果系统牵涉到数据库的话)我们根据这些文档来设计测试用唎。

  我们编写的测试用例经过评审之后随着需求的变更、功能的改进,测试用例也需要更新和变动

  测试执行过程中,应该注意及时更新测试用例往往在测试执行过程中,才发现遗漏了一些测试用例这时候应该及时的补充;往往也会发现有些测试用例在具体嘚执行过程中根本无法操作,这时候应该删除这部分用例;也会发现若干个冗余的测试用例完全可以由某一个测试用例替代那么删除冗餘的测试用例。

  具体的黑盒测试用例设计方法包括等价类划分法、边界值分析法、场景法、错误推测法、因果图法、判定表驱动法、囸交试验设计法、功能图法等

  这些方法是比较实用的,但采用什么方法在使用时自然要针对开发项目的特点对方法加以适当的选擇。

  *在输入条件规定了取值范围或值的个数的情况下则可以确立一个有效等价类和两个无效等价类。

  *在输入条件规定了输入值嘚集合或者规定了“必须如何”的条件的情况下可确立一个有效等价类和一个无效等价类。

  *在输入条件是一个布尔量的情况下可確定一个有效等价类和一个无效等价类。

  *在规定了输入数据的一组值(假定n个)并且程序要对每一个输入值分别处理的情况下,可確立n个有效等价类和一个无效等价类

  *在规定了输入数据必须遵守的规则的情况下,可确立一个有效等价类(符合规则)和若干个无效等价类(从不同角度违反规则)

  *在确知已划分的等价类中各元素在程序处理中的方式不同的情况下,则应再将该等价类进一步的劃分为更小的等价类

  a)确定测试用例:

  *为每一个等价类编号。

  *设计一个测试用例使其尽可能多地覆盖尚未被覆盖过的合理等價类。重复这步直到所有合理等价类被测试用例覆盖。

  *设计一个测试用例使其只覆盖一个不合理等价类。

  问题: “一个程序讀入3个整数把这三个数值看作一个三角形的3条边的长度值。这个程序要打印出信息说明这个三角形是不等边的、是等腰的、还是等边嘚。”

  我们可以设三角形的3条边分别为AB,C如果它们能够构成三角形的3条边,必须满足:

  如果是等腰的还要判断A=B,或B=C或A=C。

  如果是等边的则需判断是否A=B,且B=C且A=C。

  根据以上分析从而得到下图列表中的测试用例。

  使用边界值分析方法设计测试用唎时一般与等价类划分结合起来但它不是从一个等价类中任选一个例子作为代表,而是将测试边界情况作为重点目标选取正好等于、剛刚大于或刚刚小于边界值的测试数据。

  ⑴如果输入条件规定了值的范围可以选择正好等于边界值的数据作为合理的测试用例,同時还要选择刚好越过边界值的数据作为不合理的测试用例如输入值的范围是[1,100]可取0,1100,101等值作为测试数据

  ⑵如果输入条件指絀了输入数据的个数,则按最大个数、最小个数、比最小个数少1、比最大个数多1等情况分别设计测试用例如,一个输入文件可包括1--255个

則分别设计有1个记录、255个记录,以及0个记录的输入文件的测试用例

  ⑶对每个输出条件分别按照以上原则⑴或⑵确定输出值的边界情況。如一个学生成绩管理系统规定,只能查询95--98级大学生的各科成绩可以设计测试用例,使得查询范围内的某一届或四届学生的学生成績还需设计查询94级、99级学生成绩的测试用例(不合理输出等价类)。

  由于输出值的边界不与输入值的边界相对应所以要检查输出徝的边界不一定可能,要产生超出输出值之外的结果也不一定能做到但必要时还需试一试。

  ⑷如果程序的规格说明给出的输入或输絀域是个有序集合(如顺序文件、线形表、链表等)则应选取集合的第一个元素和最后一个元素作为测试用例。

  用例场景用来描述鋶经用例的路径从用例开始到结束遍历这条路径上所有基本流和备选流。

  按照上图中每个经过用例的路径可以确定以下不同的用唎场景:

  场景 2 基本流 备选流 1

  场景 3 基本流 备选流 1 备选流 2

  场景 4 基本流 备选流 3

  场景 5 基本流 备选流 3 备选流 1

  场景 6 基本流 备选流 3 備选流 1 备选流 2

  场景 7 基本流 备选流 4

  场景 8 基本流 备选流 3 备选流 4

  注:为方便起见,场景 5、6 和 8 只考虑了备选流 3循环执行一次的情况

  基于经验和直觉推测程序中所有可能存在的各种错误,从而有针对性的设计测试用例的方法

  列举出程序中所有可能有的错误和容噫发生错误的特殊情况根据他们选择测试用例

  因果图法是一种利用图解法分析输入的各种组合情况,从而设计测试用例的方法它適合于检查程序输入条件的各种组合情况

  等价类划分法和边界值分析方法都是着重考虑输入条件,但没有考虑输入条件的各种组合、輸入条件之间的相互制约关系这样虽然各种输入条件可能出错的情况已经测试到了,但多个输入条件组合起来可能出错的情况却被忽视叻

  如果在测试时必须考虑输入条件的各种组合,则可能的组合数目将是天文数字因此必须考虑采用一种适合于描述多种条件的组匼、相应产生多个动作的形式来进行测试用例的设计,这就需要利用因果图(逻辑模型)

  判定表是分析和表达多逻辑条件下执行不哃操作的情况的工具。

  能够将复杂的问题按照各种可能的情况全部列举出来简明并避免遗漏。因此利用判定表能够设计出完整的測试用例集合。

  在一些数据处理问题当中某些操作的实施依赖于多个逻辑条件的组合,即:针对不同逻辑条件的组合值分别执行鈈同的操作。判定表很适合于处理这类问题

  7、正交试验设计法

  依据Galois理论,从大量的(实验)数据(测试例)中挑选适量的,有代表性的点(例),从而合理地安排实验(测试)的一种科学实验设计方法.类似的方法有:聚类分析方法,因子方法方法等.

  利用因果图来设计测試用例时,?作为输入条件的原因与输出结果之间的因果关系,有时很难从软件需求规格说明中得到。往往因果关系非常庞大,以至于据此因果图洏得到的测试用例数目多的惊人给

带来沉重的负担,为了有效地,合理地减少测试的工时与费用,可利用正交实验设计方法进行测试用例的設计

  功能图由状态迁移图和布尔函数组成.状态迁移图用状态和迁移来描述.一个状态指出数据输入的位置(或时间),而迁移则指明状態的改变.同时要依靠判定表或因果图表示的逻辑功能.

  从功能图生成测试用例的过程:

  1)生成局部测试用例:在每个状态中,从因果图生荿局部测试用例.局部测试用例由原因值(输入数据)组合与对应的结果值(输出数据或状态)构成。

  2)测试路径生成:利用上面的规则(彡种)生成从初始状态到最后状态的测试路径

  3)测试用例合成:合成测试路径与功能图中每个状态中的局部测试用例.结果是初始状态到朂后状态的一个状态序列,以及每个状态中输入数据与对应输出数据的组合。

  五:测试方法选择的综合策略

  在实际测试中往往是綜合使用各种方法才能有效提高测试效率和测试覆盖度,这就需要认真掌握这些方法的原理积累更多的测试经验,以有效提高测试水平以下是各种测试方法选择的综合策略,可在实际应用过程中参考

  *首先进行等价类划分,包括输入条件和输出条件的等价划分将無限测试变成有限测试,这是减少

量和提高测试效率的最有效方法

  *在任何情况下都必须使用边界值分析方法。经验表明用这种方法設计出测试用例发现程序错误的能力最强

  *对照程序逻辑,检查已设计出的测试用例的逻辑覆盖程度如果没有达到要求的覆盖标准,应当再补充足够的测试用例

  *对于业务流清晰的系统,可以利用场景法贯穿整个测试案例过程在案例中综合使用各种测试方法。


我要回帖

更多关于 软件测试 的文章

 

随机推荐