《《软件测试技术基础教程》习题解答.doc》由会员分享,可在线阅读,更多相关《《软件测试技术基础教程》习题解答.doc(20页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第一章 软件测试理论一、选择题1. 软件测试的目的是 C 。A表明软件的正确性 B评价软件质量 C尽可能发现软件中的错误 D判定软件是否合格2. 下面关于软件测试的说法, A 是错误的。A软件测试是程序测试B软件测试贯穿于软件定义和开发的整个期间C需求规格说明、设计规格说明都是软件测试的对象D程序是软件测试的对象3. 某软件公司在招聘软件评测师时,应聘者甲向公司做如下保证:经过自己测试的软件今后不会再出现问题;在工作中对所有程序员一视同仁,不会因为在某个程序员编写的程序中发现的问题多,就重点审查该程序,以免不利于团结;承诺不需要其他人员,自己就可以独立进行测试工作;发扬咬定青山不放松的精神,不
2、把所有问题都找出来,决不罢休;你认为应聘者甲的保证 B 。 A、是正确的 B是正确的C都是正确的 D都不正确4. 软件测试的对象包括 B 。 A目标程序和相关文档 B源程序、目标程序、数据及相关文档C目标程序、操作系统和平台软件D源程序和目标程序5. 导致软件缺陷的原因有很多,是可能的原因,其中最主要的原因包括 D 。软件需求说明书编写的不全面,不完整,不准确,而且经常更改 软件设计说明书 软件操作人员的水平 开发人员不能很好的理解需求说明书和沟通不足A、 B、 C、 D、二、简答题1简述软件测试发展的历史及软件测试的现状。参考答案:软件测试是伴随着软件的产生而产生的。在软件行业发展初期,没有
3、系统意义上的软件测试,更多的是一种类似调试的测试,测试用例的设计和选取也都是根据测试人员的经验随机进行的,大多数测试的目的是为了证明系统可以正常运行。到了20世纪70年代以后,很多测试理论和测试方法应运而生,逐渐形成了一套完整的体系。在产业界,从20世纪70年代后期到20世纪80年代中期,很多软件企业成立了QA或者SQA部门。后来QA的职能转变为流程监控(包括监控测试流程),而测试(Testing)则从QA中分离出来成为独立的组织职能。到了20世纪80年代初期,一些软件测试的基础理论和实用技术开始形成,软件测试作为软件质量保证(SQA)的主要职能,包含软件质量评价的内容。软件测试已有了行业标准
4、(IEEE/ANSI )。在我国,软件测试目前还没有形成一个真正的产业,尚处于起步阶段。但是,在国内,现在在软件测试行业中各种软件测试的方法、技术和标准都还在探索阶段。总之,国内软件测试行业与一些发达国家相比还存在一定的差距。2. 简述软件缺陷在不同阶段发现错误修复的费用。参考答案:软件缺陷造成的修复费用随着时间的推移呈指数级地增长,如下图所示。3简述软件测试的复杂性。参考答案:软件测试的复杂性体现在: 不可能对程序实现完全测试。 杀虫剂现象,即为了克服被测试软件的免疫力,软件测试员必须不断编写新的测试程序,对程序的各个部分进行不断测试,以避免被测试软件对单一的测试程序具有免疫力而使软件缺陷不
5、被发现。 软件测试的代价不容易掌握,因为随着测试量的增加,测试成本将呈几何数级上升,而软件缺陷数量降低到某一数值之后将没有明显的变化,寻求最优测试点,掌握好测试工作量是至关重要的。 在实际操作过程中,测试人员要进行正确的判断,合理的取舍,根据风险分析来决定哪些故障需要修复,哪些故障可以不修复,即并不是所有的软件缺陷都需要被修复。4对软件测试的经济性进行总结和分析参考答案:软件测试是软件生命期中费用消耗最大的环节。测试费用除了测试的直接消耗外,还包括其他的相关费用。影响测试费用的主要因素有:(1) 软件的功能,软件产品需要达到的标准决定了测试的数量。对于那些至关重要的系统必须进行更多的测试。(2
6、) 目标用户的数量,一个系统的目标用户数量的多少也在很大程度上影响了测试必要性的程度。(3) 潜在缺陷造成的影响在考虑测试的必要性时,还需要将系统中所包含的信息价值考虑在内。因此我们应该从经济方面考虑,投入与经济价值相对应的时间和金钱去进行测试。(4) 开发机构的业务能力一个没有标准和缺少经验的开发机构很可能会开发出充满错误的软件系统。而一个建立了标准和有很多经验的开发机构开发出来的软件系统中的错误将会少很多。(5) 测试的时机测试量会随时间的推移发生改变,在一个竞争很激烈的市场里,争取时间可能是制胜的关键。测试量应该针对合适的目标进行调整。5. 谈谈你对今后从事软件职业的打算。略 6简述软件
7、测试工程师应具备的素质。参考答案:通常软件人员应具备如下素质:(1) 良好的沟通能力(2) 掌握比较全面的技术(3) 充分的自信心(4) 足够的耐心和责任感(5) 要具备怀疑精神和学习能力(6) 超强的记忆力和良好的洞察力7谈谈你对软件测试的重要性理解。略第二章 软件测试基础一、选择题1. 软件质量的定义是 D 。A软件的功能性、可靠性、易用性、效率、可维护性、可移植性B满足规定用户需求的能力C最大限度达到用户满意D软件特性的总和,以及满足规定和潜在用户需求的能力2关于软件测试对软件质量的意义,有以下观点:度量与评估软件的质量; 保证软件质量;改进软件开发过程; 发现软件错误。其中正确的是 C
8、 。A、 B、C、 D、3. 关于软件质量的描述,正确的是 D 。A软件质量是指软件满足规定用户需求的能力B软件质量特性是指软件的功能性、可靠性、易用性、效率、可维护性、可移植性C软件质量保证过程就是软件测试过程D以上描述都不对二、 简答题1 简述软件测试的目标及标准。参考答案:软件测试的目的就在于在软件投入运行之前,尽可能多地发现软件中的错误。根据软件测试标准适用的不同范围,软件测试行业中的标准通常可以分国家标准、行业标准、企业和项目规范4个级别。2简述软件测试的原则。参考答案:软件测试的原则应该是: 应当把“尽早地和不断地进行软件测试”作为软件开发者的座右铭。 测试用例应包括测试输入数据和
9、与之对应的预期输出结果这两部分组成。 程序员应避免检查自己的程序。 设计测试用例时,应当包括合理的输入条件和不合理的输入条件。 充分注意测试中的群集现象。对发现错误较多的程序段,应进行更深入的测试。 严格执行测试计划,排除测试的随意性。 应当对每一个测试结果做全面检查。 妥善保存测试计划、测试用例、出错统计和最终分析报告,为维护提供方便。3软件测试的类型有哪些?参考答案:按照软件测试的生命周期,可以将测试的执行过程划分为:单元测试、集成测试、确认测试、系统测试、验收测试。 按照软件测试技术可以将测试划分为白盒测试、黑盒测试、灰盒测试。按照测试实施不同的主体进行分类,测试包括开发方测试、用户测试
10、、第三方测试。按照软件测试的内容可以将测试划分为功能性测试、可靠性测试、易用性测试、效率测试、可移植性测试和文档测试等。4比较黑盒测试,白盒测试,单元测试,集成测试,系统测试,验收测试的区别与联系。参考答案: 按照软件测试技术可以将测试划分为白盒测试、黑盒测试。白盒测试是按照程序内部的结构测试程序检测产品内部动作是否按照软件设计说明书的规定正常进行,检验程序中的每条通路是否都能按预定要求正确工作。黑盒测试主要是检测每个功能是否能正常使用。黑盒测试只关注程序的外部特性,不考虑程序内部的逻辑结构,主要针对软件界面和软件功能等方面进行测试。单元测试,集成测试,系统测试,验收测试是按照软件测试的生命周
11、期来分的。单元测试是在软件开发过程中要进行的最小级别的测试,是程序员缩写的一小段代码,用于检验被测代码的个很小的、很明确的功能是否正确。 集成测试通常是在单元测试的基础上,将所有的程序模块进行有序的、递增的组装为子系统或系统的测试。集成测试用于检验程序单元或部件的接口关系,使之逐步集成为符合概要设计要求的程序部件或整个系统。系统测试是将已经确认的软件、计算机硬件、外设、网络等其他元素结合在一起,进行信息系统的各种集成测试和确认测试,其目的是通过与系统的需求相比较,发现所开发的系统与用户需求不符或矛盾的地方。验收测试是系统开发生命周期中的个阶段,它是一项判断产品是否能够满足合同或用户既定需求的测
12、试。5软件产品质量特性是什么?什么是软件质量保证? 其主要任务是什么?参考答案:软件产品质量特性指的是软件产品满足使用要求的程度,就是高质量的软件系统能够准时交付给用户,所耗费的成本不超出预算,且能够正常地运行。软件质量保证(Software Quality Assurance, SQA)就是保证软件质量的一系列系统性的活动,它是建立一套有计划,有系统的方法,向管理层保证拟定出的标准、步骤、实践和方法能够正确地被所有项目所采用。软件质量保证的主要任务是向所有有关的人提供证据以确立软件产品的质量功能按照需求运行,它不负责高质量软件的编制,其主要职责是审计软件经理和软件工程组的质量活动,并鉴别活动
13、中出现的偏差。6质量保证部门与测试部门的职责是否一样?归纳它们的共同点和不同点。参考答案:不一样。从共同点的角度看,软件测试部门和软件质量保证部门的目的都是尽力确保软件产品满足需求,从而开发出高质量的软件产品。两个流程都贯穿在整个软件开发生命周期中。二者的不同之处在于软件质量保证部门的工作侧重对软件开发流程中的各个过程进行管理与控制,杜绝软件缺陷的产生。而测试部门工作则是对已产生的软件缺陷进行修复。7ISO 9000标准与软件测试的关系是什么?参考答案:ISO 9000系列标准可分为两类:ISO 9001ISO 9003作为第一类用于建立客户对生产商质量要求的保证;ISO 9004作为第二类用
14、于生产商自身建立质量保证体系。其中ISO 9003作为软件企业实施ISO 9001质量保证模式提供实施指南,它对软件产品从市场调查、需求分析、软件设计、编码、测试等各个开发阶段进行质量保证控制,也对产品发布、销售、成品安装和维护过程进行规范控制,从而保证软件产品的整体质量。8简述CMM的具体等级划分。参考答案:CMM将软件过程能力成熟度划分为5个等级,如下图所示。每个等级定义一组过程能力目标,并且表述了能够达到这些过程能力目标的实践活动。图2 CMM软件成熟度等级第3章 软件测试过程与方法一、选择题1. 关于白盒测试与黑盒测试的最主要区别,正确的是 A 。A白盒测试侧重于程序结构,黑盒测试侧重
15、于功能B白盒测试可以使用测试工具,黑盒测试不能使用工具C白盒测试需要程序员参与,黑盒测试不需要D黑盒测试比白盒测试应用更广泛2. 软件测试类型按开发阶段划分是 B 。 A需求测试、单元测试、集成测试、验证测试B单元测试、集成测试、确认测试、系统测试、验收测试C单元测试、集成测试、验证测试、确认测试、验收测试D调试、单元测试、集成测试、用户测试3. B 可以作为软件测试结束的标志。A 使用了特定的测试用例 B错误强度曲线下降到预定的水平C查出了预定数目的错误 D按照测试计划中所规定的时间进行了测试二、简答题1简述软件测试与软件开发的关系。参考答案:软件测试是贯穿于整个软件开发的过程。在软件开发的
16、各个阶段,测试人员必须制订本阶段的测试方案,把软件开发和测试活动集成到一起,如下图所示。2描述测试流程整体框架。参考答案:软件测试从测试计划编写到测试实施,需要经过一系列的过程。这些测试按软件从编写到交付的各个阶段的先后顺序可分为:单元测试、集成测试、确认(有效性)测试、系统测试和验收(用户)测试5个阶段,如下图所示。3简述单元测试的目标和内容。参考答案:单元测试的主要目标是确保各单元模块被正确的编码,就是检验程序最小单元有无错误。单元测试的主要内容有:模块接口测试;局部数据结构测试;独立路径测试;出错处理测试;边界条件测试。4解释驱动模块和桩模块的概念。参考答案:驱动模块和桩模块都是单元测试
17、过程中设置的辅助模块。驱动模块(driver)。相当于被测模块的主程序,它接收测试数据,把这些数据传给被测模块,最后输出实测结果。桩模块(stub)。用以代替被测模块调用的子模块,桩模块可以做少量的数据操作,不需要把子模块所有功能都带进来,但不允许什么事情也不做。5集成测试通常都有哪些策略?参考答案:一般是根据软件的具体情况来决定采用哪种模式。通常,把模块组装成为系统的测试方式有两种:一次性集成测试(No-Incremental Integration)又称非增量式集成测试。另外一种是增量式集成测试方式,增量式集成测试有3种方式:自顶向下增量测试方式(Top-down Integration)
18、、自底向上增量测试方式(Bottom-up Integration)和混合增量测试方式(ModifiedTop-downIntegration)。6归纳确认测试阶段的工作。参考答案:确认测试又称为有效性测试或合格性测试(Qualification Testing),其目的是验证软件的功能和性能及其特性是否与客户的要求一致,是否满足软件需求规格说明书中的规定。确认测试阶段需要做的工作如下图所示。首先要进行有效性测试及软件配置审查,然后进行验收测试和安装测试,在通过了专家鉴定之后,才能成为可交付的软件。7简述系统测试的流程。参考答案:系统测试流程如下图所示:8简述验收测试的流程和常用的策略。参考答
19、案:验收测试的工作流程如下图所示: 验收测试的策略通常是建立在合同需求、组织和公司标准及应用领域的基础上的,一般分为:正式验收测试、非正式验收或Alpha测试和Beta测试。9什么是兼容性测试?兼容性测试侧重哪些方面?参考答案:兼容性测试是指测试某新开发的软件在某一特定环境下与各种软件的协调性,软件之间能否很好地运作,软件之间能否发挥很好的效率工作,会不会影响或导致系统的崩溃等。兼容性测试侧重点需要解决以下问题:新开发的软件需要与哪种操作系统、Web浏览器和应用软件保持兼容,如果要测试的软件是一个平台,那么要求应用程序能在其上运行。应该遵守哪种定义软件之间交互的标准或者规范。软件使用何种数据与
20、其他平台、与新的软件进行交互和共享信息。第4章 白盒测试技术一、选择题1在下面说列举的逻辑测试覆盖中,测试覆盖最强的是 B 。 A条件覆盖 B条件组合覆盖 C语句覆盖 D判定/条件覆盖2在下面说列举的逻辑测试覆盖中,测试覆盖最弱的是 C 。 A条件覆盖 B条件组合覆盖 C语句覆盖 D判定/条件覆盖3对下面的个人所得税程序中,满足判定覆盖测试用例的是 A 。if (income 800) tarrate = 0 ;else if (income = 1500) tarrate = 0.05 ;else if (income 2000) tarrate = 0.08 ;else tarrate =
21、 0.1 ; Aincome = (799, 1500, 1999, 2001) Bincome = (799, 1501, 2000, 2001) Cincome = (800, 1500, 2000, 2001) Dincome = (800, 1499, 2000, 2001)4对下面的个人所得税程序中,满足语句覆盖测试用例的是 D 。if (income 800) tarrate = 0 ;else if (income = 1500) tarrate = 0.05 ;else if (income = 1 & month = 12 )34 if ( month = 2 )5 6 if
22、 ( year % 4 = 0 )7 8 if ( year % 100 = 0 )9 10 if ( year % 400 = 0 )11 maxday = 29;12 else13 maxday = 28;14 15 else16 maxday = 29; 17 18 else19 maxday = 28;20 21 else if ( month = 4 | month = 6 | month = 9 | month = 11 )22 maxday = 30;23 else24 maxday = 31;25 26 return maxday;(1)请画出以上代码的控制流图。(2)请计算上
23、述控制流图的环复杂度V(G)(独立线性路径数)(3)假设输入的取值范围是1000 year = 1 & month = 12分别用节点2-1,2-2表示month = 4 | month = 6 | month = 9 | month = 11分别用节点21-1,21-2,21-3,21-4表示2-12-2462610111417821-121-221-321-422202524(2)请计算上述控制流图的环复杂度V(G)(独立线性路径数)区域法:V(G)=11边与节点的关系:V(G)=27-18+2=11判定节点的关系:V(G)=10+1=11(3)假设输入的取值范围是1000 year 20
24、01,请使用基本路径测试法为变量year、month设计测试用例(写出year取值、month取值、maxday预期结果),使其满足基本路径覆盖要求。测试用例编号yearmonthmaxday覆盖的路径11500002-1,26215001602-2,26315004302-1,2-2,4,21-1,22,25,26415006302-1,2-2,4,21-1,21-2,22,25,26515009302-1,2-2,4,21-1,21-2,21-3,22,25,266150011302-1,2-2,4,21-1,21-2,21-3,21-4,22,25,26715007312-1,2-2,4
25、,21-1,21-2,21-3,21-4,24,25,26812012282-1,2-2,4,6,20,25,26912402292-1,2-2,4,6,8,17,20,25,261013002282-1,2-2,4,6,8,10,14,17,20,25,261120002292-1,2-2,4,6,8,10,11,14,17,20,25,26第5章 黑盒测试技术一、选择题1用边界值测试法,假定X为整数,10X100,那么X在测试中应该取 B 边界值。 AX10,X100 B. X9,X10,X100,X101 CX10,X11,X99,X100 D. X9,X10,X50,X1002. 在某
26、大学学籍管理信息系统中,假设学生年龄的输入范围为1640,则根据黑盒测试中的等价类划分技术,下面划分正确的是 B 。 A可划分为2个有效等价类,2个无效等价类 B可划分为1个有效等价类,2个无效等价类 C可划分为2个有效等价类,1个无效等价类 D可划分为1个有效等价类,1个无效等价类3. 黑盒测试是通过软件的外部表现来发现软件缺陷和错误的测试方法,具体地说,黑盒测试用例设计技术包括 A 等。 A等价类划分法、因果图法、边界值分析法、错误推测法、决策表法 B等价类划分法、因果图法、路径覆盖法、正交试验法、符号法 C等价类划分法、因果图法、边界值分析法、功能图法、基本路径法 D等价类划分法、因果图
27、法、边界值分析法、条件组合覆盖法、场景法4. C 方法根据输出对输入的依赖关系设计测试用例。 A路径测试 B等价类 C因果图 D边界值5. 如果程序的功能说明中含有输入条件的组合情况,则一开始就可以选用 B 和决策表法。 A等价类划分 B因果图法 C边界值分析 D场景法6. 左侧图4控制流图的环复杂度(g)和基本复杂度EV(g)是 D 。 AV(g)5 EV(g)l BV(g)6 EV(g)6 CV(g)5 EV(g)5 DV(g)6 EV(g)l7. 关于黑盒测试技术,下面说法错误的是 C 。 A. 黑盒测试着重测试软件的功能需求,是在程序接口上进行测试。 B. 失败测试是纯粹为了破坏软件而
28、设计和执行测试案例的。 C. 边界值测试是黑盒测试特有的技术方法,不适用于白盒测试。 D. 黑盒测试无法发现规格说明中的错误,不能进行充分的测试。二、填空题1测试程序时,不可能遍历所有可能的输入数据,而只能是选择一个子集进行测试,那么最好的方法是 等价类划分法 。2边界值分析法的测试用例来自于 等价类划分的边界 。3决策表由_条件桩_、_动作桩_、_条件项_、_动作项_4个部分构成。4因果图分析法适用于 输入条件之间有多种组合 情况。三、简答题1分析黑盒测试技术的实质及要点,及其与白盒测试的主要区别。 参考答案:黑盒测试又称功能测试或数据驱动的测试,主要从用户的观点出发,以软件规格说明书为依据
29、,着重测试软件的功能需求,对程序功能和程序接口进行测试。白盒测试是按照程序内部的结构测试程序检测产品内部动作是否按照软件设计说明书的规定正常进行,检验程序中的每条通路是否都能按预定要求正确工作。2常用的黑盒测试用例设计方法有哪些?各有什么优缺点?参考答案:黑盒测试有两种基本方法,即通过测试和失败测试。在进行通过测试时,实际上是确认软件能做什么,而不会去考验其能力如何,软件测试人员只是运用最简单、最直观的测试案例。在设计和执行测试案例时,总是要先进行通过测试,验证软件的基本功能是否都已实现。在确信软件能正确运行之后,就可以采取各种手段通过搞垮软件来找出缺陷。这种纯粹为了破坏软件而设计和执行的测试
30、案例,称为失败测试或迫使出错测试。3边界值分析方法如何帮助生成测试用例?如何结合使用等价类划分法和边界值分析法生成测试用例?参考答案:使用边界值分析方法设计测试用例,首先应确定边界情况。通常输入和输出等价类的边界,就是应着重测试的边界情况。应当选取正好等于、刚刚大于或刚刚小于边界的值作为测试数据,而不是选取等价类中的典型值或任意值作为测试数据。在黑盒测试中,由于采用穷举法不可行,一般可以采用等级类划分法进行初步的测试用例设计,然后再根据边界情况采用边界值分析法补充相应的测试用例。4请使用等价类划分法为某保险公司计算保险费的程序设计测试用例。某保险公司的人寿保险的保费计算方式为:投保额保险费率。
31、其中,保险费率依点数不同而有别,10点及10点以上保险费率为0.6%,10点以下保险费率为0.1%;而点数又是由 投保人的年龄、性别、婚姻状况和抚养人数来决定的,具体规则如表5-18:表5-18 保险费率规则年龄性别婚姻抚养人数20394059其他MF已婚未婚1人扣0.5点 最多扣3点(四舍五入取整)6点4点2点5点3点3点5点请根据表5-17所示的保险费率规则,划分等价类设计测试用例。参考答案:(1)分析程序规格说明中给出和隐含的对输入条件的要求,列出等价类表(包括有效等价类和无效等价类)。v 年龄:一位或两位非零整数,值的有效范围为199v 性别:一位英文字符,只能取值M或Fv 婚姻:字符
32、,只能取值已婚或未婚v 抚养人数:空白或一位非零整数(19)v 点数 :一位或两位非零整数,值的范围为199输入条件有效等价类编号无效等价类编号年龄2039岁14059岁2119岁6099岁3小于112大于9913性别单个英文字符4非英文字符14非单个英文字符15M5除M和F之外的其它单个字符16F6婚姻已婚7除已婚和未婚之外的其它字符17未婚8抚养人数空白9除空白和数字之外的其它字符1816人10小于11969人11大于920(2)根据(1)中的等价类表,设计能覆盖所有等价类的测试用例测试用例编号输入数据预期输出年龄性别婚姻抚养人数保险费率127F未婚空白0.6%250M已婚20.6%370
33、F已婚70.1%40M未婚空白无法推算5100F已婚3无法推算699男已婚4无法推算71Child未婚空白无法推算845N已婚5无法推算938F离婚1无法推算1062M已婚没有无法推算1118F未婚0无法推算1240M未婚10无法推算5某公司人事软件的工资计算模块的需求规格说明书中描述:(1)年薪制员工:严重过失,扣当月薪资的4%;过失,扣年终奖的2%。(2)非年薪制员工:严重过失,扣当月薪资的8%;过失,扣当月薪资的4%。请绘制出因果图和判定表,并给出相应的测试用例。参考答案:a) 列出原因和结果:原因:年薪制:严重过失结果:e1:扣月4% e2: 扣月8%e3: 扣年2%b) 画出因果图10C1C22030405060e1e2e3Ec) 根据因果图设计的判定表如下:1234条件:C1C211001010动作e1e2e3d) 根据判定表设计如下的测试用例:测试用例编号测试输入预期输出1年薪制员工:严重过失扣当月薪资的4%2年薪制员工:过失扣年终奖