"

最近十到二十年,軟件業迎來了一個超高速發展期,其中軟件測試相對於軟件開發進展稍微緩慢一點,不過也出現了不少新的思想、技術以及趨勢。基於現階段在客戶現場、業界大會、與專家的討論以及從網上看到的相關內容,我嘗試在本篇文章中總結出幾個測試新趨勢:

AI+測試

利用AI(深度學習等)系統來輔助測試工作絕對是最近幾年最為熱門的一個測試趨勢,其中包括測試用例,測試數據和測試代碼的自動生成、大規模測試結果分析、自動化探索性測試、缺陷定位等,美國已經有多個公司推出了商用的AI測試工具。在朱少民老師的公眾號“軟件質量報道”中就有一篇名為《未來已來,人工智能測試勢不可擋:介紹9款AI測試工具》的文章,裡面介紹了9款基於AI的測試工具。

雖然已經有很多公司開始研究AI輔助測試,也有很多工具問世,但是它們都存在一個很大的問題:準確性不夠高。由於現在AI學習算法本身存在一些問題,其學習並生產的測試用例和驗證條件的準確率都不是很高,我曾經參加過幾個大會,其中有幾個中國一線互聯網廠商分享的AI輔助測試的準確率也只有80%多,不足90%。這種準確率在金融等一些要求很高的系統中很難獲得認同。


"

最近十到二十年,軟件業迎來了一個超高速發展期,其中軟件測試相對於軟件開發進展稍微緩慢一點,不過也出現了不少新的思想、技術以及趨勢。基於現階段在客戶現場、業界大會、與專家的討論以及從網上看到的相關內容,我嘗試在本篇文章中總結出幾個測試新趨勢:

AI+測試

利用AI(深度學習等)系統來輔助測試工作絕對是最近幾年最為熱門的一個測試趨勢,其中包括測試用例,測試數據和測試代碼的自動生成、大規模測試結果分析、自動化探索性測試、缺陷定位等,美國已經有多個公司推出了商用的AI測試工具。在朱少民老師的公眾號“軟件質量報道”中就有一篇名為《未來已來,人工智能測試勢不可擋:介紹9款AI測試工具》的文章,裡面介紹了9款基於AI的測試工具。

雖然已經有很多公司開始研究AI輔助測試,也有很多工具問世,但是它們都存在一個很大的問題:準確性不夠高。由於現在AI學習算法本身存在一些問題,其學習並生產的測試用例和驗證條件的準確率都不是很高,我曾經參加過幾個大會,其中有幾個中國一線互聯網廠商分享的AI輔助測試的準確率也只有80%多,不足90%。這種準確率在金融等一些要求很高的系統中很難獲得認同。


軟件測試新趨勢


我將AI輔助測試分為三步走:

  • 第一步,通過深度學習模型自動生產測試用例的輸入,人工驗證輸出。
  • 第二步,通過深度學習模型自動生產測試用例的輸入,並通過規則模型自動驗收輸出。
  • 第三步,通過深度學習模型自動生產測試用例的輸入和輸出,並自動驗證輸出。

現在業界基本上能實現第一步了,有部分公司已經可以實現第二步了,而對於第三步,只有少量大公司實現了,並且準確度還不是很高,所以AI輔助測試還有很長的路要走。

新型業務和架構系統的測試

隨著AI系統、區塊鏈、微服務以及大數據等系統的出現與繁榮,對其進行專項測試也將是一個測試領域的趨勢。這其中會涉及到一些新的挑戰,比如測試AI系統可能會用到和以前完全不一樣的方法與理論體系;測試區塊鏈的時候如何模擬真實環境來進行測試;微服務在規模變大的情況下,是不是需要使用到與以前不一樣的測試策略與一些特殊的測試技術;大數據系統如何在測試環境下,模擬真實的大規模數據,並進行業務測試等。

測試基礎設施

