软件测试基础--测试策略和方法

 
  

黑盒测试又称为功能测试或数据驱动测试,是把测试对象看做一个黑盒子。利用黑盒测试进行动态测试时,需要测试软件产品的功能,不需要测试软件产品的内部结构和处理过程。 采用黑盒测试的测试用例设计方法有:等价类划分法、边界值分析法、判定表分析法、正交实验法、状态图分析法、场景分析法

等价类划分法

一种最为典型的黑盒测试方法,把程序的输入划分为若干个部分,从每个部分中选取少量代表性数据作为测试用例,每一类代表性数据在测试中的作用等价于这一类中的其他值。 划分等价类:等价类是指某个输入域的子集合。在该子集合中,各个输入数据对于揭露程序中的错误都是等效的。并合理地假定:测试某等价类的代表值就等于对这一类其它值的测试。等价类划分有两种不同情况:有效等价类和无效等价类。 有效等价类:指对于程序的规格说明来说是合理的,有意义的输入数据构成的集合。利用有效等价类可检验程序是否实现了规格说明中所有规定的功能和性能。 无效等价类:与有效等价类的定义相反。 设计测试用例:在确立了等价类后,可建立等价类表,列出所有划分出的等价类:输入条件  有效等价类   无效等价类 

然后从划分出的等价类中按以下原则设计测试用例 1、为每一个等价类规定一个唯一的编号 2、设计一个新的测试用例,使它能够尽量覆盖尚未覆盖的有效等价类,重复该操作,从而使所有有效等价类均被覆盖 2、设计一个新的测试用例,使它能够覆盖一个无效等价类,重复该操作,从而使所有无效等价类均被覆盖 确定等价类的原则 1、在输入条件规定了取值范围货值的个数的情况下,可以确立一个有效等价类,两个无效等价类。如:录入学生成绩,范围是0-100 2、在输入条件规定了输入值的集合或者规定了“必须如何”的条件下,可以确立一个有效等价类,一个无效等价类。如:录入选修课程,最多选修3门课 3、在输入条件是一个布尔量的情况下,可以确定一个有效等价类、一个无效等价类。如:录入性别 4、在规定了输入数据的一组值(假定n个),并且程序要求对每一个输入值分别处理的情况下,可以确立n个有效等价类和一个无效等价类。如:录入学历,可为:大专、本科、硕士、博士 5、在规定了输入数据必须遵守的规则的情况下,可以确定一个有效等价类,若干个无效等价类 6、在确知已划分的等价类中各元素在程序处理中的方式不同的情况下,则应再将该等价类进一步的划分为更小的等价类。

边界值分析法

边界值分析法是对等价划分方法的补充。错误隐藏在角落里,问题聚焦在边界上 边界值分析方法的考虑 ·应当选取正好等于、刚刚大于或刚刚小于边界的值作为测试数据 ·重点测试最后一个肯定合法的数据和刚刚超过边界的非法数据 ·通常和等价类划分一起使用,产生一套完整的测试用例 边界值分析法原则 1、如果输入条件对取值范围进行了界定,则应以边界内部以及恰巧超出边界外的值来作为测试用例。如:输入范围是0-50 2、如果对取值的个数进行了界定,则应当分别以最大个数、最小个数、比最大个数大1或小1,比最小个数大1或小1作为测试用例。如:课程名称最多输入12个字符 3、对于输出条件,同样可以应用前2条提到的两条原则来进行测试用例设计。如:课程列表每页展示10条记录

错误推测法

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

错误推测方法的基本思想:列举出程序中所有可能有的错误和容易发生错误的特殊情况,根据他们选择测试用例。例如,在单元测试时曾列出的许多在模块中常见的错误。以前产品测试中曾经发现的错误等,这些就是经验的总结。还有,输入数据和输出数据为0的情况。输入表格为空格或输入表格只有一行。这些都是容易发生错误的情况。可以选择这些情况下的例子作为测试用例。

因果图方法

等价类划分法和边界值分析法都是着重考虑输入条件,但未考虑输入条件之间的联系,相互组合等。考虑输入条件之间的相互组合,可能会产生一些新的情况。但要检查输入条件的组合也相当多。因此必须考虑采用一种适合于描述对于多种条件的组合,相应产生多个动作的形式考虑设计测试用例。这就需要利用因果图(逻辑模型)。 因果图方法最终生成的就是判定表。它适合于检查程序输入条件的各种组合情况。 利用因果图生成测试用例的基本步骤: (1)分析软件规格说明描述中,那些是原因(即输入条件或输入条件的等价类),那些是结果(即输出条件),并给每个原因和结果赋予一个标识符。 (2)分析软件规格说明描述中的语义。找出原因与结果之间,原因与原因之间对应的关系。根据这些关系,画出因果图。 (3)由于语法或环境限制,有些原因与原因之间,原因与结果之间的组合情况不可能出现。为表明这些特殊情况,在因果图上用一些记号表明约束或限制条件。 (4)把因果图转换为判定表。 (5)把判定表的每一列拿出来作为依据,设计测试用例。 从因果图生成的测试用例(局部,组合关系下的)包括了所有输入数据的取true与取false的情况,构成的测试用例数目达到最少,且测试用例数目随输入数据数目的增加而线性地增加。 判定表是分析和表达多逻辑条件下执行不同操作的情况下的工具。在程序设计发展的初期,判定表就已被当作编写程序的辅助工具了。由于它可以把复杂的逻辑关系和多种条件组合的情况表达得既具体又明确。 判定表通常由四部分组成: 1、条件桩:列出了问题的所有条件。通常认为列出的条件的次序无关紧要。 2、动作桩:列出了问题规定可能采取的操作。这些操作的排列顺序没有约束。 3、条件项:列出针对它左列条件的取值。在所有可能情况下的真假值。 4、动作项:列出在条件项的各种取值情况下应该采取的动作。 规则:任何一个条件组合的特定取值及其相应要执行的操作。在判定表中贯穿条件项和动作项的一列就是一条规则。显然,在判定表中列出多少组条件取值,也就有多少条规则,即条件项和动作项有多少列。 判定表的建立步骤:(根据软件规格说明)   1、确定规则的个数。假如有n个条件。每个条件有两个取值(0,1),故有种规则。 2、列出所有的条件桩和动作桩 3、填入条件项 4、填入动作项。等到初始判定表 5、简化、合并相似规则(相同动作) 适合使用判定表设计测试用例的条件: 1、规格说明以判定表形式给出,或很容易转换成判定表。 2、条件的排列顺序不会也不影响执行那些操作 3、规则的排列顺序不会也不影响执行那些操作 4、每当某一规则的条件已经满足,并确定要执行的操作后,不必检验别的规则 5、如果某一规则得到满足要执行多个操作,这些操作的执行顺序无关紧要。

你可能感兴趣的:(软件测试)