实验二 白盒测试用例设计
1. 实验目标
本次实验旨在指导学生使用白盒测试的技术,针对给定程序设计测试用例。从下述题目中任选其一完成设计。
程序一
程序名称:汽车保险费的计算程序
需求:
1) 司机保险费用的基本价格是500元。
2) 如果一个司机小于25岁,男性,且单身,那么他需要多付1500元。
3) 如果一个司机不属于以上的范围,但他(她)已婚或者是女性,那么保险费可以降低200元。
4) 如果一个司机的年龄在45岁至65岁之间(包含45与65),他(她)的保险费还可以再降低100元。
5) 小于16岁和大于65岁的司机不能办理保险,计算出来的结果为0。
6) 程序要对用户的输入进行验证,如果输入不合法(例如输入了错误的英文字符,或者小于0的数字),那么计算结果直接返回0。
对于输入、输出的说明:
程序接收的输入是年龄(Age)、性别(Gender)与已婚状态(Married)。以下使用英文单词表示这三个输入。
1) age是一个整型的数据;gender的合法数据是M(男性)和F(女性);married是一个布尔值。
2) 用户可能给出的输入值(可帮助设计测试用例):
a) age:INT_MIN..15, 16..24, 25..44, 45..65, 66..INT_MAX
b) gender:’M’, ‘F’, invalid input (无效输入)
c) married:true, false
3) 按照需求,程序能够计算出的结果:
a) 0 – 年龄不符,或无效输入
b) 200 – 已婚或女性,并且年龄在45至65之间(包括45和65)
c) 300 – 已婚或女性,并且年龄在16至45之间(包括16,但不包括45)
d) 400 – 单身男性,并且年龄在45至65之间(包括45和65)
e) 500 – 单身男性,并且年龄在25至45之间(包括25,但不包括45)
f) 2000 – 单身男性,并且年龄在16至25之间(包括16,但不包括25)
程序源代码:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 public int premium (int age, char gender, boolean married) { int premium; if ((age<16) || (age>65) || (gender!=’M’ && gender!=’F’)) { premium = 0; } else { premium = 500; if ((age<25) && (gender==’M’) && (!married)) { premium += 1500; } else { if (married || gender==’F’) premium -= 200; if ((age>=45) && (age<=65)) premium -= 100; } } return premium; }
程序二
程序名称:人寿保险点数计算程序(根据参保人的年龄,性别,婚姻状况计算参保点数,该点数将用于进一步计算保险率)
需求:
1) 参保对象年龄在70岁以下
2) 若年龄在30和69之间(含30,69),则点数加6;
3) 若年龄小于30,点数加2;
4) 若未婚,则点数加4;
5) 已婚男性,点数加5;
6) 已婚女性,点数加3;
7) 程序要对用户的输入进行验证,若输入不合法(例如输入了错误的英文字符,或小于0的数字),则计算结果返回0;
对于输入、输出的说明:
程序接收的输入是年龄(Age)、性别(Gender)与已婚状态(Married)。以下使用英文单词表示这三个输入。
1) age是一个整型的数据;gender的合法数据是M(男性)和F(女性);married是一个布尔值。
2) 用户可能给出的输入值:
a) age:INT_MIN..0, 1..29, 30..69,70..INT_MAX
b) gender:’M’, ‘F’, invalid input (无效输入)
c) married:true, false
程序源代码:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 public int GetPoint (int age, char gender, boolean married) { int point; if(age<=0 || age>=70 || gender!=’M’ && gender!=’F’) point=0; else { if (age>=30 && age<70) point = 6; else point=2; if(!married) point+=4; else if(gender==’M’) point +=5; else point+=3; } return point; }
2. 实验要求
使用以下方法为上述程序设计测试用例
1) 语句覆盖
2) 判定覆盖
3) 条件覆盖
4) 判定条件覆盖
5) 条件组合覆盖
6) 基本路径覆盖
评论0