当前位置: 首页 > >

2010年9月全国计算机等级考试四级软件测试工程师笔试真题(含答案)

发布时间:

历年真题考试时间:120 试卷总分:100
?

2010 年 9 月全国计算机等级考试四级软件测试工程师笔试 真题

一、选择题 (每小题 2 分,共 50 分)下列各题 A)、B)、C)、D)四个选项中,只 有一个选项是正确的,请将正确选项涂写在答题卡相应位置上,答在试卷上不得 分。
? ?

1: 参考答案:C 参考解析: 软件质量是表征软件产品满足明确的和隐含的需求的能力的特 性或特性的集合,它除了关注“明确的需求”外,还扩展到了“隐含的需 求”。软件质量是各种特性的复杂组合,定义一个软件的质量,就等于为 该软件定义一系列质量属性。C 项叙述不准确。
? o o

试题内容: 下列有关软件质量的叙述中,错误的是
o

A:软件质量不仅包括软件产品的质量,还包括软件过程 的质量 B:明确的软件质量属性是指在合同或行业标准中规定 必须实现的质量要求 C:隐含的软件质量属性在合同或行业标准中没有规定, 因此在产品开发时不必专门考虑 D:软件的功能和性能必须结合在一起考虑
? ?

2: 参考答案:D 参考解析:对于 A 项,软件测试贯穿于软件开发的整个过程,其功能是验 证软件的功能是否按照预先的设想执行的。对于 B 项,一个成功的软件测 试是发现了以前未发现的错误的测试。对于 C 项,根据 80/20 原则,如果 发现一程序模块似乎比其它程序模块有更多的错误倾向时, 则应当花费较 多的时间和代价测试这个过程模块。D 项正确。
? o o

试题内容: 下列有关软件测试的叙述中,正确的是
o

A:测试是软件开发中一个单独的阶段,其目的是对已实 现的程序编码进行正确性检验

B:一个成功的测试能够验证程序的确做了它应该做的 事情 C:根据 80/20 的原则,优秀的软件开发人员所编写的 程序错误少,因此对于他们的程序,重点不应放在缺陷测试 上 D:在软件过程的早期寻找尽可能多的错误符合软件测 试的原则
? ?

3: 参考答案:A 参考解析: 白盒测试是程序员在编程阶段对每个程序单元进行测试的最有 效的测试类型,它是按照程序内部的结构测试程序,通过测试来检测产品 内部动作是否按照设计规格说明书的规定正常进行, 检验程序中的每条通 路是否都能按预定要求正确工作。A 项错误。
? o o

试题内容: 下列有关白盒测试的叙述中,错误的是
o

A:白盒测试是在同时拥有源代码和可执行代码的情形 下才可以进行的一种软件测试方法 B:白盒测试应该由开发人员实施,因为只有他们才能够 访问测试执行所涉及的代码 C:即使对所有的源代码都进行了 100%的逻辑覆盖测 试,也不能保证程序中没有错误 D:软件测试人员制定测试计划的目的是想尽可能多地 对源代码进行测试
? ?

4: 参考答案:D 参考解析:数据流可看作是一种路径测试,它主要关注在一条路径上变量 在何处定义,在何处使用,它是一种白盒测试方法。
? o o

试题内容: 下列有关黑盒测试的叙述中,错误的是
o

A:黑盒测试是在不考虑源代码的情形下进行的一种软 件测试方法

B:最好由测试人员、最终用户和开发人员组成的团队来 实施黑盒测试 C:黑盒测试主要是通过对比和分析实测结果和预期结 果来发现它们之间的差异, 所以黑盒测试又称为"数据驱动" 测试 D:数据流测试是一种黑盒测试方法
? ?

5: 参考答案:C 参考解析: 走查人员走查产品并且准备在走查会议上讨论他们对产品作出 的评注、建议、问题,同时,协调人员指定一个测试组,为被审查程序准 备一批有代表性的测试用例,提交给走查小组,在大多数的走查中,很多 问题是在向程序员提问过程中发现的,而不是由测试用例直接发现的。
? o o

试题内容: 走查是一种重要的审查方法,下列所述的审查活动中,不属于走查 的是
o

A:审查小组的组织者事先把相关的设计文档、源程序和 其他材料发给每一个小组成员, 要求他们预先了解审查的内 容 B:测试员事先根据审查的源代码准备一批测试用例 C:程序员在小组审查会上向全体审查人员逐条讲解自 己编写的程序 D:所有参与审查的人员集体扮演"计算机"的角色,使用 事先准备的测试用例按照源程序规定的顺序逐条执行, 讨论 可能出现的问题
? ?

