「回归」这个词会让很多软件测试人员想起痛苦不堪的经历。对于发布窗口而言,回归测试是多么的重要以至于不可或缺也来不得半点虚假。有时候,我们甚至想知道是否真的需要回归测试?当软件一直处于发现BUG和解决BUG的循环中时,为什么我们需要执行回归用例?我们需要定期执行回归测试。我们这样做的原因是发现回归缺陷。
什么是回归BUG
通常在软件测试过程中,会发现到一些错误并进行及时的错误修复。执行回归测试是为了确保错误修复不会引起应用程序其他功能的的异常。当发现由于修补程序而触发其他功能BUG
时,这些BUG
称为回归BUG
。例如,假设登录页面有一些BUG
,开发人员已修复它。现在,登录页面可以正常工作,但是注册页面正在引起一些验证或其他之前不存在的BUG
。由于登录页面上的修复,可能导致了新BUG
,这是一个回归中发现的BUG
,很容易被错过。
回归BUG很难处理
回归BUG
通常是不可避免的,需要在发布软件之前对其进行修复。有一些原因使回归BUG
变得难以处理。
「项目成本增加」:由于生产中最近的错误修复而产生了回归缺陷,这将要求测试人员一遍又一遍地对同一模块执行回归测试,大多数的测试执行是不会发现回归BUG
的。处理回归缺陷需要大量的重复工作,并且组织和客户都在员工的帐单中花费大量人力,用于重复相同的工作。
「时间复杂性」:截止日期临近时,回归BUG
可能会带来很大挑战。开发人员很少有时间来修复新检测到的BUG
,他们往往急于修复测试同学刚刚提出BUG
而不会关注可能导致的回归BUG
。通常开发人员在修复这些回归BUG
的时候也很难去按照响应的编码标准。
「敏捷速度越来越慢」:在当前敏捷盛行的时代,开发人员和测试人员总是急于完成版本的迭代,并着眼于快速解决这些BUG
。在这种情况下,对同一模块进行重复测试不仅会耗费时间,而且在某个BUG
修复导致另一个新BUG
产生的时候也变得令人沮丧。交付速度缓慢也成为软件测试人员编写有效测试用例的障碍。
「维护成本」:在敏捷项目中,可能会出现这样的情况,即当前Sprint
中修复的缺陷可能会导致先前Sprint
中的一些其他缺陷。必须注意,要对已经在生产中的应用程序部分进行频繁的测试,会大大增加了维护成本。
处理回归BUG
有几种方法可以帮助测试团队有效地处理回归BUG。
代码审查
不仅开发,甚至测试脚本都需要定期检查代码。检查测试用例,以确保它们足以验证组件的每个模块。理想情况下,质量检查团队应与开发团队一起检查存在高风险的区域。微调回归测试套件,以分析新更改是否导致任何严重的回归BUG
。代码审查的主要内容:
- 查找逻辑错误
- 确保满足全部需求和要求
- 校准代码版本
- 报告结果
监控指标
在测试过程中发现的BUG
不仅意味着要进行立即修复。尤其是回归BUG
,在很大程度上说明了测试脚本、测试用例的覆盖范围足够广。
监视指标有助于检查整个软件生命周期的质量保障程度。也许当前的版本有不少BUG
,或者由于时间限制,编码人员和测试人员不得不匆忙工作,从而导致回归缺陷数量增加。
考虑到这些变量的细节对于QA团队的绩效也很重要,这反过来又可以优化整个回归工作,并有助于检测可能遗漏的任何回归BUG
。
左移测试与连续测试
传统上,测试过程是在开发到过渡环境之后执行的。但这样,测试人员有时不得不在非常有限的时间范围内管理大量的测试。如果在发布过程临近时发现错误,那么甚至可能必须推迟发布日期,或者如果在迁移到生产环境后发现致命错误,则甚至可能必须回滚整个项目代码。事实证明,这不仅很耗时,而且对于在敏捷环境中工作的员工也很不友好。左移测试是一种方法,您可以在SDLC
(软件开发生命周期)的一开始就立即合并测试。使用左移测试执行连续测试策略在减轻风险和提升效能方面非常有效。
自动化
自动化测试在最大限度地减少回归缺陷方面节省了很多时间。尤其是在单元测试期间,自动化脚本会更深入地检查功能并检测逻辑错误。编写广泛的单元测试脚本将确保完美完成回归测试,并在时间内交付高质量的产品。