视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
2008年9月计算机四级软件测试工程师真题试卷(题后含答案及解析)
2025-10-06 11:51:54 责编:小OO
文档
2008年9月计算机四级软件测试工程师真题试卷 (题后含答案及解析)

题型有:1. 选择题 2. 论述题 

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

1. CMU SEI的watts Humphrey指出:软件产品必须首先提供用户所需要的______。

A.性能

B.人机界面

C.可靠性

D.功能

正确答案:D

解析:软件质量是产品、组织和体系或过程的一组固有特性,反映它们满足顾客和其他相关方面要求的程度。如CMU SEI的Watts Humphrey指出:“软件产品必须提供用户所需的功能,如果做不到这一点,什么产品都没有意义。其次,这个产品能够正常工作。如果产品中有很多缺陷,不能正常工作,那么不管这种产品性能如何,用户也不会使用它。”  

2. Myers在1979年提出了一个重要观点,即软件测试的目的是为了______。

A.证明程序正确

B.查找程序错误 

C.改正程序错误

D.验证程序无错误

正确答案:B

解析:Glenford J. Myers于1979年给出测试的定义为:软件测试是为发现错误而执行的一个程序或者系统的过程。同时他给出了三个关于测试的重要观点:   测试是为了证明程序有错,而不是证明程序正确。   一个好的测试用例在于它能发现以前未发现的错误。   一个成功的测试是发现了以前未发现的错误的测试。  

3. 在代码检查过程中发现大部分错误的人通常是______。

A.程序员

B.测试员

C.审查者

D.架构师

正确答案:A

解析:在代码检查进行时,主要进行两项活动:①由程序编码人员逐条语句讲述程序的逻辑结构。在讲述中,很可能是程序编码人员本人而不是其他小组成员发现了大部分错误,换句话说,对着大家大声朗读程序,这种简单的做法看来是一个非常有效的错误检查方法。②对照常见编码错误列表分析程序。协调人负责确保检查会议的讨论高效地进行,每个参与者都将注意力集中于查找错误而不是修正错误。  

4. 以下哪一种选项不属于软件缺陷?______。

A.软件没有实现产品规格说明所要求的功能

B.软件中出现了产品规格说明不应该出现的功能

C.软件实现了产品规格说明没有提到的功能

D.软件实现了产品规格说明所要求的功能但因受性能而未考虑可移植性问题

正确答案:D

解析:所谓“缺陷(bug)”,即为计算机软件或程序中存在的某种破坏正常运行能力的问题、错误或者隐藏的功能缺陷。软件缺陷的主要类型有:①软件没有实现产品规格说明要求的功能;②软件出现了不该出现的错误;③软件实现了说明没提到的功能;④软件没实现虽然规格说明中未明确提及但应实现的目标;⑤软件难理解,不易使用。  

5. 软件生存周期过程中,修改错误代价最大的阶段是______。

A.需求阶段

B.设计阶段

C.编程阶段

D.发布运行阶段

正确答案:D

解析:在软件测试原则中强调测试人员要在软件开发的早期进行测试,如需求分析阶段就应该介入,问题发现的越早越好。发现缺陷后要尽快修复缺陷,因为随着产品开发工作的进行,一个小错误会扩散成大错误,为了修改后期的错误所作的工作要大得多,即越到后来往前返工也越远,缺陷发现或解决得越迟,成本就会越高。Boehm在书中明确指出,修正错误的代价不是随时间线性增长,而几乎是呈指数增长的。  

6. 以程序内部的逻辑结构为基础的测试用例设计技术属于______。

A.灰盒测试

B.数据测试

C.黑盒测试

D.白盒测试

正确答案:D

解析:白盒测试又称为逻辑驱动测试,这种测试策略是对程序的逻辑结构进行检查,从中获取测试数据。所以说白盒测试是一种以程序内部的逻辑结构为基础的测试用例设计技术。  

7. 软件验证和确认理论是测试过程的理论依据,其中验证是检查我们是否正在正确地建造一个产品,它强调的是______。

A.过程的正确性

B.产品的正确性

C.测试的正确性

D.规格说明的正确性

