📜  软件测试-概述

📅  最后修改于: 2020-12-04 05:46:55             🧑  作者: Mango


什么是测试?

测试是评估系统或其组件以发现其是否满足指定要求的过程。简而言之,测试正在执行一个系统,以识别与实际需求相反的任何差距,错误或遗漏的需求。

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

测试谁?

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

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

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

在软件周期内无法随时对其进行测试。接下来的两个部分说明了何时应该开始测试以及何时在SDLC期间结束测试。

何时开始测试?

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

它还取决于所使用的开发模型。例如,在Waterfall模型中,正式测试是在测试阶段进行的;但是在增量模型中,测试是在每次增量/迭代结束时执行的,而整个应用程序将在末尾进行测试。

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

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

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

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

什么时候停止测试?

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

  • 测试截止日期

  • 完成测试用例

  • 在一定程度上完成了功能和代码覆盖

  • 错误率低于一定水平,没有发现高优先级错误

  • 管理决策

验证与确认

对于大多数人来说,这两个术语可以互换使用,这非常令人困惑。下表突出显示了验证和确认之间的区别。

Sr.No. Verification Validation
1 Verification addresses the concern: “Are you building it right?” Validation addresses the concern: “Are you building the right thing?”
2 Ensures that the software system meets all the functionality. Ensures that the functionalities meet the intended behavior.
3 Verification takes place first and includes the checking for documentation, code, etc. Validation occurs after verification and mainly involves the checking of the overall product.
4 Done by developers. Done by testers.
5 It has static activities, as it includes collecting reviews, walkthroughs, and inspections to verify a software. It has dynamic activities, as it includes executing the software against the requirements.
6 It is an objective process and no subjective decision should be needed to verify a software. It is a subjective process and involves subjective decisions on how well a software works.