1、全国计算机等级考试四级软件测试工程师真题 2011年 9月及答案解析(总分:100.00,做题时间:120 分钟)一、选择题(每小题 2分,共 50分)下列各题 A(总题数:25,分数:50.00)1.ANSI/IEEE STD729-1983给出软件质量的定义:软件产品满足规定的和隐含的与需求能力有关的全部特征和特性。以下叙述中不属于这些质量特征和特性的是 (分数:2.00)A.产品功能B.效率C.可使用性D.项目成本和进度2.软件产品需求规格说明书是软件缺陷存在最多的地方,其原因是 (分数:2.00)A.软件开发人员与用户沟通比较困难,对要开发的产品需求理解不一致B.系统设计不能全面考虑产
2、品在功能、性能、安全性、可维护性等方面的平衡C.采用不熟悉的新技术开发系统或不科学的算法解决问题D.系统内各子系统或模块的参数过于复杂,导致信息传递失误3.条件覆盖的基本思想是设计若干测试用例,执行被测程序,使得每个判断的每个条件的可能取值至少满足一次。那么对于如下的 C语言程序段 if(a0 void reverse(char s); int main() char intstr1LENGTH,intstr2LENGTH; printf(“请输入超长整数的被加数和加数:/n“); scanf(“%s%s“,intstr1,intstr2); addLInt(intstr1,intstr2);
3、 printf(“超长整数和为:%s“,intstr1); return 0; void addLInt(char s1,char s2) int i=0,tmp,c=0; char sLENGTH; if(strlen(s1)strlen(s2) strcpy(s,s1); strcpy(s1,s2); strcpy(s2,s); reverse(s1);reverse(s2); while(s2i!=;/0) tmp=s1i-0+s2i-0+c; 81i=tmp%10+0; c=tmp/10; i+; while(si1!=/0 s1i=tmp%10+0; c=tmp/10; i+; If
4、(c) s1i+=c+0; s1i=/0; reverse(s1); void reverse(char s) int i,j,c; for(i=0,j=strlen(s)-1;ij;i+,j-) c=si; si=sj; sj=c; (分数:20.00)(1).画出程序中函数 addLInt的控制流程图; (分数:10.00)_(2).设计一组测试用例,使该程序 addLInt函数的语句覆盖率和分支覆盖率均能达到 100%。如果认为该函数的语句覆盖率或分支覆盖率无法达到 100%,需说明为什么。 (分数:10.00)_全国计算机等级考试四级软件测试工程师真题 2011年 9月答案解析(总分:
5、100.00,做题时间:120 分钟)一、选择题(每小题 2分,共 50分)下列各题 A(总题数:25,分数:50.00)1.ANSI/IEEE STD729-1983给出软件质量的定义:软件产品满足规定的和隐含的与需求能力有关的全部特征和特性。以下叙述中不属于这些质量特征和特性的是 (分数:2.00)A.产品功能B.效率C.可使用性D.项目成本和进度 解析:2.软件产品需求规格说明书是软件缺陷存在最多的地方,其原因是 (分数:2.00)A.软件开发人员与用户沟通比较困难,对要开发的产品需求理解不一致B.系统设计不能全面考虑产品在功能、性能、安全性、可维护性等方面的平衡 C.采用不熟悉的新技术
6、开发系统或不科学的算法解决问题D.系统内各子系统或模块的参数过于复杂,导致信息传递失误解析:3.条件覆盖的基本思想是设计若干测试用例,执行被测程序,使得每个判断的每个条件的可能取值至少满足一次。那么对于如下的 C语言程序段 if(a0 void reverse(char s); int main() char intstr1LENGTH,intstr2LENGTH; printf(“请输入超长整数的被加数和加数:/n“); scanf(“%s%s“,intstr1,intstr2); addLInt(intstr1,intstr2); printf(“超长整数和为:%s“,intstr1);
7、return 0; void addLInt(char s1,char s2) int i=0,tmp,c=0; char sLENGTH; if(strlen(s1)strlen(s2) strcpy(s,s1); strcpy(s1,s2); strcpy(s2,s); reverse(s1);reverse(s2); while(s2i!=;/0) tmp=s1i-0+s2i-0+c; 81i=tmp%10+0; c=tmp/10; i+; while(si1!=/0 s1i=tmp%10+0; c=tmp/10; i+; If(c) s1i+=c+0; s1i=/0; reverse(
8、s1); void reverse(char s) int i,j,c; for(i=0,j=strlen(s)-1;ij;i+,j-) c=si; si=sj; sj=c; (分数:20.00)(1).画出程序中函数 addLInt的控制流程图; (分数:10.00)_正确答案:(函数 addLInt的控制流程图。 )解析:(2).设计一组测试用例,使该程序 addLInt函数的语句覆盖率和分支覆盖率均能达到 100%。如果认为该函数的语句覆盖率或分支覆盖率无法达到 100%,需说明为什么。 (分数:10.00)_正确答案:(测试用例 a.s1:“1111111111111111” s2:“2222222222222222“ b.s1:“123456789” s2:“989” c.s1:“989” s2:“123456789” d.s1:“999999999999” s2:“111111” 解析 语句覆盖是指设计若干测试用例,运行被测程序,使得每个可执行语句至少执行一次。 语句覆盖率=被评价到的语句数量/可执行的语句数量100%。 设计若干测试用例,运行被测程序使得每个判定的取真分支和取假分支至少评价一次。 判定覆盖率=被评价到的判定分支个数/判定分支的总数100%。 当输入a、b、c、d 中的测试用例后,语句覆盖率和分支覆盖率均为 100%。 )解析: