众所周知,在软件开发的生命周期中,开发人员往往需要修改已有代码,或将新功能引入目标系统。不过,此类更改可能会通过影响现有功能对系统造成破坏。因此,我们需要执行一系列测试,以验证新的代码对系统不会造成负面影响。这便是回归测试。
在本文中,我们将从回归测试的概念入手,讨论其实施的重要性,以及那些实现自动化测试的方法与优秀实践。
什么是回归测试?
回归测试(https://en.wikipedia.org/wiki/Regression_testing)是一种软件的测试形式,能够涵盖软件系统中的各种功能性和非功能性的元素。我们可以在执行如下操作后,通过它来发现潜在的问题或错误。
针对上述任何事件,如果采用手动的方式测试整个系统,显然既费时又费力。开发团队往往希望通过自动化测试的方式,来加快整个工作流程,以实现每修改一次代码,都能执行一系列预先开发好的测试脚本。据此,他们能够在进行连续性回归测试的同时,降低测试的总体成本,减少人为错误,并保持更高的准确性。
为何要使用自动化回归测试?
如前文所述,我们在对每个系统组件进行下一阶段开发之前,需要对其进行彻底的测试,否则就会积累所谓的技术债(technical debt)。这不仅成本高昂,而且对于开发工作流程来说也是危害极大的。
值得注意的是,错误的修复成本会在软件开发的各个阶段呈指数性增长(请参考:https://www.nist.gov/system/files/documents/director/planning/report02-3.pdf),并且会在产品发布的时候高达30倍以上。下图是此类费用随时间增加的统计图。
可见,通过在开发的早期阶段进行彻底的测试,不但可以及时地发现错误,还能够避免纠正错误所带来的高昂成本。这也正是自动化回归测试发挥作用的地方。当然,除了改进错误检测的效率,自动化回归测试还能够为开发工作、及其流程带来如下好处:
如何执行自动化回归测试?
正如执行任何其他类型的自动化软件测试一样,我们需要遵循预定义的测试路线,才能成功地完成回归测试。
正所谓“工欲善其事,必先利其器”,我们在执行自动化回归测试前,首先也是最重要的一步是:选择合适的工具。目前市场上的自动化回归测试工具林林总总,其中比较流行的包括Selenium、TestComplete、Ranorex Studio和Perfecto。
接着,我们可以按照如下四步来开展自动执行回归测试:
自动化回归测试的方法
目前,业界通常会使用如下三种方法,来执行自动化回归测试(请参见--https://ieeexplore.ieee.org/document/10189)。您该具体选择哪种方法,则完全取决于开发的优先级、代码库的大小、以及可用在测试中的资源。
此外,您还可以使用混合回归测试技术,即:先执行优先级测试,然后再运行其他必要的测试,以避免遗漏并实现全覆盖。
自动化回归测试的实例
如前所述,我们可以根据对代码库所进行的更改,来采用不同形式的回归测试。有些是在添加新的功能后执行,而有些是在修复了系统中已知错误后执行。下面,让我们来讨论回归测试的一些实际案例:
根据上述的场景,我们来讨论其中的登录验证功能,即:用户输入其登录凭据(如用户名和密码),然后单击登录按钮。其中,用于测试此功能的分步实施代码如下:
如下代码则展示了当我们对该功能性代码进行测试时,生成的具有登录功能的类:
上述代码实为手动回归测试的示例。如果我们使用诸如Perfecto之类的自动化回归测试工具,则无需对测试脚本进行硬编码。我们只需做到:首先,确定可能用到的回归测试,并记录每个测试用例的工作流程。接着,使用Perfecto仪表板对测试方案进行建模。如下图所示,我们可以让Perfecto协助将工作流程转换为测试脚本。
在工作流程准备就绪后,我们即可执行测试并捕获结果。而在完成测试之后,Perfecto将返回对应的测试通过或失败状态,并为每个执行的命令提供详细的反馈。据此,您可以相继开展分析测试结果,生成报告,以及重新测试更改等工作。
自动执行回归测试的最佳做法
在执行回归测试时,开发团队往往会碰到包括:时间与资源有限,测试时间过长,测试用例增多等各方面的挑战。为了避免“踩坑”,并能够成功地完成自动化回归测试,我在此为您罗列了如下实践建议:
希望上述实践经验能够帮助您平滑地开展回归测试,并获得预期的结果。
小结
回归测试是在减少潜在技术债,并改善软件项目维护态势的有效方法。借助自动化测试工具,开发团队不但能够简化测试的整体工作量,并且可以确保产品在交付到生产环境之前的稳定性与代码质量。
当前名称:自动化回归测试全接触:概念、方法和实践
本文路径:http://www.csdahua.cn/qtweb/news26/411526.html
网站建设、网络推广公司-快上网,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 快上网