您的当前位置:首页正文

2008年9月全国计算机等级考试四级软件测试工程师笔试主观题(详细解答有图)

2022-04-09 来源:好走旅游网
2008年9月全国计算机等级考试四级软件测试工程师笔试真题

一、论述题 (共3题,共50分)论述题答题必须用蓝、黑色钢笔或圆珠笔写在论述题答题纸的相应位置上。  1.一个系统的登录操作规格说明如下:

登录对话框有两个数据输入:用户名和密码。登录操作对两个输入数据进行检查,要求用户名中只能包含字母和数字(

字母不区分大小写),密码可以包含任何字符。用户名和密码都不能为空且长度不限。当用户名或密码为空时,则登录失 败并提示对应的出错信息;当用户名不正确或用户名不存在或密码错误时,则登录失败并提示以下三种相应的出错信息

:用户名不合法(即包含有非字母、非数字字符),或用户名不存在,或密码错误;当用户名和密码都正确时,则显示登 录成功信息,完成登录。

假设正确的用户名是abcd123,密码是123456 试用等价类方法为上述格说明设计等价类表(10分)和测试用例(10分)。 (20分)

2.针对以下C语言程序,请按要求回答问题。 已知weekday.c源程序如下: #include #include /*主函数*/ 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; caseM:

printf(\"mondayha\"); break; caseT:

printf(\"%c\n\",letter);

printf(\"please input second letter\a\"); //输入第二个字母 if((letter=getch())==u) printf(\"tuesday\n\"); else if(letter==h)

printf(\"thursday\n\");

else printf(\"data error\n\"); break; case W:

printf(\"wednesday\n\"); break; default:

printf(\"data error\n\");

} }

return 0; }

1.画出主函数main的控制流程图;(8分)

2.设计一组测试用例,使main函数的语句覆盖率尽量达到100%;(11分)

3.main函数的语句覆盖率能否达到100%?如果认为无法达到,需说明原因。(1分) (20分)

 参考答案:1. #include #include /*主函数*/ int main() {

char letter;

printf(\"please input the first letter,\"Y\"to exit!\n\")【1】;

while((letter=getch())!=Y)/*当输入字母为Y时结束*/【22】 {

switch(letter) {

case S:【2】

printf(\"%c\n\",letter);

printf(\"please input second letter\n\");【3】 //输入第二个字母

if((letter=getch())==a)【4】 printf(\"Saturday\n\");【5】 else if(letter==u)【6】 printf(\"sunday\n\");【7】 else printf(\"data error\n\");【8】 break; case F:【9】 printf(\"fridaykn\");【10】 break; caseM:【11】

printf(\"mondayha\");【12】 break; caseT:【13】

printf(\"%c\n\",letter);

printf(\"please input second letter\a\");【14】 //输入第二个字母

if((letter=getch())==u)【15】 printf(\"tuesday\n\");【16】 else if(letter==h)【17】 printf(\"thursday\n\");【18】 else printf(\"data error\n\");【8】

break; case W:【19】

printf(\"wednesday\n\");【20】 break; default:【21】

printf(\"data error\n\");【8】 } }

return 0;【22】 }

2.【path1】1,22 【path2】2,3

【path3】2,3,4,5,22 【path4】2,3,6,7,22 【path5】2,3,6,8,22 【path6】9,10,22 【path7】11,12,22 【path8】13,14

【path9】13,14,15,16

【path10】13,14,17,18,22 【path11】13,14,8,22 【path12】19,20,22 【path13】19,8,22

生成测试用例,确保基本路径集中每条路径的执行 Path1、输入数据y,输出结果程序结束返回值0 Path2、输入数据s,输出结果“ s 输入第二个字母”

Path3、输入数据s后,输入数据a,输出结果“Saturday” Path4、输入数据s后,输入数据u,输出结果“Sunday”

Path5、输入数据s后,输入数据非a非u,输出结果“data error” Path6、输入数据f,输出结果“friday” Path7、输入数据m,输出结果“monday”

Path8、输入数据t,输出结果“输入第二个字母”

Path9、输入数据t后,输入数据u,输出结果“tuesday” Path10、输入数据t后,输入数据h,输出结果“thursday”

Path11、输入数据t后,输入数据非u非h,输出结果“data error” Path12、输入数据w,输出结果“wednesday” Path13、输入数据defalt,输出结果“data error”

3.不能达到100%,一些独立的路径如此程序中的【输入】,往往不是完全孤立的,有时候他是程序正常的控制流的一部

分,这时,这些路径的测试可以是另一条路径测试的一部分。

 我的答案:  我给自己评()分

 3.某邮件系统测试项目中的测试执行阶段按计划在5天后结束,将进入测试总结阶段。测试管理人员通过QESuite Web

Version 1.0测试过程管理工具观察到下列测试项目信息:(如下表)

1.请依据以上表格中内容,说明在测试用例设计和测试用例执行两方面存在的问题,并简要指明原因。(6 分)

2.已知软件问题处理状况如下:

测试项目当前处在“待验”状态的软件问题有307个,处在“新建”状态的软件问题有35个,处在“打开”状态的软件问

题有243个。测试组的软件问题处理能力是70个软件问题/工作日,开发组修复软件问题的能力是40个软件问题/工作日 。

请根据测试执行阶段剩余的天数与软件问题处理状况信息,说明开发组和测试组在软件问题处理方面存在的问题,并简 要指明原因。(4分) (10分)

 参考答案:1.子系统下安装功能区域未指明,客户端管理功能区域没有设计测试用例,邮件系统的功能设置测试用例未执行完,其 中还有5个用例未执行。

测试用例设计存在问题:功能区域划分不详细,客户端管理的测试用例没有覆盖到,用例覆盖不全面。测试执行存在问 题:存在未执行的用例。

2.存在问题是开发组和测试组不能在5天后完成工作。根据题中描述的数据,开发组中要修改的问题数是243+35=278,需 要修改时间是278/40=7天;测试组即便新建的问题不需要修改,需要时间是:(307+243)/70=8天。

因篇幅问题不能全部显示,请点此查看更多更全内容