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