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