您的当前位置:首页正文

软件测试测试策略及用例

2021-01-11 来源:易榕旅网
测试策略

1.单元测试策略

单元测试是对软件基本组成单元进行测试,这里的基本单元不一定是指一个具体的函数(Function或Procedure)或一个类的方法,“单元”具有一些基本属性,如:明确的功能、规格定义,明确的接口定义,可清晰地与同一程序的其它单元划分开来。 1. 集成测试策略

集成测试策略就是在测试对象分析的基础上,描述软件模块集成(组装)的方式、方法。集成测试的基本策略比较多,分类比较杂,一般来说,可以按测试过程中组合模块的方式,分为增式、非增式和衍变式集成等策略。

3. 验证和确认测试(Verfication and Validation)

在广义上,软件测试是验证和确认VERFICATION AND VALIDATION (V﹠V〕。验证指保证软件正确地实现了一特定功能的一系列活动。确认是指保证所生产的软件可追溯到用户需求的一系列活动。

4. 功能测试(Function Test) 5. 恢复测试 6. 安全测试 7. 压力测试 8. 兼容性测试 9. 协议测试 10.可安装性测试

11.性能测试(Performance Test)和负荷测试(Load Test)策略 12. 负载测试

13. 数据库容量测试

数据库容量测试指通过存储过程往数据库表中插入一定数量的数据,看看相关页面是否能够及时显示数据。

数据库容量测试使测试对象处理大量的数据,以确定是否达到了将使软件发生故障的极限 14. 安全性和访问控制测试

安全性和访问控制测试侧重于安全性的两个关键方面: 应用程序级别的安全性,包括对数据或业务功能的访问 系统级别的安全性,包括对系统的登录或远程访问。 15. 安装测试

黑盒测试

基本概念

黑盒测试(Black-box Testing,又称为功能测试或数据驱动测试)是把测试对象看作一个黑盒子。利用黑盒测试法进行动态测试时,需要测试软件产品的功能,不需测试软件产品的内部结构和处理过程。

采用黑盒技术设计测试用例的方法有:等价类划分、边界值分析、错误推测、因果图和综合策略 适用范围

黑盒测试注重于测试软件的功能性需求,也即黑盒测试使软件工程师派生出执行程序所有功能需求的输入条件。黑盒测试并不是白盒测试的替代品,而是用于辅助白盒测试发现其他类型的错误。

黑盒测试试图发现以下类型的错误: 1)功能错误或遗漏; 2)界面错误;

3)数据结构或外部数据库访问错误; 4)性能错误;

5)初始化和终止错误。 黑盒测试的测试用例设计方法 · 等价类划分方法 · 边界值分析方法 · 错误推测方法 · 因果图方法 · 判定表驱动分析方法 · 正交实验设计方法 · 功能图分析方法 等价类划分:

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

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

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

设计测试用例时,要同时考虑这两种等价类。因为,软件不仅要能接收合理的数据,也要能经受意外的考验。这样的测试才能确保软件具有更高的可靠性。 2)划分等价类的方法:下面给出六条确定等价类的原则。

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

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

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

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

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

3)设计测试用例:在确立了等价类后,可建立等价类表,列出所有划分出的等价类: 输入条件 有效等价类 无效等价类

然后从划分出的等价类中按以下三个原则设计测试用例: ① 为每一个等价类规定一个唯一的编号。

② 设计一个新的测试用例,使其尽可能多地覆盖尚未被覆盖地有效等价类,重复这一步。直到所有的有效等价类都被覆盖为止。

③ 设计一个新的测试用例,使其仅覆盖一个尚未被覆盖的无效等价类,重复这一步。直到所有的无效等价类都被覆盖为止。 实例:

在多数情况下,是从输入域划分等价类的,但并非不能从被测程序的输出域反过来定义等价类,事实上,这对于三角形问题却是最简单的划分方法。 在三角形问题中,有四种可能的输出:等边三角形、等腰三角形、一般三角形和非三角形。利用这些信息能够确定下列输出(值域)等价类。

