1、计算机四级软件测试工程师-89 及答案解析(总分:79.00,做题时间:90 分钟)一、选择题(总题数:25,分数:49.00)1.下列关于测试团队的说法中,不正确的是_。(A) 测试团队的组织方式由测试团队的规模、具体任务和技术来决定(B) 如果测试团队规模较大,则测试工程师分为 3 个层次:初级测试工程师、测试工程师和资深测试工程师(C) 建立、组织和管理一支优秀的测试团队是做好软件测试工作的基础,也是最重要的工作之一(D) 发现系统的缺陷是测试工作的目的,但不是测试团队工作的核心目标(分数:2.00)A.B.C.D.2.走查的最主要目标有发现缺陷、遗漏和矛盾的地方改讲产品考虑可替换的实现
2、方法A) 和 B) 和C) 和 D) 、和(分数:2.00)A.B.C.D.3.关于 Web 应用软件的特点描述,错误的是_。A基于无连接协议 B由内容驱动C开发周期较长,演变较慢 D完全性要求较高(分数:2.00)A.B.C.D.4.以下哪种测试属于面向对象程序集成测试考虑的范畴?_。A) 针对一个类的多个成员方法间协作的测试B) 针对一个成员方法的不同输入情况的测试C) 针对多个类的多个实例间协作的测试D) 针对一个类树上多个类间继承的测试(分数:2.00)A.B.C.D.5.下列关于测试策略,说法错误的是 _。A自底向上测试的优点是随着上移,驱动模块逐步减少,测试开销小一些B自顶向下测试
3、的优点是较早的发现高层模块接口、控制等方面的问题C自底向上测试的优点是比较容易设计测试用例D自顶向下测试的优点是使得低层模块的错误较早发现(分数:1.00)A.B.C.D.6.集成测试时,能够较早发现高层模块接口错误的测试方法是A) 自底向上渐增式测试方法 B) 自顶向下渐增式测试方法C) 非渐增式测试方法 D) 系统测试方法(分数:2.00)A.B.C.D.7.压力测试(stress Testing)又称强度测试,其目标是_。A) 测试各种资源在超负荷的情况下的运行情况B) 检测系统可以处理目标内确定的数据容量C) 度量系统的性能和预先定义的目标有多大差距D) 验证系统从软件或者硬件失效中恢
4、复的能力(分数:2.00)A.B.C.D.8.测试子类中多态方法的实现是否保持了父类对该方法的规格说明的策略是 _。A不变式边界测试 B模态类测试C非模态类测试 D多态服务测试(分数:2.00)A.B.C.D.9.管理评审主要是评价管理体系的 _。A适应性 B充分性C有效性 D以上全部(分数:2.00)A.B.C.D.10.对于缺陷分析,下面不属于常用缺陷参数的是 _。A状态 B年龄C严重性 D起源(分数:2.00)A.B.C.D.11.大多数实际情况下,性能测试的实现方法是_。A) 黑盒测试 B) 白盒测试 C) 静态分析 D) 可靠性测试(分数:2.00)A.B.C.D.12.可能给项目成
5、本、进度和质量带来坏的影响的事情被称作_。(A) 灾难(B) 意外(C) 风险(D) 缺陷(分数:2.00)A.B.C.D.13.Myers 提出的软件缺陷的群集现象指的是_。A) 在软件测试过程中,缺陷不会少量出现,而会成群出现B) 在测试一个功能部件的过程中,通常一次会发现很多缺陷C) 在测试的各个功能部件中,一般不是没有发现缺陷,就是发现许多缺陷D) 一个功能部件已发现的缺陷越多,找到它的更多未发现的缺陷的可能性就越大(分数:2.00)A.B.C.D.14.如果一个判定中的复合条件表达式为(A10)or(B=7),则为了达到 100%的判定覆盖率,至少需要设计多少个测试用例 _。A1 个
6、 B2 个C3 个 D4 个(分数:2.00)A.B.C.D.15.下列选项中不属于覆盖率对软件测试作用的是_。A得知测试是否充分B了解测试的弱点在哪些方面C指导设计能够增加覆盖率的测试用例D协助找出代码中的语法错误(分数:2.00)A.B.C.D.16.以下属于功能易用性测试关注范畴的一项是_。A软件提供的功能是否丰富B当执行耗时较长的任务时,软件是否能定时向用户提示当前任务完成的进度C软件是否能够在多种操作系统环境下运行D软件是否能在不同的硬件配置下运行(分数:2.00)A.B.C.D.17.没有真确修复的缺陷,需要进一步修复的缺陷是_。(A) New More Info(B) Defer
7、red-Next Build(C) Deferred-Mext Main Release(D) Reopen(分数:2.00)A.B.C.D.18.下列不属于基于接几测试的是A) 边界测试 B) 输入域测试C) 输出域测试 D) 特殊值测试(分数:2.00)A.B.C.D.19.下列有关黑盒测试的叙述中,错误的是A) 黑盒测试是在不考虑源代码的情形下进行的一种软件测试方法B) 最好由测试人员、最终用户和开发人员组成的团队来实施黑盒测试C) 黑盒测试主要是通过对比和分析实测结果和预期结果来发现它们之间的差异,所以黑盒测试又称为“数据驱动”测试D) 数据流测试是一种黑盒测试方法(分数:2.00)A
8、.B.C.D.20.下列选项中属于专用的应用服务器的是A) IBM 公司开发的 WebSpereB) 微软公司开发的 MTS(Microsoft Transaction Server)C) BEA 公司开发的 WebLogicD) Oracle 公司开发的 Oracle 9i Application Server(分数:2.00)A.B.C.D.21.下列选项中,属于软件性能测试的目标的是A) 检查用户界面是否易用 B) 检查软件的容错能力C) 发现软件功能的缺陷 D) 发现软件的安全漏洞(分数:2.00)A.B.C.D.22.下列测试用例设计中既适用于失效恢复测试用例设计又适用于健壮性测试用
9、例设计的方法为_。A) 规范导出法 B) 错误猜测法 C) 基于故障的测试 D) 基于风险的测试(分数:2.00)A.B.C.D.23.在面向对象软件的基干集成测试策略中,将基干中的模块形成基干子系统使用的集成方式是_。A) 大突击集成方式 B) 自底向上集成方式C) 自顶向下集成方式 D) 综合集成方式(分数:2.00)A.B.C.D.24.下列测试工具不属于按测试方法进行分类的是A) 黑盒测试工具 B) 测试管理工具C) 白盒测试工具 D) 灰盒测试工具(分数:2.00)A.B.C.D.25.下列有关软件测试设计的说法中,正确的是_。A) 测试方案应考虑是否可行、是否有效和是否能够达到预期
10、的测试目标B) 基于判定表的测试用例设计方法是白盒测试用例设计方法C) 测试方案设计中可以忽略软件系统的实际使用环境D) 测试开发不是测试用例设计的工作内容(分数:2.00)A.B.C.D.二、论述题(总题数:2,分数:30.00)以下是软件规格说明,请按照要求回答问题。某学校的学生公寓有 14 栋楼,用 AN 十四个大写字母的其中一个代表楼号,每栋楼的层数为 6 层,用16 六个数字表示。每层楼有 40 个房间,编号为 0140。具体表示一个宿舍房间时,用一个字母加三位数字表示,例如:“E612”代表 E 楼的第六层的 12 房间。软件运行时,如果输入的房间号不在上述范围内,将不予接受,并显
11、示输入无效。(分数:20.00)(1).请根据说明,划分等价类。(分数:10.00)_(2).使用等价类划分方法为该软件设计测试用例。(分数:10.00)_26.已知 C 源程序如下:/*Input todays date,output tomorrows date * /* version 2 * /#includestdio. hstruct ydateint day; int month; int year;int leap(struct ydate d)if(d. year%4=0d. year%100 ! =0)|(d. year%400=0)return 1;elsereturn
12、0;int numdays(struct ydate d)int day;static int daytab=31,28,31,30,31,30,3l,31,30,31,30,31;if(1eap(d)d. month=2)day=29;elseday=daytabEd. month-1;return day;int main(void)struct ydate today,tomorrow;printf(“format of date is:year,month,day 输入的年、月、日之间应用逗号隔开/n);printf(“ today is:“);scanf(“%d,%d%“,&toda
13、yyear,&todaymonth,&todayday);while(0=today. year| today. year65535|0=today. month|today. month12)|0=today. day|today. daynumdays(today)printf(“input date error!reenter the day!/n“);printf(“ today is:“);scanf(“%d,%d,%d“,today. year,&todaymonth,today. day);if(today. day!=numdays(today)tomorrow. year=t
14、oday. year;tomorrow. month=today. month;tomorrow. day=today. day+1;else if(todaymonth=12)tomorrow. year=today. year+1;tomorrow. month=1;tomorrow. day=1;elsetomorrow. year=today. year;tomorrow. month=today. month+1:tomorrow.day=1;printf(“tomorrow is:%d,%d,%d/n/n“,tomorrow. year,tomorrow. month,tomorr
15、ow. day);(1) 画出程序中所有函数的控制流程图;(2) 设计一组测试用例,使该程序所有函数的语句覆盖率和分支覆盖率均能达到 100%。如果认为该程序的语句或分支覆盖率无法达到 100%,需说明为什么。(分数:10.00)_计算机四级软件测试工程师-89 答案解析(总分:79.00,做题时间:90 分钟)一、选择题(总题数:25,分数:49.00)1.下列关于测试团队的说法中,不正确的是_。(A) 测试团队的组织方式由测试团队的规模、具体任务和技术来决定(B) 如果测试团队规模较大,则测试工程师分为 3 个层次:初级测试工程师、测试工程师和资深测试工程师(C) 建立、组织和管理一支优秀
16、的测试团队是做好软件测试工作的基础,也是最重要的工作之一(D) 发现系统的缺陷是测试工作的目的,但不是测试团队工作的核心目标(分数:2.00)A.B.C.D. 解析:2.走查的最主要目标有发现缺陷、遗漏和矛盾的地方改讲产品考虑可替换的实现方法A) 和 B) 和C) 和 D) 、和(分数:2.00)A.B.C.D. 解析:解析 走查的最主要目标是发现缺陷、遗漏和矛盾的地方,改进产品以及考虑可替换的实现方法。3.关于 Web 应用软件的特点描述,错误的是_。A基于无连接协议 B由内容驱动C开发周期较长,演变较慢 D完全性要求较高(分数:2.00)A.B.C. D.解析:解析 所谓 Web 应用软件
17、,就是 Browser/Server(B/S)结构的软件,其特点是基于无连接协议,内容驱动,开发周期短,演化频繁,安全性要求高,美观性要求较高。4.以下哪种测试属于面向对象程序集成测试考虑的范畴?_。A) 针对一个类的多个成员方法间协作的测试B) 针对一个成员方法的不同输入情况的测试C) 针对多个类的多个实例间协作的测试D) 针对一个类树上多个类间继承的测试(分数:2.00)A.B.C. D.解析:解析 A、B、D 都是面向对象中单元测试所考虑的范畴。集成策略需要关注如何充分测试类间的各种链接,C 属于集成测试考虑的范畴。5.下列关于测试策略,说法错误的是 _。A自底向上测试的优点是随着上移,
18、驱动模块逐步减少,测试开销小一些B自顶向下测试的优点是较早的发现高层模块接口、控制等方面的问题C自底向上测试的优点是比较容易设计测试用例D自顶向下测试的优点是使得低层模块的错误较早发现(分数:1.00)A.B.C.D. 解析:解析 自顶向下测试的优点应该是使得顶层模块的错误较早发现。6.集成测试时,能够较早发现高层模块接口错误的测试方法是A) 自底向上渐增式测试方法 B) 自顶向下渐增式测试方法C) 非渐增式测试方法 D) 系统测试方法(分数:2.00)A.B. C.D.解析:解析 由自顶向下测试的特点可知,该集成测试方法是能够较早发现高层模块接口错误的。7.压力测试(stress Testi
19、ng)又称强度测试,其目标是_。A) 测试各种资源在超负荷的情况下的运行情况B) 检测系统可以处理目标内确定的数据容量C) 度量系统的性能和预先定义的目标有多大差距D) 验证系统从软件或者硬件失效中恢复的能力(分数:2.00)A. B.C.D.解析:解析 压力测试又称强度测试,是在各种资源超负载的情况下观察系统运行情况的测试。压力测试常用的测试用例设计方法有:规范导出法、边界值测试、错误猜测法。8.测试子类中多态方法的实现是否保持了父类对该方法的规格说明的策略是 _。A不变式边界测试 B模态类测试C非模态类测试 D多态服务测试(分数:2.00)A.B.C.D. 解析:9.管理评审主要是评价管理
20、体系的 _。A适应性 B充分性C有效性 D以上全部(分数:2.00)A.B.C.D. 解析:10.对于缺陷分析,下面不属于常用缺陷参数的是 _。A状态 B年龄C严重性 D起源(分数:2.00)A.B. C.D.解析:11.大多数实际情况下,性能测试的实现方法是_。A) 黑盒测试 B) 白盒测试 C) 静态分析 D) 可靠性测试(分数:2.00)A. B.C.D.解析:解析 性能测试的目标是为了提高软件性能。对性能测试要判断出哪些模块执行得最多或者占用的机器时间最多,这些模块就将被重新检查、重新编写以便运行的更快。性能测试可以通过白盒或黑盒测试方法来测试,但在大多数实际情况下,人们都是使用黑盒测
21、试方法来实现性能测试。12.可能给项目成本、进度和质量带来坏的影响的事情被称作_。(A) 灾难(B) 意外(C) 风险(D) 缺陷(分数:2.00)A.B.C. D.解析:13.Myers 提出的软件缺陷的群集现象指的是_。A) 在软件测试过程中,缺陷不会少量出现,而会成群出现B) 在测试一个功能部件的过程中,通常一次会发现很多缺陷C) 在测试的各个功能部件中,一般不是没有发现缺陷,就是发现许多缺陷D) 一个功能部件已发现的缺陷越多,找到它的更多未发现的缺陷的可能性就越大(分数:2.00)A.B.C.D. 解析:解析 Myers 提出的软件缺陷的群集现象是指测试后程序中残余的错误数目与该程序中
22、已发现的错误数目成正比。即一个功能部件已发现的缺陷越多,找到它的更多未发现的缺陷的可能性就越大。14.如果一个判定中的复合条件表达式为(A10)or(B=7),则为了达到 100%的判定覆盖率,至少需要设计多少个测试用例 _。A1 个 B2 个C3 个 D4 个(分数:2.00)A.B. C.D.解析:解析 题目要求达到 100%的判定覆盖率,即要求所有的判定真假都至少执行一次,故我们取定(A=12,B=7)和(A=7,B=10)两组测试用例,即可满足题目要求。15.下列选项中不属于覆盖率对软件测试作用的是_。A得知测试是否充分B了解测试的弱点在哪些方面C指导设计能够增加覆盖率的测试用例D协助
23、找出代码中的语法错误(分数:2.00)A.B.C.D. 解析:解析 覆盖率是反映代码被测试程度的一种指标,不是一种测试技术,因此无法协助找出代码中的语法错误。代码中的语法错误一般在程序编译阶段就已经由编译器检查出来,并需要得到修正后代码才能正确编译。16.以下属于功能易用性测试关注范畴的一项是_。A软件提供的功能是否丰富B当执行耗时较长的任务时,软件是否能定时向用户提示当前任务完成的进度C软件是否能够在多种操作系统环境下运行D软件是否能在不同的硬件配置下运行(分数:2.00)A.B. C.D.解析:解析 功能易用性关注的范畴包括业务符合度、功能定制性、功能的关联度、数据的共享度及用户约束的合理
24、性,选项 B 属于功能测试的范畴。17.没有真确修复的缺陷,需要进一步修复的缺陷是_。(A) New More Info(B) Deferred-Next Build(C) Deferred-Mext Main Release(D) Reopen(分数:2.00)A.B.C.D. 解析:18.下列不属于基于接几测试的是A) 边界测试 B) 输入域测试C) 输出域测试 D) 特殊值测试(分数:2.00)A. B.C.D.解析:解析 基于接口的测试是根据模块和它们之间的关系特性选择测试数据。基于接口的测试可以从下面三个方面来考虑:输入域测试、特殊值测试和输出域测试。19.下列有关黑盒测试的叙述中,
25、错误的是A) 黑盒测试是在不考虑源代码的情形下进行的一种软件测试方法B) 最好由测试人员、最终用户和开发人员组成的团队来实施黑盒测试C) 黑盒测试主要是通过对比和分析实测结果和预期结果来发现它们之间的差异,所以黑盒测试又称为“数据驱动”测试D) 数据流测试是一种黑盒测试方法(分数:2.00)A.B.C.D. 解析:解析 数据流可看作是一种路径测试,它主要关注在一条路径上变量在何处定义,在何处使用,它是一种白盒测试方法。20.下列选项中属于专用的应用服务器的是A) IBM 公司开发的 WebSpereB) 微软公司开发的 MTS(Microsoft Transaction Server)C) B
26、EA 公司开发的 WebLogicD) Oracle 公司开发的 Oracle 9i Application Server(分数:2.00)A.B. C.D.解析:解析 应用服务器的分类目前还没有一个被广泛认可的标准,若从面向的领域角度划分,应用服务器可分为通用的应用服务器和专用的应用服务器,其中通用的应用服务器是指能够提供多方面的服务,从而支持多个领域应用的开发与运行的应用服务器,专用的应用服务器是指为特定领域的应用提供特定的一组服务的应用服务器。目前的通用服务器主要有 BEA 公司开发的 Tuxedo 和 WebLogic,IBM 公司开发的WebSpere,Oracle 公司开发的 Or
27、acle 9i Application Server Macromedia 公司开发的 JRUN 等,专用的应用服务器有微软公司开发的 MTs(Microsoft Transaction Server)。21.下列选项中,属于软件性能测试的目标的是A) 检查用户界面是否易用 B) 检查软件的容错能力C) 发现软件功能的缺陷 D) 发现软件的安全漏洞(分数:2.00)A.B.C. D.解析:解析 软件性能测试的目标是:发现缺陷、性能调优、能力检验与规划。22.下列测试用例设计中既适用于失效恢复测试用例设计又适用于健壮性测试用例设计的方法为_。A) 规范导出法 B) 错误猜测法 C) 基于故障的测
28、试 D) 基于风险的测试(分数:2.00)A.B. C.D.解析:解析 健壮性测试常用的测试用例设计方法有:故障插入测试、变异测试和错误猜测法。失效恢复测试常用的测试用例设计方法有:规范导出法、错误猜测法、基于故障的测试和基于风险的测试。所以选择 B 选项。23.在面向对象软件的基干集成测试策略中,将基干中的模块形成基干子系统使用的集成方式是_。A) 大突击集成方式 B) 自底向上集成方式C) 自顶向下集成方式 D) 综合集成方式(分数:2.00)A. B.C.D.解析:解析 面向对象软件的基干集成测试策略的具体测试步骤为:对基干中的每个模块进行孤立的、充分的测试;对基干中的所有模块进行一次性
29、集成,形成基干子系统,并使用一个驱动模块检查使用经过一次性集成的基干,此时采用的是大突击集成方式;对应用的控制子系统进行自顶向下的集成;集成基干和控制子系统,重新构造控制子系统;对各应用子系统采用自底向上的集成策略;集成基干子系统、控制子系统和各应用子系统,形成整个系统。基干集成的优点是集成了自底向上集成、自顶向下集成和大突击集成三者的优点,而对三者的缺点也进行了控制,更适合于大型复杂项目的集成。24.下列测试工具不属于按测试方法进行分类的是A) 黑盒测试工具 B) 测试管理工具C) 白盒测试工具 D) 灰盒测试工具(分数:2.00)A.B. C.D.解析:解析 测试工具可以从两个角度分类,根
30、据测试方法的不同,测试工具分为白盒测试工具、黑盒测试工具和灰盒测试工具;根据测试的对象和目的不同,测试工具分为单元测试工具、功能测试工具、负载测试工具、性能测试工具和测试管理工具等。25.下列有关软件测试设计的说法中,正确的是_。A) 测试方案应考虑是否可行、是否有效和是否能够达到预期的测试目标B) 基于判定表的测试用例设计方法是白盒测试用例设计方法C) 测试方案设计中可以忽略软件系统的实际使用环境D) 测试开发不是测试用例设计的工作内容(分数:2.00)A. B.C.D.解析:解析 软件测试设计的要点有:所设计的测试技术方案是否可行,是否有效和是否能达到预期的测试目标。所设计的测试用例是否完
31、整,边界条件是否考虑,其覆盖范围能达到多高。所设计的测试环境是否和用户的实际使用环境比较接近。关键是做好测试设计前的知识传递。由以上可知 A 说法正确。基于判定表的测试用例设计方法是黑盒测试用例设计方法,B 说法错误。测试环境应当和用户的实际使用环境比较接近,这样才能更好地进行测试,C 说法错误。测试开发是测试用例设计的一部分工作内容,D 项的说法与事实相反,不选。二、论述题(总题数:2,分数:30.00)以下是软件规格说明,请按照要求回答问题。某学校的学生公寓有 14 栋楼,用 AN 十四个大写字母的其中一个代表楼号,每栋楼的层数为 6 层,用16 六个数字表示。每层楼有 40 个房间,编号
32、为 0140。具体表示一个宿舍房间时,用一个字母加三位数字表示,例如:“E612”代表 E 楼的第六层的 12 房间。软件运行时,如果输入的房间号不在上述范围内,将不予接受,并显示输入无效。(分数:20.00)(1).请根据说明,划分等价类。(分数:10.00)_正确答案:(根据说明可得到 4 个有效等价类和 10 个无效等价类。输入条件有效等价类无效等价类宿舍号字符4 位(1)4位(2),4位数 (3)楼号(首字符)AN(4)OZ(5),非大写字母字符(6)层号(第二个字符)16(7)0(8),79(9),非数字字符(10)房间编号(后两个字符)0140(11)00(12),4199(13)
33、,非数字字符(14)解析:(2).使用等价类划分方法为该软件设计测试用例。(分数:10.00)_正确答案:(测试用例如下表所示:测 期 覆试数据望结果盖范围H437显示有效输入(1)(4)(7)(11)34显示无效输入(2)C2354显示无效输入(3)T521显示无效输入(5)8435显示无效输入(6)E015显示无效输入(8)J822显示无效输(9)入KB34显示无效输入(10)A100显示无效输入(12)D398显示无效输入(13)F6Y2显示无效输入(14)解析:26.已知 C 源程序如下:/*Input todays date,output tomorrows date * /* ve
34、rsion 2 * /#includestdio. hstruct ydateint day; int month; int year;int leap(struct ydate d)if(d. year%4=0d. year%100 ! =0)|(d. year%400=0)return 1;elsereturn 0;int numdays(struct ydate d)int day;static int daytab=31,28,31,30,31,30,3l,31,30,31,30,31;if(1eap(d)d. month=2)day=29;elseday=daytabEd. mont
35、h-1;return day;int main(void)struct ydate today,tomorrow;printf(“format of date is:year,month,day 输入的年、月、日之间应用逗号隔开/n);printf(“ today is:“);scanf(“%d,%d%“,&todayyear,&todaymonth,&todayday);while(0=today. year| today. year65535|0=today. month|today. month12)|0=today. day|today. daynumdays(today)printf
36、(“input date error!reenter the day!/n“);printf(“ today is:“);scanf(“%d,%d,%d“,today. year,&todaymonth,today. day);if(today. day!=numdays(today)tomorrow. year=today. year;tomorrow. month=today. month;tomorrow. day=today. day+1;else if(todaymonth=12)tomorrow. year=today. year+1;tomorrow. month=1;tomor
37、row. day=1;elsetomorrow. year=today. year;tomorrow. month=today. month+1:tomorrow.day=1;printf(“tomorrow is:%d,%d,%d/n/n“,tomorrow. year,tomorrow. month,tomorrow. day);(1) 画出程序中所有函数的控制流程图;(2) 设计一组测试用例,使该程序所有函数的语句覆盖率和分支覆盖率均能达到 100%。如果认为该程序的语句或分支覆盖率无法达到 100%,需说明为什么。(分数:10.00)_正确答案:(函数 leap 的流程图如下:函数 nLimdays 的流程图如下:main 函数的流程图如下(语句的具体内容已略去):)解析: