為什麼人工智慧不會讓軟體測試消失

weixin_34321977發表於2018-01-25
10314916-b82ec2c207502d50.jpg

        此刻在質量保障(QA)中最令人激動的事情是機器學習和人工智慧給測試技術帶來的潛在的影響。我們迫切地想要知道,軟體如何能夠做到自我測試?軟體能夠自動地跟蹤和消除Bug嗎?

        這並不僅僅是幻想。2016-2017世界質量報告上有這樣的闡述“我們認為人工智慧將是克服日益增長的質量保證和測試挑戰的重要的解決方案。基於人工智慧的測試方法將是繼基於風險的測試策略和自動化測試技術之後的另一個測試技術的變革浪潮”。

        Forrester的研究認為,測試是目前“應用AI進行軟體交付的生命週期中最受歡迎的階段”。在我們在Belatrix進行的一項調查中,81%的商業和技術專業人員(需要註冊)說機器學習在五年內將會對其組織造成一些甚至重大影響。

AI支援的測試是繼自動化後測試領域的又一個自然的發展。

        我們見證了手動測試到自動化測試,再到AI支援的測試的逐漸演變。我們可以追蹤這一發展過程:

        手動測試仍然可以發揮核心作用:測試開始於並將繼續依賴於手動測試。在軟體開發過程中總會有bug出現。即使今天我們有那麼多的工具可以使用,手動測試仍然是測試策略中的一部分,尤其是為了確保高質量的使用者體驗。

        隨著軟體變得越來越複雜,自動化變得越來越重要:測試自動化是一種成熟的方法。在許多情況下,它是唯一可實現的選擇——在不同場景下執行大量測試用例並按時完成迴歸測試的唯一方法。它提供了更高的效率,用更少的精力和時間找到大量的缺陷。

        未來將會看到支援AI的測試:通過使用大量的資料來有效地使用機器學習和AI,自動化測試會變得“更智慧”。我們正在看到支援AI的測試案例,例如,使用視覺化驗證,或者使用基本機器人輕點和滑過應用程式並測量效能。我們將看到人工智慧在自動程式碼評審中發揮作用,通過漏洞評估提高安全性並自動生成測試用例。 QA工程師用歷史資料來訓練演算法以提高檢測率。機器學習也可以用來提供應用程式效能的實時反饋,並自動調整。

儘管人工智慧興起,QA工程師不應該擔心他們的工作會被搶走。

        在市場上有一些基本的使用機器學習來測試移動應用的測試服務,例如Eggplant AI。這些工具能有效地發現應用中的錯誤。自動化解決方案背後的引擎通過應用程式生成新的測試路徑。我們可以使用通過演算法自動化產生測試用例的web應用。然而,你需要注意到,你所獲得的測試服務發生在整個產品開發生命週期的末尾。

        如果公司決定獨自採取這種方式,他們將錯過高水平的QA工程師可以提供的巨大價值,從安全和風險管理,可擴充套件性和效能評估,文件管理,過程保證(如規範和關鍵指標的跟蹤)。

QA工程師能夠讓AI變得更好。

        雖然AI不會讓測試人員變得多餘,但如果QA工程師不熟悉AI以及AI如何能夠幫助自己創造更好的軟體,那麼他們將正在犯錯。AI不僅可以幫助我們更快地發現錯誤,還可以幫助我們確定需要測試什麼,或者哪裡更可能發現錯誤。例如,如果手動測試人員學習使用演算法建立測試用例,則可以建立更多與使用者體驗有關的測試用例,包括測試人員根本不會想到的用例。

        我相信機器學習實際上會增加我們對高素質QA專家的需求。這是因為演算法的底層軟體將根據收到的資料做出決定。潛在的變數在增加,QA工程師如何知道什麼是正確的結果?

想象一下基於自學模式的測試的未來。

        在思考未來如何發展時,我們有必要討論一下神經網路和科學家們所取得的最新進展。神經網路雖然可訓練,但不一定要從經驗中學習。你必須把它們放在“學習模式”。然而,人工智慧科學家已經提出了“生成式對抗網路或GANs”,其本質上是多個神經網路,它們相互激勵,相互學習。現在設想一個世界,有不同的神經網路在測試、並一直學習破壞軟體系統和發現安全漏洞。這更接近無監督的學習,將代表軟體構建和測試過程的革命。

        如果你是一名開發者,不要以為沒有你什麼事情,你同樣會被AI影響。為了看看這將會是什麼樣子,看一下一些人在迴圈神經網路(RNNs)上所做的工作:一位專家能夠將奧巴馬總統的演講稿提供給RNN,RNNs網路就可以產生聽起來像奧巴馬所寫的文字。但更加可怕的是,他將Linux原始碼新增到RNNs中,現在網路就能夠生成結構良好的C程式碼(儘管它不能編譯,你可以想象一個帶有監督的神經網路執行多個這樣的程式碼,用一種革命性的方式生成可編譯程式碼將是多麼的不可思議)。

在數字時代,支援AI的測試將是必不可少的。

        隨著各種團體組織希望能夠持續交付、企業需要更快的軟體開發,支援AI的測試將成為QA工作的核心部分。這將是確保數字時代軟體質量的唯一途徑。然而,我們仍然需要測試人員,因為人類能夠理解其他人類需要什麼,而機器在開發“常識”的道路上還有很長距離要走。我們仍然需要有創造力、高素質的QA工程師將他們的見解應用到整個產品開發生命週期中。

如果對軟體測試有興趣,想了解更多的測試知識,可以加入我的QQ群  高階測試學習大家庭:652068511

相關文章