测试是运行软件并寻找缺陷的过程。我们的程序必须没有错误才能有效地工作。如果测试成功完成,程序将没有任何错误。
以下是测试软件的主要原则 -
所有测试都必须满足客户的需求。
为了使我们的软件测试更有效率,我们应该使用第三方。
不可能进行详尽的测试。我们需要根据应用程序的风险评估进行最佳测试数量。
所有将要进行的测试都应该在进行之前准备好。
它遵循帕累托规则(80/20 规则),该规则声称 80% 的软件错误是由 20% 的程序组件引起的。
从较小的组件开始,然后逐步升级到较大的组件。
现在让我们详细讨论各种测试方法。
它专注于软件开发的最小方面。这是我们测试单个单元或互连单元集合的地方。程序员通常通过利用样本输入并查看伴随的结果来完成这项任务。
在程序中,我们检查循环、方法或函数是否正常运行。
算术优先级被误解或错误。
不完整或不正确的初始化
单元测试为想要发现单元提供哪些功能以及如何使用它的开发人员提供了单元 API 的基本概述。
单元测试使程序员能够在以后重写代码,同时确保模块继续正常运行(即回归测试)。实践是为所有功能和方法创建测试用例,以便可以迅速发现并纠正导致问题的任何更改。
由于单元测试的模块化结构,我们可以测试项目的一部分而不必等待其他人完成。
期望单元测试能够捕获软件中的每个错误是不现实的。即使在最简单的程序中,也不可能评估所有潜在的执行路径。
根据定义,单元测试专注于一段代码。因此,它无法检测集成或系统范围的问题。
目标是采用经过单元测试的组件并使用它们来创建由设计决定的程序结构。集成测试需要组合许多组件来实现结果。
有四种集成测试: I 自上而下 (ii) 自下而上 (iii) Sandwich (iv) Big-Bang
在黑盒中进行测试- 这是一个验证工具。我们忽略了潜在的工作机制,而专注于结果。
在白盒中测试- 这是一个验证工具。本节重点介绍内部机制,或如何产生输出。
集成测试有以下好处 -
集成测试是一种在运行测试以发现与接口相关的问题的同时系统地组合软件系统的方法。
测试应用程序以确保它满足客户的要求,并向开发团队保证在单元测试期间所做的假设是有效的。
集成测试不必等到系统的所有模块都已编写并进行单元测试。它可以在可以访问必要的模块时立即启动。
需要集成测试,通常称为增量测试,以确保软件模块一起运行。
增量、自上而下、自下而上、三明治和大爆炸集成方法是系统集成测试中使用的策略之一。
集成测试的缺点包括 -
软件行业使用多种方法进行集成测试,包括 -
大爆炸法
增量方法进一步分为以下部分。
自上而下的方法
从头开始的方法
自上而下和自下而上的方法结合在三明治方法中。
每次添加新模块时,应用程序都会更新。这种测试形式可确保整个组件正常运行,即使在将其他组件添加到程序之后也是如此。
在学校记录中,假设我们有针对员工、学生和金钱的模块。将这些模块组合起来,并在集成后确认它们是否正常运行就是回归测试。
以下是最常见的回归测试问题 -
随着执行更多回归运行,测试套件的大小会增加。由于时间和资金限制,无法运行整个回归测试套件。
在获得最大覆盖率的同时最小化测试套件是一项艰巨的任务。
确定回归测试的频率(例如在每次修改、构建更新或问题补丁集之后)是很困难的。
此测试可确保被测程序已准备好或稳定以供进一步评估。它被称为烟雾测试,因为它用于查看第一次打开时是否着火或产生烟雾。
例如,如果一个项目包含两个模块,请先检查模块 1 是否正常工作,然后再转到模块 2。
它有助于在整个测试过程中及早发现问题。
它有助于检测由于组件集成而出现的困难。
它有助于确保先前版本中更正的错误不会影响应用程序的主要功能。
要进行冒烟测试,只需要少量的测试用例。
烟雾测试可以在短时间内完成。
烟雾测试不包括广泛的测试。
因为它是一个非详尽的测试,测试用例很少,我们无法发现其他严重的缺陷。
验证测试就是这样。这是一种可接受性测试形式,在产品向公众提供之前进行。QA 人员通常负责这方面的工作。
当公司的软件在内部进行测试时,称为内部软件测试。
您完成了充分而严格的测试- alpha 测试中同时使用了黑盒测试和白盒测试。系统的输入和输出功能将使用黑盒测试方法进行彻底测试。另一方面,白盒方法检查系统的架构和内部结构。在所有需要和可能的情况下检查产品的输入和输出流是至关重要的。
提高软件质量- Alpha 测试涉及将系统置于模拟环境中,该环境与将要使用的环境相当。这产生了现实的测试环境,试图尽可能地与最终用户产生共鸣。当然,如果程序通过 beta 测试,团队将收到真实用户的输入。任何及任何早期投入都应大大提高最终产品的质量。
一系列可用性和可靠性见解- Alpha 测试允许开发人员查看系统在向公众介绍后的性能。产品团队将能够评估系统的性能并尽早了解其可用性和可靠性。这些见解将有助于产品团队对系统未来的增强功能做出最佳判断。
Alpha 测试可帮助测试团队提前 发现潜在的生产问题,从而减少返工并加快交付进度。这使开发团队能够在系统上线之前识别并解决任何潜在的生产问题。这减少了开发中的返工和交付后期更新所需的时间。
Alpha 测试是开发过程的重要组成部分,我们始终建议团队为此分配时间和资源。
但是,alpha 测试有一些缺点。幸运的是,意识到它们应该有助于减轻它们的影响:
Alpha 测试需要更长的测试执行时间:整个产品将在 Alpha 测试期间使用各种黑盒和白盒方法进行高水平和深入的测试。因此,测试执行周期将需要更长的时间才能完成。测试周期的长短还取决于产品的特性和整个过程中发现的问题数量。如果产品有更多的功能,发现大量的缺陷,则测试过程将需要更长的时间。
非功能性需求测试仅限于虚拟环境。
Beta 测试由软件的最终用户在一个或多个客户端位置进行。此版本仅适用于选定的一组人员进行实时测试。
示例 - 当为一小组个人完成软件测试时,
该程序已经过全面测试,以确保它与各种操作系统兼容。它包含在黑盒测试方法中。在这种情况下,我们只关注所需的输入和输出,而不是内部操作。
包括安全测试、恢复测试、压力测试和性能测试。
示例 - 这包括功能和非功能测试。
在这个实验中,我们将系统置于不利的环境中,看看它是如何响应的。
运行需要最多内存或其他资源的测试用例。
在虚拟操作系统中,可能会导致抖动的测试用例
可能需要大量存储空间的测试情况
其目的是在集成系统的上下文中评估软件的运行时性能。它用于查看软件的速度和有效性。它也称为负载测试。它决定了系统在特定负载下的表现。
检查处理器周期数就是一个例子。
这种测试结合了许多不同的测试方法来评估和验证面向对象的软件。该测试进行如下 -
需求测试,
测试设计与分析,
代码验证
集成测试,
系统评估,
用户测试