软件测试基础
-
4.3 白盒测试技术
4.3 白盒测试技术 由于普及性和简单性,本节将重点介绍两种与代码相关的白盒测试技术: • 语句测试 • 分支测试 安全关键、任务关键或高完整性环境中使用了更严格的技术,用于实现更全面的代码覆盖。白盒测试技术还能用于更高的测试级别(例如,API 测试),或使用与代码无关的覆盖(例如,神经网络测试中的神经元覆盖)。 4.3.1 语句测试和语句覆盖 在语…
-
4.2 黑盒测试技术
4.2 黑盒测试技术 以下各节中讨论的常用黑盒测试技术包括: • 等价类划分 • 边界值分析 • 判定表测试 • 状态转移测试 4.2.1 等价类划分 等价类划分(EP)基于给定分区中的所有元素都会被测试对象以相同方式处理的预期将数据划分为多个分区(称为等价类)。此技术背后的原理是,如果测试用例测试了等价类中的一个值,并检测到缺陷,那么任何来…
-
4.1 测试技术概述
4.1 测试技术概述 测试技术支持测试人员开展测试分析和测试设计。测试技术有助于以系统的方式开发相对较小但充分的测试用例集。测试技术还可以在测试分析和设计期间帮助测试人员定义测试条件、识别覆盖项,并识别测试数据。 测试技术分为黑盒、白盒和基于经验的测试技术。 黑盒测试技术是基于对测试对象的特定行为进行分析,而不考虑其内部结构。因此,测试用例不依赖于软件的实现…
-
3.2 反馈和评审过程
3.2 反馈和评审过程 3.2.1 利益相关方早期和频繁反馈的好处 早期和频繁反馈有助于早期沟通潜在的质量问题。如果在软件开发生存周期中,利益相关方很少参与,开发的产品可能不满足利益相关方的期望。如果不能交付利益相关方期望的结果,可能导致代价高昂的返工、错过期限、互相推诿,甚至导致整个项目失败。 在整个软件开发生存周期中,利益相关方的频繁反馈可以防止误解…
-
3.1 静态测试基础
3.1 静态测试基础 静态测试不需要执行被测软件,通过人工检查(例如评审)或借助工具(例如静态分析),对代码、过程规格说明、系统架构规格说明或其他工作产品进行评估。测试目的包括提高质量、检测缺陷以及评估可读性、完整性、正确性、可测试性和一致性等特性。静态测试可用于验证和确认。 测试人员、业务代表和开发人员在实例映射(example mapping)、协作…
-
2.3 维护测试
2.3 维护测试 维护测试范围通常依赖于: • 变更引起的风险程度 • 现有系统的规模 • 变更的大小 维护以及维护测试的触发因素可以有以下几类: • 修改,如计划中的改进(如,基于发布版本),修正错误产生的变更,或者热修复。 • 运行环境的升级或者迁移,如从一个平台迁移至另一个平台,可能需要进行与新运行环境有关的测试,也可能需要进行…
-
2.2 测试级别和测试类型
2.2 测试级别和测试类型 测试级别与软件开发生存周期内的其他活动相关。在顺序 SDLC 模型中,测试级别通常定义为:一个级别的出口准则是下一个级别的入口准则的一部分。 测试类型,是与某种质量特性相关的测试活动的集合,这些测试活动中的大部分可以在每个测试级别进行。 2.2.1 测试级别 • 组件测试(也称为单元测试),侧重于对单独组件的测试。组件测试…
-
2.1 软件开发生存周期中的测试
2.1 软件开发生存周期中的测试 软件开发生存周期(SDLC)模型是对软件开发过程的抽象、概要表述。SDLC 模型定义了软件开发过程中不同开发阶段和活动类型之间的逻辑和时间关系。SDLC 模型的示例包括:顺序开发模型(例如瀑布模型、V 模型)、迭代开发模型(例如螺旋模型、原型模型)和增量开发模型(例如统一软件开发过程)。 软件开发过程中的活动也可以通过更…
-
1.5 测试中的基本技能和良好实践
1.5 测试中的基本技能和良好实践 技能是指个人根据自身的知识、实践和才能做好某件事的能力。好的测试人员应该具备一些基本技能才能把他们的工作做好。好的测试人员应该是有效的团队合作者,并且能够在不同测试独立性级别上开展测试工作。 1.5.1 测试所需的通用技能 以下虽然是些通用的技能,但它们对测试人员来说尤其有意义: • 测试知识(例如,通过使用测试技…
-
1.4 测试活动、测试件和测试角色
1.4 测试活动、测试件和测试角色 1.4.1 测试活动和任务 测试过程通常由以下主要活动组成。尽管这些活动看似遵循逻辑顺序,但通常采用迭代或者并行方式实施。这些测试活动通常需要针对系统和项目进行裁剪。 测试规划包括定义测试目的,在整体环境的约束下选择可达到目的的最佳方法。 测试监测和控制。测试监测包括持续检查所有测试活动,并且将实际进度与计划进行比较。…