• 10
  • 10
分享
  • 软件回归测试的真实含义
  • 北极 2022-01-29 15:54:58 字数 1521 阅读 924 收藏 10

  常言道,名正则言顺。对于一个概念,如果它没有恰当的名字,就会增加理解的难度,甚至容易引起歧义。

  在这些年,不管是写公众号还是与同行交流,我都发现软件测试中的一个重要概念存在着“名不正,言不顺”的问题。这个重要概念就是回归测试。

  到底什么是回归测试?为什么叫回归测试?据我观察,许多的答案都不能让人信服。今天,是时候为“回归测试”正个名了。

  要理解“回归测试”,先要理解“回归”。回归,是常用的汉语词汇。它有两种含义。第一种是归还,返回的意思。例如:香港回归祖国,北回归线,回归初心等。这种含义大家都非常熟悉。

  另外一种含义,熟悉的人就少一些。它来自数学领域,表示研究随机变量相互关系的统计分析方法。例如:回归分析,线性回归等。

  这时候你会发现,不管哪一种含义都无法用来解释回归测试。于是,有人干脆就含糊其辞地把回归测试解释成“重复的测试”,“检测二次出现的/回归的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。但是根据我的经验,它会影响我们阅读这一领域的相关英文博客和论文。

  根据上面的分析,我想回归测试的含义已经很明确了。回归测试之所以容易被误解,原因是翻译不精确。如果翻译成“衰退测试”或“退化测试”,就好理解得多了。

  或者,我们将错就错,给“回归”增加第三种含义,以表示“衰退”,“退化”的意思?

 

来源:百度文库

  • 【留下美好印记】
    赞赏支持
登录 后发表评论
+ 关注

热门文章

    最新讲堂

      • 推荐阅读
      • 换一换
          • 渗透方法:黑盒测试:在不知道目标内部的基本构造和内部特性的情况下进行测试白盒测试:与黑盒相反灰盒测试:介于黑白盒之间,在知道较少内部架构的情况下进行攻击渗透目标:主机操作系统渗透测试数据库系统渗透测试应用系统渗透测试网络设备渗透测试:网络通信设备、网络安全设备内网渗透测试外部渗透测试渗透七个步骤:1、前期交互确定渗透测试范围时间估计:预估整体项目的时间周期问答交谈:对企业内雇员进行问答交流(这里应该指社工)范围制定:项目起止时间、授权文件、目标规划确定测试资源:IP、域名范围、ISP、服务器所在国家(渗透需要的资源情报)目标规划确定目标业务分析与需求分析建立通信渠道紧急联系方式应急响应流程进展...
            0 0 2362
            分享
          • 在我们测试接口提供的数据,支持的业务功能之前,我们非常有必要再提一下接口本身的规则,即便我们在前面的章节已经隐隐约约的提到过。1. 接口文档如果让我给接口文档下个定义,文档是使用接口的人对于接口的约束口头协定(对,你没看错,这是我最经常见的)word/Excel/txt 文件api管理平台(rap2/yapi等等)文档应该出现且不限于以下几点内容:接口访问的地址接口参数必须传的参数非必须传的参数指定数据类型参数请求方式GET请求POST请求返回字段的含义至于为什么是上面几条,不赘述,大家可以想一哈2. 遵循接口文档对于测试人员来讲,遵循接口文档,就是按照文档进行测试。测试也可以分为两种风格:懒...
            0 0 1366
            分享
          •   有一份51Testing测试行业调查问卷需要您的助力,差不多三分钟的时间即可填完。我们给您准备了一份价值398元的测试课程作为礼品,感谢您的帮忙~链接:http://vote.51testing.com/  项目监控:  通过对软件项目实施跟踪和监控,可以为各级管理人员提供足够的可视性。  项目监控的目的是在项目计划发布后,通过定期检查项目计划中各种参数从而客观地了解项目的进展情况,并且在项目的进展情况与项目计划有较大偏差时,管理层及客户能够及时地做出调整,并采取有效措施,以使项目回到正常的轨道。  项目监控的方法非常简单,但关键的一点就是要将对项目跟踪和监控的内容和过程文档化,它是监控各...
            0 0 848
            分享
          •   据报道,美国国家公路交通安全管理局(NHTSA)今日表示,在接到两起投诉后,已开始对特斯拉(182,-5.71,-3.04%)ModelY电动汽车的方向盘脱落问题展开调查。  NHTSA称,已经接到两起事故投诉,车主在驾驶2023年生产的ModelYSUV电动汽车时,车轮竟然脱离了转向柱,即方向盘脱落。这主要是因为,受影响车辆在没安装固定螺栓(用于固定方向盘)的情况下就交付给了车主。  3月4日,NHTSA对此展开了初步评估,涵盖大约120089辆汽车。NHTSA今日称,目前正在评估“与这种情况相关的范围、频率和制造工序。”  对此,特斯拉尚未发表评论。  3月6日,公开资料显示,特斯拉在...
            0 0 1280
            分享
          • 马斯克入主后,推特裁员似乎不可避免,悬念只是裁多少。当地时间11月2日,彭博社援引知情人士称,特斯拉CEO埃隆·马斯克(Elon Musk)计划在社交媒体公司推特(Twitter)裁员约3700人,即员工总数的一半,以降低成本。知情人士称,马斯克还打算改变公司现有的“随时随地工作”政策,要求员工在办公室工作。马斯克和顾问团队一直在考虑推特旧金山总部的裁员情况,以及其他政策变化的一系列情况。两名知情人士说,目前一种方案是,被解雇的员工将获得60天的遣散费。自马斯克接管推特,已经解雇包括首席执行官帕拉格·阿格拉瓦尔(ParagAgrawal)在内的高管团队。知情人士称,上周末,一些董事和副总裁已经...
            0 0 777
            分享
      • 51testing软件测试圈微信