研究表明,安装新应用后,只有四分之一的用户在第二天返回该应用。 保留率非常低,大多数用户在首次使用后都会卸载该应用程序。 您可能已经猜到了原因。 如果您认为原因是测试不足,那么您是正确的。 很多时候,测试人员对重复测试没有兴趣。 尽管回归测试对于项目的成功至关重要,但在某种程度上它经常被忽略。 因此,让我们了解回归测试的概念。
简而言之,回归测试可以定义为对计算机程序进行一些更改后对其进行重新测试,以确保所做的更改不会对现有代码产生不利影响。 回归测试增加了检测由应用程序更改引起的错误的机会。 它可以帮助及早发现缺陷,从而降低解决缺陷的成本。
回归测试可确保软件正常运行,以便将最佳版本的产品投放市场。 尽管创建和维护一组几乎无限的回归测试根本不可行。 这就是为什么企业专注于自动化大多数回归测试以节省时间和精力的原因。
对于不同的测试阶段,有不同类型的回归测试。 让我们了解回归测试的类型。
单元测试:当对单个单元进行编码更改并且测试人员重新运行所有先前通过的单元测试时,就完成了。 通常,代码中会内置自动单元测试,以提高单元测试的效率。
渐进式测试:当软件/应用程序规范中进行了更改并且设计了新的测试用例时,这种类型的测试有效地起作用。 选择性测试:为了减少重新测试的成本和工作量,测试人员使用了当前测试用例的一部分。 当它涵盖的程序实体发生变化时,必须重新运行测试单元。 重新测试所有测试:在这种情况下,即使未进行更改,我们也重复使用所有测试用例。 如果应用程序的更改很小,则不应该这样做,因为这非常耗时。 完整的测试:在现有代码中进行了多次更改后,完整的测试才有效。 这样做是为了识别意外的错误,一旦完成测试,最终的系统就可以提供给用户。
每当应用程序发生更改或发布新版本时,开发人员都会将这些测试作为回归测试过程的一部分进行。
首先,开发人员执行单元级回归测试以验证他们已修改的代码以及为覆盖任何新功能而创建的任何新测试。 然后,将更改后的代码合并并集成以创建新的AUT版本。 之后,将执行冒烟测试,以确保在执行任何其他测试之前,我们在上一步中创建的构建良好。
这些测试可以由诸如Jenkins的持续集成服务自动执行。 一旦我们确定构建是完美的,就进行完整性测试,以确认功能是否按预期工作,并在进行集成测试之前解决已知缺陷。
执行集成测试以验证应用程序的各个单元是否彼此交互以及是否与后端服务(例如数据库)交互。 下一步是根据代码的大小和范围安排回归测试,可以进行部分或全部回归测试。
缺陷会报告给开发团队,许多缺陷需要进行额外的回归测试来确认解决方案。 因此,根据测试报告,您可以分析并找出可以为下一个检查过程添加哪些测试用例,并在此基础上创建报告。
自动化始终是一个明智的举动,但是会有一些挑战需要引起您的注意。 让我们来看看您在自动化测试中可能面临的挑战。
成本高 在业务支出方面,该公司将不得不花费大量时间和金钱进行重复测试。 而且,回归测试没有附加特定的投资回报率。 这是一个复杂的过程,要从业务收益对管理层的角度解释回归测试的重要性确实很困难。 但是,即使从管理的角度来看,这是昂贵的,但仍必须这样做才能得出测试的预算。 非结构化信息 如果在进行中的软件测试项目中招募了新的测试人员,则可以加快流程或释放某些任务。 组织中的现有测试人员可能没有时间提供有关应用程序功能和功能,现有错误,交付时间等的完整详细信息。新测试人员可能必须使用有关正在进行的测试项目的足够数据来启动测试。 诸如此类的挑战需要适当的测试策略来进行有效的协作。 时间限制 企业的重点是开发高质量的应用程序并更快地交付它们。 这就是为什么回归测试总是有时间限制的原因。 测试人员总是有最后期限来完成回归测试的过程。 为了与时间保持同步,测试人员可能必须抓住机会,对关键回归测试给予更高的重视,并跳过一些测试。 这是一个严峻的挑战,因为决定可以跳过哪些测试至关重要。 维护与优化 一个主要的挑战是维护和优化现有的回归测试套件。 只要有新的更改,现有的回归测试套件就可能需要进行修改,例如添加,删除或编辑现有的测试用例。 所有这些都需要在为回归测试确定的截止日期之前完成。 因此,优化和维护是另一个需要注意的挑战。
现在,我们已经了解了回归测试中的挑战。 让我们看一下我们可以做的主要更改以增强它。
专注于常用路径 常用路径也使您的应用程序成为最常用的用例。 它们必须包含应用程序中最受欢迎的功能和基本功能。 您应该了解核心用户群以及他们与应用程序功能的通常交互。 回归测试用例必须确保此核心功能按预期工作。 定期更新回归包 回归包是测试用例的集合,这些测试用例在发布新应用程序版本或有任何新更新时执行。 创建回归包中的测试时要牢记应用的旧版本要求规范。 临时测试应包括在回归包中,以使其保持最新状态。 您不想在测试上浪费时间来验证应用程序最新版本中未包含的旧功能。 创建一个进入/退出标准 我们通常在软件开发生命周期中遵循的进入/退出标准也可以在回归测试中实现。 作为进入标准,需要满足一组固定条件,例如检查错误并执行回归测试以修复这些错误。 退出条件可以在一组固定条件下应用,例如确保执行所有测试且没有错误未解决。 自动化回归测试 自动化回归测试可以使过程效率更高,并节省时间和精力。 重复测试可能会使测试人员昏昏欲睡,并且测试人员可能会失去动力。 由于测试是重复性的,因此也会影响他们的工作质量。 自动化的回归测试将释放资源来进行更复杂的测试。 当我们使用自动化时,测试用例和软件也可以重复使用,从而提高了投资回报率。
变革一开始最困难,中间最混乱,最后最好。 Robin Sharma的这段话非常适合回归测试在提供平稳运行的应用程序中的重要性。 如本博客前面所述,可以在测试生命周期的所有阶段执行不同类型的回归测试。 并且也有一些方法可以克服回归测试中的挑战。
一种选择是使用基于云的应用程序测试平台 ,该平台将使回归测试的有效性提高许多倍。 将有数百种设备并行执行测试,其功能补充了回归测试自动化。
分享是关怀
翻译自: https://www.javacodegeeks.com/2019/10/a-brief-overview-of-regression-testing.html