13 100 101 支付金额大于0不大于100 支付金额大于0不大于100 ①⑩ 六、根据边界值分析法设计测试用例
1. 三角形问题边界值分析法测试用例:
根据输入值分析边界值: ① 边界值为0 ② 边界值为1
输入的数据 用例编号 a 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 0 1 2 99 b 50 50 50 50 c 50 输入1到100的三个整数 输入1到100的三个整数 50 50 50 50 等腰三角形 等腰三角形 等腰三角形 等腰三角形 等腰三角形 等腰三角形 等腰三角形 等腰三角形 预期输出 实际输出 界值 ① ② ③ ④ ⑤ ⑥ ① ② ③ ④ ⑤ ⑥ ① ② ③ ④ ⑤ ⑥ ③ 边界值为2 ④ 边界值为99
⑤ 边界值为100 ⑥ 边界值为101
覆盖的边100 50 101 50 50 50 50 50 0 1 2 99 50 输入1到100的三个整数 输入1到100的三个整数 50 输入1到100的三个整数 输入1到100的三个整数 50 50 50 50 等腰三角形 等腰三角形 等腰三角形 等腰三角形 等腰三角形 等腰三角形 等腰三角形 等腰三角形 100 50 50 101 50 输入1到100的三个整数 输入1到100的三个整数 50 50 50 50 50 50 50 50 50 50 0 1 2 99 输入1到100的三个整数 输入1到100的三个整数 等腰三角形 等腰三角形 等腰三角形 等腰三角形 等腰三角形 等腰三角形 等腰三角形 等腰三角形 50 100 50 101 输入1到100的三个整数 输入1到100的三个整数 2. 找零钱最佳组合问题边界值分析法测试用例: 根据输入值分析边界值:
a) R的边界值为0
b) R的边界值为1
c) R的边界值为-1
d) R的边界值为99 e) R的边界值为100 f) R的边界值为101 根据输出值分析边界值:
① 找50元1张 ② 找10元4张 ③ 找10元3张 ④ 找10元2张
输入的数据 用例编号 R 1 2 3 4 101 0 -1 50 P 50 50 50 101 100 g) P的边界值为0 h) P的边界值为1 i) P的边界值为-1
j) P的边界值为99 k) P的边界值为100 l) P的边界值为101
⑤ 找10元1张 ⑥ 找5元1张 ⑦ 找1元4张 ⑧ 找1元3张
⑨ 找1元2张 ⑩ 找1元1张
覆盖的边预期输出 实际输出 界值 价格应大于0不大于100 价格应大于0不大于100 f 价格应大于0不大于100 价格应大于0不大于100 a 价格应大于0不大于100 价格应大于0不大于100 c 支付金额大于0不大于支付金额大于0不大于l 100 支付金额大于0不大于g 100 支付金额大于0不大于100 支付金额大于0不大于i 100 100 不够钱支付 N1=4 N5=1 N5=1,N1=4 N10=1 N10=4,N5=1,N1=1 N50=1 N1=1 N1=2 N1=3 e k⑦ k⑥ k⑥⑦ k⑤ k②⑥⑦ k① b⑩ b⑨ k⑧ 不够钱支付 N1=4 N5=1 N5=1,N1=4 N10=1 N10=4,N5=1,N1=4 N50=1 N1=1 N1=2 N1=3 支付金额大于0不大于5 50 0 6 7 8 9 10 11 12 13 14 15 16 50 100 96 95 91 90 51 50 1 1 97 -1 50 100 100 100 100 100 100 2 3 100 17 18 19 20 21 80 70 60 2 99 100 100 100 1 50 N10=2 N10=3 N10=4 不够钱支付 不够钱支付 N10=2 N10=3 N10=4 不够钱支付 不够钱支付 k④ k③ k② h d 黑盒测试 实验二
一.实验目的
(1)能熟练应用黑盒测试技术进行测试用例设计; (2)对测试用例进行优化设计;
二.实验内容
1. NextDate函数的边界值分析测试用例
程序有三个输入变量month、day、year(month、day和year均为整数值,并且满足:1≤month≤12、1≤day≤31、1900≤ year ≤2050。),分别作为输入日期的月份、日、年份,通过程序可以输出该输入日期在日历上第二天的日期。例如,输入为2005年11月30日,则该程序的输出为2005年12月1日。请用等价类测试和边界测试法设计测试用例。
三、程序代码
#include\int main(void) { int year; int month; int day;
printf(\请输入年份:\ scanf(\
while(!(year>=1900&& year<=2050))//判断年是否有效 {
printf(\输入的年份不正确!\\n\ return; }
printf(\请输入月份:\ scanf(\
while (month>12||month<1)//判断月是否有效 {
printf(\月份输入有误,请重新输入!\\n\ return;
}
printf(\请输入日期号:\ scanf(\
if(month==1||month==3||month==5||month==7||month==8||month==10||month==12)//判断31天
{
while (day>31||day<1)//判断日否有效 {
printf(\日期输入有误,请重新输入!\\n\ return;
} }
if(month==4||month==6||month==9||month==11)//判断30天 {
while (day>30||day<1)//判断日否有效 {
printf(\日期输入有误,请重新输入!\\n\ return; } }
if((year%4==0 && year0!=0) || (year@0==0)) //检查闰年; {
if(month==2) {
if(day>29) {
printf(\本月是闰月,请在1-29之间重新输入日期!\\n\ return; } else {
if(day==29) {
day=1; }
else day++; } } } else {
if(month==2)
{
if(day>28) {
printf(\本月是闰月,请在1-28之间从新输入日期!\\n\ return; } else {
if(day==28) {
day=1; }
else day++; } } }
switch(month)//计算当前日期的下一天 {
case 1: case 3: case 5: case 7: case 8: case 10:
if (day==31) {
month++; day=1;
printf(\明天是:%d/%d/%d\\n\ break; } else{
day++;
printf(\明天是:%d/%d/%d\\n\ break; } case 2:
if(day==1) {
month++;
printf(\明天是:%d/%d/%d\\n\ break; } else{