针对以下C语言程序,请按要求回答问题。
已知weekday.c源程序如下:
#inelude<sgidio.h>
#include<conio.h>
/*主函数*/
Int main ()
Char letter;
Printf("please input the first letter,"Y"to exit!\n");
While ((letter=getch ()) !="Y")//当输入字母为Y是结束
Switch (letter)
Case ’S’:
Printf ("%c\n", letter);
Printf("please input second letter\n"); //输入第二个字母
If((letter=getch())==’a’)
Printf ("Saturday\n");
Else if (letter==’u’)
Printf ("Sunday\n");
Else printf("data error\n");
Break;
Case ’F’:
Printf ("fridaykn");
Break;
Case’M’:
Printf ("mondayha");
Break;
Case’T’:
Printf("%c\n",letter);
Printf("please input second letter\a"); //输入第二个字母
If ((letter=getch ()) ==’u’)
Printf("Tuesday\n");
Else if(letter==’h’)
Printf ("Thursday\n");
Break;
Case’W’:
Printf ("Wednesday\n");
Return 0;
设计一组测试用例,使main函数的语句覆盖率尽量达到100%。
参考答案:[pathA]A, B
[pathB]B,C
[pathC]B,C,D,E,BB
[pathD]B,C,F,G,BB
[pathE]B,C,F,H,BB
[pathF]I,A0,BB
[pathG]AA,AB,BB
[pathH]AC,AD
[pathI]AC,AD,AE,AF
[pathA0]AC,AD,AG,-AH,BB
[pathAA] AC,AD,H,BB
[pathAB]AI,B0,BB
[pathAC]AI,H,BB
生成测试用例,确保基本路径集中每条路径的执行:
pathA:输入数据y,输出的结果程序结束返回值0。
pathB:输入数据s,输出结果“s输入第二个字母”。
pathC:输入数据s后,输入数据a,输出结果“Saturday”。
pathD:输入数据s后,输入数据u,输出结果“Sunday”。
pathE:输入数据s后,输入数据非a非u,输出结果“data error”。
pathF:输入数据f,输出结果“friday”。
pathG:输入数据m,输出结果“monday”。
pathH:输入数据t,输出结果“输入第二个字母”。
pathI:输入数据t后,输入数据u,输出结果“tuesday”。
pathA0:输入数据t后,输入数据h,输出结果“thursday”。
pathAA:输入数据t后,输入数据非u非h,输出结果“data error”。
pathAB:输入数据w,输出结果“Wednesday”。
pathAC:输入数据defalt,输出结果“data error”。