软件测试 - 概述

什么是测试?

测试是评估系统或其组件的过程,目的是确定其是否满足指定要求。简而言之,测试就是执行系统以识别与实际要求相反的任何差距、错误或缺失要求。

根据 ANSI/IEEE 1059 标准,测试可以定义为 - 分析软件项目以检测现有条件和所需条件之间的差异(即缺陷/错误/错误)并评估软件项目的功能的过程。

谁做测试?

这取决于项目的流程和相关利益相关者。在 IT 行业,大公司有一个团队负责根据给定的要求评估开发的软件。此外,开发人员还会进行称为单元测试的测试。在大多数情况下,以下专业人员会在各自的能力范围内参与系统测试 −

  • 软件测试员
  • 软件开发人员
  • 项目主管/经理
  • 最终用户

不同的公司根据经验和知识对软件测试人员有不同的称呼,例如软件测试员、软件质量保证工程师、QA 分析师等。

在软件周期的任何时候都不可能测试软件。接下来的两节说明了在 SDLC 期间何时开始测试以及何时结束测试。

何时开始测试?

尽早开始测试可以减少返工成本和时间,并生产出交付给客户的无错误软件。然而在软件开发生命周期 (SDLC) 中,测试可以从需求收集阶段开始,一直持续到软件部署。

这也取决于所使用的开发模型。例如,在瀑布模型中,正式测试是在测试阶段进行的;但在增量模型中,测试在每个增量/迭代结束时执行,并且整个应用程序在结束时进行测试。

在 SDLC 的每个阶段都以不同的形式进行测试 −

  • 在需求收集阶段,需求的分析和验证也被视为测试。

  • 在设计阶段审查设计以改进设计也被视为测试。

  • 开发人员在完成代码后执行的测试也归类为测试。

何时停止测试?

很难确定何时停止测试,因为测试是一个永无止境的过程,没有人可以声称软件已经 100% 测试过。停止测试过程需要考虑以下方面 −

  • 测试截止日期

  • 测试用例执行完成

  • 功能和代码覆盖率达到某一点

  • 错误率低于某一水平,且未发现高优先级错误

  • 管理决策

验证和确认

对于大多数人来说,这两个术语非常令人困惑,因为他们会交替使用它们。下表重点介绍了验证和确认之间的区别。

Sr.No. 验证 确认
1 验证解决了以下问题:"您构建的正确吗?" 确认解决了以下问题:"您构建的正确的东西吗?"
2 确保软件系统满足所有功能。 确保功能符合预期行为。
3 验证首先进行并包括检查文档、代码等。 验证发生在验证之后,主要涉及对整个产品的检查。
4 由开发人员完成。 由测试人员完成。
5 它具有静态活动,因为它包括收集评论、演练和检查以验证软件。 它具有动态活动,因为它包括根据要求执行软件。
6 这是一个客观过程,验证软件不需要主观决定。 这是一个主观过程,涉及对软件运行情况的主观决定。