> ## 等价作为功能性测试的基础
- 进行完备的测试
- 避免冗余
----------
>> 1. 等价类:构成集合的划分,划分指互不相交的一组子集,这些子集的并是整个集合。**思想:通过每个等价类中的一个元素标识测试用例**
*备注:广泛选择等价类,可以大大降低测试之间的冗余*
>> - **for example:**一个等边三角形(6,6,6)与(12,12,12)等价,所以(12,12,12)测试用例是冗余的,即是重复的。等价(具有相同的特征)
----------
>> - 等价类测试的关键:就是确定类的等价关系
>> - for example:两个变量x1,x2和函数F联系起来。这里定义为F()=x1+x2
>> - 则变量x1,x2区间为:a<=x1<=d [a,b),[b,c),[c,d)
>> - e<=x2<=g [e,f),[f,g]
>> - x1无效值:x1<a,x1>d
>> - x2无效值:x2<e,x2>g
---
> 2. 弱一般等价类测试:通过使用一个测试用例中的每个等价类(区间)的**一个变量**实现。上述F()=x1+x2就是一个弱一般等价类测试,使用x1或x2来实现等价类测试.
>> - 则变量x1,x2区间为:a<=x1<=d [a,b),[b,c),[c,d)
>> - e<=x2<=g [e,f),[f,g]
>> - x1无效值:x1<a,x1>d
>> - x2无效值:x2<e,x2>g
>> - 测试用例取值: 1.a<x1<b e<x2<f
>> - 2.b<x1<c f<x2<g
>> - 3.c<x1<d e<x2<f
>> - 等价关系说明:e<x2<f与 f<x2<g属于等价类区间关系
---
> 3. 强一般等价类测试:**多缺陷假设**,等价类笛卡儿积的每个元素对应的测试用例。
>> - 覆盖所有的等价类
>> - 有可能的输入组合中的一个
>> - for example:两个变量x1,x2和函数F联系起来。这里定义为F()=x1+x2
>> - 则变量x1,x2区间为:a<=x1<=d [a,b),[b,c),[c,d)
>> - e<=x2<=g [e,f),[f,g]
>> - x1无效值:x1<a,x1>d
>> - x2无效值:x2<e,x2>g
>> - 测试用例取值:
>>> - 1.a<x1<b e<x2<f
>>> - 2.a<x1<b f<x2<g
>>> - 3.b<x1<c f<x2<g
>>> - 4.b<x1<c e<x2<f
>>> - 5.c<x1<d e<x2<f
>>> - 6.c<x1<d f<x2<g
> 4. 弱健壮等价类测试:健壮是考虑了无效值,而弱则是假设单缺陷。(传统等价类测试)
>> - **for example:**两个变量x1,x2和函数F联系起来。这里定义为F()=x1+x2
>> -则变量x1,x2区间为:a<=x1<=d [a,b),[b,c),[c,d)
>> - e<=x2<=g [e,f),[f,g]
>> - x1无效值:x1<a,x1>d
>> - x2无效值:x2<e,x2>g
>> - 测试用例取值:
>>> - 1.x1<a e<x2<f
>>> -2.a<x1<b f<x2<g
>>> -3.b<x1<c f<x2<g
>>> - 4.c<x1<d e<x2<f
>>> -5.c<x1<d x2<e
>>> -6.c<x1<d x2>e
----------
- 对于有效输入,使用每个有效类的一个值。
- 对于无效输入,测试用例将拥有一个无效值,并保持其余的值都是有效的。(“单缺陷”或造成测试用例失败)
----------
5.强健壮等价类测试(多缺陷假设,考虑无效值。缺点:有点冗余度)
**for example:**两个变量x1,x2和函数F联系起来。这里定义为F()=x1+x2
则变量x1,x2区间为:a<=x1<=d [a,b),[b,c),[c,d)
e<=x2<=g [e,f),[f,g]
x1无效值:x1<a,x1>d
x2无效值:x2<e,x2>g
测试用例取值:
1.x1<a x2<e
2.a<x1<b x2<e
3.x1<a e<x2<f
4.x1<a f<x2<g
5.x1<a x2>g
依此类推
- 进行完备的测试
- 避免冗余
----------
>> 1. 等价类:构成集合的划分,划分指互不相交的一组子集,这些子集的并是整个集合。**思想:通过每个等价类中的一个元素标识测试用例**
*备注:广泛选择等价类,可以大大降低测试之间的冗余*
>> - **for example:**一个等边三角形(6,6,6)与(12,12,12)等价,所以(12,12,12)测试用例是冗余的,即是重复的。等价(具有相同的特征)
----------
>> - 等价类测试的关键:就是确定类的等价关系
>> - for example:两个变量x1,x2和函数F联系起来。这里定义为F()=x1+x2
>> - 则变量x1,x2区间为:a<=x1<=d [a,b),[b,c),[c,d)
>> - e<=x2<=g [e,f),[f,g]
>> - x1无效值:x1<a,x1>d
>> - x2无效值:x2<e,x2>g
---
> 2. 弱一般等价类测试:通过使用一个测试用例中的每个等价类(区间)的**一个变量**实现。上述F()=x1+x2就是一个弱一般等价类测试,使用x1或x2来实现等价类测试.
>> - 则变量x1,x2区间为:a<=x1<=d [a,b),[b,c),[c,d)
>> - e<=x2<=g [e,f),[f,g]
>> - x1无效值:x1<a,x1>d
>> - x2无效值:x2<e,x2>g
>> - 测试用例取值: 1.a<x1<b e<x2<f
>> - 2.b<x1<c f<x2<g
>> - 3.c<x1<d e<x2<f
>> - 等价关系说明:e<x2<f与 f<x2<g属于等价类区间关系
---
> 3. 强一般等价类测试:**多缺陷假设**,等价类笛卡儿积的每个元素对应的测试用例。
>> - 覆盖所有的等价类
>> - 有可能的输入组合中的一个
>> - for example:两个变量x1,x2和函数F联系起来。这里定义为F()=x1+x2
>> - 则变量x1,x2区间为:a<=x1<=d [a,b),[b,c),[c,d)
>> - e<=x2<=g [e,f),[f,g]
>> - x1无效值:x1<a,x1>d
>> - x2无效值:x2<e,x2>g
>> - 测试用例取值:
>>> - 1.a<x1<b e<x2<f
>>> - 2.a<x1<b f<x2<g
>>> - 3.b<x1<c f<x2<g
>>> - 4.b<x1<c e<x2<f
>>> - 5.c<x1<d e<x2<f
>>> - 6.c<x1<d f<x2<g
> 4. 弱健壮等价类测试:健壮是考虑了无效值,而弱则是假设单缺陷。(传统等价类测试)
>> - **for example:**两个变量x1,x2和函数F联系起来。这里定义为F()=x1+x2
>> -则变量x1,x2区间为:a<=x1<=d [a,b),[b,c),[c,d)
>> - e<=x2<=g [e,f),[f,g]
>> - x1无效值:x1<a,x1>d
>> - x2无效值:x2<e,x2>g
>> - 测试用例取值:
>>> - 1.x1<a e<x2<f
>>> -2.a<x1<b f<x2<g
>>> -3.b<x1<c f<x2<g
>>> - 4.c<x1<d e<x2<f
>>> -5.c<x1<d x2<e
>>> -6.c<x1<d x2>e
----------
- 对于有效输入,使用每个有效类的一个值。
- 对于无效输入,测试用例将拥有一个无效值,并保持其余的值都是有效的。(“单缺陷”或造成测试用例失败)
----------
5.强健壮等价类测试(多缺陷假设,考虑无效值。缺点:有点冗余度)
**for example:**两个变量x1,x2和函数F联系起来。这里定义为F()=x1+x2
则变量x1,x2区间为:a<=x1<=d [a,b),[b,c),[c,d)
e<=x2<=g [e,f),[f,g]
x1无效值:x1<a,x1>d
x2无效值:x2<e,x2>g
测试用例取值:
1.x1<a x2<e
2.a<x1<b x2<e
3.x1<a e<x2<f
4.x1<a f<x2<g
5.x1<a x2>g
依此类推