6: 参考答案:D 参考解析:软件测试的不同的测试活动可以是按照某个次序先后进行的, 但也可能是反复的, 只要某个测试达到准备就绪点, 测试活动就可以开展。
? o o

试题内容: 下面有关软件测试的叙述中,不属于 H 模型核心思想的是
o

A:软件测试不仅仅指测试的执行,还包括很多其他的活 动

B:软件测试是一个独立的流程,贯穿产品整个开发周 期,与其他流程并发地进行 C:软件测试要尽早准备,尽早执行 D:软件测试不同层次的测试活动严格按照某种线性次 序执行
? ?

7: 参考答案:A 参考解析:路径覆盖就是设计足够的测试用例,执行程序中所有可能的路 径,尽管路径覆盖比判定/条件覆盖更强,但路径覆盖并不一定包含判定/ 条件覆盖。
? o o

试题内容: 下面有关路径测试的叙述中,错误的是
o

A:路径覆盖是最强的覆盖测试,它不但能发现其他覆盖 测试能发现的问题, 还能发现其他覆盖测试不能发现的问题 B:测试员不可能对任何一个程序都完成 l00%的路径测 试 C:不提倡用不同的数据重复测试同一条路径 D:即使每条路径都执行了一次,程序还是可能存在缺陷
? ?

8: 参考答案:B 参考解析:同行评审设计的内容很多,主要分为管理评审、技术评审、文 档评审和过程评审。B 项正确。
? o o

试题内容: 同行评审主要包括管理评审、技术评审、过程评审和
o

A:需求评审 B:文档评审 C:质量评审 D:风险评审
?

9: 参考答案:A

?

参考解析:条件/判定覆盖就是设计足够的测试用例,使得判定语句中每 个条件的所有可能取值至少评价一次, 同时每个判定语句本身的所有可能 分支也至少评价一次,根据题中条件,A 项正确。
? o o

试题内容: 对于如下给出的程序段: if(A>B)and(C=5) then do P1; 若考虑满足条件/判定覆盖原则以及内部边界条件, 需要设计的最 小测试输入数据集可能是
o

A:(A=2,B=1,C=5),(A=2,B=1,C=4),(A=1,B=2, C=5),(A=1,B=1,C=5) B:(A=2,B=1,C=5),(A=2,B=1,C=4),(A=1,B=2, C=5),(A=1,B=2,C=4) C:(A=2,B=1,C=5),(A=2,B=1,C=4),(A=1,B=2, C=5) D:(A=2,B=1,C=5),(A=1,B=2,C=4)
? ?

10: 参考答案:C 参考解析: 路径覆盖是设计足够的测试用例, 执行程序中所有可能的路径, 而条件组合覆盖是设计足够的测试用例, 使得每个判定的所有可能的条件 取值组合至少执行一次。二者无关系。
? o o

试题内容: 下列关于逻辑覆盖的说法中,错误的是
o

A:满足条件覆盖的测试不一定满足判定覆盖 B:满足条件组合覆盖的测试一定满足判定覆盖、条件覆 盖和判定/条件覆盖 C:满足路径覆盖的测试也一定满足条件组合覆盖 D:满足判定/条件覆盖的测试也一定满足判定覆盖和 条件覆盖
?

11: 参考答案:A

?

参考解析:对于 B 项,资源利用率反映的是在一段时间内资源*均被占用 的情况。对于 C 项,软件性能测试有用户视角、管理员视角、开发人员视 角。对于 D 项,并发进程数不是软件性能测试的指标。
? o o

试题内容: 以下关于软件性能测试的说法中,正确的是
o

A:对于没有并发的应用系统而言,响应时间与吞吐量成 反比关系 B:应用系统的资源利用率越高,性能也就越好 C:软件性能测试是从用户视角考察软件性能 D:并发进程数是软件性能测试中一种常用的性能指标
? ?

12: 参考答案:D 参考解析:通过进程分析,可以进一步查看每个进程的性能指标,以确定 哪个进程是影响性能的原因。进程分析是指出现性能瓶颈时,可以进一步 查看每个进程的性能指标,以确定哪个进程是造成性能瓶颈的原因。D 项 正确。
? o o

试题内容: 以下哪一种技术属于基于性能计数器的分析技术
o