正确答案:A

解析:软件验证和确认理论是测试过程的理论依据,验证是检查软件开发的各个阶段过程活动的结果是否满足规格说明的描述,证实各阶段和阶段之间的逻辑协调性、完备性和正确性。确认是证实在一个给定的外部环境中软件的逻辑正确性,即是否满足用户的要求。Bohem给出了一个经典定义:验证是检查我们是否正在正确地建造一个产品,它强调的是过程的正确性。而确认是检查我们是否在建成一个正确的产品,它强调的是产品的正确性。  

8. 下面是一个对整数数组A中的前n个元素求最小值的C程序,函数返回最小元素的位置。    Int minValue(int A[],int n){    int k=0:    for(int j=1;j<=n-1;j++)    if(A[j]<a[k])k=j; return k:    当n=4时,程序中可能的执行路径数为______。

A.2

B.4

C.8

D.16

正确答案:B

解析:当N=4时,程序中的循环一共执行三次,这样就有三个判定结点,所以需要四个基本的测试用例。  

9. 单元测试时,调用被测模块的是______。

A.桩模块

B.通信模块

C.驱动模块

D.代理模块

正确答案:C

解析:增量测试策略首先要对程序的每个程序单元或程序部件单独进行测试,这种测试便是单元测试,也称模块测试或部件测试。在单元测试时,程序员必须编写一个驱动模块,用来调用被测模块并向其传送测试数据,若该模块调用了其他模块,程序员必须编写一个桩模块,用来代替被调用的模块。  

10. 大突击测试把所有的模块一次性集成为一个完整的系统后进行测试,很容易______。

A.通过测试

B.整体测试

C.快速查错

D.快速排错

正确答案:B

解析:大突击测试与增量测试不同,它是把所有的模块一次性集成为一个完整的系统后进行完全测试,所有东西都集成到一起测试,很容易整体测试,也容易导致整个崩溃。大突击测试的优点是无须编写桩模块和驱动模块代码。不足有两点:一是要找出导致失效的原因很困难;二是一个模块中存在的缺陷还可能妨碍其他模块的测试。   

11. 以下关于软件性能的说法中,正确的是______。

A.软件性能与该软件的实现算法无关

B.软件的吞吐量越大,其平均响应时间总是越短

C.给软件的可用资源越少,其平均响应时间越短

D.对于一个网络,其支持的同时发送请求的用户数越大,该网站的性能越好

正确答案:D

解析:软件性能指标主要有响应时间、系统响应时间和应用延迟时间、吞吐量、并发用户数、资源利用率五种。软件实现的算法与系统响应时间和应用延迟时间是直接相关的,所以软件的性能也必定与实现算法是有关系的。吞吐量是指系统在单位时间内处理请求的数量,对于无并发的应用系统而言,吞吐量是与响应时间严格的反比关系,但对于其他系统则不一定。资源数量与平均响应时间没有直接关系,因为在具体一个时间点,所占用的资源往往并不多,即若处理单个请求,在每个时间点都可能会有许多资源被闲置,当处理多个请求时,平均响应时间也与资源调配是否合理有关,与资源数量没有直接关系。另外,并发用户数是性能的一个重要指标,所以选项D“对于一个网络,其支持的同时发送请求的用户数越大,该网站的性能越好”,说的就是这点,完全正确。  

12. 以下关于Web应用软件测试的说法中,错误的是______。

A.数据完整性测试是Web应用软件数据层测试的一项重要内容

B.内容测试是Web应用软件易用性测试的一项重要内容

C.表单测试是Web应用软件功能测试的一项重要内容

D.客户端内容安全性的测试是Web应用软件安全性测试的一项重要内容

正确答案:B

解析:Web应用软件数据层测试包括两个方面:一是数据完整性的测试,二是大数据量数据库的性能测试,故选项A说法正确。Web应用软件功能测试通常针对链接测试、表单测试和Cookie测试三个方面进行,故选项C说法正确。Web应用软件安全性测试主要包括服务器端的内容安全性、客户端的内容安全性和Cookie-安全性三个方面,由此选项D说法正确。内容测试和易用性测试都是Web应用软件的测试策略,不具有从属关系,故选项B说法错误。  

13. 以下哪种软件测试属于软件性能测试的范畴?______。

A.接口测试

B.压力测试 

C.单元测试

D.易用性测试 

正确答案:B

解析:依据测试目标不同,可以把软件性能测试及与性能有关的其他测试分为以下几类:①性能测试(Performance Testing);②并发测试(Coneurrency Testing);③压力测试(Stress Testing);④可靠性测试(Reliability Testing);⑤负载测试(Load Testing);⑥配置测试(Configuration Testing);⑦失效恢复测试(Recovery Testing)。  

14. 以下分析技术中,哪一种技术不属于基于性能计数器的分析技术?______。

A.内存分析

B.处理器分析

C.通信中断分析

D.进程分析

正确答案:C

解析:性能计数器是指与性能有关的资源利用率指标,基于性能计数器的分析技术有内存分析、处理器分析、磁盘I/O分析、进程分析。  

15. 以下哪一项不属于Web应用软件表示层测试关注的范畴?______。

A.排版结构的测试

B.链接结构的测试

C.浏览器兼容性的测试

D.应用服务器兼容性测试

正确答案:D

解析:Web应用软件表示层的测试主要集中在客户端,测试的内容包括:排版结构的测试;链接结构的测试;客户端程序的测试:浏览器兼容性测试。  

16. 以下关于软件可靠性测试的说法中,正确的是______。

A.定义软件运行剖面是软件可靠性测试的重要步骤

B.软件可靠性测试使用的测试用例应该满足分支覆盖

C.软件可靠性测试可以在单元测试中实施

D.软件可靠性预测模型的作用是指导软件可靠性测试中的测试用例生成

正确答案:A

解析:软件可靠性测试过程包括五个步骤:①确定可靠性目标;②定义软件运行剖面;③设计测试用例;④实施可靠性测试;⑤分析测试结果。所以说定义软件运行剖面是软件可靠性测试的重要步骤,故选项A正确。  

17. 以下关于面向对象软件测试的说法中,正确的是______。

A.面向对象软件的白盒测试不能不加改变地照搬传统软件的白盒测试准则

B.对于一个类的测试,一个测试用例只能包含对该类的一个方法的一次调用

C.面向对象软件测试不考虑对一个类中的单个方法的测试

D.面向对象软件测试不必考虑对继承关系的测试 

正确答案:A

解析:面向对象软件开发与传统的结构化软件开发在分析和设计的视角、系统开发的过程和工作制品的组织和表示等方面都有很大不同,因此在测试方面也有其自己的特点,所以面向对象软件的白盒测试不能简单的、不加改变的照搬传统软件的白盒测试准则,所以A正确。面向对象软件具有封装、继承和多态三个特点,这些特点都可能为面向对象软件测试带来困难,面向对象要考虑继承关系和对类中单个方法的测试这是显然的,由于多态的特点,对一个类的测试,一个测试用例包含对该类几个方法的多次调用都是可能的。  

18. 以下哪一项不属于兼容性测试关注的范畴?______。

A.服务器端是否同时支持浏览器和专用客户端的访问

B.软件是否同时支持数据库的不同版本

C.软件是否支持以前版本的数据格式

D.软件是否可以在不同的J2EE应用服务器上运行

正确答案:A

解析:所谓兼容性测试,是指针对软件对其运行环境的依赖进行测试,以验证软件是否能够在所有期望的环境中运行。通常,兼容性测试主要考虑硬件、软件和数据三个方面。其中硬件兼容性测试具体内容有:①与整机的兼容性;②与板卡及外设的兼容性。软件兼容性测试通常考虑以下几个方面:①与操作系统的兼容性;②与数据库的兼容性;③与浏览器的兼容性;④与中间件的兼容性;⑤与其他软件的兼容性;⑥与平台软件的兼容性。数据兼容性主要包括两类:①不同版本间的数据兼容性;②不同软件间的数据兼容性。选项B应属于与数据库的兼容性,选项C属于不同版本间的数据兼容性,选项D属于与基于J2EE的中间件的兼容性,这些都属于兼容性测试考虑的范畴。  

19. 以下哪一项属于功能易用性测试关注的范畴?______。

A.软件提供的功能是否丰富

B.当执行耗时较长的任务时,软件是否能定时向用户提示当前任务完成的进度

C.软件是否能够在多种操作系统环境下运行

D.软件是否能在不同的硬件配置下运行

正确答案:B

解析:功能易用性是指用户能否方便、快速、准确地使用软件提供的功能来完成需要完成的任务。由于功能易用性与用户的主观感受十分密切,功能易用性测试通常需要有用户参与,甚至要求由用户担任测试人员,一般功能易用性测试涉及面很广,其主要内容有:①业务符合度;②功能定制性;③功能的关联度;④数据的共享度;⑤用户约束的合理性;⑥反馈的及时性。其中反馈的及时性问题通常包括两个方面:软件能否提供有效反馈;软件能否在执行耗时较长的操作期间提供反馈。  

20. 以下关于面向对象程序集成测试的说法中,正确的是______。

A.大突击集成是一种综合运用自底向上集成与自顶向下集成的测试策略

B.自底向上集成测试比自顶向下集成测试需要开发的代码更多

C.协作集成是指将可以协作完成特定系统功能的类集成在一起进行测试

D.与自底向上集成和自顶向下集成相比,基于集成是一种更充分的集成测试策略

正确答案:C

解析:大突击集成是将系统的所有组成成分一次性集成到一起进行测试,是非增量式集成测试。而自底向上集成与自顶向下集成都是增量式集成测试,三者都是传统软件测试中很常用的集成测试策略。协作集成就是在集成测试时,针对系统完成的功能,将可以相互协作完成特定功能的类集成在一起进行测试。基干集成从某种角度讲,是集中了自底向上集成、自顶向下集成和大突击集成三者的优点,更适合大型复杂项目的集成,但若对于代码质量要求高,人力资源比较充足的项目,自底向上集成应该会更好。三种集成方法在测试充分性上比较应该视项目不同也不同。  

21. 测试过程的四项基本活动是测试策划、测试设计、测试总结和______。

A.测试执行

B.测试报告

C.测试度量

D.测试需求

正确答案:A

解析:软件测试过程包括四项基本活动:测试策划、测试设计、测试执行和测试总结。正常情况下,这些测试活动顺序开展并出现在所有测试阶段中。  

22. 下列有关测试过程管理的基本原则,哪个是错误的?______。

A.测试过程管理应该首先建立测试计划

B.测试需求在测试过程中可以是模糊的、非完整的

C.在测试任务较多的情况下,应该建立测试任务的优先级来优化处理 

D.整个测试过程应该具有良好的可测性和可跟踪性,强调以数据说话

正确答案:B

解析:软件测试过程管理的原则有八个:①有关测试需求;②测试计划先行;③建立任务优先级;④建立客观的评估标准;⑤尽早测试;⑥全面测试;⑦全过程测试;⑧的、迭代的测试。  

23. 下列哪个选项不属于测试计划要达到的目标______。

A.为测试各项活动制定一个现实可行的、综合的计划,包括每项测试活动的对象、范围、方法、进度和预期结果

B.为项目实施建立一个组织模型,并定义测试项目中每个角色的责任和工作内容

C.为测试执行活动设计测试方案,编制测试用例

D.确定测试需要的时间和资源,以保证其可获得性和有效性

正确答案:C

解析:制定测试计划,要达到的目标有:①为测试各项活动制定一个现实可行的、综合的计划,包括每项测试活动的对象、范围、方法、进度和预期结果;②为项目实施建立一个组织模型,并定义测试项目中每个角色的责任和工作内容;③开发有效的测试模型,能正确地验证正在开发的软件系统;④确定测试所需要的时间和资源,以保证其可获得性和有效性;⑤确立每个测试阶段的测试完成及测试成功的标准和要实现的目标;⑥识别出测试活动的各种风险,并消除可能存在的风险,降低那些无法消除的风险所带来的损失。  

24. 软件测试管理包括测试过程管理、配置管理以及______。

A.测试评审管理

B.测试用例管理

C.测试计划管理

D.测试实施管理

正确答案:A

解析:计算机软件测试规范规定,软件测试管理包括测试过程管理、配置管理和测试评审管理。  

25. 以下说法中错误的是______。

A.软件配置项测试的目的是检验软件配置项与软件需求规格说明的一致性

B.软件配置项测试一般由软件供方组织,由于软件开发的人员实施,软件开发人员配合

C.软件配置项测试要求被测软件配置项已通过单元测试和集成测试

D.软件配置项测试不得委托第三方实施

正确答案:D

解析:计算机软件测试规范规定,软件测试可分为:单元测试、集成测试、配置项测试、系统测试和验收测试。其中配置项测试的目的是检验软件配置项和软件需求规格说明是否一致。配置项测试的技术依据是软件需求规格说明(含接口需求规格说明),一般由软件供方组织,由于软件开发的人员实施,软件开发人员配合。若配置项测试委托第三方实施,一般应委托国家认可的第三方测试机构。软件配置项测试要求被测软件配置项已通过单元测试和集成测试。  

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

26. 一个系统的登录操作规格说明如下:   登录对话框有两个数据输入:用户名和密码,登录操作对两个输入数据进行检查,要求用户名中只能包含字母和数字(字母不区分大小写),密码可以包含任何字符,用户名和密码都不能为空且长度不限。当用户名或密码为空时,则登录失败并提示对应的出错信息;当用户名不正确或用户名不存在的或密码错误时,则登录失败并提示以下三种相应的出错信息:用户名不合法(即包含有非字母、非数字字符),或用户名不存在,或密码错误;当用户名和密码都正确时,则显示登录成功信息,完成登录。   假设正确的用户名是abcd123,密码是123456。   使用等价类方法为上述规格说明设计等价类表。

正确答案:设计等价类   

27. 针对一下C语言程序,请按要求回答问题。   已知weekday. c源程序如下:   #include<stidio. 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;   }   (1) 画出主函数main的控制流程图;   (2) 设计一组测试用例,使main函数的语句覆盖率尽量达到100%;   (3) Main函数的语句覆盖率能否达到100%?如果认为无法达到,需说明原因。 

正确答案:   [path1]1,2   [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]1 3,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 erroi”   path6.输入数据f,输出结果“friday”   path7.输入数据m,输出结果“monday”   path8.输入数据t,输出结果“输入第二个字母”   path9.输入数据t后,输入数据u,输出结果“tuesday”   path10.输入数据t后,输入数据h,输出结果“thursday”   path11.输入数据t后,输入数据非u非h,输出结果“data crror”   pathl2.输入数据w,输出结果“Wednesday”’   path13.输入数据defalt,输出结果“data error”  

28. 不能达到100%,一些的路径如此程序中的[输入],往往不是完全孤立的,有时候它是程序正常的控制流的一部分,这是这些路径的测试可以是另一条路径测试的部分。某邮件系统测试项目中的测试执行阶段按计划在5天后结束,将进入测试总结阶段。测试管理人员通过QEsuite web Version 1.0测试过程管理工具观察到以下测试项目信息:请依据以上表格中的内容,说明在测试用例设计和测试用例执行两方面存在的问题,并简要指明原因。

正确答案:子系统下安装功能区域未指明,客户端管理功能区域没有设计测试用例,邮件系统的功能设置测试用例未执行完,其中还有五个用例未执行。   测试用例设计存在问题,功能区域划分不详细,客户端管理的测试用例没有覆盖到,用例覆盖不全面。测试执行存在问题:存在未执行的用例。  

29. 已知软件问题处理状况如下:   测试项目当前处在“待验”状态的软件问题有307个,处在“新建”状态的软件问题有35个,处在“打开”状态的软件问题有243个,测试组的软件问题处理能力是70个软件问题/工作日,开发组处理问题的能力是40个软件问题/工作日。   请根据测试执行阶段剩余的天数与软件问题处理状况信息,说明开发和测试组在软件问题处理方面存在的问题,并简要指明原因。

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

显示全文
专题