最近十到二十年,軟件業迎來了一個超高速發展期,其中軟件測試相對于軟件開發進展稍微緩慢一點,不過也出現了不少新的思想、技術以及趨勢。基于現階段在客戶現場、業界大會、與專家的討論以及從網上看到的相關內容,我嘗試在本篇文章中總結出幾個測試新趨勢: AI+測試利用AI(深度學習等)系統來輔助測試工作絕對是最近幾年最為熱門的一個測試趨勢,其中包括測試用例,測試數據和測試代碼的自動生成、大規模測試結果分析、自動化探索性測試、缺陷定位等,美國已經有多個公司推出了商用的AI測試工具。在朱少民老師的公眾號“軟件質量報道”中就有一篇名為《未來已來,人工智能測試勢不可擋:介紹9款AI測試工具》的文章,里面介紹了9款基于AI的測試工具。 雖然已經有很多公司開始研究AI輔助測試,也有很多工具問世,但是它們都存在一個很大的問題:準確性不夠高。由于現在AI學習算法本身存在一些問題,其學習并生產的測試用例和驗證條件的準確率都不是很高,我曾經參加過幾個大會,其中有幾個中國一線互聯網廠商分享的AI輔助測試的準確率也只有80%多,不足90%。這種準確率在金融等一些要求很高的系統中很難獲得認同。 我將AI輔助測試分為三步走:
現在業界基本上能實現第一步了,有部分公司已經可以實現第二步了,而對于第三步,只有少量大公司實現了,并且準確度還不是很高,所以AI輔助測試還有很長的路要走。 新型業務和架構系統的測試隨著AI系統、區塊鏈、微服務以及大數據等系統的出現與繁榮,對其進行專項測試也將是一個測試領域的趨勢。這其中會涉及到一些新的挑戰,比如測試AI系統可能會用到和以前完全不一樣的方法與理論體系;測試區塊鏈的時候如何模擬真實環境來進行測試;微服務在規模變大的情況下,是不是需要使用到與以前不一樣的測試策略與一些特殊的測試技術;大數據系統如何在測試環境下,模擬真實的大規模數據,并進行業務測試等。 測試基礎設施隨著軟件系統規模的增大,測試環境的搭建變得越來越復雜,其成本也越來越高。而且在很多實際的項目中都對測試環境有一些特定的需求,比如每輪測試之前,回滾上一輪測試影響到的所有數據;或者可以快速將集群中的多個節點上的被測系統回滾到之前的某個版本等。隨著這些需求的增多以及成本壓力的增加,建設現代化的高效的測試基礎設施已經成為了一個大型系統的必然趨勢。比如可以利用Docker,Ansible等來搭建高效的測試基礎設施等,然后它還有另外一個新的名字:TestOps。 (來源:https:///topics/8229) 產品環境下的測試去年阿里云和騰訊云都發生不同類型的線上故障,其中阿里云對于其在2018年6月27日線上故障的說明中寫到:“這一功能在測試環境驗證中并未發生問題,上線到自動化運維系統后,觸發了一個未知代碼bug”。由此可見對于大規模、高復雜度的服務器系統來講,僅僅是在測試環境進行測試已經無法滿足質量需求了,如何在產品環境下進行測試必將會在現在以及未來云時代中占據重要位置。比如Netflix一直在宣傳其在產品環境做大量的FIT和其好處,我的公司同事Martin Fowler 2017在其博客上有一篇文章專門介紹《QA in Product》,還有一個同事林冰玉也發表了一篇文章《產品環境下的QA》。 (來源:http:///AiWYS09E) 基于故障注入的測試(混沌工程)隨著云平臺越來越龐大,越來越復雜,普通的測試用例已經很難滿足高可用的需求了,所以基于故障注入的測試(FIT-Failure Injection Testing)也越來越重要。其中Netflix甚至在其產品環境中大規模的使用FIT,而不僅僅是在測試環境中。Netflix在其官方博客中發表了多篇關于故障注入測試的文章。在未來云的系統的越來越多、越來越復雜的時代,對于一個追求質量的系統,基于故障的注入的測試肯定是必不可少的。 安全開發流程與自動化安全測試現在一談到安全,一般都是聊滲透測試或者是安全防護,比如WFA等,很少有人談到安全開發和開發流程中的安全測試。其實安全開發才是最有效的安全防護辦法,比如早在本世紀初微軟就提出了自己的安全開發流程SDL(Security Development Lifecycle),但是由于微軟的SDL十分笨重,成本也十分高,導致在其當前需要敏捷和快速開發軟件的互聯網時代很難推廣。而在其10年后,ThoughtWorks又基于敏捷實踐提出了另外一套安全開發流程BSI(Build Security In),把各種安全實踐內建到軟件開發的各個關鍵節點之中,通過盡早引入安全實踐以及快速獲取安全反饋的方式,盡可能早地發現安全問題。 其中BSI就是結合了敏捷方法論和實踐的一種安全開發流程,并需要在開發流程中嵌入各種不同類型的安全測試,比如基于業務功能的安全測試,基于威脅建模結構的白盒安全測試,以及基于各種黑盒自動化的安全掃描和測試等,對于需要持續交付的敏捷團隊特別適合。 (來源:https://www./zh/) |
|