A:数据流分析 B:指针分析 C:时间序列分析 D:进程分析
? ?

13: 参考答案:B 参考解析:并发测试是指模拟多用户并发使用软件的情况,从而测试软件 是否存在与并发有关的缺陷,B 项正确。
? o o

试题内容: 以下哪种软件测试属于软件性能测试的范畴
o

A:路径覆盖测试

B:并发测试 C:安全性测试 D:健壮性测试
? ?

14: 参考答案:B 参考解析:软件可靠性测试是:(1)在规定的条件下,在规定的时间内 软件不引起系统失效的概率。(2)在规定的时间周期内,在所述条件下 程序执行所要求的功能的能力。要进行测试需要经历确定可靠性目标,定 义软件运行剖面, 设计测试用例, 实施可靠性测试, 分析测试结果等阶段, 因此软件可靠性测试代价非常高, 软件可靠性既可用白盒测试又可用黑盒 测试,软件可靠性测试也适用于面向对象软件测试。
? o o

试题内容: 以下关于软件可靠性测试的说法中,正确的是
o

A:软件可靠性测试是一种比白盒测试更严格的软件测 试 B:软件可靠性测试的代价通常比较高 C:软件可靠性测试本质上是一种黑盒单元测试 D:软件可靠性测试不适用于面向对象软件测试
? ?

15: 参考答案:D 参考解析:抽象类中的方法没有具体的定义,不能进行方法层次的测试, 方法层次的测试是单元测试中非常重要的方面, 缺少了这一方面也就不能 进行单元测试。
? o o

试题内容: 以下关于面向对象软件测试的说法中,正确的是
o

A:单个成员方法的测试不属于面向对象单元测试考虑 的范畴 B:等价类划分测试只适用于传统软件的测试,不适用于 面向对象软件的测试 C:基于判定表的测试适用于面向对象软件的测试

D:抽象类无法进行单元测试
? ?

16: 参考答案:B 参考解析:大突击集成是常用的集成策略,虽有自己的优点,也有一些缺 陷,不是最有效的测试策略。针对一个类的多个实例间协作的测试属于单 元测试,在单元测试中,由于集成和多态的使用,测试不能仅限于子类, 还要考虑继承树上的各个父类。
? o o

试题内容: 以下关于面向对象软件测试的说法中,正确的是
o

A:大突击集成是最有效的面向对象软件集成测试策略 B:在面向对象软件的单元测试中,一棵继承树上的每个 类都需要进行测试 C:针对一个类的多个实例间协作的测试属于面向对象 软件集成测试考虑的范畴 D:在面向对象软件的单元测试中,基于判定表的测试是 类层次测试的常用方法
? ?

17: 参考答案:C 参考解析: 排版结构测试属于表示层的测试, 链接测试是功能测试的内容。 对于 Web 应用软件而言,性能是一个至关重要的因素。因此在对 Web 应用 软件进行系统测试时,必须考虑性能测试。
? o o

试题内容: 以下关于 Web 应用软件测试的说法中,正确的是
o

A:排版结构测试是数据层测试关注的内容 B:链接测试是 Web 应用软件内容测试的重要内容 C:在对 Web 应用软件进行系统测试时,通常需要考虑性 能测试 D:测试 Web 应用软件在多用户的情况下是否会出现系统 崩溃,属于 Web 应用软件可靠性测试考虑的范畴
?

18: 参考答案:A

?

参考解析:浏览器兼容性测试是 Web 应用软件表示层的测试,表单测试属 于功能测试的内容,压力测试的目的是检查系统在压力下的稳定性。A 项 正确。
? o o

试题内容: 以下关于 Web 应用软件测试的说法中,正确的是
o

A:应用服务器兼容性测试是 Web 应用软件业务层测试的 一项内容 B:浏览器兼容性测试是 Web 应用软件安全性测试的一项 内容 C:Web 应用软件压力测试的主要内容是并发测试 D:表单测试是 Web 应用软件易用性测试的一项内容
? ?

19: 参考答案:B 参考解析:Web 应用软件是否支持不同浏览器,软件功能是否丰富是功能 测试的内容。在处理复杂性的响应时间是否符合要求是性能测试的内容, 但和易用性测试无关。
? o o

试题内容: 以下哪一项属于软件易用性测试关注的内容
o

A:Web 应用软件是否支持不同厂商开发的浏览器 B:软件是否提供图形用户界面 C:软件提供的功能是否丰富 D:在处理复杂任务时,软件的响应时间是否符合需求
? ?

