何為“回歸測試”,“回歸測試”你真的理解嗎?
發布時間:2020-05-19

1_副本.jpg


常言道,名正則言順。對于一個概念,如果它沒有恰當的名字,就會增加理解的難度,甚至容易引起歧義。


在這些年,不管是寫公眾號還是與同行交流,我都發現軟件測試中的一個重要概念存在著“名不正,言不順”的問題。這個重要概念就是回歸測試。


到底什么是回歸測試?為什么叫回歸測試?據我觀察,許多的答案都不能讓人信服。今天,是時候為“回歸測試”正個名了。


要理解“回歸測試”,先要理解“回歸”?;貧w,是常用的漢語詞匯。它有兩種含義。第一種是歸還,返回的意思。例如:香港回歸祖國,北回歸線,回歸初心等。這種含義大家都非常熟悉。


另外一種含義,熟悉的人就少一些。它來自數學領域,表示研究隨機變量相互關系的統計分析方法。例如:回歸分析,線性回歸等。


這時候你會發現,不管哪一種含義都無法用來解釋回歸測試。于是,有人干脆就含糊其辭地把回歸測試解釋成“重復的測試”,“檢測二次出現的/回歸的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)?;貧w測試可以暴露regression bug。當這種bug被發現并修復了,軟件就不會發生衰退(regression)。


觸發回歸測試的變化(change)是多樣的。它既可以是增加一個新功能,也可以是修復一個bug,還可以是修改軟件配置。無論哪一種變化,都不應該導致軟件衰退:即本來能夠正常工作的部分(不管是功能點還是性能指標)被破壞。


通常來說,實現回歸測試的方法是重新執行測試用例。根據執行結果是否成功,來鑒別軟件是否發生衰退?;貧w測試與重復測試有關系,但不能將二者劃等號。畢竟,回歸沒有重復的含義,并且重復測試不僅用于回歸測試,還可以用于穩定性測試。


將回歸測試理解為"發現再次出現的bug"也不準確。因為regression bug并不是re-happened bug。regression bug是導致軟件衰退的bug。這種bug完全可能是第一次出現的,是全新的bug。沒有道理認為它們一定曾經出現過。


或許有人會質疑,有必要這樣摳字眼么?的確,不去深究這些含義,并不影響我們寫個回歸測試用例,建個回歸測試job。但是根據我的經驗,它會影響我們閱讀這一領域的相關英文博客和論文。


根據上面的分析,我想回歸測試的含義已經很明確了?;貧w測試之所以容易被誤解,原因是翻譯不精確。如果翻譯成“衰退測試”或“退化測試”,就好理解得多了。


或者,我們將錯就錯,給“回歸”增加第三種含義,以表示“衰退”,“退化”的意思?


文章來源:測試不將就 版權歸原作者所有

上文內容不用于商業目的,如涉及知識產權問題,請權利人聯系博為峰小編(021-64471599-8103),我們將立即處理。

相關閱讀
/
手机棋牌红黑大战技巧 麻将机多少钱一台 吉林麻将小鸡儿飞蛋的规则 单机捕鱼游戏 上海选四历史开奖号 哈灵棋牌官方下载 意甲联赛主客场积分榜 30选5开奖结果查询时间 东北麻将玩法详细介绍 德甲联赛俱乐部名字 微信打字赚钱平台30元