等价类划分
选择测试用例最主要的方法是等价类划分,有时也称为等价分类。等价划分是指分步骤把海量(无限)的测试用缩减得很小,但过程同样有效,即测试相同目标或暴露相同软件缺陷的一组测试用例。
注意:在寻找等价划分时,考虑把软件中具有相似输入、相似输出、相似操作的分在一组。
数据测试
软件可以简单的被划分为两个部分:数据(或其范围)和程序。
数据包括键盘输入、鼠标单击、磁盘文件、打印输出等。
程序指可执行的流程、转换、逻辑和运算。
当测试用例数量过大,此时可以根据一些关键的原则进行等价类划分,以合理减少测试用例,这些关键的原则是:边界条件、次边界条件、空值和无效数据。
边界条件
边界条件是指软件运行在计划操作界限的边界的情况。这在产品说明书有定义或在使用软件的过程中很明显。
如果软件测试问题包含确定的边界,可以参考一下数据类型:
数值 字符 位置 数量 速度 地点 尺寸
同时考虑这些类型的下述特征:
第一个/最后一个 开始/完成 空/满 最慢/最快 最大/最小 相邻/最远 最小值/最大值 超过/在内 最短/最长
最早/最迟 最高/最低
测试边界
由于软件容易在边界上产生缺陷,故等价划分以边界条件为基准会找出更多的软件缺陷,然而仅从边界线上测试往往是不够充分的。可以使用类似下述的方法测试。
如果建立两个等价划分就可以找出更多软件缺陷,第一个划分应该包含认为正确的数据——在边界内部最后一两个合法数据点,第二个划分包含认为可能出现错误的数据——边界之外——一两个非法的数据点。
次边界条件
对于测试边界在软件内部,用户看不到的,称为次边界条件或内部边界条件。如一个二进制数(bit)0或1,一个字节8个bit,一个字4个字节。
默认、空白、空值、零值和无
当用户无输入,软件内部没有设置默认值或默认值被用户删除可能造成的缺陷。
非法、错误、不正确和垃圾数据
经过边界测试、次边界测试和默认值测试等通过性能测试证实软件能够工作之后,进行最后一项测试——垃圾数据测试。这是失效性测试的对象。如软件只接收输入数字,却输入字母。
状态测试
除了测试数据,软件测试的另一方面是通过不同的状态验证程序的逻辑流程。软件状态是指软件当前所处的条件或模式。软件通过代码执行进入某个分支,触发一些数据位,设置某些变量,读取某些数据,转入一个新的状态。
测试软件的逻辑流程
(1)建立状态转移图