计算机等级 > 四级考试 > 软件测试工程师 > 文章内容

计算机等级考试四级软件测试工程师模拟试题四及答案解析

2017-6-9编辑:daibenhua

  一、选择题(1-25每题2分,共50分)

  下列各题A、B、C、D四个选项中,只有一个选项是正确的。请将正确选项填涂在答题卡相应位置上,答在试卷上不得分。

  1.下列关于缺陷产生原因的叙述中,不属于技术问题的是________。

  (A)文档错误,内容不正确或拼写错误

  (B)系统结构不合理

  (C)语法错误

  (D)接口传递不匹配,导致模块集成出现问题

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

  (A)证明程序正确

  (B)查找程序错误

  (C)改正程序错误

  (D)验证程序无错误

  3.不需要运行程序,通过收集有关代码的结构信息来对程序进行的测试的是________。

  (A)性能测试

  (B)黑盒测试

  (C)白盒测试

  (D)静态分析

  4.在软件生存周期中占据时间最长的是________。

  (A)运行和维护阶段

  (B)软件开发阶段

  (C)需求分析阶段

  (D)软件设计阶段

  5.使用白盒测试方法时,确定测试数据应根据________和指定的覆盖标准。

  (A)程序的复杂结构

  (B)程序的内部逻辑

  (C)使用说明书

  (D)程序的功能

  6.为提供集成测试的效果,软件的集成工作最好由________来承担。

  (A)该软件的设计人员

  (B)该软件的编程人员

  (C)该软件开发组的负责人

  (D)不属于该软件开发组的软件设计人员

  7.下列几种逻辑覆盖标准中,查错能力最强的是________

  (A)语句覆盖

  (B)条件覆盖

  (C)判定覆盖

  (D)条件组合覆盖

  8.下列关于测试策略,说法错误的是________。

  (A)自底向上测试的优点是随着上移,驱动模块逐步减少,测试开销小一些

  (B)自顶向下测试的优点是较早的发现高层模块接口、控制等方面的问题

  (C)自底向上测试的优点是比较容易设计测试用例

  (D)自顶向下测试的优点是使得低层模块的错误较早发现

  9.通常测试人员判定一个运行结果中存在缺陷的准则是________。

  (A)开发人员承认这个运行结果中存在缺陷

  (B)测试人员可以从中找出缺陷的证据

  (C)这个运行结果与测试案例中的预期结果不一致

  (D)这个运行结果与测试人员预期的不一致

  10.等价类划分和边界值分析是常用的两种黑盒测试方法,采用这两种方法,可以大幅度减少测试用例的数量,那么,它们的局限性是________。

  (A)在设计测试用例时不能将这两种方法结合在一起同时使用

  (B)不同输入变量之间可能存在约束关系,它们不能处理这类约束关系

  (C)不能用于大型信息系统的测试用例的设计

  (D)不能用于单元测试和集成测试

  11.下列关于测试方法,说法正确的是________。

  (A)白盒测试不同于黑盒测试之处是它可以减少测试用例数量

  (B)覆盖所有独立路径就能够覆盖所有分支

  (C)在单元测试中不使用黑盒测试技术

  (D)满足分支覆盖就满足条件覆盖和语句覆盖

  12.传统的集成测试策略一般分为两种:一是非渐增式集成策略,二是渐增式集成策略。二者的区别是________。

  (A)在集成测试中发现问题时,前者比后者更容易进行问题定位

  (B)后者比前者更适合大规模应用系统的集成测试

  (C)前者需要开发驱动模块和桩模块,而后者不需要

  (D)前者不需要所有模块就绪,而后者需要

  13.软件测试自动化是指利用好的测试工具以自动运行测试用例。软件测试自动化的好处在于________。

  (A)比手工测试发现更多的软件缺陷

  (B)可以自动产生测试计划 来源:www.examda.com

  (C)使输入值组合的覆盖率达到100%

  (D)可以在较少的时间内运行更多的测试用例

  14.下列选项中,评审方法是按照正式化程度逐渐增强排列的是________。

  (A)临时评审、轮查、结对评审、走查、正式审查

  (B)临时评审、走查、结对评审、轮查、正式评审

  (C)临时评审、走查、小组评审、结对评审、正式评审

  (D)正式评审、小组评审、走查、结对评审、临时评审

  15.下列关于软件性能测试的说法中,正确的是________。

  (A)性能测试的目的不是为了发现软件缺陷

  (B)压力测试与负载测试的目的都是为了探测软件在满足预定性能需求的情况下所能负担的最大压力

  (C)性能测试通常要对测试结果进行分析才能获得测试结论

  (D)在性能下降曲线上,最大建议用户数通常处于性能轻微下降区与性能急剧下降区的交界处

  16.软件可靠性分析方法通常不依赖于概率统计的方法,下面属于软件可靠性分析方法的是________。

  (A)失效模式影响分析法(FMEA法)

  (B)故障树和事件树分析法

  (C)潜在线路分析法

  (D)以上全部

  17.下列关于面向对象集成测试的说法中,正确的是________。

  (A)大突击集成是面向对象集成测试最常用且最有效的方法

  (B)自底向上集成和自顶向下集成都需要为集成测试开发大量代码

  (C)与自底向上集成和自顶向下集成相比,基干集成是一种更充分的集成测试策略

  (D)高频集成是以自底向上集成为基础,利用冒烟测试进行的集成测试

  18.对采用迭代或增量开发过程模型开发的产品进行集成测试时最适合采用的集成策略是________。

  (A)传统的集成测试策略

  (B)基于使用的集成测试策略

  (C)基干集成测试策略

  (D)高频集成测试策略

  19.对于Web应用软件系统测试技术,下列不属于功能测试的是________。

  (A)表单测试

  (B)并发测试

  (C)链接测试

  (D)Cookie测试

  20.关于易用性测试,说法错误的是________。

  (A)用户界面测试是软件易用性测试最重要的一项内容

  (B)对软件功能的动态关联进行测试可以通过检查菜单完成

  (C)使用软件的目的就是减少重复输入,减轻人工劳动,提高工作效率

  (D)检查和评估软件安装手册的正确性和易用性是安装性测试的重要内容

  21.关于内置式合约测试(BICT),下列说法错误的是________。

  (A)加了测试器构件和测试处理器构件,使被测构件具有自测试能力

  (B)该测试方法可用于动态、分布式系统

  (C)该测试方法的提出扩展了基于构件的软件工程实践

  (D)提出的模型驱动方法效率很高

  22.下列测试类型中,不是针对软件产品的质量特性的是________。

  (A)性能测试

  (B)安全性测试

  (C)易用性测试

  (D)回归测试

  23.下面有关测试设计的叙述,说法不正确的是________。

  (A)测试用例的设计是一项技术性强、智力密集型的活动

  (B)在测试用例设计时,只设计覆盖正常流程和操作的测试用例即可

  (C)在开展测试用例设计前,必须将测试需求进行详细展开

  (D)在一般的测试组织内,测试用例的评审可能不是正式的评审会

  24.测试项目实践中,测试策划活动的目标是________。

  (A)确定测试范围

  (B)划分测试任务

  (C)编写测试计划文档

  (D)组织测试团队

  25.下列属于QESAT/C的优点是________。

  (A)及早地发现程序中隐藏地错误

  (B)快捷有效地理解程序结构

  (C)帮助分析和测试程序

  (D)以上全部

  二、论述题 (1-1每题20分,2-2每题12分,3-3每题18分,共50分

  1.论述题1:以下是一软件规格说明,请按要求回答问题(20分)

  软件规格说明:某工厂招工规定,报名者年龄应该在16周岁到35周岁之间(到2005年12月31日为止),即出生年月不在上述范围内的人员将不予接受,并显示"年龄不合格"的出错信息。

  (1)请根据规格说明,划分等价类。(10分)

  (2)使用等价类划分方法为该软件设计测试用例。(10分)

  2.论述题2:以下是某"象棋中走马事件"应用程序的走马规则,请按要求回答问题(12分)

  以下是中国象棋中走马事件中的走马原则:

  1)如果落点在棋盘外,则不移动棋子。

  2)如果落点与起点不构成日字型,则不移动棋子。

  3)如果落点处有己方棋子,则不移动棋子。

  4)如果在落点方向的邻近交叉点有棋子(绊马腿),则不移动棋子。

  5)如果不属于(1)~(4)条,且落点处无棋子,则移动棋子。

  6)如果不属于(1)~(4)条,且落点处为对方棋子(非老将),则移动棋子并除去对方棋子。

  7)如果不属于(1)~(4)条,且落点处为对方老将,则移动棋子,并提示战胜对方,游戏结束。

  (1)画出该应用程序的因果图。(3分)

  (2)对该软件进行基于因果图的方法设计测试用例。(9分)

  3.论述题3:针对以下C语言程序,请按要求回答问题(18分)

  下面是一个程序段(C语言),试设计基本路径测试的测试用例,设计出的测试用例要保证每一个基本独立路径至少要执行一次。

  函数说明:当 i_flag=0; 返回 i_count+100

  当 i_flag=1; 返回 i_count*10

  否则 返回 i_count*20

  输入参数:int i_count int i_flag

  输出参数:int i_return

  程序代码如下:

  1 int Test(int i_count,int i_flag)

  2 {

  3 int i_temp=0;

  4 while(i_count>0)

  5 {

  6 if(0==i_flag)

  7 {

  8 i_temp=i_count+100;

  9 break;

  10 }

  11 else

  12 {

  13 if(1==i_flag)

  14 {

  15 i_temp=i_temp+10;

  16 }

  17 else

  18 {

  19 i_temp=i_temp+20;

  20 }

  21 }

  22 i_count--;

  23 }

  24 return i_temp;

  25 }

  (1)画出该函数的控制流程图。(8分)

  (2)采用基本路径测试法设计一组测试用例,保证每个基本独立路径都至少执行一次。(10分)

  一、选择题(1-25每题2分,共50分)

  1. B 2. B 3. D 4. A5. B

  6. B 7. D 8. D 9. C10. B

  11. B 12. B 13. D 14. C15. C

  16. D 17. B 18. D 19. B20. B

  21. D 22. D 23. B 24. C25. D

  二、论述题

  1.问题1:

  解答:

  根据题意,划分等价类。

  假定已知出生年月由六位数字字符表示,前四位代表年,后两位代表月,则可以划分三个有效等价类和七个无效等价类。具体如下:

  有效等价类:

  出生年月:

  (1)六位数字

  对应数值:

  (5)197003-198912

  月份对应数值:

  (8)在1-12之间

  无效等价类:

  出生年月:

  (2)含非数字字符

  (3)少于六个数字字符

  (4)多于六个数字字符

  对应数值:

  (6)小于197003

  (7)大于198912

  月份对应数值:

  (9)等于0

  (10)大于12

  问题2:

  解答:

  根据上述等价类划分,设计测试用例。

  有效等价类的测试用例,如下表所示:

  

  无效等价类的测试用例,如下表所示:

  2.问题1:

  解答:

  第一步,从中国象棋中走马事件中的走马原则的描述中,明确原因和结果。

  原因:

  1 落点在棋盘上。

  2 落点与起点构成日字。

  3 落点处无己方棋子。

  4 落点方向的邻近交叉点无棋子。

  5 落点处无棋子。

  6 落点处为对方棋子(非老将)。

  7 落点处为对方老将。

  结果:

  21.不移动棋子。

  22.移动棋子。

  23.移动棋子,并除去对方棋子。

  24.移动棋子,并提示战胜对方,结束游戏。

  第二步,根据上面分析的原因和结果,结合题目中二者的关系,建立因果图。

  其因果图如图???所示,图中,结点11是导出结果的进一步原因。

  第三步,标记约束。

  由于4种结果不能同时发生,所以在因果图上标记O(唯一)约束。由于原因5、6、7不能同时发生,所以在因果图上标出E(异)约束。

  问题2:

  解答:

  根据上面的因果图,建立对应的判定表。

  在该应用程序中,原因有7个,一个完整的判定表应有27=128种情况。由于篇幅的限制,且考虑到5、6、7原因只与中间结果11有关,所以这里将完整的判定表拆分为两个子表,下面两个表所示。对于结果22、23、24,中间结果是原因,因此在后一个表中,将11作为原因。

  

  由表可知,当结点11为1时,结果21为0。由于结果21、22、23、24受到O约束的限制,不能同时为0,所以在表17-13中的的2列是不能出现的情况;同样受到O约束的还有8、12、14和16列;由于E约束,第7、8、11到16列也是不可能出现的情况。在表中用灰框表示。

  最后根据判定表设计测试用例。判定表中没有被划去的每一列就是一个测试用例。

  3.问题1:

  解答:

  根据程序的源代码,容易画出对应的控制流图,如下图所示:

  (其中圈中的数字代表的是语句的行号)

  问题2:

  解答:

  第一步,根据上述控制流图计算该程序的环路复杂性。

  由图可以看出,判定节点数为3,边数为10,节点总数为8,故

  V(G)=10-8+2=4

  或V(G)=3+1=4

  第二步,根据环路复杂度为4,可确定4条基本独立路径。

  Path1:4-24

  Path2:4-6-8-24

  Path3:4-6-13-15-22-4-24

  Path4:4-6-13-19-22-4-24

  第三步,设计测试用例

  根据上面4条基本独立路径,可以设计测试用例如下:

  测试用例1:

  输入数据:i_flag=0, 或者是i_flag<0的某个值。

  预期输出结果:i_temp=0。

  测试用例2:

  输入数据:i_count=1, i_flag=0。

  预期输出结果:i_temp=101。

  测试用例3:

  输入数据:i_count=1, i_flag=1。

  预期输出结果:i_temp=10。

  测试用例4:

  输入数据:i_count=1, i_flag=2。

  预期输出结果:i_temp=20。

  但这些测试用例是可以简化的,由于路径path1是path4的真子集,所以path1是可以不要的。故针对该程序最少的测试用例数为3,即上述测试用例2,测试用例3,测试用例4。

  答案分析

  一、选择题

  1.分析:软件缺陷产生的原因大的方面讲主要有技术问题,团队合作,软件本身。该题

  考察大方面中的小问题,即对三方面划分的理解,显然选项A中文档的问题应该是属于软件本身的,而非技术问题。

  2.分析:Glenford J.Myers于1979年给出测试的定义为:软件测试是为发现错误而执行

  的一个程序或者系统的过程。同时他给出了三个关于测试的重要观点:

  测试是为了证明程序有错,而不是证明程序正确。 考试大(www.Examda。com)

  一个好的测试用例在于它能发现以前未发现的错误。

  一个成功的测试是发现了以前未发现的错误的测试。

  3.分析:软件测试的分类方法比较多,针对测试时是否要运行程序分为静态测试和动态

  测试,其中静态测试也称静态分析,是不必运行程序目的仅仅是收集程序代码的结构信息而不用查错,相反动态测试则是要执行程序,查出程序的错误非单纯收集代码结构信息。针对测试人员是否要清楚程序的内部逻辑,将测试分为白盒测试和黑盒测试,同时这两种测试方法都是要对程序进行查错,从这一角度,白盒测试和黑盒测试都应属于动态测试。由此本题D静态分析最恰当。

  4.分析:由于很多复杂因素的影响,软件开发组织投入到软件产品上的费用以及大多数时间都花在了软件完成并交付使用后对它的维护上,软件的运行和维护阶段可以说是软件生存周期中占据时间最长的阶段。

  5.分析:使用白盒测试方法时,确定测试数据应根据程序的内部逻辑和指定的覆盖标准。

  6.分析:为提供集成测试的效果,软件的集成工作最好由不属于该软件开发组的软件设计人员承担。

  7.分析:对于选项中的几种逻辑覆盖,查错能力最强的应该是条件组合测试。

  8.分析:自顶向下测试的优点应该是使得顶层模块的错误较早发现。

  9.分析:通常测试人员判定一个运行结果中存在缺陷的准则是这个运行结果与测试案例中的预期结果不一致。

  10.分析:等价类划分和边界值分析的局限性表述正确的就是选项B,不同输入变量之间可能存在约束关系,它们不能处理这类约束关系。

  11.分析:白盒测试与黑盒测试的本质区别是对内部逻辑的理解,与测试用例数量无关。单元测试是以白盒测试为主,但有时也会用到黑盒测试技术。满足分支测试不一定满足条件测试。

  12.分析:仅有B说法正确,是二者的区别。其他三个选项说法颠倒。

  13.分析:软件测试自动化的主要特点就是可以在较少的时间内运行更多的测试用例,这也是使用它的好处。

  14.分析:同行评审方法很多,基于正式化程度不同或其规则和灵活程度不同,可将同行评审进行分类。根据正式化程度不同,从非正式到十分严格依次为:临时评审、轮查、结对评审、走查、小组评审、正式审查。

  15.分析:性能测试通用模型(PTGM模型)的最后一步就是测试结果分析,说明性能测试通常要对测试结果进行分析才能获得测试结论,故C正确。软件的性能是软件的一种非功能特性。软件性能测试包括以下几方面的目标:①发现性能缺陷;②性能调优;③能力检验和规划。其中性能测试的首要目标应该就是发现软件性能缺陷,说明A说法不正确。压力测试与负载测试虽然都是要对软件施加业务压力,但其根本目的完全不同,负载测试的目的是为了探测软件在满足预定性能需求的情况下所能负担的最大压力,但压力测试的目的是利用压力来揭示软件中存在的潜在缺陷,故B说法不正确。在性能下降曲线上,最大建议用户数通常处于平坦区和性能轻微下降区的交界处,所以D说法错误。

  16.分析:目前主要的软件可靠性分析方法有失效模式影响分析法、严酷度分析法、故障树分析法、事件树分析法、潜在线路分析法。

  17.分析:大突击集成就是将系统的所有组成成分都集成在一起进行测试,通常只有在整个软件的可靠性有了基本的保障时,大突击集成测试才是一种合理的选择。自底向上集成主要缺点是需要开发大量的测试驱动代码,自顶向下集成则需要为集成测试开发大量桩代码,总之,二者都要为集成测试开发大量代码。选项C说法过于绝对,因为只有当类间的主要协作关系可以明确辨识,且每个功能只需要少数类协作就可以完成时,采用协作集成方式才是一个不错的选择。高频集成并不是一个具体的集成策略,它是指在软件开发过程中频繁地将新开发出来的代码与已有代码集成,一般采用冒烟的方式,但并不是以自底向上集成为基础。

  18.分析:高频集成是指在软件开发过程中频繁地将新开发地代码与已有代码集成。最适用于采用迭代或增量开发过程模型开发的产品进行集成测试。

  19.分析:Web应用软件的系统测试技术除了功能测试外还包括性能测试、易用性测试、内容测试、安全性测试和接口测试等。由于Web应用软件的特殊性,在按照测试大纲对Web应用软件进行系统测试前通常要进行几个方面的功能测试,主要包括:①链接测试,②表单测试,③Cookie测试。

  20.分析:对软件功能的关联包括静态关联和动态关联两方面,其中对于静态关联的测试可以通过检查菜单完成,而对于动态关联的测试需要针对各项任务设计测试用例,以检查软件能否合理引导用户使用下一步的功能,故选项B说法不正确。

  21.分析:内置式合约测试(BICT)可用于动态、分布式系统,扩展了基于构件的软件工程实践,但时它提出的模型驱动的方法需要构件的源代码,其效率目前还是未知的。

  22.分析:回归测试显然是不属于软件产品的质量特性。

  23.分析:在测试用例设计时,不能只设计覆盖正常流程和操作的测试用例,而必须强制覆盖错误输入处理,边界值处理等场景,以确保被测软件系统投入使用时具备较强的容错能力。

  24.分析:在实际的测试项目实践中,测试策划活动的目标是编写测试计划文档。

  25.分析:QESAT/C的优点是:能帮助分析和测试程序,快捷有效地理解程序结构,及早地发现程序中隐藏地错误,从而提高软件的质量。

  二、论述题

  1.分析:首先分析程序的规则说明和被测程序的功能,将其输入情况划分为有效等价类和无效等价类,然后按照等价类设计测试用例的方法设计有效的测试用例和无效的测试用例。

  2.分析:首先分析走马规则,找出所有的原因以及所有可能的结果,结合题目中找出二者的联系,按照因果图的画法规则,画出因果图。然后按照基于因果图的方法设计测试用例。

  3.分析:首先根据程序的源代码,画出控制流图。然后通过控制流图可以计算出该程序的复杂度,找出所有的独立路径,根据基本路径测试法设计测试用例。

计算机等级考试四级软件测试工程师模拟试题三及答案解析

热点推荐

登录注册
触屏版电脑版网站地图