说起边界值测试,大家应该都是如数家珍了。作为一种常用的黑盒测试方法,他通常会和等价类划分一起配合,帮助测试人员有效地进行测试用例设计。而编写边界值测试用例的基本步骤通常可以分为如下两点。
1. 根据设计文档或输入输出框提示信息确定边界值
2. 选取等于、略大于、略小于边界的值作为测试数据
边界值测试分类
按照是否有效以及变量个数,边界值可以严格的分为如下四种。
| 单变量假设 | 多变量假设 |
有效值 | 一般边界值 | 一般最坏边界值 |
无效值 | 健壮边界值 | 健壮最坏边界值 |
一般边界值
即仅考虑有效区间单个变量的边界值:用最小值、略高于最小值、正常值、略低于最大值和最大值。设被测变量个数为n,则测试用例个数为4n+1。函数y=f(x1, x2)输入变量的取值范围分别为: x1∈[a, b],x2∈[c, d]
一般最坏边界值
即仅考虑有效区间多个变量边界值同时作用时的边界值:用各个变量最小值、略高于最小值、正常值、略低于最大值和最大值的笛卡尔积。设变量个数为n,则测试用例个数为5n 函数 y=f(x1,x2)输入变量的取值范围分别为: x1∈[a, b],x2∈[c, d]
健壮边界值
即考虑单个变量有效值和无效值的边界值情况:除了最小值、略高于最小值、正常值、略低于最大值、最大值,还要有略超过最大值和略小于最小值的值。设变量数为n,则测试用例数为6n+1。函数y=f(x1, x2)输入变量的取值范围分别为: x1∈[a, b],x2∈[c, d]
健壮最坏边界值
即同时考虑多个变量有效区和无效区同时作用的情况:用各个变量最小值、略高于最小值、正常值、略低于最大值、最大值、略大于最大值和略小于最小值的笛卡尔积。设被测变量个数为n,则测试用例个数为7n函数y=f(x1, x2)输入变量的取值范围分别为:x1∈[a, b],x2∈[c, d]
理论阐述完毕,然而问题来了,这些理论都是为功能服务的,与国际化有什么关系呢?嗯,看看下面这则场景吧,让我们一起理论联系实际,设想一下如果面对这样standalone的case,如何使用上述理论来进行国际化测试用例设计吧。
(5秒钟后……)
1. 使用length 47的super string
2. 使用length=47的super string
3. 使用length<47的super string
4. 使用length>47的native string
5. 使用length=47的native string
6. 使用length<47的native string
7. 使用空string
8. 使用默认string
非常感谢大家让我瞬间就收集到了这些test case,看来大家对边界值理论早已谙熟于胸啦!不过在笔者看来,这个scenario我们没必要进行国际化测试,因为这是一个纯功能验证点!
“……不对啊,我们用中文输入只能输入16个字符就报错,但用法文输入16个就没报错,这分明是i18n bug嘛”有人反驳道。
这里需要提醒各位的是,本案中boundary设定的是47 byte,不是char哦。
“那么按照你的理解,边界值测试跟国际化无关喽?”有人继续追问。
不!为了详细说明该问题,这里需要进行细分,大抵可以分为如下两种情况。
1. 单个component中的边界值,即单变量情况
2. 多个需要通信的component中的边界值,即多变量情况
这下大家是否都了然了呢?