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 第3章 黑盒测试技术 一、选择题
1、B 2、B 3、A 4、C 5、B 6、C
二、填空题
1.测试程序时,不可能遍历所有可能的输入数据,而只能是选择一个子集进行测试,那么最好的方法是 等价类划分法 。
2.边界值分析法的测试用例来自于 等价类划分的边界 。
3.决策表由_条件桩__、_动作桩__、_条件项__、_动作项__4个部分构成。 4.因果图分析法适用于 输入条件之间有多种组合 情况。
三、简答题
1.
参考答案:
黑盒测试又称功能测试或数据驱动的测试,主要从用户的观点出发,以软件规格说明书为依据,着重测试软件的功能需求,对程序功能和程序接口进行测试。
白盒测试是按照程序内部的结构测试程序检测产品内部动作是否按照软件设计说明书的规定正常进行,检验程序中的每条通路是否都能按预定要求正确工作。
2.
参考答案:
黑盒测试有两种基本方法,即通过测试和失败测试。在进行通过测试时,实际上是确认软件能做什么,而不会去考验其能力如何,软件测试人员只是运用最简单、最直观的测试案例。在设计和执行测试案例时,总是要先进行通过测试,验证软件的基本功能是否都已实现。在确信软件能正确运行之后,就可以采取各种手段通过搞垮软件来找出缺陷。这种纯粹为了破坏软件而设计和执行的测试案例,称为失败测试或迫使出错测试。
3.
参考答案:
使用边界值分析方法设计测试用例,首先应确定边界情况。通常输入和输出等价类的边
界,就是应着重测试的边界情况。应当选取正好等于、刚刚大于或刚刚小于边界的值作为测试数据,而不是选取等价类中的典型值或任意值作为测试数据。
在黑盒测试中,由于采用穷举法不可行,一般可以采用等级类划分法进行初步的测试用例设计,然后再根据边界情况采用边界值分析法补充相应的测试用例。
4.
参考答案:
(1)分析程序规格说明中给出和隐含的对输入条件的要求,列出等价类表(包括有效等价类和无效等价类)。
? 年龄:一位或两位非零整数,值的有效范围为1~99 ? 性别:一位英文字符,只能取值‘M’或’F’ ? 婚姻:字符,只能取值‘已婚’或‘未婚’ ? 抚养人数:空白或一位非零整数(1~9)
? 点数 :一位或两位非零整数,值的范围为1~99 输入条件 有效等价类 年龄 20~39岁 40~59岁 1~19岁 60~99岁 性别 编号 无效等价类 1 2 3 小于1 大于99 非英文字符 非单个英文字符 ‘M’ ‘F’ 婚姻 已婚 未婚 抚养人数 空白 1~6人 6~9人 (2)根据(1)中的等价类表,设计能覆盖所有等价类的测试用例 测试用例 输入数据 编号 年龄 1 2 3 4 5 27 50 70 0 100 预期输出 性别 F M F M F 婚姻 未婚 已婚 已婚 未婚 已婚 抚养人数 空白 2 7 空白 3 保险费率 0.6% 0.6% 0.1% 无法推算 无法推算 5 6 7 8 9 10 11 除空白和数字之外 的其它字符 小于1 大于9 18 19 20 除‘M’和‘F’之外的 其它单个字符 编号 12 13 14 15 16 单个英文字符 4 除’已婚’和’未婚’之外的其它字符 17 6 7 8 9 10 11 12 99 1 45 38 62 18 40 男 Child N F M F M 已婚 未婚 已婚 离婚 已婚 未婚 未婚 4 空白 5 1 没有 0 10 无法推算 无法推算 无法推算 无法推算 无法推算 无法推算 无法推算
第4章 软件测试计划、文档及测试用例 一、简答题
1.参考答案:
测试计划的目的是明确测试活动的意图,它规范了软件测试内容、方法和过程,为有组织地完成测试任务提供保障。
测试计划的主要内容包括:测试目的、测试范围、测试对象、测试策略、测试任务、测试用例、资源配置、测试结果分析和度量及测试风险评估等,测试计划应当足够完整但也不应当太详尽。
2.
参考答案:
测试文档(Testing Documentation)是测试活动中非常重要的文件,用来记录和描述整个测试流程。
整个测试流程会产生很多个测试文档,一般可以把测试文档分为两类:测试计划类文档和测试分析报告类文档。测试计划类文档描述将要进行的测试活动的范围、方法、资源和时间进度等,如测试计划、测试设计规格说明、测试用例规格说明和测试步骤规格说明等。测试分析报告类文档是对测试结果进行分析说明,说明软件经过测试以后,结论性的意见如何,软件的能力如何,存在哪些缺陷和限制等,如测试日志、测试事件报告、测试总结报告等。
3.
参考答案:
测试计划为实现可管理且高质量的测试过程提供基础。在制订测试计划时,要避免把测试单纯理解成系统测试,或者把各类型测试设计(测试用例的编写和测试数据准备)全部放入生命周期的“测试阶段”,合理的测试阶段应遵循如下图所示的划分方法。 单元测试 集成测试 系统测试 确认测试 需求 计划 计划 计划 设计 设计 计划、设计 执行 执行 设计 编码 单元测试 设计 执行 集成测试 系统测试 确认测试 执行 图4-1 测试与项目开发生命周期的关系
在项目开发生命周期的各个阶段可以同步进行相应的测试计划编制,而测试设计也可以结合在开发过程中实现并行,测试的实施即执行测试的活动可连贯在开发之后。
4.
参考答案:
软件测试的过程是由一系列的不同测试阶段所组成,这些软件测试的步骤分为:需求分析审查、设计审查、单元测试、集成测试(组装测试)、功能测试、系统测试、验收测试、版本发布、回归测试(维护)等。软件生命周期各阶段的测试任务与可交付的文档详细内容如下表所示。
阶 段 需求分析审查 Requirements Review 输入和要求 市场/产品需求定义、分析文档和相关技术文档。 要求:需求定义要准确、完整和一致, 真正理解客户的需求 产品规格设计说明、系统架构和技术设计文档、测试设计审查 Design Review 计划和测试用例。 要求:系统结构的合理性、处理过程的正确性、数据库的规范化、模块的独立性等清楚定义测试计划的策略、范围、资源和风险,测试用例的有效性和完备性 源程序、编程规范、产品规格设计说明书和详细的程单元测试 Unit Testing 序设计文档。 要求:遵守规范、模块的高内聚性、功能实现的一致性和正确性 通过单元测试的模块或组件、编程规范、集成测试规集成测试 Integration Testing 格说明和程序设计文档、系统设计文档。 要求:接口定义清楚且正确、模块或组件一起工作正常、能集成为完整的系统 功能测试 Functionality Testing 代码软件包(含文档),功能详细设计说明书; 测试 计划和用例。 要求:模块集成 功能的正确性、适用性 修改后的软件包、测试环境、系统测试用例和测试 系统测试 System Testing 计划。 要求:系统能正常地、有效的运行,包括性能、可靠性、安全性、兼容性等。 产品规格设计说明、预发布的软件包、确认测试用例 用户验收报告、缺陷报告审验收测试 Acceptance Testing 要求:向用户表明系统能够按照预定要求那样工作,使系统最终可以正式发布或向用户提供服务。用户要参与验收测试,包括α测试(内部用户测试)、β测试(外部用户测试)。 版本发布 Release 维护 Maintance 变更的需求、修改的软件包、测试用例和计划。 要求:新的或增强的功能正常、原有的功能正常,不能出现回归缺陷 软件发布包、软件发布检查表(清单) 当前版本已知问题的清单、版本发布报告 缺陷报告、更改跟踪报告、测试报告 查、版本审查。 最终测试报告 缺陷报告、系统性能分析报告、缺陷状态报告、阶段性测试报告 缺陷报告、跟踪报告;完善的测试用例、测试计划。 对系统功能及其实现等了解清楚 缺陷报告、跟踪报告;完善的测试用例、测试计划;集成测试分析报告; 集成后的系统 缺陷报告、代码完成状态报告、功能验证测试报告 输出 需求定义中问题列表,批准的需求分析文档。 测试计划书的起草 设计问题列表、批准的各类设计文档、系统和功能的测试计划和测试用例。 测试环境的准备 5.
参考答案:
测试用例的内容包括测试目标、测试环境、输入数据、测试步骤、预期结果、测试脚本等,并形成文档。测试用例通常根据其所关联的测试类型或测试需求来分类,而且将随类型和需求进行相应地改变。最佳方案是为每个测试需求至少编制两个测试用例:一个测试用例用于证明该需求已经满足,通常称作正面测试用例;另一个测试用例反映某个无法接受、反常或意外的条件或数据,用于论证只有在所需条件下才能够满足该需求,这个测试用例称作负面测试用例。
6.举例说明测试用例的设计方法。 参考答案:略
7.请以某个实际工作为例,详细的描述一次测试用例设计的完整的过程。 参考答案:略
8.选择一个小型应用系统,为其做出系统测试的计划书、设计测试用例并写出测试总结报告。 参考答案:略
第5章 软件自动化测试
1. 简述软件测试自动化的意义和作用。
软件自动化测试的意义是减轻手工测试的工作量,从而达到提高软件质量的目的。 软件自动化测试的作用包括:它能完成许多手工测试无法实现的或者难以实现的测试,甚至可以提供要比手工测试更好、更快的测试执行方式,可以省去许多繁杂的工作,节省大量的测试时间。实施正确、合理的自动化测试,能够快速、完整地对软件进行测试,从而提高软件的质量,进而提高对整个软件开发工作的质量并节约软件开发经费,缩短软件产品发布的周期,带来显著的生产效果和经济效益。
2.简述自动化测试和手工测试有什么主要区别。 自动化测试并不能完全取代手工测试,二者各有优缺点。通常手工测试的目的着重于发现新的软件故障,而自动化测试则着重于发现旧的软件故障。
手工测试具有创造性,可以举一反三,从一个测试用例想到另外一些测试用例,特别是可以考虑到测试用例不能覆盖的一些特殊的或边界的情况。同时,对于那些复杂的逻辑判断、界面是否友好,手工测试具有明显的优势。
自动化测试可以对程序的新版本运行回归测试,可以运行更多更频繁的测试,可以进行一些手工测试难以完成或不可能完成的测试,充分地利用资源,测试具有一致性、可重复性和复用性,能缩短软件发布的时间,并增强软件的可靠性。
3.自动化测试工具大致可以分为几类?举例说明几种与之相对应的测试工具。 根据测试方法的不同,自动化测试工具可以分为白盒测试工具、黑盒测试工具和测试管理工具。
白盒测试工具又可以分为静态测试工具和动态测试工具。其中静态测试工具的代表有Telelogic公司的Logiscope软件、PR公司的PRQA软件。动态测试工具的代表有Compuware公司的DevPartner软件、Rational公司的Purify 软件。
黑盒测试工具适用于系统功能测试和性能测试,黑盒测试工具的代表有Rational公司的