AI測試的迷思
近年來,我一直關(guān)注AI相關(guān)的測試,并積極參與多個全國性測試社區(qū)和社群。在這些社區(qū)中,我與不同公司和領(lǐng)域的測試專家交流探討AI測試相關(guān)話題,包括業(yè)界頂尖公司的專家和國內(nèi)知名測試學(xué)者。我也參加了多個大會,聆聽了許多關(guān)于AI測試的主題分享,并嘗試了多款A(yù)I相關(guān)的測試工具,從中獲得了許多知識和感悟。
在這些測試社區(qū)和社群中,我遇到了許多關(guān)于AI測試的問題,例如什么是AI測試,如何進(jìn)行AI測試,AI測試有哪些工具與方法等。然而,當(dāng)我在網(wǎng)上搜索AI測試相關(guān)的書籍時,卻發(fā)現(xiàn)大量的AI開發(fā)相關(guān)書籍,卻鮮有專門介紹AI測試的書籍。這說明測試業(yè)界仍在混沌中不斷摸索前進(jìn)。
為了分享我所學(xué)到的AI測試相關(guān)知識和經(jīng)驗(yàn),我梳理了自己的學(xué)習(xí)經(jīng)歷,嘗試回答了一些我遇到的關(guān)于AI測試的常見問題,并將這些內(nèi)容整理成文章,與大家一起交流探討。
AI測試的迷思
在討論AI測試時,通常存在兩種理解:
- 第一種是利用AI輔助當(dāng)前的軟件測試,例如使用AI系統(tǒng)學(xué)習(xí)測試分析和測試設(shè)計(jì),進(jìn)而自動生成測試用例并自動化實(shí)現(xiàn)這些測試用例。
- 第二種則是對AI系統(tǒng)進(jìn)行測試。盡管業(yè)界對于AI系統(tǒng)進(jìn)行測試仍然使用常規(guī)測試手段,如功能測試、性能測試和安全測試等,但測試其功能有效性時往往難以獲取明確的測試數(shù)據(jù)和驗(yàn)收條件。這種情況下,只能通過對算法的深入理解和根據(jù)經(jīng)驗(yàn)生成或?qū)ふ覕?shù)據(jù),并大致評估功能測試結(jié)果的有效性來進(jìn)行測試。
而利用AI輔助當(dāng)前的自動化測試則是一個新興領(lǐng)域。使用AI(如深度學(xué)習(xí))系統(tǒng)來幫助測試工作絕對是近幾年最熱門的測試趨勢之一,其中包括自動生成并執(zhí)行自動化測試、大規(guī)模測試結(jié)果分析、自動化探索性測試、缺陷定位等。
美國已經(jīng)有多家公司推出了商用的AI測試工具。在朱少民老師的公眾號“軟件質(zhì)量報道”中,有一篇名為《未來已來,人工智能測試勢不可擋:介紹9款A(yù)I測試工具》的文章,介紹了9款基于AI的測試工具。但這些AI測試工具普遍存在測試用例準(zhǔn)確性和大規(guī)模測試用例可維護(hù)性等問題。
第一個問題:AI輔助測試真的能用嗎?
雖然許多公司已經(jīng)開始研究AI輔助測試,并有許多工具問世,但它們都有一個顯著問題:準(zhǔn)確性。由于現(xiàn)有的AI學(xué)習(xí)算法本身的限制,學(xué)習(xí)并生成的測試用例和驗(yàn)證條件的準(zhǔn)確率都不是非常高。我曾參加過幾個大會,其中一些中國一線互聯(lián)網(wǎng)廠商分享的AI輔助測試的準(zhǔn)確率僅略高于80%,不到90%。這種準(zhǔn)確率在金融等某些對精度要求高的系統(tǒng)中很難得到認(rèn)可。
其次,當(dāng)自動化測試用例規(guī)模很大時,測試用例的維護(hù)工作很難依靠人工完成,只能依靠工具。由于AI測試工具的不準(zhǔn)確性,導(dǎo)致維護(hù)工作的準(zhǔn)確性也不是十分理想。
盡管如此,在質(zhì)量要求不高的大型系統(tǒng)中,AI輔助測試可以極大地降低測試成本,因此在這些系統(tǒng)中,AI輔助自動化測試已經(jīng)得到應(yīng)用。此外,在質(zhì)量要求高并且資源充足的項(xiàng)目中,AI輔助測試可以作為人工自動化測試的擴(kuò)展,作為自動化探索性測試的一種工具,可以進(jìn)一步保證軟件質(zhì)量。
第二個問題:AI輔助測試已經(jīng)發(fā)展到什么程度了?
目前,AI輔助測試仍處于初級階段。我將AI輔助測試分為三個階段:
- 第一階段是通過深度學(xué)習(xí)模型自動產(chǎn)生測試用例的輸入,然后通過人工驗(yàn)證輸出結(jié)果的正確性。
- 第二階段是通過深度學(xué)習(xí)模型自動產(chǎn)生測試用例的輸入,并通過規(guī)則模型自動驗(yàn)證輸出結(jié)果的正確性。
- 第三階段是通過深度學(xué)習(xí)模型自動產(chǎn)生測試用例的輸入和輸出,并自動驗(yàn)證輸出結(jié)果的正確性。
目前業(yè)界已經(jīng)基本實(shí)現(xiàn)了第一階段,有一些公司也已經(jīng)開始實(shí)現(xiàn)第二階段。然而,只有極少數(shù)的大公司已經(jīng)實(shí)現(xiàn)了第三階段,并且這些公司的準(zhǔn)確性還有待提高。因此,AI輔助測試仍有很長的路要走。
第三個問題:哪些軟件系統(tǒng)能用AI輔助測試?
理論上,任何軟件系統(tǒng)都可以使用AI來輔助自動化測試工作。然而,由于目前AI測試系統(tǒng)的現(xiàn)狀,它還不能真正用于所有類型的軟件系統(tǒng)。許多實(shí)際項(xiàng)目只在某些特定系統(tǒng)的特定接口層上使用AI測試,例如Web Service API等。
在不同行業(yè)領(lǐng)域中,AI測試的使用情況也不同。例如,在金融和軍工等對質(zhì)量要求很高的行業(yè)中,AI測試目前只能作為當(dāng)前已有功能自動化測試的擴(kuò)展部分。而在互聯(lián)網(wǎng)等質(zhì)量要求不高的行業(yè)中,一些技術(shù)能力強(qiáng)的公司已經(jīng)將AI測試作為主要的自動化測試方式之一。不過,AI輔助自動化測試無疑是自動化測試的未來!
總結(jié)
通過上面對于問題的回答,希望能解決大家對于AI測試的困惑,包括了解什么是AI測試,自己的項(xiàng)目是否適合使用AI測試,以及未來是否需要在AI測試上投資等問題。
綜上所述,AI測試目前仍處于發(fā)展初期,因此不適合大規(guī)模使用,只有在特定項(xiàng)目中才可以考慮使用。無論是使用AI還是人工方式實(shí)施自動化測試,核心都是測試的有效性和測試結(jié)果的準(zhǔn)確性,以及測試用例的可維護(hù)性。這些是大規(guī)模自動化測試成功與否的關(guān)鍵因素。
因此,無論是AI自動測試還是人工自動測試,其核心本質(zhì)都是一樣的:靠知識學(xué)習(xí)、分析、總結(jié)等一系列人的思維來解決測試分析、測試設(shè)計(jì)和自動化測試實(shí)現(xiàn)的工作。但目前AI系統(tǒng)本身的發(fā)展還不足以很好地替代人在測試分析和測試設(shè)計(jì)方面的工作,導(dǎo)致AI實(shí)現(xiàn)的自動化測試的準(zhǔn)確性以及可維護(hù)性比人工方式更差。不過,AI測試在時間和成本方面有明顯的優(yōu)勢,這也是其越來越受歡迎的原因。
因此,在測試領(lǐng)域,AI需要更加努力才能真正替代人的工作。在考慮使用AI測試之前,應(yīng)該仔細(xì)評估項(xiàng)目的特定需求和條件,以確定是否適合使用AI測試。未來,隨著AI技術(shù)的不斷發(fā)展和完善,AI測試將成為自動化測試的重要趨勢,而投資于AI測試的相關(guān)技術(shù)和人才也將是一個明智的選擇。