隨著軟件系統規模的增大,測試環境的搭建變得越來越複雜,其成本也越來越高。而且在很多實際的項目中都對測試環境有一些特定的需求,比如每輪測試之前,回滾上一輪測試影響到的所有數據;或者可以快速將集群中的多個節點上的被測系統回滾到之前的某個版本等。隨著這些需求的增多以及成本壓力的增加,建設現代化的高效的測試基礎設施已經成為了一個大型系統的必然趨勢。比如可以利用Docker,Ansible等來搭建高效的測試基礎設施等,然後它還有另外一個新的名字:TestOps。


"

最近十到二十年,軟件業迎來了一個超高速發展期,其中軟件測試相對於軟件開發進展稍微緩慢一點,不過也出現了不少新的思想、技術以及趨勢。基於現階段在客戶現場、業界大會、與專家的討論以及從網上看到的相關內容,我嘗試在本篇文章中總結出幾個測試新趨勢:

AI+測試

利用AI(深度學習等)系統來輔助測試工作絕對是最近幾年最為熱門的一個測試趨勢,其中包括測試用例,測試數據和測試代碼的自動生成、大規模測試結果分析、自動化探索性測試、缺陷定位等,美國已經有多個公司推出了商用的AI測試工具。在朱少民老師的公眾號“軟件質量報道”中就有一篇名為《未來已來,人工智能測試勢不可擋:介紹9款AI測試工具》的文章,裡面介紹了9款基於AI的測試工具。

雖然已經有很多公司開始研究AI輔助測試,也有很多工具問世,但是它們都存在一個很大的問題:準確性不夠高。由於現在AI學習算法本身存在一些問題,其學習並生產的測試用例和驗證條件的準確率都不是很高,我曾經參加過幾個大會,其中有幾個中國一線互聯網廠商分享的AI輔助測試的準確率也只有80%多,不足90%。這種準確率在金融等一些要求很高的系統中很難獲得認同。


軟件測試新趨勢


我將AI輔助測試分為三步走:

  • 第一步,通過深度學習模型自動生產測試用例的輸入,人工驗證輸出。
  • 第二步,通過深度學習模型自動生產測試用例的輸入,並通過規則模型自動驗收輸出。
  • 第三步,通過深度學習模型自動生產測試用例的輸入和輸出,並自動驗證輸出。

現在業界基本上能實現第一步了,有部分公司已經可以實現第二步了,而對於第三步,只有少量大公司實現了,並且準確度還不是很高,所以AI輔助測試還有很長的路要走。

新型業務和架構系統的測試

隨著AI系統、區塊鏈、微服務以及大數據等系統的出現與繁榮,對其進行專項測試也將是一個測試領域的趨勢。這其中會涉及到一些新的挑戰,比如測試AI系統可能會用到和以前完全不一樣的方法與理論體系;測試區塊鏈的時候如何模擬真實環境來進行測試;微服務在規模變大的情況下,是不是需要使用到與以前不一樣的測試策略與一些特殊的測試技術;大數據系統如何在測試環境下,模擬真實的大規模數據,並進行業務測試等。

測試基礎設施

隨著軟件系統規模的增大,測試環境的搭建變得越來越複雜,其成本也越來越高。而且在很多實際的項目中都對測試環境有一些特定的需求,比如每輪測試之前,回滾上一輪測試影響到的所有數據;或者可以快速將集群中的多個節點上的被測系統回滾到之前的某個版本等。隨著這些需求的增多以及成本壓力的增加,建設現代化的高效的測試基礎設施已經成為了一個大型系統的必然趨勢。比如可以利用Docker,Ansible等來搭建高效的測試基礎設施等,然後它還有另外一個新的名字:TestOps。


軟件測試新趨勢


