当前位置: 首页 > 科技观察

口译回归测试:类型、选项、挑战和实践_0

时间:2023-03-14 15:07:33 科技观察

【.com快译】研究表明,安装新应用后,只有四分之一的用户在第二天返回该应用。而且大多数用户在第一次使用后会直接卸载。留存率低的主要原因是测试人员没有对应用进行足够的测试。由于他们对重复测试没有兴趣,尽管知道回归测试的重要性,他们也会选择性地忽略软件项目中的测试。什么是回归测试?简单来说,回归测试(https://www.pcloudy.com/a-brief-overview-of-regression-testing/?utm_source=linkedin&utm_medium=post&utm_term=p&utm_campaign=continuous_testing_wp&utm_source=linkedin&utm_medium=post&utm_campaign=continuous_testing_wp=p)可以定义为:对计算机程序进行一些修改后,重新测试以确保实施的更改不会对现有代码产生不利影响。可以说,回归测试提高了测试人员尽早发现变更引入的程序缺陷的能力,同时也降低了解决缺陷的成本。由此可见,回归测试不仅可以保证软件的正常运行,还可以保证软件开发商将产品最好的版本投入市场。然而,手动创建和维护那些几乎无穷无尽的回归测试是根本不可能的。这就是为什么大多数软件公司使用自动回归测试来节省时间和精力的原因。回归测试的类型一般来说,针对不同的测试阶段,我们会使用不同类型的回归测试。让我们来看看回归测试的类型:单元测试:完成一个单元的代码更改后,测试人员需要重新测试之前通过的单元测试。通常,我们可以在代码中设置自动化单元测试的入口(https://dzone.com/articles/unit-testing-and-test-automation-two-things-youre)来提高测试效率。ProgressiveTesting:当开发者改变软件和应用的相关规范,重新设计测试用例时(https://www.pcloudy.com/17-best-tips-to-write-effective-test-cases/?utm_source=linkedin&utm_medium=post&utm_term=p&utm_campaign=continuous_testing_wp&utm_source=linkedin&utm_medium=post&utm_campaign=continuous_testing_wp&utm_term=p)以有效地进行此类增量测试。SelectiveTesting:为了减少重新测试的成本和工作量,测试人员会使用部分当前的测试用例。但是,当它覆盖的程序实体发生变化时,必须重新运行相应的单元测试。Retest-AllTesting:随着时间的推移,即使程序代码没有修改,所有的用例也要反复测试。当然,如果应用程序更改很小,这可能会非常耗时。完整测试:在对现有代码进行多次修改后,我们需要有效地执行完整测试。这样做不仅是为了识别程序中的潜在错误,而且一旦完成,我们就可以将最终软件直接交付给用户。如何选择回归测试方案因此,每当软件应用发生变化,或者需要发布新版本之前,开发者都会选择性地使用以上测试类型作为回归测试流程(https://dzone.com/articles/plan-your-regression-testing-strategy-by-asking-th-4)来实施。首先,开发人员执行单元级回归测试以验证其修改代码的正确性。创建此类新测试是为了涵盖尽可能多的新软件功能。然后,开发人员通过合并创建新的自动化单元测试(AUT)版本,将修改后的代码集成到现有软件中。接下来,开发者进行冒烟测试(smoketests,https://dzone.com/articles/how-to-distinguish-the-differences-between-smoke-s)以确保前面步骤产生的构建(build)是正确可行。以上测试可以通过持续集成(https://dzone.com/articles/what-is-continuous-integration-11-key-practices-an)服务自动执行,例如Jenkins。一旦构建的正确性得到确认,我们需要通过健全性测试,在清除所有已知缺陷的基础上,确认新添加的功能是否能按预期工作。接下来,我们可以通过执行集成测试来验证应用程序的各个单元之间以及与后端服务(例如数据库)的通信是否顺畅。在下一步中,我们需要根据代码的大小和涉及的范围执行部分或全部回归测试。测试过程中发现的代码缺陷将以??报告的形式提交给开发团队。在分析和找到解决方案之后,他们还需要为下一轮测试设计新的测试用例。新的回归测试会生成新的报告。如此往复,形成正反馈。回归测试的挑战自动化回归测试高效、省时,但也面临着各种挑战。具体包括以下几个方面:成本高在业务费用方面,软件公司不得不花费大量的时间和金钱进行重复测试。从收入的角度来看,业务方往往认为这样的回归测试不仅复杂,而且不会产生显着的投资回报。即使从管理的角度来看,进行回归测试的原因也可能只是为了获取相关预算。时间紧迫的软件公司的业务重点是开发高质量的应用程序并更快地将它们交付给用户。这造成了回归测试经常与时间限制“共生”的情况。为了跟上规定的时间,在deadline之前完成回归测试的全过程,测试人员往往需要关注那些关键的回归测试环节,选择性地跳过一些细节。那么,面对如此严峻的挑战,哪些不重要的环节应该跳过,就成了测试人员凭个人经验进行主观判断的“试验场”。维护和优化维护和优化现有的回归测试套件是另一个主要挑战。例如,每当开发人员完成对其软件代码的更新时,我们都会添加、删除或编辑现有测试用例。而这些操作往往需要在回归测试设定的截止日期之前完成。回归测试的良好实践既然我们了解了回归测试的挑战,那么我们如何使用一些良好实践来使公司能够更好地交付高质量的软件呢?专注于共同的道路。应用程序中最常见的用例。它们必须包含应用程序最常见和最基本的功能。您应该了解您的核心用户群以及他们在使用您的目标应用时最常使用的程序功能。您的回归测试用例必须确保此类功能按预期完成测试。定期更新回归包回归包是各种测试用例的集合。这些测试用例需要在发布新应用程序版本之前和执行任何更新之前完成。为了不浪费测试人员的时间来验证最新版本的应用程序是否包含旧版本的保留功能,回归包中的测试用例应该包含旧版本应用程序的相关规范。当然后面添加的测试用例也要及时更新到回归包中。创建签入/签出规范通常,我们在软件开发生命周期中遵循的签入/签出规范也有助于回归测试的实施。这里的准入规范是指需要满足的一组固定条件。例如:先进行回归测试,然后检查分析缺陷,再修复缺陷和错误。准出口规范也是一组固定的条件,例如:只有确保所有的测试都已经完成,没有未解决的缺陷和错误遗留,才能交付软件。自动化回归测试由于测试往往涉及各种重复性操作,使用自动化工具进行回归测试的好处在业界是有目共睹的。同时,测试人员可以利用自动化回归测试释放的资源,进行更复杂的测试和设计用例,从而提高企业的投资回报率。目前,很多企业已经开始选择基于云的应用测试平台。此类平台能够并行模拟数百个设备,以高效地执行各种自动化回归测试。总结领导力专家RobinSharma曾有一句名言:“变革在开始时最困难,中间最混乱,最后最美丽。”时间的重要性。如前所述,我们应该克服回归测试中的各种挑战,在测试生命周期的不同阶段进行不同类型的回归测试。原标题:回归测试简述,作者:BalaMurugan