人工智能已經有了長足的發展。也許你看過最近的編舞機器人視頻?這些機器人的敏捷性和銜接性很是驚人,能夠如此準確和高效地完成這些有趣的動做。比起執行簡單的任務,行動力有限,這是一個巨大的成就。html
但在這個精心安排的程序中 在一個很是受控的環境中 它們徹底是在作它們被編入程序的工做 它們並無真正展示出本身的智能或決策形式,來決定用音樂中的哪一段來表演什麼動做。算法
它們確實擁有智能控制系統,能夠提供平衡和定向,但這與根據音樂中發生的狀況獨立選擇什麼時候進行高踢或跳躍是不同的。安全
其中一些機器人還包括額外的功能,使它們可以執行某些任務,作出特定的選擇,並對周圍的環境作出反應。人工智能(AI)增長了自動響應外部輸入和實時變化的維度。這使得機器人有可能在環境發生變化時對其進行評估,併產生適當的反應。雖然機器人領域是人工智能應用的一個典型例子,但也有許多其餘應用。機器學習
人工智能已經顯示出巨大優點的一個關鍵領域是自動化軟件測試。建立的每一段代碼都須要進行測試,以驗證它是否符合要求並提供預期結果。工具
執行手動測試以實現這些目標是枯燥乏味和耗時的。自動化你的應用程序測試能夠加速驗證和確認代碼的能力。單元測試
將人工智能添加到組合中,能夠進一步加強流程,使發現和修復錯誤變得更快、更容易,即便在環境不可預測的狀況下。隨着軟件複雜性的增長,自動化也必須進行擴展,以提供更多的功能,在工做流程中更早地識別和解決問題。學習
很明顯,擁有可以根據代碼或測試的變化應用決策的測試軟件可使CI/CD工做流程受益,並提升DevOps團隊的生產力,所以,人工智能在多種工具中找到它的方式是有意義的。測試
在以前的博客《什麼是軟件測試中的人工智能》中咱們曾說過,這些人工智能能力「能夠審查當前的測試狀態、最近的代碼變化、代碼覆蓋率和其餘指標,決定運行哪些測試,而後運行它們」,而機器學習(ML)"能夠經過應用算法來加強人工智能,讓工具經過收集測試產生的大量數據來自動改進"。這涵蓋了不少領域!優化
這已經發展爲將使用觀察到的數據的決策能力歸入軟件測試工具,包括實時推理和學習。在AI和ML的協助下,測試變得更快、更容易左移,提供更早的缺陷補救,下降交付的風險。經過收集和結合測試數據,機器學習能夠有效地更新和解釋某些軟件指標,顯示被測應用的狀態。人工智能
多年來,Parasoft已經將AI和ML的多項創新融入到多個自動化測試解決方案中,以實現更智能的測試建立和執行,跨越測試金字塔的多個層面。爲此已經投入了大量的精力,讓客戶的測試變得更加簡單。
2017年,Parasoft在Parasoft Jtest中引入了AI測試功能,以提升Java開發人員和測試人員在靜態分析、單元測試、代碼覆蓋率和可追溯性等方面的工做效率。該工具包括JUnit的單元測試助手,以在更短的時間內實現更高的代碼覆蓋率。一個關鍵的功能是它可以建議使用存根和mocks來確保測試的代碼隔離,而後自動建立這些mocks和存根來簡化測試建立。
Jtest的另外一個AI功能是它可以檢測沒有現有測試覆蓋率的代碼,並肯定須要哪些參數、存根和mocks來自動建立新的測試以覆蓋這些代碼段。這有利於經過識別應用程序的差距來提升代碼覆蓋率。
AI也提升了從靜態分析中獲益的能力。經過根據觀察到的行爲對發現進行分類,並對這些發現進行優先處理,以便進一步調查。Parasoft的人工智能識別代碼中的熱點,同時機器學習經過觀察團隊與違規行爲和代碼庫的互動,發現對開發人員重要的內容。這大大減小了人工工做,針對潛在的高風險安全漏洞或低質量代碼的區域,用最相關的警告提醒開發人員。
2018年,咱們的無碼API測試解決方案Parasoft SOAtest中也加入了AI和ML,使測試人員可以生成有意義的、可重用的、可維護的API測試。從UI使用中輕鬆生成,無需腳本。這一能力還能幫助技術含量較低的團隊將測試策略擴展到UI測試以外,提升總體測試覆蓋率,減小他們的學習曲線。
最近,在2019年,Parasoft Selenic被引入,以提升Selenium Web UI測試的質量和維護。Selenic中的AI會在測試運行過程當中識別定位器、等待時間等因素的問題,並自動自愈破損的測試,讓執行完成。而後,它爲你提供了一個推薦的修復列表,你能夠經過Selenic與Eclipse和IntelliJ的IDE集成,輕鬆地直接融入到測試代碼中。這對於更新Web UI測試流程來講是一個巨大的節省時間的方法。
但建立和維護測試自動化只是第一步。解鎖持續測試的關鍵是擁有一個可用、穩定、可控的測試環境。服務虛擬化使得在你的測試環境中模擬普遍的約束條件成爲可能,不管是因爲不可用性仍是不可控制的依賴性。Parasoft Virtualize利用AI從服務交互中開發出數據模型,而後應用ML,利用這些模型實時學習數據場景,由於它從測試環境內監控不一樣的使用模式。
因爲API的複雜性和用戶界面的頻繁變化,須要按期識別、審查和更新受變化影響的測試套件。手動完成這項工做是很是繁瑣的,並且容易出現人爲錯誤。
爲了減輕UI變化,Parasoft Selenic包含了AI啓發式方法,能夠診斷測試失敗,並生成如何修復測試的建議。利用Parasoft SOAtest的Change Advisor快速覈對API變化,主動掃描API接口,尋找服務中的變化,而後肯定測試資產如何受到這些變化的影響,幫助用戶輕鬆更新。
爲了節省從新測試已經變化的代碼的時間,上述Parasoft的三款產品(Jtest、SOAtest和Selenic)都加入了一個名爲測試影響分析的AI驅動能力,它將你的套件中的相應測試與代碼庫關聯起來,進行智能測試執行。
當代碼發生變化時,Parasoft工具能夠識別軟件構建之間的變化,並將其映射到指定須要執行哪些測試來驗證這些變化。
如今你能夠在正確的時間執行正確的測試,更快地完成測試。誰不喜歡在更短的時間內進行更完全的測試呢?
隨着繁瑣和重複性的任務繼續佔據軟件測試的主導地位,有不少機會能夠將人工智能和機器學習應用到軟件測試自動化中,幫助用戶更快速地適應和應對現代軟件開發的挑戰。
做爲這一領域的開創性創新者,Parasoft經過利用這些先進的方法,不斷爲軟件測試工具增長效率和智能。Parasoft工具使用AI和ML來協助和加強你的應用程序開發和測試團隊:
想要了解更多關於將AI驅動的自動化測試添加到你的軟件開發工做流程中的信息?請聯繫我,咱們一塊兒探討你感興趣的領域。