“回归测试”,你真的理解吗?

发表于:2020-3-30 11:22

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:肖哥shelwin    来源:测试不将就

  常言道,名正则言顺。对于一个概念,如果它没有恰当的名字,就会增加理解的难度,甚至容易引起歧义。
  在这些年,不管是写公众号还是与同行交流,我都发现软件测试中的一个重要概念存在着“名不正,言不顺”的问题。这个重要概念就是回归测试
  到底什么是回归测试?为什么叫回归测试?据我观察,许多的答案都不能让人信服。今天,是时候为“回归测试”正个名了。
  要理解“回归测试”,先要理解“回归”。回归,是常用的汉语词汇。它有两种含义。第一种是归还,返回的意思。例如:香港回归祖国,北回归线,回归初心等。这种含义大家都非常熟悉。
  另外一种含义,熟悉的人就少一些。它来自数学领域,表示研究随机变量相互关系的统计分析方法。例如:回归分析,线性回归等。
  这时候你会发现,不管哪一种含义都无法用来解释回归测试。于是,有人干脆就含糊其辞地把回归测试解释成“重复的测试”,“检测二次出现的/回归的bug的测试”等。
  这些解释看似有些道理,但是离回归测试的真正含义还有距离。要理解回归测试这一舶来品的真正含义,需要回到它的原始出处。
  回归测试翻译自英文“Regression Test”。什么是Regression呢?这也是一个多义词。它既有数学上回归的意思(例如Regression Analysis,回归分析),也有衰退,退化的意思(例如Economic Regression,经济衰退)。
  说到这里,回归测试的含义也就明朗了。它其实是衰退测试的意思。正如维基百科所定义的:Regression testing is re-running tests to ensure that previously developed and tested software still performs after a change. If not, that would be called a regression.
  根据这个定义,回归测试的目的是保证本来能够正常工作的软件在发生变化(change)的情况下不产生衰退。所有引起软件衰退的bug叫做regression bug(有时候直接叫regression)。回归测试可以暴露regression bug。当这种bug被发现并修复了,软件就不会发生衰退(regression)。
  触发回归测试的变化(change)是多样的。它既可以是增加一个新功能,也可以是修复一个bug,还可以是修改软件配置。无论哪一种变化,都不应该导致软件衰退:即本来能够正常工作的部分(不管是功能点还是性能指标)被破坏。
  通常来说,实现回归测试的方法是重新执行测试用例。根据执行结果是否成功,来鉴别软件是否发生衰退。回归测试与重复测试有关系,但不能将二者划等号。毕竟,回归没有重复的含义,并且重复测试不仅用于回归测试,还可以用于稳定性测试。
  将回归测试理解为"发现再次出现的bug"也不准确。因为regression bug并不是re-happened bug。regression bug是导致软件衰退的bug。这种bug完全可能是第一次出现的,是全新的bug。没有道理认为它们一定曾经出现过。
  或许有人会质疑,有必要这样抠字眼么?的确,不去深究这些含义,并不影响我们写个回归测试用例,建个回归测试job。但是根据我的经验,它会影响我们阅读这一领域的相关英文博客和论文。
  根据上面的分析,我想回归测试的含义已经很明确了。回归测试之所以容易被误解,原因是翻译不精确。如果翻译成“衰退测试”或“退化测试”,就好理解得多了。
  或者,我们将错就错,给“回归”增加第三种含义,以表示“衰退”,“退化”的意思?

      本文内容不用于商业目的,如涉及知识产权问题,请权利人联系博为峰小编(021-64471599-8017),我们将立即处理
《2023软件测试行业现状调查报告》独家发布~

精彩评论

  • 王承庆
    2020-3-31 09:51:33

    翻译书翻译错的衰退测试,百度百科讲的挺清楚的,没必要说成衰退测试,增加理解成本,个人看法。

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号