20: 参考答案:D 参考解析:A、B、C 均属于软件兼容性测试关注的内容,D 属于数据兼容 性关注的内容。
? o o

试题内容: 以下哪一项属于数据兼容性测试关注的范畴
o

A:一个软件是否支持不同的操作系统

B:一个杀毒软件是否会误删其他软件保存的文件 C:一个文字处理软件的操作方式是否与同类软件的操 作方式一致 D:一个电子邮件收发软件是否可以导入以前版本保存 的邮件
? ?

21: 参考答案:A 参考解析:W 模型测试的对象除了程序和设计外,还包括需求。H 模型的 提出源自软件开发中的活动常常是交叉进行的,但反复触发、迭代的关系 发生在软件测试活动内部,与其他活动无关。X 模型提出针对单独的程序 片段进行相互分离的编码和测试, 不是针对完整的程序进行集成的编码和 测试。
? o o

试题内容: 下列有关测试过程抽象模型的描述中,正确的是
o

A:V 模型中,单元测试验证的是程序编码 B:W 模型强调, 测试伴随着整个软件开发周期同步进行, 测试的对象是程序和设计 C:H 模型的提出源自软件开发中的活动常常是交叉进行 的,存在反复触发、迭代的关系 D:X 模型提出针对完整的程序进行集成的编码和测试
? ?

22: 参考答案:D 参考解析:测试用例执行要求保证测试结果准确完整。测试执行完成后需 要将测试报告或质量发送出去,并得到项目经理认可才算结束。只有检查 过的所有测试用例的结果正确、准确完整才能结束测试执行。
? o o

试题内容: 下列有关测试执行管理的描述中,错误的是
o

A:测试用例执行要求保证测试结果准确完整 B:对测试结果的追踪应该可追溯到具体责任人 C:测试执行完成后,并不意味着测试项目的结束

D:检查完所有测试用例的执行结果是否完整即可结束 测试执行
? ?

23: 参考答案:A 参考解析:数据驱动脚本将测试输入存储在独立的数据文件中,A 项叙述 不正确。
? o o

试题内容: 以下有关自动化测试脚本的说法中,错误的是
o

A:数据驱动脚本将测试输入存储在脚本中 B:线性脚本容易受软件变化的影响,且无共享和重用的 脚本 C:结构化脚本的优点是健壮性更好,可以对一些容易导 致测试失败的特殊情况进行处理 D:共享脚本的维护开销低于线性脚本
? ?

24: 参考答案:B 参考解析:建立测试环境是测试执行阶段的内容。
? o o

试题内容: 以下哪一项不属于测试策划的内容
o

A:确定测试的充分性要求 B:建立测试环境 C:提出测试的基本方法 D:制定测试计划
? ?

25: 参考答案:C 参考解析:单元测试是在软件开发过程中要进行的最低级别的测试活动, 在单元测试活动中, 软件的独立单元将在与程序的其他部分相隔离的情况 下进行测试。单元测试的测试用例设计主要根据接口规格说明。
? o o

试题内容: 单元测试的测试用例设计主要依据是
o

A:需求规格说明 B:概要设计说明 C:接口规格说明 D:详细设计说明

二、论述题 (共 3 题,共 50 分)论述题答题必须用蓝、黑色钢笔或圆珠笔写在论 述题答题纸的相应位置上。

?

1: 参考答案:

? o o

试题内容: (20 分)设计黑盒测试的测试用例 某图书出租商店欲开发一个租书信息管理系统, 管理图书的租借业 务。 该系统的数据流图如下:

?

2: 参考答案:

? o o

试题内容: (10 分) QESuite Web Version 1.0 中,已知某安全文档管理系统测试项目 的部分信息如下: ●在测试过程中先后产生 4 个测试版本,按日期排序分别为 SEDM 1.0_101009,SEDM 1.0_101025,SEDM1.0_101103, SEDM1.0_101106。 ●功能分类视图中部分待测区域及人员分配定义如下表所示:

?

3: 参考答案: (2)测试用例: ①输入:bookCount,输出:合法! ②输入:puts,输出:常、变量标识不能用 C 语言预定义函数名! ③输入:5student,输出:首字符只能是字母或下划线! ④输入:stu+name,输出:常、变量只能由字母、下划线和数字构成! ⑤输入:float,输出:常、变量标识不能用 C 语言关键字! ⑥输入: putsfloatstudentsnamechinachineseenglishchinachinesechinachina, 输出:内存不够! ⑦输入:_StuId,输出:合法! 该程序的语句覆盖率或分支覆盖率均无法达到 100%,因为该程序允许中

