1、全国计算机等级考试四级软件测试工程师真题 2008年 4月及答案解析(总分:100.00,做题时间:90 分钟)一、B选择题/B(总题数:25,分数:50.00)1.坚持在软件开发的各个阶段实施下列哪种质量保证措施,才能在开发工程中尽早发现和预防错误,把出现的错误克服在早期_。(分数:2.00)A.技术评审B.程序测试C.文档审查D.管理评审2.经验表明,在程序测试中,某模块与其他模块相比,若该模块已发现并改正的错误数目较多,则该模块中残存的错误数目与其他模块相比,通常应该_。(分数:2.00)A.较少B.较多C.相似D.不确定3.对程序中已发现的错误进行错误定位和确定出错性质,并改正这些错误
2、,同时修改相关的文档,称为_。(分数:2.00)A.测试B.调试C.错误分析D.验证4.同行评审,有时称为同级评审,是一种通过作者的同行来确认缺陷和需要变更区域的检查方法。它主要分为管理评审、技术评审、文档评审和_。(分数:2.00)A.误差评审B.项目评审C.过程评审D.组织体系评审5.数据流覆盖关注的是程序中某个变量从其声明、赋值到引用的变化情况,它是下列哪一种覆盖的变种_。(分数:2.00)A.语句覆盖B.控制覆盖C.分支覆盖D.路径覆盖6.程序的流程图如下图所示,采用路径覆盖法进行测试,则至少需要几个测试用例可以覆盖所有可能的路径_。 (分数:2.00)A.5B.6C.7D.87.如果
3、一个判定中的复合条件表达式为(A1)or(B=3),则为了达到 100%的条件覆盖率,至少需要设计多少个测试用例_。(分数:2.00)A.1B.2C.3D.48.自底向上单元测试的策略是首先对模块调用图上的哪一层模块进行测试_。(分数:2.00)A.最底层B.下一层C.最高层D.上一层9.基本路径测试满足_。(分数:2.00)A.语句覆盖B.路径覆盖C.分支覆盖D.条件覆盖10.集成测试对系统内部的交互以及集成后系统功能检验了何种质量特性_。(分数:2.00)A.正确性B.可靠性C.可试用性D.可维护性11.在软件性能测试中,下列指标中哪个不是软件性能的指标_。(分数:2.00)A.响应时间B
4、.吞吐量C.资源利用率D.并发进程数12.下列关于软件性能测试的说法中,正确的是_。(分数:2.00)A.性能测试的目的不是为了发现软件缺陷B.压力测试与负载测试的目的都是为了探测软件在满足预定性能需求的情况下所能负担的最大压力C.性能测试通常要对测试结果进行分析才能获得测试结论D.在性能下降曲线上,最大建议用户数通常处于性能轻微下降区与性能急剧下降区的交界处13.下列关于软件可靠性测试的说法中,错误的是_。(分数:2.00)A.发现软件缺陷是软件可靠性测试的主要目的B.软件可靠性测试通常用于有可靠性要求的软件C.在一次软件可靠性测试中,执行的测试用例必须完全符合所定义的软件运行剖面D.可靠性
5、测试通常要对测试结果进行分析才能获得测试结论14.下列关于面向对象软件测试的说法中,正确的是_。(分数:2.00)A.在测试一个类时,只要对该类的每个成员方法都进行充分的测试就完成了对该类充分的测试B.在存在多态的情况下,为了达到较高的测试充分性,应对所有可能的绑定都进行测试C.假设类 B是类 A的子类,如果类 A已进行了充分的测试,在测试类 B时不必测试任何类 B继承类 A的成员方法D.对于一棵继承树上的多个类,只有处于叶结点的类需要测试15.下列哪种测试不属于面向对象单元测试考虑的范畴_。(分数:2.00)A.成员方法的测试B.类的测试C.类树的测试D.多个相互协作的类树的测试16.下列关
6、于面向对象集成测试的说法中,正确的是_。(分数:2.00)A.大突击集成是面向对象集成测试最常用且最有效的方法B.自底向上集成和自顶向下集成都需要为集成测试开发大量代码C.协作集成在任何情况下都优于自底向上集成和自顶向下集成D.高频集成是以自底向上集成为基础,利用冒烟测试进行的集成测试17.在 Web应用软件的分层测试策略中,下列哪个不是测试关注的层次?_。(分数:2.00)A.数据层B.业务层C.服务层D.表示层18.下列关于 Web应用软件测试的说法中,正确的是_。(分数:2.00)A.Cookie-测试是 Web应用软件功能测试的重要内容B.对于没有使用数据库的 Web应用软件,不需要进
7、行性能测试C.链接测试是 Web应用软件易用性测试的重要内容D.Web应用软件安全性测试仅关注 Web应用软件是否能够防御网络攻击19.下列哪一项不属于软件功能易用性测试关注的内容?_。(分数:2.00)A.软件界面的色彩是否协调B.软件是否能主动禁止用户可能进行的非法操作C.软件是否允许用户针对自己的使用习惯进行定制D.软件是否能帮助用户减少输入中的重复劳动20.下列关于极限测试的说法中,正确的是_。(分数:2.00)A.极限测试是一种新型的测试方法,传统的测试技术均不适用于极限测试B.极限测试中所有的测试均是由编码人员完成的C.与传统的软件测试相比,极限测试是一种更严格的测试D.极限测试需
8、要频繁地进行单元测试21.下列有关测试过程 V模型的说法中,正确的是_。(分数:2.00)A.验收测试应确定程序的执行是否满足软件设计的要求B.系统测试应确定系统功能和性能的质量特性是否达到系统要求的指标C.单元测试和集成测试应确定软件的实现是否满足用户需要或合同的要求D.集成测试在编码结束前就可以开始22.下列哪项工作与软件缺陷管理和追踪无关_。(分数:2.00)A.对缺陷应该包含的信息条目、状态分类等进行完善设计B.通过软件系统自动发送通知给相关开发和测试人员,使缺陷得到及时处理C.对测试用例的执行结果进行记录和追踪D.通过一些历史曲线和统计曲线来分析和预测未来的缺陷发展情况23.下列有关
9、软件问题生命周期模型状态定义的说法中,错误的是_。(分数:2.00)A.“新建”表示测试中发现并报告了新的软件问题B.“打开”表示软件问题已经被确认并分配给相关开发工程师处理C.“关闭”表示软件问题已被开发人员修复并等待测试人员验证D.“解决”表示软件问题已被确认修复24.下列有关软件测试工具的说法中,错误的是_。(分数:2.00)A.静态测试工具可用于对软件需求、结构设计、详细设计和代码进行评审、走查和审查B.静态测试工具可对软件的复杂度分析、数据流分析、控制流分析和接口分析提供支持C.动态测试工具可用于软件的覆盖分析和性能分析D.动态测试工具不包括软件的仿真测试和变异测试25.计算机软件测
10、试规范规定,软件测试的类别可分为单元测试、集成测试以及_。(分数:2.00)A.系统测试B.验收测试C.系统测试和验收测试D.配置项测试、系统测试和验收测试二、B论述题/B(总题数:3,分数:50.00)以下是学生选课系统中“学生查询成绩”交互行为的描述,请按要求回答问题。交互开始时终端上显示首页,用户选择“查询”请求后,显示“请输入学号”。在用户输入学号后,系统核对学生学号:若输入的学号不正确,则显示“输入的学号不正确”,此次查询取消,回到首页;若输入学号正确,出现“请输入课程名”。一旦输入课程名,就开始核对课程名称:若输入的课程名不正确,则显示“输入的课程名不正确”,此次查询取消,回到首页
11、;若输入的课程名正确,则根据“学号”和“课程名”,查询学生成绩。若查询学生成绩成功,则显示查询到的成绩,系统询问是否继续查询:当用户选择“继续查询”后回到“请输入学号”;当用户选择“结束查询”后回到首页。若查询学生成绩失效,则显示“查询失效”后回到首页。(分数:20.00)(1).请画出该系统以上交互行为的状态图(应满足功能图的要求,不可画成流程图)。(分数:10.00)_(2).使用基本路径测试方法确定该状态图的测试路径。(分数:10.00)_以下是 QESuite Web Version 1.0中某测试项目的部分界面,请按要求回答问题。(分数:12.00)(1).下图是该测试项目的测试用例
12、执行文档界面,有几个测试用例没有执行?有几个测试用例最近一次执行通过?有几个测试用例最近一次执行失败?(分数:6.00)_(2).下图是该测试项目的某软件问题报告视图。按 QESuite Web Version 1.0中的软件问题生命周期定义,4 号软件问题报告需要何种人员进行哪些可能的操作?5号软件问题报告需要何种人员进行哪些可能的操作?8 号软件问题报告需要何种人员进行哪些可能的操作?(分数:6.00)_针对以下 C语言程序,请按要求回答问题。已知 link. c源程序如下:/*link. c程序对单向链表进行操作,首先建立一个单向链表,然后根据用户的选择可以对其进行插入结点、删除结点和链
13、表反转操作*/#includestdio. h#includestdlib. htypedef struct list_node * list_pointer; /定义链表指针typedef struct list_node /定义链表结构int data;list_pointer link;list_node;/用到的操作函数list_pointer create(); /建立一个单向链表void insert(list_pointer * p_ptr,list_pointer node); /在 node后加入一个新的结点void delete_node(list_pointer * p_
14、ptr,list_pointer trail,list_pointer node);/删除前一个结点是 trail的当前结点 nodevoid print(list_pointer * p_ptr); /打印链表结点中的值list_pointer invert(list_pointer lead); /反转链表int main()list_pointer ptr=NULL;list_pointer node,trail;list_pointer * P=ptr;int choose,location,i;printf(“you should create a link first:/n“);/
15、建立一个单向链表prt=create(); /ptr 指向链表的第一个结点print(ptr);/根据用户的不同选择进行相应的操作:printf(“input number 0,you can quit the program/n“);printf(“input number 1,you can insert a new node to link/n“):printf(“input number 2,you can delete a node from the link/n“);printf(“input number 3,you can invert the link/n“):printf(
16、“please input you choice/n“);scanf(“%d“,choose);while(choose!=0)switch(choose)case 1:i=1:while(ilocation)node=node-link;i+:insert(p,node); /p 为指向 ptr的指针print(ptr);break;case 2:printf(“you will delete a node from the link/n“);printf(“please input the location of the node:/n“);scanf(“%d“,&location):no
17、de=ptr;if(location=1)trail=NULL;trail=ptr;i=1:while(ilocation)trail=trail-link:i+:node=trail-link;delete_node(p,trail,node);print(ptr);break;case 3:printf(“you will invert the link/n“);ptr=invert(ptr);print(ptr);break;default;break;return -1;printf(“please input you choice/n“);scanf(“%d“. choose):re
18、turn 0;/根据用户的输入值建立一个新的单向链表:list_pointer create()int i,current,length;list_pointer p1,p2,head;printf(“please input the node number of the link:/n“);scanf(“%d“. length):printf(“the number of the link is:%d“,length);printf(“please input the data for the link node:/n“);i=0;p1=p2=(list_pointer)malloc(siz
19、eof(list_node);head=p1;for(i=1;ilength;i+)scanf(“%d“,current);p1-data=current;p2-link=p1;p2=p1;p1=(list_pointer)malloc(sizeof(list_node);p2-link=NULL;return head;(分数:18.00)(1).画出主函数 main的控制流程图。(分数:9.00)_(2).设计一组测试用例,尽量使 main函数的语句覆盖率能达到 100%。如果认为该函数的语句覆盖率无法达到 100%,需要说明原因。(分数:9.00)_全国计算机等级考试四级软件测试工程师真
20、题 2008年 4月答案解析(总分:100.00,做题时间:90 分钟)一、B选择题/B(总题数:25,分数:50.00)1.坚持在软件开发的各个阶段实施下列哪种质量保证措施,才能在开发工程中尽早发现和预防错误,把出现的错误克服在早期_。(分数:2.00)A.技术评审 B.程序测试C.文档审查D.管理评审解析:解析 由测试用例的原则第一条应当把“尽早地和不断地进行软件测试”作为软件开发人员的座右铭可得。由于软件开发的各个环节都有可能会出错,所以我们要坚持在各个阶段的技术评审,才能尽早的发现和预防错误,把出现的错误克服在早期,杜绝某些发生错误的隐患,减少开发费用,提高软件质量,而后面 B、C、D
21、 三个选项都是只针对某个阶段来讲的,所以不正确,故正确答案为 A。2.经验表明,在程序测试中,某模块与其他模块相比,若该模块已发现并改正的错误数目较多,则该模块中残存的错误数目与其他模块相比,通常应该_。(分数:2.00)A.较少B.较多 C.相似D.不确定解析:解析 由测试原则第五条“充分注意测试中的群集现象”可知,错误有群集现象,也就是指测试后程序中残余的错误数与已发现的错误数目成正比,由此可知本题模块中发现的错误数多,自然残余的也较多,故选择 B。3.对程序中已发现的错误进行错误定位和确定出错性质,并改正这些错误,同时修改相关的文档,称为_。(分数:2.00)A.测试B.调试 C.错误分
22、析D.验证解析:解析 测试过程需要三类输入: 软件配置(包括需求规格说明、软件没计规格说明、源代码等)。测试配置(包括表明测试工作如何进行的测试计划、给出测试数据的测试用例、控制测试进行的测试程序等)。 测试工具(为提高软件测试效率,测试工作要有测试工具的支持,其主要工作是为测试的实施提供各种服务,以减轻人们完成测试任务的手工劳动)。 在测试完成之后,要对所有测试结果进行分析,即将实际测试的结果与预期的结果进行比较。若发现出错的数据,就意味着软件有错误,然后就需要开始排错(也称为调试),即对已发现的错误进行定位和确定出错性质,并改正这些错误,同时修改相关的文档。修正后的文档一般都要经过两次测试
23、,直到通过测试为止。4.同行评审,有时称为同级评审,是一种通过作者的同行来确认缺陷和需要变更区域的检查方法。它主要分为管理评审、技术评审、文档评审和_。(分数:2.00)A.误差评审B.项目评审C.过程评审 D.组织体系评审解析:解析 同行评审(Peer Review)是一种通过作者的同行来确定缺陷和需要变更区域的检查方法。涉及的内容很多,主要可以分为管理评审、技术评审、文档评审和过程评审。5.数据流覆盖关注的是程序中某个变量从其声明、赋值到引用的变化情况,它是下列哪一种覆盖的变种_。(分数:2.00)A.语句覆盖B.控制覆盖C.分支覆盖D.路径覆盖 解析:解析 数据流测试电可以看做是一种路径
24、测试,它主要关注一条路径上变量在何时定义,何时使用,所以数据流覆盖也可以看做是路径覆盖的一种,关注变量在某条路径中的变化情况。6.程序的流程图如下图所示,采用路径覆盖法进行测试,则至少需要几个测试用例可以覆盖所有可能的路径_。 (分数:2.00)A.5B.6 C.7D.8解析:解析 根据程序流程图,我们可以导出程序的控制流图,然后利用环路复杂性的计算方法,最简单的是看该程序控制流图中有五个判定结点数,便可得到该控制流图的环路复杂性为 5+1=6,这样便可以确定六个线性无关的基本路径集,然后我们根据这些基本集对应找出六个测试用例,确保基本路径集中每一条路径都可以被执行到,即满足题目中的路径覆盖,
25、由此知若要满足路径覆盖,至少需要设计六个测试用例。7.如果一个判定中的复合条件表达式为(A1)or(B=3),则为了达到 100%的条件覆盖率,至少需要设计多少个测试用例_。(分数:2.00)A.1B.2 C.3D.4解析:解析 由条件覆盖定义:就是指设计若干测试用例,运行被测程序,使得每个判定的每个条件的可能取值至少评价一次。针对该题取 A=3,B=3 和 A=0,B=5 两组测试用例即可达到 100%的条件覆盖率,故本题选择 B。8.自底向上单元测试的策略是首先对模块调用图上的哪一层模块进行测试_。(分数:2.00)A.最底层 B.下一层C.最高层D.上一层解析:解析 自底向上测试与自顶向
26、下测试的测试策略都是增量式的测试,软件是分层设计的,主模块调用子模块,子模块又依次调用更低层次的模块,依此类推。在自底向上单元测试的策略中,应首先测试最底层的模块,利用辅助的测试驱动模块调用他们并传递测试数据,然后再测试更高层次的模块,再较高层次的模块测试中可以直接调用已测试过的较低层次的模块。9.基本路径测试满足_。(分数:2.00)A.语句覆盖 B.路径覆盖C.分支覆盖D.条件覆盖解析:解析 基本路径测试是在控制流图的基础上,通过分析环路复杂性,导出基本可执行路径的集合,从而设计测试用例的方法。10.集成测试对系统内部的交互以及集成后系统功能检验了何种质量特性_。(分数:2.00)A.正确
27、性 B.可靠性C.可试用性D.可维护性解析:解析 通常定义集成测试为根据实际情况对程序模块采用合适的集成测试策略组装起来,对系统的接口以及集成后的功能进行正确性检验的测试。最简单的集成测试形式就是把两个单元模块集成或者组装到一起,然后对它们之间的接口进行测试,而实际的集成测试通常要根据具体情况采取不同的集成测试策略将多个模块组装成子系统或系统,测试各个模块能否以正确、稳定、一致的方式交互,即验证其是否符合开发过程中的概要设计规格说明的要求。11.在软件性能测试中,下列指标中哪个不是软件性能的指标_。(分数:2.00)A.响应时间B.吞吐量C.资源利用率D.并发进程数 解析:解析 软件的性能是软
28、件的一种非功能特性。它关注的不是软件是否能够完成特定的功能而是在完成该功能时展现出来的及时性。为了能够客观地度量软件的性能,人们定义了一系列性能指标,以便于能够在不同情况下度量软件的性能。通常合理的软件性能指标有响应时间、系统响应时间和应用延迟时间、吞吐量、并发用户数、资源利用率五种,而题目选项 D中“并发进程数”不能作为性能指标,故答案为D。12.下列关于软件性能测试的说法中,正确的是_。(分数:2.00)A.性能测试的目的不是为了发现软件缺陷B.压力测试与负载测试的目的都是为了探测软件在满足预定性能需求的情况下所能负担的最大压力C.性能测试通常要对测试结果进行分析才能获得测试结论 D.在性
29、能下降曲线上,最大建议用户数通常处于性能轻微下降区与性能急剧下降区的交界处解析:解析 性能测试通用模型(PTGM 模型)的最后一步就是测试结果分析,说明性能测试通常要对测试结果进行分析才能获得测试结论,故 C正确。13.下列关于软件可靠性测试的说法中,错误的是_。(分数:2.00)A.发现软件缺陷是软件可靠性测试的主要目的 B.软件可靠性测试通常用于有可靠性要求的软件C.在一次软件可靠性测试中,执行的测试用例必须完全符合所定义的软件运行剖面D.可靠性测试通常要对测试结果进行分析才能获得测试结论解析:解析 软件可靠性测试的目的是收集软件测试时揭示软件故障的情况,并对其进行整理从而为分析和预测软件
30、的可靠性提供帮助,与其他软件测试不同的是,软件可靠性测试的目的不在于通过测试揭示软件中的缺陷并通过修改这些缺陷来提高软件的可靠性,而是通过受控的软件测试过程来预测软件在实际运行中的可靠性。从软件的可靠性测试过程可知,软件可靠性测试通常用于有可靠性要求的软件,在一次软件可靠性测试中,执行的测试用例必须完全符合所定义的软件运行剖面,可靠性测试通常要对测试结果进行分析才能获得测试结论。14.下列关于面向对象软件测试的说法中,正确的是_。(分数:2.00)A.在测试一个类时,只要对该类的每个成员方法都进行充分的测试就完成了对该类充分的测试B.在存在多态的情况下,为了达到较高的测试充分性,应对所有可能的
31、绑定都进行测试 C.假设类 B是类 A的子类,如果类 A已进行了充分的测试,在测试类 B时不必测试任何类 B继承类 A的成员方法D.对于一棵继承树上的多个类,只有处于叶结点的类需要测试解析:解析 封装、继承和多态是面向对象软件区别于传统的结构化软件的三个主要特点,然而这些特点都可能对测试带来困难。在面向对象中,封装一方面是指一组相关的变量和方法被封装到一个类中,则类的成员方法对成员变量有依赖性,故成员方法通常不能实现独立的功能,需要在不同的实例状态下才能展示出来,甚至有的成员方法要在特定的实例状态下才能执行,因此在测试面向对象软件时,不能简单的对每个类的成员方法进行测试,在调用任何成员方法之前
32、还必须保证相应的实例处于该方法的预期工作状态,即设计类的测试用例时,不仅要考虑各成员方法的输入参数,还要考虑如何设计调用的序列,所以选项 A不正确。多态就是指对类的引用可以与多个类的实现绑定,绑定有静态和动态之分,所以为达到较高的测试充分性,应对所有可能的绑定都进行测试,选项 B正确。选项 C和选项 D考查继承、继承与多态的复合对测试的影响,假设类 B是类 A的子类,如果类 A已进行了充分的测试,若按传统的测试充分性准则,在测试类 B时可以把关注点放在类 B自身定义的成员变量和成员方法上,但在实际测试类 B时,这样的测试往往会不够充分,还是要对类 B继承类 A的成员方法进行测试的,而且对于一棵
33、继承树上的多个类,仅对处于叶结点的类进行测试也是不充分的。15.下列哪种测试不属于面向对象单元测试考虑的范畴_。(分数:2.00)A.成员方法的测试B.类的测试C.类树的测试D.多个相互协作的类树的测试 解析:解析 由于面向对象程序中可独立被测试的单元通常是一个类族或最小是一个独立的类,面向对象程序的单元测试主要是考虑类和类族的测试,而此时的单元测试还可以细分为方法层次的测试、类层次的测试和类树层次的测试三种。16.下列关于面向对象集成测试的说法中,正确的是_。(分数:2.00)A.大突击集成是面向对象集成测试最常用且最有效的方法B.自底向上集成和自顶向下集成都需要为集成测试开发大量代码 C.
34、协作集成在任何情况下都优于自底向上集成和自顶向下集成D.高频集成是以自底向上集成为基础,利用冒烟测试进行的集成测试解析:解析 面向对象程序的集成测试策略有很多种,其中主要有传统的集成策略(大突击集成、自底向上集成、自顶向下集成和夹层式集成),协作集成,基于集成,高频集成,基于事件(或消息)的集成,基于使用的集成,客户机/服务器的集成、分布式集成。大突击集成就是将系统的所有组成成分都集成在一起进行测试,通常只有在整个软件的可靠性有了基本的保障时,大突击集成测试才是一种合理的选择。自底向上集成主要缺点是需要开发大量的测试驱动代码,自顶向下集成则需要为集成测试开发大量桩代码,总之,二者都要为集成测试
35、开发大量代码。选项 C说法过于绝对,因为只有当类间的主要协作关系可以明确辨识,且每个功能只需要少数类协作就可以完成时,采用协作集成方式才是一个不错的选择。高频集成并不是一个具体的集成策略,它是指在软件开发过程中频繁地将新开发出来的代码与已有代码集成,一般采用冒烟测试的方法,但并不是以自底向上集成为基础。17.在 Web应用软件的分层测试策略中,下列哪个不是测试关注的层次?_。(分数:2.00)A.数据层B.业务层C.服务层 D.表示层解析:解析 由于 Web应用软件一般采用多层结构,所以在测试时也采用分层的策略。通常 Web应用软件的测试分为三层:表示层、业务层和数据层。其中表示层的测试主要关
36、注 Web应用软件的界面和与客户的交互,测试的重点是 HTML文档的结构与客户端的程序;业务层的测试主要关注 Web应用软件包含的业务逻辑,测试的重点是服务器端的程序;数据层的测试主要关注 Web应用软件处理不同数据的能力,测试的重点包括对数据完整性的测试以及对大数据量下数据库操作的性能测试。在测试 Web应用软件时,通常要针对每一层分别进行测试,因为这样更容易揭示缺陷,测试也可以更加充分。18.下列关于 Web应用软件测试的说法中,正确的是_。(分数:2.00)A.Cookie-测试是 Web应用软件功能测试的重要内容 B.对于没有使用数据库的 Web应用软件,不需要进行性能测试C.链接测试
37、是 Web应用软件易用性测试的重要内容D.Web应用软件安全性测试仅关注 Web应用软件是否能够防御网络攻击解析:解析 与普通软件系统相比,Web 应用软件具有特殊的结构,而且 Web应用软件的开发主要是在固定的结构中填充相应的内容,而不是根据需求由开发人员设定结构,因此 Web应用软件的测试电会受到环境的制约,其中 Web应用软件的系统测试除了功能测试外还包括性能测试、易用性测试、内容测试、安全性测试和接口测试等。功能测试主要包括:链接测试:表单测试;Cookie 测试。故选项 A正确,C不正确。对于 Web应用软件而言,性能测试是一个至关重要的因素,所以对 Web应用软件进行系统测试时,必
38、须考虑性能测试,故 B说法错误。Web 应用软件安全性测试主要包括:服务器端的内容安全性;客户端的内容安全性;Cookie 的安全性;日志功能。19.下列哪一项不属于软件功能易用性测试关注的内容?_。(分数:2.00)A.软件界面的色彩是否协调 B.软件是否能主动禁止用户可能进行的非法操作C.软件是否允许用户针对自己的使用习惯进行定制D.软件是否能帮助用户减少输入中的重复劳动解析:解析 功能易用性是指用户能否方便、快速、准确地使用软件提供的功能来完成需要完成的任务。其主要内容有:业务符合度;功能定制性;功能的关联度;数据的共享度;用户约束的合理性;反馈的及时性。其中功能定制性中说明一个软件通常
39、是为不同的用户提供服务,各用户经常使用的业务功能也不尽相同,功能易用性要求软件在一定程度上允许用户针对自己的需求进行定制,这与选项 C说法一致;数据的共享度中所讲使用软件的一个主要优点就是能够减少重复的输入,从而保证数据的一致性,测试时就是检查各个功能的输入部分,确定是否有需要重复输入的内容,这与选项 D说法一致;用户约束的合理性中指明软件需要对用户加以约束,以方便用户可以正确地使用软件,其中软件对用户的约束通常分为权限性的约束和功能性的约束,选项 B的叙述便属于权限性的约束,故也是软件功能易用性测试关注的内容。而选项 A应属于用户界面测试关注的内容,故答案应选 A。20.下列关于极限测试的说
40、法中,正确的是_。(分数:2.00)A.极限测试是一种新型的测试方法,传统的测试技术均不适用于极限测试B.极限测试中所有的测试均是由编码人员完成的C.与传统的软件测试相比,极限测试是一种更严格的测试D.极限测试需要频繁地进行单元测试 解析:解析 20 世纪 90年代 Kent Beck提出了极限编程的新型软件开发方法,该方法主要目的是利用轻量、便捷的开发过程使得开发人员能够更快地完成应用程序的开发。与传统的软件开发方法相比,开发效率高,但代码质量得不到保证,为此出现了极限测试为极限编程量身定做的测试方式,即通过频繁地单元测试和验收测试来保证代码质量。在极限测试中,单元测试主要由编码人员完成,验
41、收测试则主要由用户完成。极限编程的主要缺点在于编码人员的自由度过大,由于没有严格的需求和设计规范,所以极限测试没有传统的软件测试严格。单元测试是极限编程中最重要的发现缺陷的手段,在极限编程中的单元测试与传统的单元测试基本类似,所以有些传统的测试技术也可以用到极限测试中来,而且极限测试的本质是为了满足极限编程的思想和流程而设计的一套测试策略和流程,其本身并不局限于使用特定的技术和方法,所以传统的测试技术和方法大多数都可以在极限测试中使用。21.下列有关测试过程 V模型的说法中,正确的是_。(分数:2.00)A.验收测试应确定程序的执行是否满足软件设计的要求B.系统测试应确定系统功能和性能的质量特
42、性是否达到系统要求的指标 C.单元测试和集成测试应确定软件的实现是否满足用户需要或合同的要求D.集成测试在编码结束前就可以开始解析:解析 V 模型是在 20世纪 80年代后期提出的,旨在改进软件开发的效率和效果。该模型反映出测试活动与分析设计活动的关系,指出单元测试和集成测试应检测程序的执行是否满足软件设计的要求。系统测试应检测系统功能、性能的质量特性是否达到系统要求的指标。验收测试确定软件的实现是否满足用户需要或合同的要求。选项 A和选项 C的说法颠倒,不正确。集成测试要在单元测试之后,所以选项 D的说法明显错误,故只有选项 B说法完全正确。22.下列哪项工作与软件缺陷管理和追踪无关_。(分
43、数:2.00)A.对缺陷应该包含的信息条目、状态分类等进行完善设计B.通过软件系统自动发送通知给相关开发和测试人员,使缺陷得到及时处理C.对测试用例的执行结果进行记录和追踪 D.通过一些历史曲线和统计曲线来分析和预测未来的缺陷发展情况解析:解析 软件缺陷的跟踪和管理一般由数据库系统执行,但数据库系统也是依赖于一定的规则和流程进行的,主要思路是:设计好每个缺陷应包含的信息条目、状态分类等;通过系统自动发出邮件给相应开发和测试人员,使缺陷能得到及时处理;通过日报、周报等各类项目报告跟踪当前缺陷状态;在到达各个大小里程碑前,召开会议对缺陷进行会审;通过一些历史曲线和统计曲线分析和预测未来情况。由此可
44、见选项 C的工作与软件缺陷的跟踪和管理无关。23.下列有关软件问题生命周期模型状态定义的说法中,错误的是_。(分数:2.00)A.“新建”表示测试中发现并报告了新的软件问题B.“打开”表示软件问题已经被确认并分配给相关开发工程师处理C.“关闭”表示软件问题已被开发人员修复并等待测试人员验证 D.“解决”表示软件问题已被确认修复解析:解析 软件问题的状态定义如下: 新建(New)测试中新报告的软件问题。 打开(Open)软件问题已被确认并分配给相关开发工程师处理。 关闭(Closed)确认为无效的软件问题。 待验(Pending)工程师已完成修正,等待测试人员验证。 解决(Resolved)软件
45、问题已被修复。24.下列有关软件测试工具的说法中,错误的是_。(分数:2.00)A.静态测试工具可用于对软件需求、结构设计、详细设计和代码进行评审、走查和审查B.静态测试工具可对软件的复杂度分析、数据流分析、控制流分析和接口分析提供支持C.动态测试工具可用于软件的覆盖分析和性能分析D.动态测试工具不包括软件的仿真测试和变异测试 解析:解析 测试工具根据工作原理不同可分为静态测试工具和动态测试工具。其中静态测试工具是对代码进行语法扫描,找到不符合编码规范的地方,根据某种质量模型评价代码的质量,生成系统的调用关系图等。它直接对代码进行分析,不需要运行代码,也不需要对代码编译链接和生成可执行文件,静
46、态测试工具可用于对软件需求、结构设计、详细设计和代码进行评审、走查和审查,也可用于对软件的复杂度分析、数据流分析、控制流分析和接口分析提供支持;动态测试工具与静态测试工具不同,它需要运行被测试系统,并设置探针,向代码生成的可执行文件中插入检测代码,可用于软件的覆盖分析和性能分析,也可用于软件的模拟、建模、仿真测试和变异测试等。25.计算机软件测试规范规定,软件测试的类别可分为单元测试、集成测试以及_。(分数:2.00)A.系统测试B.验收测试C.系统测试和验收测试D.配置项测试、系统测试和验收测试 解析:解析 计算机软件测试规范规定,软件测试的类别可分为:单元测试、集成测试、配置项测试、系统测试和验收测试。二、B论述题/B(总题数:3,分数:50.00)以下是学生选课系统中“学生查询成绩”交互行为的描述,请按要求回答问题。交互开始时终端上显示首页,用户选择“查询”请求后,显示“请输入学号”。在用户输入学号后,系统核对学生学号:若输入的学号不正确,则显示“输入的学号不正确”,此次查询取消,回到首页;若输入学号正确,出现“请输入课程名”。一旦输入课程名,就开始核对课程名称:若输入的课程名不正确,则显示“输入的课程名不正确”