- 软件测试教程
- 软件测试 - 首页
- 软件测试 - 概述
- 软件测试 - 缺陷管理
- 软件测试 - 生命周期
- 软件测试 - Bug 生命周期
- 软件测试 - 误区
- 软件测试 - QA、QC 和测试
- 软件测试 - 环境
- 软件测试 - 策略
- 软件测试 - 步骤
- 软件测试 - 测试条件
- 软件测试 - 测试分析
- 软件测试 - ISO 标准
- 软件测试 - 类型
- 软件测试 - 技术
- 软件测试 - 方法
- 软件测试 - 指标
- 软件测试 - 层次
- 软件测试 - 估算技术
- 软件测试 - 七大原则
- 软件测试 - 严重性和优先级
- 软件测试 - 缺陷密度
- 软件测试有用资源
- 软件测试 - 问答
- 软件测试 - 快速指南
- 软件测试 - 有用资源
- 软件测试 - 讨论
软件测试 - 概述
什么是测试?
测试是评估系统或其组件的过程,目的是确定其是否满足指定的需求。简单来说,测试就是执行一个系统,以识别与实际需求相反的任何差距、错误或缺失的需求。
根据 ANSI/IEEE 1059 标准,测试可以定义为 - 分析软件项目以检测现有条件和所需条件之间差异(即缺陷/错误/Bug)并评估软件项目特征的过程。
谁进行测试?
这取决于项目的流程和相关利益相关者。在 IT 行业,大型公司拥有一个团队负责评估开发的软件是否符合给定的需求。此外,开发人员也会进行测试,这被称为**单元测试**。在大多数情况下,以下专业人员在其各自的能力范围内参与系统测试 -
- 软件测试员
- 软件开发人员
- 项目主管/经理
- 最终用户
不同的公司根据测试人员的经验和知识,对测试软件的人员有不同的职位名称,例如软件测试员、软件质量保证工程师、QA 分析师等。
并非在软件生命周期的任何时间都可以测试软件。接下来的两节将说明在 SDLC 中何时应该开始测试以及何时结束测试。
何时开始测试?
尽早开始测试可以降低返工成本和时间,并产生交付给客户的无错误软件。然而,在软件开发生命周期 (SDLC) 中,测试可以从需求收集阶段开始,并持续到软件部署。
这也取决于所使用的开发模型。例如,在瀑布模型中,正式测试在测试阶段进行;但在增量模型中,在每个增量/迭代结束时都会进行测试,并在最后测试整个应用程序。
在 SDLC 的每个阶段都以不同的形式进行测试 -
在需求收集阶段,对需求的分析和验证也被视为测试。
在设计阶段审查设计以改进设计也被视为测试。
开发人员在完成代码后进行的测试也被归类为测试。
何时停止测试?
很难确定何时停止测试,因为测试是一个永无止境的过程,没有人能声称软件已 100% 测试。在停止测试过程中需要考虑以下几个方面 -
测试截止日期
测试用例执行完成
功能和代码覆盖率达到一定程度
Bug 率降至一定水平,并且没有发现高优先级的 Bug
管理层决定
验证与确认
这两个术语对大多数人来说非常令人困惑,他们可以互换使用。下表突出显示了验证和确认之间的区别。
序号 | 验证 | 确认 |
---|---|---|
1 | 验证解决了“您是否正确构建?”的问题。 | 确认解决了“您是否构建了正确的东西?”的问题。 |
2 | 确保软件系统满足所有功能。 | 确保功能满足预期行为。 |
3 | 验证首先进行,包括检查文档、代码等。 | 确认在验证之后进行,主要涉及对整个产品的检查。 |
4 | 由开发人员完成。 | 由测试人员完成。 |
5 | 它具有静态活动,因为它包括收集审查、演练和检查以验证软件。 | 它具有动态活动,因为它包括根据需求执行软件。 |
6 | 它是一个客观过程,不需要主观决策来验证软件。 | 它是一个主观过程,涉及对软件运行情况的主观决策。 |