1、举例1、保险费率计算(按照输入域划分等价类的例子):
ü 某保险公司承担人寿保险,该公司保费计算方式为:保费=投保额*保险率,保险率依点数不同而有别,10点以上(含10点)费率为0.6%,10点以下费率为0.1%
ü 点数的计算是年龄、性别、婚姻、抚养人数所得的点数的总和
ü 输入:年龄、性别、婚姻、抚养人数
ü 输出:保险率
输入数据说明:
解答:
第一步:输入和输出变量确认
ü 输入:年龄、性别、婚姻、抚养人数
ü 输出:保险率
ü 等价类划分原则:按照输入变量来确认等价类(有效等价类和无效等价类)
第二步:等价类划分
第三步:设计测试用例
1、设计测
2、试用例,尽可能的覆盖尚未覆盖的有效等价类。
Ø (1)(8)(10)(12)
Ø (2)(9)(11)(13)
Ø (3)(8)(10)(14)
2、设计测试用例,使得每一个新设计的测试用例只包含一个无效等价类,其他的选择有效等价类。
Ø (4)(8)(10)(12)
Ø (5)(9)(11)(13)
Ø (6)(8)(10)(14)
Ø (7)(8)(10)(14)
Ø (1)(8)(10)(15)
Ø (2)(9)(11)(16)
Ø (3)(8)(10)(16)
说明:在设计无效部分的测试用例的时候,有效等价类部分,可以任意选择。
思考:若使用边界值法可以增
3、加哪些用例?是否可以用判定表方法设计测试用例?
举例2(因果图法设计测试用例):某电力公司有A、B、C、D四类收费标准,其规定如下图所示,使用因果图法设计测试用例:
用电类别
用电额度
用电期间
收费类型
居民用电
<100度/月
——
A类
>=100度/月
B类
动力用电
<10000度/月
非高峰期
B类
>=10000度/月
非高峰期
C类
<10000度/月
高峰期
C类
>=10000度/月
高峰期
D类
第一步:分析题目,列出原因和结果,并编号;
输入条件(原因) 输出动作(结果)
1:居民用电
4、 A:A类计费
2:动力用电 B:B类计费
3:<100度/月 C:C类计费
4:<10000度/月 D:D类计费
5:用电高峰期
第二步:画出因果图,所有原因结点在左边,所有结果结点在右边,并建立四个中间结点,表示处理的中间状态
第三步:把因果图转换为判定表;
组合条件
1
2
3
4
5
6
条件原因
1
1
1
0
0
0
0
2
0
0
1
1
1
1
3
1
0
4
1
0
1
0
5
5、
0
0
1
1
动作结果
A
1
0
0
0
0
0
B
0
1
1
0
0
0
C
0
0
0
1
1
0
D
0
0
0
0
0
1
测试用例
Y
Y
Y
Y
Y
Y
第四步:为判定表每一列设计一个测试用例;
条件组合
测试用例(输入数据)
预期结果(输出动作)
1列
居民用电,90度/月
A
2列
居民用电,110度/月
B
3列
动力用电,非高峰期,8000度/月
B
4列
动力用电,非高峰期,1.2万度/月
C
5列
动力用电,高峰期,0.9万度/月
C
6、
6列
动力用电,高峰期,1.1万度/月
D
作业、练习:
一、程序如下:
Int A.B;
Double X;
if (A > 1 && B == 0)
X = X/A;
if (A == 2 || X > 1)
X = X + 1;
cout<