1、软件测试题库第一章:软件测试的基本概念一、选择题:1、Myers1979 年提出了一个重要的观点,软件测试的目的是为了(B) 。(B)A.证明程序正确 B.查找程序错误 C.改正程序错误 D.验证程序无错2、对程序的测试最好由(B)来做,对程序的调试最好由(B )来做。(B)A.程序员/第三方测试机构 B.第三方测试机构/ 程序员C.程序开发组/程序员 D.程序开发组/程序开发组3、下列选项中,不属于软件产品使用质量的属性是(C) 。(C)A.有效性 B.安全性 C.稳定性 D.满意度4、下列软件属性中,软件产品首先满足客户的是(A ) 。(A)A.功能需求 B.性能需求 C.可扩展性和灵活性
2、 D.容错、纠错能力5、在测试和使用软件产品过程中进行的度量是(B) 。(B)A.内部度量 B.外部度量 C.使用度量 D.性能度量6、内部质量需求包括(D) 。(D)A.静态模型 B.动态模型 C.文档和源代码 D.以上都是7、以下不属于软件缺陷的一项是(D ) 。(D)A.软件没有实现产品规格说明所要求的功能B.软件中出现了产品规格说明指明不应该出现的错误C.软件实现了产品规格说明没有提到的功能D.软件实现了产品规格说明所要求的功能,但因受性能限制而未考虑可移植性问题8、在软件生存周期过程中,修改错误代价最大的阶段是(D) 。(D)A.需求阶段 B.设计阶段 C.编程阶段 D.发布运行阶段
3、9、功能或特性没有实现,主要功能部分丧失,次要功能完全丧失,或致命的错误声明,这属于软件缺陷级别中的(B) 。(B)A.致命的缺陷 B.严重的缺陷 C.一般的缺陷 D.微小的缺陷10、软件缺陷的基本状态有(D ) 。(D)A.激活状态 B.已修正状态 C.关闭或非激活状态 D.以上都是11、软件缺陷产生的原因有(D ) 。(D)A.技术问题 B.团队工作 C.软件本身 D.以上都是12、经验表明:在程序测试中,某模块与其他模块相比,若该模块已发现并改正的错误数目较多,则该模块中残存的错误数目与其他模块相比,通常应该是(B) 。(B)A.较少 B.较多 C.相似 D.不确定13、为了提高测试的效
4、率,正确的做法是(A ) 。(A)A.选择发现错误可能性大的数据作为测试用例B.在完成程序的编码之后再制定软件的测试计划C.随机选取测试用例D.取一切可能的输入数据作为测试用例14、黑盒测试是一种重要的测试策略,又称为数据驱动测试,其测试数据来源于(A) 。(A)A.软件规格说明 B.软件设计说明 C.概要设计说明 D.详细设计说明15、以程序内部的逻辑结构为基础的测试用例设计技术属于(D) 。(D)A.灰盒测试 B.数据测试 C.黑盒测试 D.白盒测试16、软件验证和确认理论是测试过程的理论依据,其中验证是检查我们是否正在正确地建造一个产品,强调的是(A) 。(A)A.过程的正确性 B.产品
5、的正确性 C.测试的正确性 D.规格说明的正确性17、下列有关测试过程管理的基本原则,错误的一项是(B) 。(B)A.测试过程管理应该首先建立测试计划B.测试需求在测试过程中可以是模糊的、非完整的C.在测试任务较多的情况下,应该建立测试任务的优先级来优化处理D.整个测试过程应该具有良好的可测性和可跟踪性,强调以数据说话18、软件质量的定义是(D) 。(D)A.软件的功能性、可靠性、易用性、效率、可维护性、可移植性B.满足规定用户需求的能力C.最大限度达到用户满意D.软件特性的总和,以及满足规定和潜在用户需求的能力19、在软件内部/外部质量模型中,可移植性不包括的子特性是(C ) 。(C)A.适
6、应性 B.共存性 C.兼容性 D.易替换性20、GB/T16260-2003 将软件质量特性分为内部质量特性、外部质量特性和(D) 。(D)A.安全质量特性 B.适用质量特性 C.性能特性 D.使用质量特性21、两个小组独立地测试同一个程序,第一组发现 25 个错误,第二组发现 30 个错误,在两个小组发现的错误中有 15 个是共同的,那么可以估计程序中的错误总数是(C)个。(C)A.25 B.30 C.50 D.6022、GB/T16260-2003软件工程产品质量规定的软件产品使用质量特性包括(B) 。(B)A.适应性、生产率、可靠性、满意度 B.有效性、生产率、安全性、满意度C.有效性、
7、可靠性、适应性、满意度 D.适应性、适用性、效率、满意度二、论述题:1、简述软件测试的八个基本原则。答案解析1、答案 :B解析:详见 Myers 提出的 3 个重要观点。2、答案 :B解析:根据软件测试的概念,软件的开发与测试应该分离开来。所以测试最好由第三方测试机构来做,而调试工作需要对源代码的熟悉程度比较高,最好由程序员来执行。3、答案 :C解析:在 ISO 质量模型中,使用质量包括有效性、生产性、安全性、满意度,稳定性不在其中。4、答案 :A解析:CMU SEI 的 Watts Humphrey 指出:“软件产品必须提供用户所需的功能,如果做不到这一点,什么产品都没有意义。 ”5、答案
8、:B解析:外部度量是在测试和使用软件产品过程中进行的。6、答案 :D解析:内部质量是表征软件产品在规定条件下使用时,决定其满足规定的和隐含的要求能力的产品属性的全体,内部质量是从内部的观点看软件产品的全部特性,内部质量需求包括静态模型、动态模型和其他文档、源代码等。7、答案 :D解析:D 选项并不在软件缺陷定义的 5 种情况之中。8、答案 :D解析:修复错误所花费的代价是随着时间轴而递增的。9、答案 :B解析:软件缺陷严重性有四种级别,分别是:(1)严重级:致命的错误,造成系统崩溃、死机,或造成数据丢失、主要功能完全丧失等。当这种情况发生时,应设为最高优先级,需要立即修复错误,并停止进一步的测
9、试行为。(2)较严重级:严重错误,指功能模块或特性没有实现,主要功能部分丧失,次要功能全部丧失,或致命的错误声明。(3)一般级:不太严重的错误,如次要功能模块丧失、提示信息不够准确、用户界面差和操作时间长等。设修复级别为次高优先级,在时间条件允许的情况下应修复。(4)建议级:一些小问题如有个别错别字、文字排版不整齐等,对功能几乎没有影响,软件产品仍可使用。设修复级别为最低优先级,可以修复也可以先发布产品。10、答案 :D解析:软件缺陷有 3 种基本状态:激活状态(Active 或 Open) 、已修正状态(Fixed 或Resolves) 、关闭或非激活状态(Close 或 Inactive)
10、 。11、答案 :D解析:在软件开发的过程中,软件缺陷的产生是不可避免的。造成软件缺陷的主要因素有:技术问题、团队工作和软件本身。12、答案 :B解析:根据软件测试原则:应充分注意测试中的群集现象,可知错误也有群集现象,由此可知本题模块中发现的错误数较多。13、答案 :A解析:由测试原则:充分注意测试中的群集现象,可知在测试中应当对错误群集的程序段进行重点测试来提高测试的效率。再根据 2-8 原则,如果发现某一程序模块似乎比其他程序模块有更多的错误倾向时,则应当花费较多的时间和代价测试这个程序模块。14、答案 :A解析:黑盒测试是一种重要的测试策略,又称为数据驱动的测试或输入/ 输出驱动的测试
11、。使用这种测试方法时,将程序视为一个黑盒子,测试目标与程序的内部机制和结构完全无关,而是将重点集中放在发现程序不按其规格说明书正确运行的环境条件中。测试数据完全来源于软件规格说明。15、答案 :D解析:白盒测试是对程序的逻辑结构进行检查,从中获得测试数据,所以说白盒测试是一种以程序内部的逻辑结构为基础的测试用例设计技术。16、答案 :A 解析:验证是检查软件开发的各个阶段过程活动的结果是否满足规格说明的描述,证实各阶段和阶段之间的逻辑协调性、完备性和正确性。确认是证实在一个给定的外部环境中软件的逻辑正确性,是否满足用户的要求。验证强调的是过程的正确性,确认强调的是产品的正确性。17、答案 :B
12、解析:测试需求在测试过程中起到指导性作用,所以测试需求必须是明确的,不能是模糊的、非完整的。18、答案 :D解析:最新版国家标准软件工程术语 (GB/T11457-2006 )中将软件质量定义:软件产品中能满足给定需要的性质和特性的总体。19、答案 :C解析:参见图 1-1“Boehm 质量模型” 。20、答案 :D解析:按照 ISO/IEC9126-1:2001,软件质量特性可以分为内部质量、外部质量和使用质量特性。21、答案 :C解析:两组发现的有效缺陷总数为 40 个,按照软件测试的 2-8 原则,可计算出总计缺陷约 50 个。22、答案 :B解析:使用质量分成 4 个特性,分别是有效性
13、、生产率、安全性和满意度。二、论述题参考答案:软件测试的八个基本原则:(1)所有的软件测试都应追溯到用户需求。(2)尽早和不断地进行软件测试。(3)在设计测试用例时,应该包括合理的输入与不合理的输入以及相应的预期的输出结果。(4)充分注意测试中的群集现象。(5)程序员应避免检查自己的程序。(6)尽量避免测试的随意性。(7)应当对每个测试结果做全面的检查。(8)保留测试文档,包括测试计划、用例、出错统计和最终分析报告。第二章:软件开发阶段与测试类型一、选择题:1、软件设计阶段测试主要采取的方式是 ( ) 。(C)A.黑盒测试 B.白盒测试 C.评审 D.动态测试2、下列不属于内部设计的是( )
14、。(C)A.数据设计 B.逻辑设计 C.界面设计 D.结构设计3、设计阶段的测试对象来自设计文档,下列不属于这一阶段设计文档的是( ) 。(B)A.逻辑设计规格说明 B.物理设计规格说明C.内部设计规格说明 D.外部设计规格说明4、以下属于功能易用性测试关注范畴的是( ) 。(B)A.软件提供的功能是否丰富B.当执行耗时较长的任务时,软件是否能定时向用户提示当前任务完成的进度C.软件是否能够在多种操作系统环境下运行D.软件是否能在不同的硬件配置下运行5、以下说法中错误的是( ) 。(D)A.软件配置项测试的目的是检验软件配置项与软件需求规格说明的一致性B.软件配置项测试一般由软件供方组织,由独
15、立于软件开发的人员实施,软件开发人员配合C.软件配置项测试要求被测软件配置项已通过单元测试和集成测试D.软件配置项测试不得委托第三方实施6、软件测试按实施组织分,应该包括( ) 。(A)开发方测试用户方测试第三方测试验收测试确认测试A. B. C. D. 7、把经过评审通过的各项需求转换为一个相应的体系结构,包括数据的体系结构、系统和软件的体系结构,这是软件生命周期( )阶段的工作。(C)A.系统和需求定义 B.编程和单元测试 C.软件设计 D.运行和维护8、对已经交付使用的软件产品进行维护,其目的是为了( ) 。(D)A.增加软件的功能或功能上的变更B.增加软件的功能或功能上的变更,软件产品
16、的工作环境发生变化,引起相应变化C.在软件使用过程中发现错误需要更正,软件产品的工作环境发生变化,引起相应变化D.增加软件的功能,或功能上的变更,在软件使用过程中发现错误需要更正,软件产品的工作环境发生变化,引起相应变化9、下列可以作为软件测试对象的是( ) 。(D)A.需求规格说明 B.软件设计规格说明 C.源程序 D.以上都是10、规划阶段实际上指的是( ) 。(C)A.数据获取和定义阶段 B.产品实施规划 C.需求获取和定义阶段 D.测试用例设计阶段11、单元测试时,调用被测试模块的是( ) 。(C)A.桩模块 B.通信模块 C.驱动模块 D.代理模块12、测试过程中的 4 项基本活动是
17、测试策划、测试设计、测试总结和( ) 。(A)A.测试执行 B.测试报告 C.测试度量 D.测试需求13、软件测试类型按开发阶段划分为( ) 。(B)A.需求测试、单元测试、集成测试、验证测试B.单元测试、集成测试、确认测试、系统测试、验收测试C.单元测试、集成测试、验证测试、确认测试、验收测试14、下列说法错误的是( ) 。(B)A.单元测试又称为模块测试,是针对软件测试的最小单位程序模块进行正确性检验的测试工作B.集成测试也叫做组装测试,通常在编码完成的基础上,将所有的程序模块进行有序的、递增的测试C. 集成测试是检验程序单元或部件的接口关系,逐步集成为符合概要设计要求的程序部件或整个系统
18、D. 系统测试是在真实或模拟系统运行环境下,检查完整的程序系统能否和相关硬件、外设、网络、系统软件和支持平台等进行正确配置与连接,并满足用户需求15、验收测试的定义是( ) 。(C)A.由用户按照用户手册对软件进行测试以决定是否接收B.由某个测试机构代表用户按照需求说明书和用户手册对软件进行测试以决定是否接收C.按照软件任务书或合同、供需双方约定的验收依据进行测试,决定是否接收D.由开发方和用户按照用户手册执行软件验收16、在软件设计和编码过程中,下列将使软件更加容易理解和维护的做法为( ) 。(C)A.良好的程序结构,有无文档均可 B.使用标准或规定之外的语句C.编写详细正确的文档,采用良好
19、的程序结构 D.尽量减少程序中的注释二、论述题:1、简单说明传统的软件生命周期过程包括的几个阶段。答案解析1、答案 :C解析: 在设计阶段,测试的对象来自设计文档,主要采用的是评审的方式。2、答案 :C解析:内部设计包括功能设计、系统结构设计和逻辑设计,界面设计属于外部设计。3、答案 :B解析:逻辑设计规格说明属于内部设计规格说明,设计阶段的测试对象包括外部设计文档、内部设计文档、逻辑设计文档。4、答案 :B解析:A 选项中提到的软件功能是否丰富是根据软件需求决定的,C、D 选项都是兼容性测试关注的范围。5、答案 :D解析:软件配置项可以委托第三方实施。6、答案 :A解析:验收测试与确认测试都
20、是按照软件开发方式划分的测试类型。7、答案 :C解析:开发人员在设计阶段把通过评审的各项需求转换为相应的体系结构,贯标中的每个组成部分都和某需求相对应。8、答案 :D解析:增加软件功能或应对变更,修复在使用过程中发现的错误,应对工作环境变化产生的变更都属于维护阶段的工作:将软件投入使用,若发现问题,应适当进行更正。9、答案 :D解析:需求规格说明和软件设计规格说明是设计阶段的测试对象,源程序是编码阶段单元的内容。10、答案 :C解析:根据规划阶段的目的,可知为需求获取和定义阶段。11、答案 :C解析:驱动模块相当于所测模块的主程序。它接收测试数据,把这些数据传送给所测模块,最后再输出实测结果。
21、所以在单元测试时,由驱动模块来调用被测模块。12、答案 :A解析:测试策划、测试设计均为测试执行前的准备阶段,而测试总结是测试完成后的阶段,所以测试执行是整个测试过程中必需的阶段。13、答案 :B解析:传统的软件生命周期过程包括制定计划、系统与软件需求定义、软件设计、编程与单元测试、集成测试与系统测试、运行和维护等几个阶段。所以根据开发阶段划分测试分类为单元测试、集成测试、确认测试,产品交付之前和之后,分别需要系统测试和验收测试。14、答案 :B解析:集成测试,通常在单元测试完成之后,将程序模块进行有序的、递增的测试,而不是所有的程序模块。15、答案 :C解析:验收测试是以需方为主的测试,其对
22、象是完整的、集成的计算机系统。其目的是在真实的用户(或称系统)工作环境下检验完整的软件系统是否满足软件开发技术合同(或软件需求规格说明)规定的要求。其结论是软件的需方确定是否接收该软件的主要依据。验收测试以需方为主,但是不一定需要第三方测试机构代表用户来测试;验收测试强调的是根据需求来验证软件是否符合用户要求,所以选 C。16、答案 :C解析:代码的可读性是非常重要的,每个开发人员的编码风格都有所不同。程序良好的风格表现在源程序文档化、数据说明、语句结构和输入/输出 4 个方面。二、论述题参考答案:传统的软件生命周期过程包括制定计划、系统与软件需求定义、软件设计、编程与单元测试、集成测试与系统
23、测试、运行和维护等几个阶段。第三章:桌面检查、代码检查、走查与评审一、选择题:1、桌面检查通常由( )来实施。(C)A.项目经理 B.架构师 C.程序员 D.软件测试工程师2、下列不是桌面检查内容的一项是( ) 。(B)A.常量检查 B.缓冲区溢出检查 C.等价性检查 D.控制流检查3、下列选项中不属于桌面检查中常量检查内容的是( ) 。(C)A.常量的取值 B.常量的类型 C.常量的引用率 D.定义与引用的一致性4、桌面检查的文档是一种( )文档。(A)A.过渡性、不公开的 B.过渡性、公开的C.非过渡性、不公开的 D.非过渡性、公开的5、下列选项中不能直接从表中查出说明/使用错误的是( )
24、 。(B)A.循环层次表 B.常数表 C.变量交叉引用表 D.标号交叉引用表6、程序语句中的小括号配对错误是一种( ) 。(A)A.表达式错误 B.类型错误 C.引用错误 D.接口一致性错误7、为了检测引用异常,需要检查通过程序的每一条路径。通常采用类似( )的方法遍历程序流程图的每一条路径。(C)A.广度优先 B.随机访问 C.深度优先 D.自底向上8、代码走查以( )方式进行。(B)A.交互 B.会议 C.自由 D.电话9、 ( )主持代码走查会议,对整个代码走查过程负责。(D)A.记录员 B.测试员 C.程序员 D.协调人10、在代码走查的计划走查会议阶段,协调人完成的工作不包括( ) 。