AI測試的迷思

近年來,我一直關注AI相關的測試,並積極參與多個全國性測試社區和社羣。在這些社區中,我與不同公司和領域的測試專家交流探討AI測試相關話題,包括業界頂尖公司的專家和國內知名測試學者。我也參加了多個大會,聆聽了許多關於AI測試的主題分享,並嘗試了多款AI相關的測試工具,從中獲得了許多知識和感悟。

在這些測試社區和社羣中,我遇到了許多關於AI測試的問題,例如什麼是AI測試,如何進行AI測試,AI測試有哪些工具與方法等。然而,當我在網上搜索AI測試相關的書籍時,卻發現大量的AI開發相關書籍,卻鮮有專門介紹AI測試的書籍。這說明測試業界仍在混沌中不斷摸索前進。

爲了分享我所學到的AI測試相關知識和經驗,我梳理了自己的學習經歷,嘗試回答了一些我遇到的關於AI測試的常見問題,並將這些內容整理成文章,與大家一起交流探討。

AI測試的迷思

在討論AI測試時,通常存在兩種理解:

第一種是利用AI輔助當前的軟件測試,例如使用AI系統學習測試分析和測試設計,進而自動生成測試用例並自動化實現這些測試用例。

第二種則是對AI系統進行測試。儘管業界對於AI系統進行測試仍然使用常規測試手段,如功能測試、性能測試和安全測試等,但測試其功能有效性時往往難以獲取明確的測試數據和驗收條件。這種情況下,只能通過對算法的深入理解和根據經驗生成或尋找數據,並大致評估功能測試結果的有效性來進行測試。

而利用AI輔助當前的自動化測試則是一個新興領域。使用AI(如深度學習)系統來幫助測試工作絕對是近幾年最熱門的測試趨勢之一,其中包括自動生成並執行自動化測試、大規模測試結果分析、自動化探索性測試、缺陷定位等。

美國已經有多家公司推出了商用的AI測試工具。在朱少民老師的公衆號“軟件質量報道”中,有一篇名爲《未來已來,人工智能測試勢不可擋:介紹9款AI測試工具》的文章,介紹了9款基於AI的測試工具。但這些AI測試工具普遍存在測試用例準確性和大規模測試用例可維護性等問題。

第一個問題:AI輔助測試真的能用嗎?

雖然許多公司已經開始研究AI輔助測試,並有許多工具問世,但它們都有一個顯著問題:準確性。由於現有的AI學習算法本身的限制,學習並生成的測試用例和驗證條件的準確率都不是非常高。我曾參加過幾個大會,其中一些中國一線互聯網廠商分享的AI輔助測試的準確率僅略高於80%,不到90%。這種準確率在金融等某些對精度要求高的系統中很難得到認可。

其次,當自動化測試用例規模很大時,測試用例的維護工作很難依靠人工完成,只能依靠工具。由於AI測試工具的不準確性,導致維護工作的準確性也不是十分理想。

儘管如此,在質量要求不高的大型系統中,AI輔助測試可以極大地降低測試成本,因此在這些系統中,AI輔助自動化測試已經得到應用。此外,在質量要求高並且資源充足的項目中,AI輔助測試可以作爲人工自動化測試的擴展,作爲自動化探索性測試的一種工具,可以進一步保證軟件質量。

第二個問題:AI輔助測試已經發展到什麼程度了?

目前,AI輔助測試仍處於初級階段。我將AI輔助測試分爲三個階段:

第一階段是通過深度學習模型自動產生測試用例的輸入,然後通過人工驗證輸出結果的正確性。

第二階段是通過深度學習模型自動產生測試用例的輸入,並通過規則模型自動驗證輸出結果的正確性。

第三階段是通過深度學習模型自動產生測試用例的輸入和輸出,並自動驗證輸出結果的正確性。

目前業界已經基本實現了第一階段,有一些公司也已經開始實現第二階段。然而,只有極少數的大公司已經實現了第三階段,並且這些公司的準確性還有待提高。因此,AI輔助測試仍有很長的路要走。

第三個問題:哪些軟件系統能用AI輔助測試?

理論上,任何軟件系統都可以使用AI來輔助自動化測試工作。然而,由於目前AI測試系統的現狀,它還不能真正用於所有類型的軟件系統。許多實際項目只在某些特定系統的特定接口層上使用AI測試,例如Web Service API等。

在不同行業領域中,AI測試的使用情況也不同。例如,在金融和軍工等對質量要求很高的行業中,AI測試目前只能作爲當前已有功能自動化測試的擴展部分。而在互聯網等質量要求不高的行業中,一些技術能力強的公司已經將AI測試作爲主要的自動化測試方式之一。不過,AI輔助自動化測試無疑是自動化測試的未來!

總結

通過上面對於問題的回答,希望能解決大家對於AI測試的困惑,包括瞭解什麼是AI測試,自己的項目是否適合使用AI測試,以及未來是否需要在AI測試上投資等問題。

綜上所述,AI測試目前仍處於發展初期,因此不適合大規模使用,只有在特定項目中才可以考慮使用。無論是使用AI還是人工方式實施自動化測試,核心都是測試的有效性和測試結果的準確性,以及測試用例的可維護性。這些是大規模自動化測試成功與否的關鍵因素。

因此,無論是AI自動測試還是人工自動測試,其核心本質都是一樣的:靠知識學習、分析、總結等一系列人的思維來解決測試分析、測試設計和自動化測試實現的工作。但目前AI系統本身的發展還不足以很好地替代人在測試分析和測試設計方面的工作,導致AI實現的自動化測試的準確性以及可維護性比人工方式更差。不過,AI測試在時間和成本方面有明顯的優勢,這也是其越來越受歡迎的原因。

因此,在測試領域,AI需要更加努力才能真正替代人的工作。在考慮使用AI測試之前,應該仔細評估項目的特定需求和條件,以確定是否適合使用AI測試。未來,隨着AI技術的不斷髮展和完善,AI測試將成爲自動化測試的重要趨勢,而投資於AI測試的相關技術和人才也將是一個明智的選擇。


文/ Thoughtworks 劉冉
原文鏈接:https://insights.thoughtworks.cn/what-is-ai-testing/

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章