软件测试基础知识——测试用例设计方法

Posted ninijiang

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了软件测试基础知识——测试用例设计方法相关的知识,希望对你有一定的参考价值。

软件测试的分类:

1、按软件功能测试分类:基于规格说明的测试(传统黑盒测试、基于规格说明测试)、基于控制流的测试(白盒测试)

传统黑盒测试:边界值、等价类、决策表、因果图

白盒测试:语句覆盖、判断覆盖、条件覆盖、MC/DC覆盖、基本路径覆盖。

基于规格说明测试:状态机、UML、Petri网、Z规约

其他测试:冒烟测试、随机测试、错误猜测测试、故障树测试、基于蜕变的测试

2、根据测试阶段分类:

单元测试:对软件中最小的可测单元进行验证,可以是一个函数、一个类、一个类的方法。

集成测试:将单元模块组装成系统或子系统,确保各模块集成在一起后能够符合设计要求。(1)验证接口是否与设计相符 (2)发现设计和需求中存在的错误

系统测试:将整个软件系统整体进行测试,在系统集成完毕后进行测试,前期主要测试功能是否满足需求,后期主要测试系统性能是否满足需求,以及系统在不同的软硬件环境中的兼容性。

验收测试:主要是用户代表进行,根据务需求分析,验证是否满足需求。验收测试中应该使用真实数据。

α测试:由用户在开发环境下进行测试。

β测试:由用户在实际环境下进行测试。

用例设计方法:

1、等价类

测试过程中很难使用穷举法覆盖所有测试可能,因此,等价类测试过程中只取一组代表数据作为测试输入。

等价类的划分原则:

(1)如果输入条件规定了取值范围、取值个数,则可以确定一个或者多个有效等价类或无效等价类。

(2)如果输入条件规定了输入值的集合或者必须,一定的条件,则可以确定一个有效等价类和一个无效等价类

(3)如果输入条件规定了一组限定值,同时需要对输入值做处理,则可以为所有的值确定一个有效等价类和一个无效等价类

(4)如果输入条件规定了必须要遵守的规则,则可以确定一个有效等价类和若干个无效等价类

(5)如果已知等价类中不同元素在程序中的处理方式不一样,那么将该等价类进一步划分为更小的等价类

2、边界值

常见的边界包括语言相关的边界和业务相关的边界

语言相关的边界:当定义不同类型的数据时,其取值范围是不一样的,如果定义变量时,没有充分考虑所使用数据的范围,那么就可能出现错误。

业务相关的边界:由业务特性决定的,在边界数据值上没有做合适的处理就会导致错误。

边界值分析原则:

(1)如果输入值确定且连续,则测试数据可以取最小值、略大于最小值、正常值、略小于最大值、最大值.

(2)如果输入值确定且离散,则测试数据可以取该离散范围内最小值、略大于最小值、正常值、略小于最大值、最大值.

(3)如果输入值有特殊的结构,则可根据其特殊行设计用例

(4)如果输入值是有序集合,则应该取集合的第一个以及最后一个元素作为测试用例

(5)分析规则说明,找出其他可能的边界值。

3、决策表:

适合描述在不同逻辑条件取值组合的情况需要执行的动作。

适合使用决策表设计测试用例的条件:

(1)规格说明书以决策表的形式给出或容易转换为决策表。

(2)输入条件的排列顺序不影响操作执行。

(3)规则的排列顺序不影响操作执行

(4)当某一规则的条件以满足,同时确定需要执行的操作时,无需校验其他规则。

(5)如果某一规则需要执行多个操作,这些操作的顺序不会造成影响。

决策表建立:

(1)确定规则数目:如果有n个条件,每个条件取值为(0,1),则有2^n种规则。

(2)列出所有的条件桩和动作桩(相当于输入项和输出结果)

(3)输入条件项(输入项)

(4)输入动作项(输出结果),制作初始决策表(所有输入输出的情况)

(5)简化、合并相似或相同项

4、因果图

原因和原因之间,原因和结果之间都存在一定的关联。原因指的就是输入条件(或等价类),结果指的是输出条件。

常见的关联有四种:恒等、非、与(多个条件)、或(多个条件)

原因和原因、原因和结果、结果和结果之间的关联:互斥、包含、唯一、要求、屏蔽、强制

利用因果图设计测试用例:

(1)找出规则说明书中的原因和结果(输入输出)

(2)分析软件原因结果之间的关联,并转化为因果图

(3)原因和原因、原因和结果、结果和结果之间的关联,在因果图中用对应符合标识

(4)分析因果图中的条件关系,将其转化为判定表

(5)根据判断表中的每一列数据设计一个测试用例。

以上是关于软件测试基础知识——测试用例设计方法的主要内容,如果未能解决你的问题,请参考以下文章

软件测试基础知识——测试用例设计方法

测试用例设计方法

测试用例设计方法

优秀测试用例的设计策略

测试方法和测试用例设计

接口测试测试的原则用例设计流程等基础知识