对于多个输入的被测试模块,可以通过正交排列和正交表选取具有代表性的测试用例。模块代码如下:
int mySum(int a, int b, int c) {
int aa, bb, cc
if (a < 0) {
aa = 0
} else {
aa = 1
}
if (b < 10) {
bb = 0
} else {
bb = 1
}
if (c < 100) {
cc = 0
} else {
cc = 1
}
aa + bb + cc
}
我们先给每个输入参数划分等价类如下:
a: (-∞, 0)、[0, +∞)
b: (-∞, 10)、[10, +∞)
c: (-∞, 100)、[100, +∞)
说明每个参数至少需要选两种值,但是怎样的参数组合才能经济又实惠 呢?
如果将三个输入参数的进行全排列,一共需要222=8个测试用例。这叫做全面测试,这样的话,测试用例太多,所以需要选取最具代表性的组合才行,可以用正交排列和正交表选取。正交表原理如下:
单元测试中测试用例的设计示例插图
所以对于上面代码,最终选取的测试用例集合为:
- (-1, -1, -1)
- (-1, 11, 111)
- ( 1, -1, 111)
- ( 1, 11, -1)
项目中测试用例的设计
在实际项目中,等价类的划分,可以是具有某同一属性的对象。
例如,某个程序模块是根据用户的类型计算商品邮费,需要输入用户对象:因此我们可以将用户按照类型分为这几个等价类:普通用户、vip用户、访客用户。再分别从这三个等价类中选取一个测试用例即可。
多个输入因素影响的功能模块,可以根据正交排列选取测试用例的组合进行测试。
最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:
这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!有需要的小伙伴可以点击下方小卡片领取