间返回值。如果 if 条件中任意一个成立就立即返回,那么剩下的语句就 无法执行;即使所有的 if 条件均不成立,运行到最后,那么 if 条件成立 时的语句就无法执行,其覆盖率始终无法达到 100%。

? o o

试题内容: (20 分) 已知 C 源程序如下: /**************************************************/ /*功能:检查输入的标识符是否符合 C 语言规则*/ /**************************************************/ #include<stdio.h> #include<string.h> #include<ctype.h> #include<conio.h> #include<malloc.h>

char* IsLegal(char*CheckWor D.; const int MaxWordLen=32; char*ErrorMessages[]={/*错误信息列表*/ "合法!", "首字符只能是字母或下划线!", "常、变量只能由字母、下划线和数字构成!", "常、变量标识不能用 C 语言关键字!", "常、变量标识不能用 C 语言预定义函数名!", "内存不够!" }; int main() { char *Prompt="C 语言标识符的命名要遵守以下原则:"; char *TestWord; inti; TestWord=(char *)malloc(sizeof(char)*MaxWordLen); /*TestWord 存放用户输入*/ if(!TestWor D. return 1; /*显示部分提示信息*/ puts(Prompt); for(i=1;i<=4;i++){ puts(ErrorMessages[i]); } while(1){ printf("\n\n 请输入一个标识符(大写的 Q 退出):");/*提示*/ scanf("%s",TestWor D.;/*得到用户输入*/ if(toupper)(TestWord[0]))==0) break;/*循环出口*/ printf("\n%s%s",TestWord,IsLegal(TestWor D.);/*判定标识符的合法性*/ } free(TestWor D.; return 0; } /*此函数检验标识符命名的合法性*/ char*IsLegal(char*CheckWor D. { char*KeyWords[]

={"auto","break","case","char","continue","const","defaul t", "do","double","else","enum",extern","float","for","goto", "if","int","long","noalias","register","return","short", "signed","sizeof","static","struct","switch","typedef", "union","unsigned","void","volatile","while","defined", "define","undef","include","ifdef","ifndef","endif","line ", "error","elif","pragma"};/*C 关键字列表*/ char*Functions[] ={"close","creat","eof","fclose","fcloseall","feof","fope n", "ferror","fgetchar","fgets","fprintf","fputc","fputchar", "fseek","get","putch","putc","printf","open","putchar", "puts","read","scanf","abs","acos","asin","math","atan", "atan2","atof","atoi","ato1","ceil","dos","cosh",ecvt", "exp","fabs","floor","fmod","frexp","itoa","labs","ldexp", "log","log10","modf","pow","rand","sin","sqrt","srand", "strtod","strlol","tan","tanh","ultoa","memset","strcpy", "strcat","strchr","strcmp","calloc","isalnum","isalpha", "toascii","tolower","tollpper","exit"};/*C 主要预定义函数 列表*/ char*Others="_";/* ?_?也可以用于关键字,但我们不推荐您使 用!*/ int WordLength,i; char*WordTemp; WordLength=strlen(CheckWor D.; /*检查标识符命名原则 1*/ if((isalpha(CheckWord[0])==0)&&(CheckWord[0]!=Others [0])) return ErrorMessages[1]; /*检查标识符命名原则 2*/ for(i=0;i<WordLength;i++) if((isalnum(CheckWord i] [ ==0)&&(CheckWord i] [ !=Others [0] )) return ErrorMessages[2]; /*检查标识符命名原则 3*/ for(i=0;i<44;i++) { if(!strcmp(CheckWord,KeyWords[i])) return ErrorMessages[3]; } /*检查标识符命名原则 4*/ for(i=0;i<69;i++)

{ if(!strcmp(CheckWord,Functions[i])) return ErrorMessages[4]; } return ErrorMessages[0]; } (1)参照 QESAT/C 软件分析与测试工具的规定,画出程序中所有函 数的控制流程图;(11 分) (2)设计一组测试用例,使该程序所有函数的语句覆盖率和分支覆 盖率尽量达到最大。 如果认为该程序的语句覆盖率或分支覆盖率无 法达到 100%,需说明为什么。(9 分)




友情链接: