為什么人工智能不會讓軟件測試消失
發表于:2018-01-23來源:測試窩作者:初心點擊數:
標簽:人工智能
此刻在質量保障(QA)中最令人激動的事情是機器學習和人工智能給測試技術帶來的潛在的影響。我們迫切地想要知道,軟件如何能夠做到自我測試?軟件能夠自動地跟蹤和消除Bug嗎?
此刻在質量保障(QA)中最令人激動的事情是機器學習和人工智能給
測試技術帶來的潛在的影響。我們迫切地想要知道,軟件如何能夠做到自我
測試?軟件能夠自動地跟蹤和消除Bug嗎?
這并不僅僅是幻想。2016-2017世界質量報告上有這樣的闡述“我們認為人工智能將是克服日益增長的質量保證和測試挑戰的重要的解決方案?;谌斯ぶ悄艿?a href='http://www.kjueaiud.com/ceshi/ceshijishu/' target='_blank'>
測試方法將是繼基于風險的測試策略和
自動化測試技術之后的另一個測試技術的變革浪潮”。
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”,其本質上是多個神經網絡,它們相互激勵,相互學習?,F在設想一個世界,有不同的神經網絡在測試、并一直學習破壞軟件系統和發現安全漏洞。這更接近無監督的學習,將代表軟件構建和測試過程的革命。
如果你是一名開發者,不要以為沒有你什么事情,你同樣會被AI影響。為了看看這將會是什么樣子,看一下一些人在循環神經網絡(RNNs)上所做的工作:一位專家能夠將奧巴馬總統的演講稿提供給RNN,RNNs網絡就可以產生聽起來像奧巴馬所寫的文字。但更加可怕的是,他將
Linux源代碼添加到RNNs中,現在網絡就能夠生成結構良好的C代碼(盡管它不能編譯,你可以想象一個帶有監督的神經網絡運行多個這樣的代碼,用一種革命性的方式生成可編譯代碼將是多么的不可思議)。
原文轉自:https://www.testwo.com/article/1180