(來源:https://testerhome.com/topics/8229)

產品環境下的測試

去年阿里雲和騰訊雲都發生不同類型的線上故障,其中阿里雲對於其在2018年6月27日線上故障的說明中寫到:“這一功能在測試環境驗證中並未發生問題,上線到自動化運維繫統後,觸發了一個未知代碼bug”。由此可見對於大規模、高複雜度的服務器系統來講,僅僅是在測試環境進行測試已經無法滿足質量需求了,如何在產品環境下進行測試必將會在現在以及未來雲時代中佔據重要位置。比如Netflix一直在宣傳其在產品環境做大量的FIT和其好處,我的公司同事Martin Fowler 2017在其博客上有一篇文章專門介紹《QA in Production》,還有一個同事林冰玉也發表了一篇文章《產品環境下的QA》。


"

最近十到二十年,軟件業迎來了一個超高速發展期,其中軟件測試相對於軟件開發進展稍微緩慢一點,不過也出現了不少新的思想、技術以及趨勢。基於現階段在客戶現場、業界大會、與專家的討論以及從網上看到的相關內容,我嘗試在本篇文章中總結出幾個測試新趨勢:

AI+測試

利用AI(深度學習等)系統來輔助測試工作絕對是最近幾年最為熱門的一個測試趨勢,其中包括測試用例,測試數據和測試代碼的自動生成、大規模測試結果分析、自動化探索性測試、缺陷定位等,美國已經有多個公司推出了商用的AI測試工具。在朱少民老師的公眾號“軟件質量報道”中就有一篇名為《未來已來,人工智能測試勢不可擋:介紹9款AI測試工具》的文章,裡面介紹了9款基於AI的測試工具。

雖然已經有很多公司開始研究AI輔助測試,也有很多工具問世,但是它們都存在一個很大的問題:準確性不夠高。由於現在AI學習算法本身存在一些問題,其學習並生產的測試用例和驗證條件的準確率都不是很高,我曾經參加過幾個大會,其中有幾個中國一線互聯網廠商分享的AI輔助測試的準確率也只有80%多,不足90%。這種準確率在金融等一些要求很高的系統中很難獲得認同。


軟件測試新趨勢


我將AI輔助測試分為三步走:

  • 第一步,通過深度學習模型自動生產測試用例的輸入,人工驗證輸出。
  • 第二步,通過深度學習模型自動生產測試用例的輸入,並通過規則模型自動驗收輸出。
  • 第三步,通過深度學習模型自動生產測試用例的輸入和輸出,並自動驗證輸出。

現在業界基本上能實現第一步了,有部分公司已經可以實現第二步了,而對於第三步,只有少量大公司實現了,並且準確度還不是很高,所以AI輔助測試還有很長的路要走。

新型業務和架構系統的測試

隨著AI系統、區塊鏈、微服務以及大數據等系統的出現與繁榮,對其進行專項測試也將是一個測試領域的趨勢。這其中會涉及到一些新的挑戰,比如測試AI系統可能會用到和以前完全不一樣的方法與理論體系;測試區塊鏈的時候如何模擬真實環境來進行測試;微服務在規模變大的情況下,是不是需要使用到與以前不一樣的測試策略與一些特殊的測試技術;大數據系統如何在測試環境下,模擬真實的大規模數據,並進行業務測試等。

測試基礎設施

隨著軟件系統規模的增大,測試環境的搭建變得越來越複雜,其成本也越來越高。而且在很多實際的項目中都對測試環境有一些特定的需求,比如每輪測試之前,回滾上一輪測試影響到的所有數據;或者可以快速將集群中的多個節點上的被測系統回滾到之前的某個版本等。隨著這些需求的增多以及成本壓力的增加,建設現代化的高效的測試基礎設施已經成為了一個大型系統的必然趨勢。比如可以利用Docker,Ansible等來搭建高效的測試基礎設施等,然後它還有另外一個新的名字:TestOps。


軟件測試新趨勢


(來源:https://testerhome.com/topics/8229)

產品環境下的測試

去年阿里雲和騰訊雲都發生不同類型的線上故障,其中阿里雲對於其在2018年6月27日線上故障的說明中寫到:“這一功能在測試環境驗證中並未發生問題,上線到自動化運維繫統後,觸發了一個未知代碼bug”。由此可見對於大規模、高複雜度的服務器系統來講,僅僅是在測試環境進行測試已經無法滿足質量需求了,如何在產品環境下進行測試必將會在現在以及未來雲時代中佔據重要位置。比如Netflix一直在宣傳其在產品環境做大量的FIT和其好處,我的公司同事Martin Fowler 2017在其博客上有一篇文章專門介紹《QA in Production》,還有一個同事林冰玉也發表了一篇文章《產品環境下的QA》。


軟件測試新趨勢


(來源:http://t.cn/AiWYS09E)

基於故障注入的測試(混沌工程)

隨著雲平臺越來越龐大,越來越複雜,普通的測試用例已經很難滿足高可用的需求了,所以基於故障注入的測試(FIT-Failure Injection Testing)也越來越重要。其中Netflix甚至在其產品環境中大規模的使用FIT,而不僅僅是在測試環境中。Netflix在其官方博客中發表了多篇關於故障注入測試的文章。在未來雲的系統的越來越多、越來越複雜的時代,對於一個追求質量的系統,基於故障的注入的測試肯定是必不可少的。


"

最近十到二十年,軟件業迎來了一個超高速發展期,其中軟件測試相對於軟件開發進展稍微緩慢一點,不過也出現了不少新的思想、技術以及趨勢。基於現階段在客戶現場、業界大會、與專家的討論以及從網上看到的相關內容,我嘗試在本篇文章中總結出幾個測試新趨勢:

AI+測試

利用AI(深度學習等)系統來輔助測試工作絕對是最近幾年最為熱門的一個測試趨勢,其中包括測試用例,測試數據和測試代碼的自動生成、大規模測試結果分析、自動化探索性測試、缺陷定位等,美國已經有多個公司推出了商用的AI測試工具。在朱少民老師的公眾號“軟件質量報道”中就有一篇名為《未來已來,人工智能測試勢不可擋:介紹9款AI測試工具》的文章,裡面介紹了9款基於AI的測試工具。

雖然已經有很多公司開始研究AI輔助測試,也有很多工具問世,但是它們都存在一個很大的問題:準確性不夠高。由於現在AI學習算法本身存在一些問題,其學習並生產的測試用例和驗證條件的準確率都不是很高,我曾經參加過幾個大會,其中有幾個中國一線互聯網廠商分享的AI輔助測試的準確率也只有80%多,不足90%。這種準確率在金融等一些要求很高的系統中很難獲得認同。


軟件測試新趨勢


我將AI輔助測試分為三步走:

  • 第一步,通過深度學習模型自動生產測試用例的輸入,人工驗證輸出。
  • 第二步,通過深度學習模型自動生產測試用例的輸入,並通過規則模型自動驗收輸出。
  • 第三步,通過深度學習模型自動生產測試用例的輸入和輸出,並自動驗證輸出。

現在業界基本上能實現第一步了,有部分公司已經可以實現第二步了,而對於第三步,只有少量大公司實現了,並且準確度還不是很高,所以AI輔助測試還有很長的路要走。

新型業務和架構系統的測試

隨著AI系統、區塊鏈、微服務以及大數據等系統的出現與繁榮,對其進行專項測試也將是一個測試領域的趨勢。這其中會涉及到一些新的挑戰,比如測試AI系統可能會用到和以前完全不一樣的方法與理論體系;測試區塊鏈的時候如何模擬真實環境來進行測試;微服務在規模變大的情況下,是不是需要使用到與以前不一樣的測試策略與一些特殊的測試技術;大數據系統如何在測試環境下,模擬真實的大規模數據,並進行業務測試等。

測試基礎設施

隨著軟件系統規模的增大,測試環境的搭建變得越來越複雜,其成本也越來越高。而且在很多實際的項目中都對測試環境有一些特定的需求,比如每輪測試之前,回滾上一輪測試影響到的所有數據;或者可以快速將集群中的多個節點上的被測系統回滾到之前的某個版本等。隨著這些需求的增多以及成本壓力的增加,建設現代化的高效的測試基礎設施已經成為了一個大型系統的必然趨勢。比如可以利用Docker,Ansible等來搭建高效的測試基礎設施等,然後它還有另外一個新的名字:TestOps。


軟件測試新趨勢


(來源:https://testerhome.com/topics/8229)

產品環境下的測試

去年阿里雲和騰訊雲都發生不同類型的線上故障,其中阿里雲對於其在2018年6月27日線上故障的說明中寫到:“這一功能在測試環境驗證中並未發生問題,上線到自動化運維繫統後,觸發了一個未知代碼bug”。由此可見對於大規模、高複雜度的服務器系統來講,僅僅是在測試環境進行測試已經無法滿足質量需求了,如何在產品環境下進行測試必將會在現在以及未來雲時代中佔據重要位置。比如Netflix一直在宣傳其在產品環境做大量的FIT和其好處,我的公司同事Martin Fowler 2017在其博客上有一篇文章專門介紹《QA in Production》,還有一個同事林冰玉也發表了一篇文章《產品環境下的QA》。


軟件測試新趨勢


(來源:http://t.cn/AiWYS09E)

基於故障注入的測試(混沌工程)

隨著雲平臺越來越龐大,越來越複雜,普通的測試用例已經很難滿足高可用的需求了,所以基於故障注入的測試(FIT-Failure Injection Testing)也越來越重要。其中Netflix甚至在其產品環境中大規模的使用FIT,而不僅僅是在測試環境中。Netflix在其官方博客中發表了多篇關於故障注入測試的文章。在未來雲的系統的越來越多、越來越複雜的時代,對於一個追求質量的系統,基於故障的注入的測試肯定是必不可少的。


軟件測試新趨勢


安全開發流程與自動化安全測試

現在一談到安全,一般都是聊滲透測試或者是安全防護,比如WFA等,很少有人談到安全開發和開發流程中的安全測試。其實安全開發才是最有效的安全防護辦法,比如早在本世紀初微軟就提出了自己的安全開發流程SDL(Security Development Lifecycle),但是由於微軟的SDL十分笨重,成本也十分高,導致在其當前需要敏捷和快速開發軟件的互聯網時代很難推廣。而在其10年後,ThoughtWorks又基於敏捷實踐提出了另外一套安全開發流程BSI(Build Security In),把各種安全實踐內建到軟件開發的各個關鍵節點之中,通過儘早引入安全實踐以及快速獲取安全反饋的方式,儘可能早地發現安全問題。

其中BSI就是結合了敏捷方法論和實踐的一種安全開發流程,並需要在開發流程中嵌入各種不同類型的安全測試,比如基於業務功能的安全測試,基於威脅建模結構的白盒安全測試,以及基於各種黑盒自動化的安全掃描和測試等,對於需要持續交付的敏捷團隊特別適合。


"

最近十到二十年,軟件業迎來了一個超高速發展期,其中軟件測試相對於軟件開發進展稍微緩慢一點,不過也出現了不少新的思想、技術以及趨勢。基於現階段在客戶現場、業界大會、與專家的討論以及從網上看到的相關內容,我嘗試在本篇文章中總結出幾個測試新趨勢:

AI+測試

利用AI(深度學習等)系統來輔助測試工作絕對是最近幾年最為熱門的一個測試趨勢,其中包括測試用例,測試數據和測試代碼的自動生成、大規模測試結果分析、自動化探索性測試、缺陷定位等,美國已經有多個公司推出了商用的AI測試工具。在朱少民老師的公眾號“軟件質量報道”中就有一篇名為《未來已來,人工智能測試勢不可擋:介紹9款AI測試工具》的文章,裡面介紹了9款基於AI的測試工具。

雖然已經有很多公司開始研究AI輔助測試,也有很多工具問世,但是它們都存在一個很大的問題:準確性不夠高。由於現在AI學習算法本身存在一些問題,其學習並生產的測試用例和驗證條件的準確率都不是很高,我曾經參加過幾個大會,其中有幾個中國一線互聯網廠商分享的AI輔助測試的準確率也只有80%多,不足90%。這種準確率在金融等一些要求很高的系統中很難獲得認同。


軟件測試新趨勢


我將AI輔助測試分為三步走:

  • 第一步,通過深度學習模型自動生產測試用例的輸入,人工驗證輸出。
  • 第二步,通過深度學習模型自動生產測試用例的輸入,並通過規則模型自動驗收輸出。
  • 第三步,通過深度學習模型自動生產測試用例的輸入和輸出,並自動驗證輸出。

現在業界基本上能實現第一步了,有部分公司已經可以實現第二步了,而對於第三步,只有少量大公司實現了,並且準確度還不是很高,所以AI輔助測試還有很長的路要走。

新型業務和架構系統的測試

隨著AI系統、區塊鏈、微服務以及大數據等系統的出現與繁榮,對其進行專項測試也將是一個測試領域的趨勢。這其中會涉及到一些新的挑戰,比如測試AI系統可能會用到和以前完全不一樣的方法與理論體系;測試區塊鏈的時候如何模擬真實環境來進行測試;微服務在規模變大的情況下,是不是需要使用到與以前不一樣的測試策略與一些特殊的測試技術;大數據系統如何在測試環境下,模擬真實的大規模數據,並進行業務測試等。

測試基礎設施

隨著軟件系統規模的增大,測試環境的搭建變得越來越複雜,其成本也越來越高。而且在很多實際的項目中都對測試環境有一些特定的需求,比如每輪測試之前,回滾上一輪測試影響到的所有數據;或者可以快速將集群中的多個節點上的被測系統回滾到之前的某個版本等。隨著這些需求的增多以及成本壓力的增加,建設現代化的高效的測試基礎設施已經成為了一個大型系統的必然趨勢。比如可以利用Docker,Ansible等來搭建高效的測試基礎設施等,然後它還有另外一個新的名字:TestOps。


軟件測試新趨勢


(來源:https://testerhome.com/topics/8229)

產品環境下的測試

去年阿里雲和騰訊雲都發生不同類型的線上故障,其中阿里雲對於其在2018年6月27日線上故障的說明中寫到:“這一功能在測試環境驗證中並未發生問題,上線到自動化運維繫統後,觸發了一個未知代碼bug”。由此可見對於大規模、高複雜度的服務器系統來講,僅僅是在測試環境進行測試已經無法滿足質量需求了,如何在產品環境下進行測試必將會在現在以及未來雲時代中佔據重要位置。比如Netflix一直在宣傳其在產品環境做大量的FIT和其好處,我的公司同事Martin Fowler 2017在其博客上有一篇文章專門介紹《QA in Production》,還有一個同事林冰玉也發表了一篇文章《產品環境下的QA》。


軟件測試新趨勢


(來源:http://t.cn/AiWYS09E)

基於故障注入的測試(混沌工程)

隨著雲平臺越來越龐大,越來越複雜,普通的測試用例已經很難滿足高可用的需求了,所以基於故障注入的測試(FIT-Failure Injection Testing)也越來越重要。其中Netflix甚至在其產品環境中大規模的使用FIT,而不僅僅是在測試環境中。Netflix在其官方博客中發表了多篇關於故障注入測試的文章。在未來雲的系統的越來越多、越來越複雜的時代,對於一個追求質量的系統,基於故障的注入的測試肯定是必不可少的。


軟件測試新趨勢


安全開發流程與自動化安全測試

現在一談到安全,一般都是聊滲透測試或者是安全防護,比如WFA等,很少有人談到安全開發和開發流程中的安全測試。其實安全開發才是最有效的安全防護辦法,比如早在本世紀初微軟就提出了自己的安全開發流程SDL(Security Development Lifecycle),但是由於微軟的SDL十分笨重,成本也十分高,導致在其當前需要敏捷和快速開發軟件的互聯網時代很難推廣。而在其10年後,ThoughtWorks又基於敏捷實踐提出了另外一套安全開發流程BSI(Build Security In),把各種安全實踐內建到軟件開發的各個關鍵節點之中,通過儘早引入安全實踐以及快速獲取安全反饋的方式,儘可能早地發現安全問題。

其中BSI就是結合了敏捷方法論和實踐的一種安全開發流程,並需要在開發流程中嵌入各種不同類型的安全測試,比如基於業務功能的安全測試,基於威脅建模結構的白盒安全測試,以及基於各種黑盒自動化的安全掃描和測試等,對於需要持續交付的敏捷團隊特別適合。


軟件測試新趨勢


(來源:https://www.buildsecurityin.net/zh/)

可測性分析與設計

現在很少有公司會對系統進行可測試分析和設計,只有一些大型公司的部分大型系統會使用它。其實可測試是一個非常古老的話題,就像契約測試早在上個世紀80年代就被提出了,但是由於其對於中小型項目的投資回報比不高,很少有公司會用到。直到規模化微服務的出現和盛行,契約測試這個老古董也逐漸成了一個新的熱點。但是隨著軟件規模的增加,特別是當雲平臺等大型系統成為一種趨勢時,通過提高其可測試性來使其各種測試更加有效也將成為一種趨勢。

敏捷測試

敏捷測試也許在國外很多公司(比如Atlassian,Netflix,Google等)已經是常態了,但是在國內,在未來很長時間內還是一種奢望。其中測試前移、測試驅動開發(業務功能級別的ATDD),以及預防缺陷優於發現缺陷等理念和實踐,使得敏捷測試能有效的減少缺陷代碼和返工,從而有效節約開發成本,提高交付速度和軟件質量,所以敏捷測試中的各種實踐也一定會在國內成為一種趨勢。


"

最近十到二十年,軟件業迎來了一個超高速發展期,其中軟件測試相對於軟件開發進展稍微緩慢一點,不過也出現了不少新的思想、技術以及趨勢。基於現階段在客戶現場、業界大會、與專家的討論以及從網上看到的相關內容,我嘗試在本篇文章中總結出幾個測試新趨勢:

AI+測試

利用AI(深度學習等)系統來輔助測試工作絕對是最近幾年最為熱門的一個測試趨勢,其中包括測試用例,測試數據和測試代碼的自動生成、大規模測試結果分析、自動化探索性測試、缺陷定位等,美國已經有多個公司推出了商用的AI測試工具。在朱少民老師的公眾號“軟件質量報道”中就有一篇名為《未來已來,人工智能測試勢不可擋:介紹9款AI測試工具》的文章,裡面介紹了9款基於AI的測試工具。

雖然已經有很多公司開始研究AI輔助測試,也有很多工具問世,但是它們都存在一個很大的問題:準確性不夠高。由於現在AI學習算法本身存在一些問題,其學習並生產的測試用例和驗證條件的準確率都不是很高,我曾經參加過幾個大會,其中有幾個中國一線互聯網廠商分享的AI輔助測試的準確率也只有80%多,不足90%。這種準確率在金融等一些要求很高的系統中很難獲得認同。


軟件測試新趨勢


我將AI輔助測試分為三步走:

  • 第一步,通過深度學習模型自動生產測試用例的輸入,人工驗證輸出。
  • 第二步,通過深度學習模型自動生產測試用例的輸入,並通過規則模型自動驗收輸出。
  • 第三步,通過深度學習模型自動生產測試用例的輸入和輸出,並自動驗證輸出。

現在業界基本上能實現第一步了,有部分公司已經可以實現第二步了,而對於第三步,只有少量大公司實現了,並且準確度還不是很高,所以AI輔助測試還有很長的路要走。

新型業務和架構系統的測試

隨著AI系統、區塊鏈、微服務以及大數據等系統的出現與繁榮,對其進行專項測試也將是一個測試領域的趨勢。這其中會涉及到一些新的挑戰,比如測試AI系統可能會用到和以前完全不一樣的方法與理論體系;測試區塊鏈的時候如何模擬真實環境來進行測試;微服務在規模變大的情況下,是不是需要使用到與以前不一樣的測試策略與一些特殊的測試技術;大數據系統如何在測試環境下,模擬真實的大規模數據,並進行業務測試等。

測試基礎設施

隨著軟件系統規模的增大,測試環境的搭建變得越來越複雜,其成本也越來越高。而且在很多實際的項目中都對測試環境有一些特定的需求,比如每輪測試之前,回滾上一輪測試影響到的所有數據;或者可以快速將集群中的多個節點上的被測系統回滾到之前的某個版本等。隨著這些需求的增多以及成本壓力的增加,建設現代化的高效的測試基礎設施已經成為了一個大型系統的必然趨勢。比如可以利用Docker,Ansible等來搭建高效的測試基礎設施等,然後它還有另外一個新的名字:TestOps。


軟件測試新趨勢


(來源:https://testerhome.com/topics/8229)

產品環境下的測試

去年阿里雲和騰訊雲都發生不同類型的線上故障,其中阿里雲對於其在2018年6月27日線上故障的說明中寫到:“這一功能在測試環境驗證中並未發生問題,上線到自動化運維繫統後,觸發了一個未知代碼bug”。由此可見對於大規模、高複雜度的服務器系統來講,僅僅是在測試環境進行測試已經無法滿足質量需求了,如何在產品環境下進行測試必將會在現在以及未來雲時代中佔據重要位置。比如Netflix一直在宣傳其在產品環境做大量的FIT和其好處,我的公司同事Martin Fowler 2017在其博客上有一篇文章專門介紹《QA in Production》,還有一個同事林冰玉也發表了一篇文章《產品環境下的QA》。


軟件測試新趨勢


(來源:http://t.cn/AiWYS09E)

基於故障注入的測試(混沌工程)

隨著雲平臺越來越龐大,越來越複雜,普通的測試用例已經很難滿足高可用的需求了,所以基於故障注入的測試(FIT-Failure Injection Testing)也越來越重要。其中Netflix甚至在其產品環境中大規模的使用FIT,而不僅僅是在測試環境中。Netflix在其官方博客中發表了多篇關於故障注入測試的文章。在未來雲的系統的越來越多、越來越複雜的時代,對於一個追求質量的系統,基於故障的注入的測試肯定是必不可少的。


軟件測試新趨勢


安全開發流程與自動化安全測試

現在一談到安全,一般都是聊滲透測試或者是安全防護,比如WFA等,很少有人談到安全開發和開發流程中的安全測試。其實安全開發才是最有效的安全防護辦法,比如早在本世紀初微軟就提出了自己的安全開發流程SDL(Security Development Lifecycle),但是由於微軟的SDL十分笨重,成本也十分高,導致在其當前需要敏捷和快速開發軟件的互聯網時代很難推廣。而在其10年後,ThoughtWorks又基於敏捷實踐提出了另外一套安全開發流程BSI(Build Security In),把各種安全實踐內建到軟件開發的各個關鍵節點之中,通過儘早引入安全實踐以及快速獲取安全反饋的方式,儘可能早地發現安全問題。

其中BSI就是結合了敏捷方法論和實踐的一種安全開發流程,並需要在開發流程中嵌入各種不同類型的安全測試,比如基於業務功能的安全測試,基於威脅建模結構的白盒安全測試,以及基於各種黑盒自動化的安全掃描和測試等,對於需要持續交付的敏捷團隊特別適合。


軟件測試新趨勢


(來源:https://www.buildsecurityin.net/zh/)

可測性分析與設計

現在很少有公司會對系統進行可測試分析和設計,只有一些大型公司的部分大型系統會使用它。其實可測試是一個非常古老的話題,就像契約測試早在上個世紀80年代就被提出了,但是由於其對於中小型項目的投資回報比不高,很少有公司會用到。直到規模化微服務的出現和盛行,契約測試這個老古董也逐漸成了一個新的熱點。但是隨著軟件規模的增加,特別是當雲平臺等大型系統成為一種趨勢時,通過提高其可測試性來使其各種測試更加有效也將成為一種趨勢。

敏捷測試

敏捷測試也許在國外很多公司(比如Atlassian,Netflix,Google等)已經是常態了,但是在國內,在未來很長時間內還是一種奢望。其中測試前移、測試驅動開發(業務功能級別的ATDD),以及預防缺陷優於發現缺陷等理念和實踐,使得敏捷測試能有效的減少缺陷代碼和返工,從而有效節約開發成本,提高交付速度和軟件質量,所以敏捷測試中的各種實踐也一定會在國內成為一種趨勢。


軟件測試新趨勢


小結

雖然測試方法、測試分析和測試策略非常重要,但是隨著技術的發展,測試領域中技術佔比越來越大。在這些趨勢裡面,雖然不少還需要長時間的發展或者還沒有大規模被業界所採用,但是其中大部分都依賴技術的發展。所以,在未來想成為一名測試專家,除了需要精通傳統的測試方法、測試分析、測試策略以外,技術也是無法避免的一項技能了。



"

相關推薦

推薦中...