《全国计算机等级考试四级笔试试卷软件测试工程师answer.docx》由会员分享,可在线阅读,更多相关《全国计算机等级考试四级笔试试卷软件测试工程师answer.docx(50页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、2021年9月真题答案解析一、选择题答案及解析1答案:B解析:软件验证和确认理论是测试过程的理论依据,验证是检查软件开发的各个阶段过程活动的结果是否满足规格说明的描述,证实各阶段和阶段之间的逻辑协调性、完备性和正确性。确认是证实在一个给定的外部环境中软件的逻辑正确性,即是否满足用户的要求。2答案:B解析:白盒测试又称为逻辑驱动测试,它对程序的逻辑构造进展检查,从中获取测试数据,它不需要测试软件产品的功能。黑盒测试是另一种测试策略,它将程序视为一个黑盒子,测试目标及程序内部机制和构造完全无关,而是将重点集中放在发现程序不按其规格说明正确运行的环境条件,黑盒测试注重于测试软件的功能性需求。3答案:
2、D解析:静态错误分析主要用于确定在源程序中是否有某类错误或者危险构造,包括:类型和单位分析为了强化对源程序中数据类型的检查,在程序设计语言中扩大一些新的数据类型引用分析在静态错误分析中,最广泛使用的技术就是发现引用异常。表达式分析对表达式进展分析,以发现和纠正在表达式中出现的错误。接口分析接口的一致性是程序的静态错误分析和设计分析共同研究的题目。接口一致性的设计分析主要检查模块之间接口的一致性和模块及外部数据库之间接口的一致性。4答案:D解析:在选择和使用覆盖率时,应该注意以下原那么:l 覆盖率只是一种手段,不是测试的最终目的。l 不可能针对所有的覆盖率进展测试,但如果只考虑一种覆盖率也是不妥
3、的l 不要追求绝对10%的覆盖率l 设计测试用例时,不仅要考虑到覆盖率,还应综合考虑其它方面,如本钱等。D说法不当。5答案:A解析:满足了条件覆盖,并不一定满足判定覆盖。尽管路径覆盖比判定/条件覆盖更强,但是路径覆盖并不一定能包含判定/条件覆盖。6答案:B解析:走查的步骤如下:方案走查会议 走查产品 执行走查 解决缺陷 走查记录 产品返工,准备测试用例是走查之前要进展的活动。7答案:C解析:判定/条件覆盖,就是设计足够的测试用例,使得判定语句中每个条件的所有可能取值至少评价一次,同时每个判定语句本身所有可能分支也至少评价一次。本程序一共有两个判定语句,三条路径。假设以1代表某一个条件为真,0代
4、表为假,那么对于(a=b)、(c=d)、(e=f)、(p=q)、(s=t)这五个条件,取不同的真值组合,即可设计出相应的测试用例,到达判定/条件覆盖的要求。在这里,先取(a=b)、(c=d)、(e=f)为101,(p=q)、(s=t)为任意值,然后取全部五个条件为010 11和010 00,即能到达判定/条件覆盖的要求。8答案:A解析:A的说法及事实正好相反,自底向上的一个优点是在工作的初期就可以进展并行测试和集成,比使用自顶向下的策略效率高。9答案:A解析:B、C、D都是单元测试所关注的。10答案:解析:可跟踪性分析是指标识原始需求和相应开发结果之间关系的能力。可跟踪性分析的目的是保证规格说
5、明中的每项需求被正确标识,当前阶段及前后阶段之间跟踪是一致的。借助于向前和向后跟踪,可以建立高效的测试方案,并可验证覆盖了功能和设计需求/特性的测试用例的实测结果。每个跟踪按一致性、完整性和正确性来分析,以便验证全部的软件需求是否在软件中得以实现以及是否及正确的设计、代码和测试信息相联系。11答案:B解析:软件性能测试包括三个目标:发现缺陷,性能调优,能力检验及规划,A说法正确压力测试是指在较大的业务压力下,即系统运行环境超常的情况下,测试软件是否存在功能和性能上的缺陷。负载测试是指不断增加软件的业务压力,探测软件在保证预定性能指标的情况下所能负担的最大压力。压力测试和负载测试是有区别的,二者
6、都需要对软件施加业务压力,但根本目的完全不同,负载测试是探测软件处理能力的极限,而压力测试是利用压力提醒潜在缺陷。B说法错误。性能测试通常需要对测试结果进展分析才能获得测试结论,C说法正确。性能测试的目的之一,就是检验软件的最大负载,D说法也正确。12答案:C解析:软件的性能是软件的一种非功能特性,它关注的不是软件是否能够完成特定的功能,而是在完成该功能时展示出来的及时性。根据测试目的的不同,可以把软件性能测试以及及性能有关的其他一些测试分为:性能测试并发测试压力测试可靠性测试负载测试配置测试失效恢复测试兼容性测试属于系统测试的范畴,不是软件性能测试。故此题选C。13答案:A解析:软件可靠性和
7、软件可靠性测试的研究在很大程度上借鉴了硬件可靠性的研究,但由于软件和硬件的不同特点导致软件可靠性和硬件可靠性也有很大的不同,这也是软件可靠性研究仍然很不成熟的重要原因。具体而言,软件可靠性和硬件可靠性的区别包括:唯一性。软件设计出来后,所有复本就是一摸一样的;硬件设计出来后,每个按照设计生产的硬件都不可能完全一样。物理退化。一个正确的硬件器件会因为物理退化在某时刻失效,但正确的软件那么不会因为物理退化而发生失效。逻辑复杂性。软件具有复杂的内部逻辑,而硬件的内部逻辑那么相对简单。版本更新。硬件的版本更新通常很慢,而软件的版本更新比拟频繁。B说法错误,硬件也有恶意使用者。随着国际化的加深,硬件的生
8、产标准越来越统一,使用者也遍布很多地区,C说法错误。硬件失效通常不是逻辑错误导致的,但也有例外,D说法太过绝对。综合以上,此题应选A。14答案:B由于大突击集成面对的是整个软件的所有代码,几乎没有什么方法能够为此生成适宜的测试用例集,所以大突击集成可能导致测试不充分,A说法正确。在面向对象中,一般有少数的方法需要单独进展测试,D说法正确。15答案:D解析:在面向对象中,很难对单个成员方法进展充分的测试,这是因为多个成员方法会通过成员变量产生相互依赖关系。合理的测试是将这些相互依赖的成员方法放在一起进展测试,故A说法错误。基于判定表的测试,又称为组合功能测试,既可以用于传统软件测试,也可以用于面
9、向对象软件测试,B说法错误。不变式边界测试是一种根本的和高效的类层次的测试技术。类层次测试的一个主要困难是成员变量的某些状态可能不会出现,这就是所谓的类不变式。不变式边界测试首先准确定义类的不变式,其次寻找成员方法的调用序列以违反类不变式,这些调用序列即可作为测试用例。不变式边界测试的目的不是测试功能组合,C项说法错误。对于抽象类,需要进展单元测试。但是构造抽象类的驱动程序显然比构造其他类的驱动程序复杂,因为在测试抽象类时,需要为抽象类构造一个子类,并实现所有抽象类没有实现的成员方法。D正确。16答案:B解析:大突击集成最大优势在于整个测试过程可以在很短的时间内完成。它的主要劣势为:测试难以充
10、分进展,大突击测试会增加调试难度。基于大突击集成的主要缺点,只有在整个软件的可靠性有了根本保障时,大突击集成才是一个合理的选择。虽然大突击集成的劣势很明显,但在一定条件下还是能够表达一定的优势的,故A说法错误。在面向对象集成中,自底向上集成需要开发大量的测试驱动代码,自顶向下集成也需要开发大量测试桩代码,B正确。 协作集成和基于集成是新型的面向对象集成方式,二者及自底向上集成和自顶向下集成有类似之处,也有不同之处,不能混为一谈,C、D说法均不正确。17答案:C解析:对Web应用软件进展性能测试主要包括三个方面:并发测试、负载测试和压力测试、配置测试和性能调优。A说法错误。内容测试不属于易用性测
11、试范畴,B说法错误。Cookie测试是Web应用软件功能测试的一项重要内容,C正确。是否存在无效链接是Web应用软件功能测试关注的范畴,D错误。18答案:C解析:软件是否能在多种操作系统下运行属于兼容性测试的范畴,软件是否能及同类软件共享数据也属于兼容性测试,软件是否能抵御网络攻击属于性能测试,A、B、D均错误。软件是否能主动制止用户可能进展的非法操作属于软件易用性测试关注的范畴,C正确。19答案:A解析:常用的数据兼容性主要包括两类:不同版本间的数据兼容性。B、C都属于这一类。不同软件间的数据兼容性。D属于这一类。A不属于数据兼容性测试关注的范畴。20答案:A解析:极限测试本质上是为了满足极
12、限编程的思想和流程而设计的一套测试策略和流程,A正确。极限测试中单元测试是由编码人员完成的测试,验收测试主要由用户完成,B说法错误。极限测试的验收测试的形式决定了其不是很详细和严格的测试,编码中常见的错误大多数可以逃过验收测试,C说法错误。极限测试除了要进展单元测试,还要进展验收测试,D说法错误。21答案:D解析:软件缺陷报告的编写应该遵循以下原那么:软件缺陷报告是测试人员和开发人员交流的纽带,最重要的原那么是一定要将问题说明白,让不能和测试人员直接交流的开发人员可以依据描述理解和再现所发现的软件缺陷。一个软件缺陷报告中只应记录一个不可再划分的软件缺陷。软件缺陷报告的标题应该能够最简洁表达一个
13、软件缺陷。再现该软件缺陷的步骤应该是最简化的,应剔除其他不相关的步骤或因素。依据一系列的程序执行步骤和测试输入来再现软件缺陷。应提供全面的有关该软件缺陷再现的信息。不要填写重复的软件缺陷。当一个缺陷是被报告过的,那么就不可以再填写另外一个报告,否那么会造成质量保证人员和开发人员的额外负担及资源浪费。A、B、C均符合以上规那么,D的说法及最后一条规那么相违背。23答案:B解析:软件测试环境的五个要素有:硬件软件测试最根本的硬件包括效劳器和测试用机。硬件设备按配置标准,通常分为标准配置、最正确配置和最低配置三种。软件软件环境包括操作系统和应用程序。数据准备测试的数据很重要,数据准备包括数据量和真实
14、性两个方面。网络环境 随着网络的普及,软件产品离不开网络环境,网络环境是硬件因素和软件因素的综合。各种路由器、交换机、网线和网卡是硬件根底,各种代理、网关协议、防火墙那么是软件根底。测试工具测试工具分类:代码分析及测试工具、自动/半自动测试过程管理工具和测试资源管理工具。24答案:C解析:根据?GB/T15532-2021计算机软件测试标准?,软件测试管理包括测试过程管理、配置管理和测试评审管理。25答案:B解析:根据?GB/T15532-2021计算机软件测试标准?,测试用例的设计应遵循下面原那么:基于测试需求的原那么;基于测试方法的原那么;兼顾测试充分性和效率的原那么;测试执行的可重复性原
15、那么。二、论述题答案及解析论述题1解答: 1把有限状态自动机图的状态用结点代替,迁移用弧线代替,那么可画出相应的控制流图。2上图的环路复杂性度量VG为5区域数或者V(G)=E-N+2所以根本路径集合共有5条独立的路径:S1S1S1S2S5S1S2S3S4S1S1S2S3S5S1S2S3S4S53为每一条独立路径个设计一组测试用例,以便强迫程序沿着该路径至少执行一次1. 插入无效卡2. 插入有效卡正确输入PIN码按下事物选择按钮3. 插入有效卡第一次错误输入PIN码第二次错误输入PIN码第三次错误输入PIN码4. 插入有效卡第一次错误输入PIN码第二次正确输入PIN码按下事物选择按钮5. 插入有
16、效卡第一次错误输入PIN码第二次错误输入PIN码第三次正确输入PIN码按下事物选择按钮论述题2解答: 1函数leap的流程图如下:函数numdays的流程图如下:main函数的流程图如下语句的具体内容已略去:此题的程序用来打印输入日期的第二天日期,只要根据程序中的判断语句设计出相关的测试用例,就能使得所有函数的语句覆盖率和分支覆盖率均能到达100%。为了满足leap函数的语句覆盖率和分支覆盖率均能到达100%,应当设置两个测试用例,使得一个是闰年,一个不是,在这里可以取2021年和2007年。由于numdays函数的判定语句是对leap的函数值进展判定,满足了leap的覆盖率要求,就能够满足n
17、umdays的覆盖率要求。对于main函数中的while语句,根据流程图,先使判断局部为1,然后为0,这样就可以到达覆盖要求。对于while语句之后的ifelse ifelse语句,只要能够使每个分支都执行一遍,就能到达覆盖要求。根据以上分析,设计测试用例如下:用例编号年月日leapnumdayswhileifelse ifelse输出结果120212301291error2200712310310month=123610310310today=numdays48044171300today!=numdays注意,这里的第12个用例使得leap函数中的return 1和 return 0都能执
18、行一遍,同时numdays函数中的ifelse构造两个分支也都能得到执行;第1个用例也能够使while循环体能够得到执行;第234用例三个测试用例刚好使main中的ifelse ifelse三个分支都执行一遍。论述题3解答: 以下图是QESuite Web Version 1.0的问题报告工作状态转换流程。操作1中,在新建状态下,应该由测试人员进展校验工作,然后更改问题状态为翻开。操作2中,结果状态为翻开/再现,说明是测试人员由翻开状态进展校验,最后变为翻开/再现。此时版本号不变,为Lead1.0_090703.操作3中,状态为修复/修复,说明是开发人员进展了修复操作,最后状态变为待验,此时版
19、本号变更为Lead1.0_090801.操作4中,操作后的问题状态为翻开/修复失败,说明是测试人员进展了验证操作,执行操作为验证。所以,最后的表格为:操作序号操作者执行操作操作后的问题状态测试版本1Test5新建翻开2Test5校验翻开/再现3Developer3修复/修复待验4Test5验证/不同意翻开/修复失败2021年3月真题答案解析一、选择题答案解析1答 案:D解 析:软件的效率是指:在规定条件下,相对于所用的资源的数量,软件产品可提供适当性能的能力。软件的易用性是指:在指定条件下使用,软件产品被理解、学习、使用和吸引用户的能力软件的功能性是指:当软件在指定条件下使用,软件产品提供明确
20、的和隐含要求的功能的能力。软件的可靠性是指:在指定的条件下使用时,软件产品维持规定的性能水平的能力。2答 案:C解 析:独立测试是指软件测试工作由在经济上和管理上独立于开发机构的组织进展。采用独立测试方式,无论在技术上还是管理上,都对提高软件测试的有效性具有重要意义,对软件测试的客观性、专业性、权威性、资源的保证等方面都有较大的影响。3答 案:B解 析:各种软件缺陷所造成的后果是不同的,有的仅仅是不方便,有的可能是灾难性的。一般来说,问题越严重的,其处理的优先级越高,越要得到及时纠正。软件公司对缺陷严重性级别的定义不尽一样,但一般来说可以概括为四种级别:l 致命的错误,指造成系统或应用程序崩溃
21、、死机、系统悬挂,或造成数据丧失、主要功能完全丧失等。l 严重的错误,指功能或特性没有实现,主要功能局部丧失,次要功能完全丧失,或致命的错误声明。l 一般的错误,指不太严重的错误,这样的软件缺陷虽然不影响系统的根本使用,但没有很好的实现功能,没有到达预期的效果。l 微小的错误,指一些小的问题,对功能几乎没有影响,产品及属性仍可使用。4答案:B解析:对于嵌套型分支构造,假设有N个判定语句,那么存在N+1条不同的路径。 5答案:A解析:DDP覆盖率公式:DDP覆盖率=被评价到的判定路径数量/程序中判定路径总数100%=4/7100%=57.1%。6答 案:A解 析:边界值分析也是一种黑盒测试方法,
22、是对等价类划分方法的补充。人们从长期的测试工作经历得知,大量的错误是发生在输入或输出范围的边界上,而不是在输入范围的内部。7答 案:D解 析:单元测试的测试对象是实现了具体功能的程序单元,一般对应详细设计中所描述的设计单元。8答案:C解析:一个好的设计应能预见各种出错条件,并进展适当的出错处理,即预设各种出错处理通路。出错处理是模块功能的一局部,这种带有预见性的机制保证了在程序出错时,对出错局部及时修补,保证其逻辑上的正确性。因此,出错处理同样需要认真测试。9答 案:B解 析:正向集成测试的重点是验证集成之后的模块是否按照设计实现了预期的功能。集成测试中的逆向测试包括分析被测接口是否实现了需求
23、规格没有描述的功能,检查规格说明中可能出现的接口遗漏,或者判断接口定义是否有错误,以及可能出现的接口异常错误,包括接口数据本身的错误、接口数据顺序错误等。10答 案:C解 析:成对集成的思想是免除驱动/桩模块的开发,使用实际代码代替驱动模块和桩模块。这类似于一次性集成的方式,但是这种集成限制在调用图中的一对单元上。三明治集成混合的增量式集成的目的是综合自顶向下和自底向上的集成测试策略的优点。它把系统划分成三层,中间一层为目标层,测试的时候,对目标层上面的一层使用由顶向下的集成策略,对目标层下面的一层使用自底向上的集成策略,最后测试在目标层会合。相邻集成就是对每个邻居建立并执行一个集成测试会话,
24、这可减少集成测试中桩模块和驱动模块的开发工作量。相邻集成在一定程度上类似于三明治集成,但是它基于调用图来进展测试,而不是基于分解图。11答 案:B解 析:软件性能测试分为以下几类:性能测试:测试软件的性能及软件需求规格说明是否相符。并发测试:模拟多个用户并发使用软件,以测试软件是否存在及并发有关的缺陷。压力测试:在较大的业务压力下,即系统运行环境超常的情况如提供超常数量、频率或总量资源下,测试软件是否存在功能和性能上的缺陷。可靠性测试:在比拟大的业务压力情况下进展的软件可靠性测试。负载测试:不断增加软件的业务压力,探测软件在保证预定性能指标如响应时间的情况下所能负担的最大压力。配置测试:通过调
25、整软件的运行环境,测试不同的环境配置对软件性能的影响程度。失效恢复测试:很多系统应当具有一些容错的能力,在出现某些故障时,仍然能够让用户继续使用下去。失效恢复测试是指验证系统从故障中恢复能力的测试。B项的强健性测试属于系统测试的方法。12答案:B解析:软件性能测试的目标:发现缺陷、性能调优、能力检验及规划。13答 案:A解 析:软件可靠性有两方面含义:1在规定的条件下和规定的时间内,软件不引起系统失效的概率;2在规定的时间周期内,在所述条件下程序执行所要求的功能的能力。软件可靠性测试的目的不在于通过测试提醒软件中的缺陷并通过修改这些缺陷来提高软件的可靠性,而是通过受控的软件测试过程来预测软件在
26、实际运行中的可靠性。因为软件可靠性的预测依赖于出错数据的统计,软件在可靠性测试中的运行情况必须完全符合软件的实际运行情况,否那么预测的软件可靠性只能适用于所使用的测试用例,而不能反映实际运行时的可靠性。由此可得A正确。14答 案:C解 析:在面向对象中,进展系统测试时,通常不关心软件各个实体的实现细节和实体间的连接细节。因此,系统测试主要是黑盒测试,A说法不对。在面向对象测试中,成员方法对成员变量有或多或少的依赖,成员方法的许多功能需要在特定的实例状态下才能执行。因此,在测试面向对象软件时,不能够简单地对每个类的成员方法进展测试,在调用任何一个成员方法之前必须保证相应的实例处于该成员方法的预期
27、工作状态。也就是说,为了测试一个成员方法,需要在调用该方法前调用一系列其他方法以使得相应的实例到达适宜的状态。换句话说,由于每个测试用例不仅仅调用一个成员方法,而是对整个类进展测试的一个方法调用序列。因此,在设计类的测试用例时,仅仅考虑成员方法的输入参数是不够的,还要考虑如何设计调用序列。有些测试序列会在某些成员方法执行时因为不能满足该方法正常执行的前提条件而导致此方法处于不正常的工作状态,这些测试序列是不合理的测试序列,因此选项B说法不正确。因为类B继承类A,合理的使用继承时类B的实例应该也是类A的实例,对类B的实例的测试应该已经包括其作为类A例的测试,C说法正确。等价类划分是一种方法层次的
28、测试,而不是类树层次的测试技术,D错误。15答 案:C解 析:大突击测试就是把系统的所有模块集成在一起进展测试。及其它集成测试策略不同,大突击集成只进展一轮,无需进展增量式集成,A说法正确。自底向上集成中比大突击集成更能够提高测试的充分性,这点很明显,因为大突击测试集成只进展一轮,而自底向上集成要好几轮,每个轮回都有新的测试内容,因此B说法正确。基干集成的优点是:集中了自底向上集成、自顶向下集成和大突击集成三者的优点,而对三者的缺点也进展了控制,更适合于大型复杂工程的集成。基干集成的缺点是:1需要对系统的构造和相互依存性进展详细的分析。2需要开发桩模块和驱动模块。3因为局部采用了一次性集成的策
29、略,因此对某些接口的测试可能不完整。基干集成适用于大型的复杂工程,并不是对任何工程都适用,C说法错误。自底向上集成需要开发驱动模块,自顶向下集成需要开发桩模块,两者都要开发相应代码,D说法正确。16答 案:C解 析:A、B、D都是面向对象中单元测试所考虑的范畴。集成策略需要关注如何充分测试类间的各种连接,C属于集成测试考虑的范畴。17答 案:A解 析:Web应用软件的系统测试包括功能测试、性能测试、易用性测试、内容测试、平安性测试、接口测试等。其中,功能测试包括链接测试、表单测试和Cookie测试。由此可知A正确,B错误。及传统软件相比,Web应用软件具有特殊的构造,且Web应用软件的开发主要
30、是在固定的构造中填充相应的内容,而不是根据需求由开发人员设定构造。因此,Web应用软件的运行和测试在很大程度上要受到环境的制约,特别是单元测试和集成测试。这也使得Web应用软件的系统测试不仅包括按照测试大纲检查Web应用软件能不能满足要求,而且需要对Web应用软件的的薄弱环节进展测试。可见, Web应用软件测试并不比传统软件测试更简单,甚至还要复杂,C错误。Web应用软件测试中既有白盒测试,也有黑盒测试,D说法错误。18答 案:D解 析:Web应用软件的系统测试包括功能测试、性能测试、易用性测试、内容测试、平安性测试、接口测试等。由此可知A说法正确。Web应用软件平安性测试包括效劳器端的内容平
31、安性测试、客户端的内容平安性测试、Cookie平安性测试、日志功能的测试等,由此可知B说法正确。Web应用软件性能测试包括并发测试、负载测试和压力测试、配置测试和性能调试。C正确。Web应用软件的功能测试包括链接测试、表单测试和Cookie测试。由此可知表单测试不是Web应用软件性能测试的一项重要内容,而是功能测试的一项重要内容19答 案:D解 析:软件易用性是对软件是否好用的一种度量。易用性测试包括用户文档的测试,易安装性测试、功能易用性测试以及用户界面测试。易安装性测试包括安装手册的易用性、安装的自动化程度、安装的灵活性、安装中断的处理、修复安装和卸载、多环境安装的支持。功能易用性测试包括
32、业务符合度、功能定制性、功能的关联度、数据的共享度、用户约束的合理度。用户界面测试包括界面整体测试、界面元素测试、输入测试。A项属于用户界面整体测试的合理性测试;B项属于易安装性测试的多环境安装的支持;C项属于功能易用性测试的功能定制性。D项不属于软件易用性测试关注的范畴。20答 案:B解 析:所谓兼容性测试,是指针对软件对其运行环境的依赖进展测试,以验证软件是否能够在所有期望的环境中运行。通常,兼容性测试主要考虑硬件、软件和数据三个方面。软件兼容性测试通常考虑以下几个方面:及操作系统的兼容性、及数据库的兼容性、及浏览器的兼容性、及中间件的兼容性、及其他软件的兼容性、及平台软件的兼容性。及其他
33、软件的兼容性包括三个方面:1及其他支撑软件的兼容性2及其他同类软件的兼容性3及不同类软件的兼容性B项属于及其他软件的兼容性中的及不同类软件的兼容性,故其为正确答案。21答 案:A解 析:软件测试设计的要点有:l 所设计的测试技术方案是否可行,是否有效和是否能到达预期的测试目标l 所设计的测试用例是否完整,边界条件是否考虑,其覆盖范围能到达多高l 所设计的测试环境是否和用户的实际使用环境比拟接近l 关键是做好测试设计前的知识传递由以上可知A说法正确。基于判定表的测试用例设计方法是黑盒测试用例设计方法,B说法错误。测试环境应当和用户的实际使用环境比拟接近,这样才能更好地进展测试,C说法错误。测试开
34、发是测试用例设计的一局部工作内容,D项的说法及事实相反,不选。22答 案:D解 析:测试执行的完成,并不等于测试工程的完毕。测试工程完毕的阶段性标志是将测试报告或质量报揭发送出去,并得到测试经理或工程经理的认可。不仅要完成测试报告和质量报告,还要对测试方案、测试的设计以及测试的执行进展检查和分析,以完成测试工程的总结。需要完成的管理操作如下:审查测试全过程。在原来跟踪的根底上,要对测试工程进展全过程、全方位的审视,检查测试方案、测试用例是否得到执行,检查测试是否有遗漏。对当前状态的审查。包括产品缺陷和过程中没有解决的各类问题。对产品目前存在的缺陷进展逐个的分析,了解对产品质量影响的程序,从而决
35、定产品的测试是否能告一段落。完毕标识。根据上述两项的审查进展评估,如果所有测试内容完成,测试的覆盖率到达要求以及产品质量到达已定义的标准,就可以定稿测试报告。工程总结。通过对工程中的问题分析,找出流程、技术和管理中存在的问题根源,防止今后再度发生并获得工程成功经历。由以上可得A、B、C选项说法均错误,D正确。23答 案:D解 析:如果仅执行自动测试,而不进展自动比拟,就不算是自动化测试,A说法正确。自动比拟的内容可能是多种类型的,例如:文本信息、专用格式化数据、屏幕输出内容、电子邮件信息、发送到硬件设备的数据或信号、通过网络发送到其他机器和进程的信息、数据库的内容等等,B选项的说法正确。自动比
36、拟的局限性在于办公自动比拟可能没有人工比拟灵活,C选项说法正确。比拟海量数据、屏幕输出等信息不是人类能够胜任的工作,因为这种工作带有重复的劳动和相当复杂的任务,但是计算机却非常能够胜任这样的工作,D选项及事实刚好相反。24答 案:C解 析:回归测试的目的是测试软件变更之后,变更局部的正确性和对变更需求的符合性,并测试软件变更之后,对软件原有正确的功能、性能和其他规定的要求不产生损害。其测试的对象有:未通过单元测试、系统集成测试、配置项测试、系统测试的软件。在变更之后,首先应对变更的软件单元进展测试,然后再进展相关的测试。回归测试的内容可能有:只重复测试原来软件单元测试做过的测试内容;修改原软件
37、单元测试做过的测试内容;以及在前两者根底之上新增测试内容。由以上可得A、B项说法均正确,而C选项说法明显错误。软件测试标准规定,对具体的软件可根据软件测试合同及软件的重要性、完整性级别的对上述各类软件测试的内容进展裁剪。D选项说法错误。25答 案:D解 析:验收测试是以需方为主的测试,其对象是完整的、集成的计算机系统,A选项的说法正确。软件验收测试的技术依据是软件研制合同。B选项说法正确。软件验收测试工作应满足被验收测试的软件已通过系统测试。C选项说法正确。验收测试一般由软件的需方组织,由独立于软件开发的人员实施。如果验收测试委托第三方实施,一般应委托国家认可的第三方测试机构。D选项说法错误。
38、二、论述题答案及解析论述题1解答: 解答:根据教材第五章的相关内容和图论的知识点解答此题。1.根据题意,状态转换图如下:2.从图上可以看出,该图分为五个区域,所以V(G)= 5。此外,图中边数E为6,结点数N为3,那么V(G)=EN+2=6-3+2=5。3.根据上图,可得根本测试路径如下: 论述题2解答: 1.根据该表可以发现存在以下问题:子系统客户端容量没有设计相关的测试用例,需要补上。登录及退出的测试用例全部没有被执行,需要执行。即时消息的个人设置功能的测试用例没有执行完全,只执行了两个且通过,还有6个未执行。总体来说,存在的问题有:测试用例设计也存在问题,功能区域划分不详细。用例覆盖面不
39、全,客户端容量的测试用例没有覆盖到。还有就是存在未执行的用例。2. 根据题意,开发组中要修改的问题数是14+151=165,需要修改时间是165/40=4天;即使不需要修改新建的问题,需要时间是:(105+151)/90=3天。需要根据存在问题的严重性来选择需要优先解决的问题,测试组可以先对客户端容量进展测试,同时开发组修复已经发现的问题,他们之间可以并行地展开。论述题3解答: 1.main函数的控制流程图如下限于篇幅只显示语句块,不显示具体语句:图中各判断语句如下: tMAX c4: addr_listt.name0 & & t0&slotMAX : addr_listt.name02.设计
40、测试用例时,关键需要注意将t的值到达Max,即起码要输入四个name才行,这样当t=Max才能为真,才可以执行相应的分支语句。具体输入如下:输入四个name:1小明凤凰街南京2100001小红南京路上海1200001王明达成路上海1200001李明南京路北京100000打算输入第五个:1删除一个name:2小明 列出所有: 3 退出: 4 这样,程序中每一条语句都能够被执行。上述测试用例能够使每条语句均执行,故语句覆盖率能够到达100%。2021年9月真题答案解析一、选择题答案及解析 1答 案:D解 析:软件质量是产品、组织和体系或过程的一组固有特性,反映它们满足顾客和其他相关方面要求的程度。
41、如CMU SEI的Watts Humphrey指出:“软件产品必须提供用户所需的功能,如果做不到这一点,什么产品都没有意义。其次,这个产品能够正常工作。如果产品中有很多缺陷,不能正常工作,那么不管这种产品性能如何,用户也不会使用它。2答 案:B解 析:Glenford J.Myers于1979年给出测试的定义为:软件测试是为发现错误而执行的一个程序或者系统的过程。同时他给出了三个关于测试的重要观点:l 测试是为了证明程序有错,而不是证明程序正确。l 一个好的测试用例在于它能发现以前未发现的错误。l 一个成功的测试是发现了以前未发现的错误的测试。3答 案:A解 析:在代码检查进展时,主要进展两项
42、活动:1由程序编码人员逐条语句讲述程序的逻辑构造。在讲述中,很可能是程序编码人员本人而不是其他小组成员发现了大局部错误,换句话说,对着大家大声朗读程序,这种简单的做法看来是一个非常有效的错误检查方法。2对照常见编码错误列表分析程序。协调人负责确保检查会议的讨论高效地进展,每个参及者都将注意力集中于查找错误而不是修正错误。4答 案:D解 析:所谓“缺陷bug,即为计算机软件或程序中存在的某种破坏正常运行能力的问题、错误或者隐藏的功能缺陷。软件缺陷的主要类型有:1软件没有实现产品规格说明要求的功能;2软件出现了不该出现的错误;3软件实现了说明没提到的功能;4软件没实现虽然规格说明中未明确提及但应实
43、现的目标;5软件难理解,不易使用。5答 案:D解 析:在软件测试原那么中强调测试人员要在软件开发的早期进展测试,如需求分析阶段就应该介入,问题发现的越早越好。发现缺陷后要尽快修复缺陷,因为随着产品开发工作的进展,一个小错误会扩散成大错误,为了修改后期的错误所作的工作要大得多,即越到后来往前返工也越远,缺陷发现或解决得越迟,本钱就会越高。Boehm在书中明确指出,修正错误的代价不是随时间线性增长,而几乎是呈指数增长的。 6答 案:D解 析:白盒测试又称为逻辑驱动测试,这种测试策略是对程序的逻辑构造进展检查,从中获取测试数据。所以说白盒测试是一种以程序内部的逻辑构造为根底的测试用例设计技术。7答
44、案:A解 析:软件验证和确认理论是测试过程的理论依据,验证是检查软件开发的各个阶段过程活动的结果是否满足规格说明的描述,证实各阶段和阶段之间的逻辑协调性、完备性和正确性。确认是证实在一个给定的外部环境中软件的逻辑正确性,即是否满足用户的要求。Bohem给出了一个经典定义:验证是检查我们是否正在正确地建造一个产品,它强调的是过程的正确性。而确认是检查我们是否在建成一个正确的产品,它强调的是产品的正确性。8答案:C9答 案:C解 析:增量测试策略首先要对程序的每个程序单元或程序部件单独进展测试,这种测试便是单元测试,也称模块测试或部件测试。在单元测试时,程序员必须编写一个驱动模块,用来调用被测模块
45、并向其传送测试数据,假设该模块调用了其他模块,程序员必须编写一个桩模块,用来代替被调用的模块。10答 案:B解 析:大突击测试及增量测试不同,它是把所有的模块一次性集成为一个完整的系统后进展完全测试,所有东西都集成到一起测试,很容易整体测试,也容易导致整个崩溃。大突击测试的优点是无须编写桩模块和驱动模块代码。缺乏有两点:一是要找出导致失效的原因很困难;二是一个模块中存在的缺陷还可能阻碍其他模块的测试。11答 案:D解 析:软件性能指标主要有响应时间、系统响应时间和应用延迟时间、吞吐量、并发用户数、资源利用率五种。软件实现的算法及系统响应时间和应用延迟时间是直接相关的,所以软件的性能也必定及实现算法是有关系的。吞吐量是指系统在单位时间内处理请求的数量,对于无并发的应用系统而言,吞吐量是及响应时间严格的反比关系,但对于其他系统那么不一定。资源数量及平均响应时间没有直接关系,因为在具体一个时间点,所占用的资源往往并不多,即假设处理单个请求,在每个时间点都可能会有许多资源被闲置,当处理多个请求时,平均响应时间也及资源调配是否合理有关,及资源数量没有直接关系。另外,并发用户数是性能的一个重要指标,所以选项D“对于一个网络,其支持的同时发送请