R1 = { : 边为a,b,c的等边三角形 } R2 = { : 边为a,b,c的等腰三角形 } R3 = { : 边为a,b,c的一般三角形 } R4 = { : 边为a,b,c不能组成三角形 } 测试用例 Test1 Test2 Test3 Test4 测试用例 Test1 Test2 Test3 Test4 Test5 Test6 Test7

边界值分析法

边界值分析方法是对等价类划分方法的补充。 (1)边界值分析方法的考虑: 长期的测试工作经验告诉我们,大量的错误是发生在输入或输出范围的边界上,而不是

a 5 -1 5 5 101 5 5 b 6 5 -1 5 5 101 5 c 7 5 5 -1 5 5 101 预期输出 一般三角形 a值超出输入值定义域 b值超出输入值定义域 c值超出输入值定义域 a值超出输入值定义域 b值超出输入值定义域 c值超出输入值定义域 a 10 10 3 4 b 10 10 4 1 c 10 5 5 2 预期输出 等边三角形 等腰三角形 一般三角形 非三角形 发生在输入输出范围的内部。因此针对各种边界情况设计测试用例,可以查出更多的错误。 使用边界值分析方法设计测试用例,首先应确定边界情况。通常输入和输出等价类的边界,就是应着重测试的边界情况。应当选取正好等于,刚刚大于或刚刚小于边界的值作为测试数据,而不是选取等价类中的典型值或任意值作为测试数据。 (2)基于边界值分析方法选择测试用例的原则:

1)如果输入条件规定了值的范围,则应取刚达到这个范围的边界的值,以及刚刚超越这个范围边界的值作为测试输入数据。

2)如果输入条件规定了值的个数,则用最大个数,最小个数,比最小个数少一,比最大个数多一的数作为测试数据。

3)根据规格说明的每个输出条件,使用前面的原则1)。 4)根据规格说明的每个输出条件,应用前面的原则2)。

5)如果程序的规格说明给出的输入域或输出域是有序集合,则应选取集合的第一个元素和最后一个元素作为测试用例。

6)如果程序中使用了一个内部数据结构,则应当选择这个内部数据结构的边界上的值作为测试用例。

7)分析规格说明,找出其它可能的边界条件。 错误推测法 错误推测法: 基于经验和直觉推测程序中所有可能存在的各种错误, 从而有针对性的设计测试用例的方法。

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

前面介绍的等价类划分方法和边界值分析方法,都是着重考虑输入条件,但未考虑输入条件之间的联系, 相互组合等。考虑输入条件之间的相互组合,可能会产生一些新的情况。 但要检查输入条件的组合不是一件容易的事情,即使把所有输入条件划分成等价类,他们之间的组合情况也相当多。因此必须考虑采用一种适合于描述对于多种条件的组合,相应产生多个动作的形式来考虑设计测试用例。 这就需要利用因果图(逻辑模型)。

因果图方法最终生成的就是判定表。 它适合于检查程序输入条件的各种组合情况。 利用因果图生成测试用例的基本步骤:

(1) 分析软件规格说明描述中, 那些是原因(即输入条件或输入条件的等价类),那些是结果(即输出条件), 并给每个原因和结果赋予一个标识符。

(2) 分析软件规格说明描述中的语义。找出原因与结果之间, 原因与原因之间对应的关系。 根据这些关系,画出因果图。

(3) 由于语法或环境限制, 有些原因与原因之间,原因与结果之间的组合情况不不可能出现。 为表明这些特殊情况, 在因果图上用一些记号表明约束或限制条件。 (4) 把因果图转换为判定表。

(5) 把判定表的每一列拿出来作为依据,设计测试用例。

从因果图生成的测试用例(局部,组合关系下的)包括了所有输入数据的取TRUE与取FALSE的情况,构成的测试用例数目达到最少,且测试用例数目随输入数据数目的增加而线性地增加。

前面因果图方法中已经用到了判定表。判定表(DECision Table)是分析和表达多逻

辑条件下执行不同操作的情况下的工具。在程序设计发展的初期,判定表就已被当作编写程序的辅助工具了。由于它可以把复杂的逻辑关系和多种条件组合的情况表达得既具体又明确。

因篇幅问题不能全部显示,请点此查看更多更全内容