應(yīng)用

技術(shù)

物聯(lián)網(wǎng)世界 >> 物聯(lián)網(wǎng)新聞 >> 物聯(lián)網(wǎng)熱點新聞
企業(yè)注冊個人注冊登錄

AI會“偷走”軟件測試員的工作嗎?

2020-08-17 08:42 讀芯術(shù)

導(dǎo)讀:人工智能對于我們生活的影響越來越顯著,改變著多個行業(yè)多個領(lǐng)域,影響到日常生活的方方面面。尤其在人工流程自動化領(lǐng)域中,人工智能發(fā)揮了突出的作用。

人工智能對于我們生活的影響越來越顯著,改變著多個行業(yè)多個領(lǐng)域,影響到日常生活的方方面面。尤其在人工流程自動化領(lǐng)域中,人工智能發(fā)揮了突出的作用。因此,本文將研究人工智能如何影響軟件測試領(lǐng)域,尤其是自動化測試領(lǐng)域。

現(xiàn)存挑戰(zhàn)

什么是軟件測試?軟件測試是對開發(fā)的程序的性能進行評估的過程,以檢查其是否符合客戶的要求,并在投入使用前檢測它是否存在錯誤從而加以完善。

每當(dāng)開發(fā)人員添加新代碼,都必須進行新的測試。質(zhì)量監(jiān)管人員(QAs)需要耗費大量時間來確認(rèn)新代碼不會破壞現(xiàn)有代碼庫。而人工執(zhí)行回歸測試非常耗時,并且會在很大程度上增加QAs的負(fù)擔(dān)。

傳統(tǒng)的QA檢測方法包括檢查一個任務(wù)列表,以確保軟件按預(yù)期的方式工作。一開始只需要測試幾個功能時,這還是一個可行的任務(wù);但隨著功能的增加,QAs面臨著在截止日期前完成全面測試的困難。一個應(yīng)用程序越復(fù)雜,就越難確保它得到完整的測試覆蓋。

隨著人工智能的出現(xiàn),簡化測試過程成為可能。此外,新軟件和產(chǎn)品在競爭壓力下必須加快發(fā)布,延長測試周期并不是智舉。因此,只能測試得更聰明而不是更難,別無選擇。

人工智能如何克服這些挑戰(zhàn)

人工智能在軟件測試工具中的應(yīng)用集中在簡化軟件開發(fā)生命周期(SDLC)上。通過應(yīng)用推理、問題解決和機器學(xué)習(xí),人工智能可以在開發(fā)和測試階段中促進自動化并減輕冗雜的工作任務(wù)。

例如,假設(shè)你正在運行一個自動化框架來測試自己的項目。大多數(shù)情況下,你不知道要運行哪些測試,因此會運行所有測試或預(yù)定的一組測試。

那么,如果一個支持AI的機器人可以檢查當(dāng)前的測試狀態(tài)、最近的代碼更改、代碼覆蓋率和其他指標(biāo),決定要運行哪些測試,然后再運行它們呢?這樣的軟件可以有效地代替開發(fā)人員/測試人員參與決策過程。

人工智能和機器學(xué)習(xí)應(yīng)用推理和問題解決方案來自動化和改進測試。軟件測試中使用人工智能有助于減少耗時的手動測試,使團隊得以專注于更復(fù)雜的任務(wù),例如創(chuàng)建創(chuàng)新性的功能。以下是利用人工智能優(yōu)化軟件測試過程的幾個方面:

增強的準(zhǔn)確性——我們必須承認(rèn),即使是最有經(jīng)驗的質(zhì)量檢查工程師也可能犯錯。數(shù)據(jù)量太大了,測試人員難免會在軟件質(zhì)量檢測時分心,忽略了一些重要的缺陷。這就是AI和機器學(xué)習(xí)技術(shù)發(fā)揮作用的地方。

他們教系統(tǒng)學(xué)習(xí)源分析并在將來應(yīng)用知識。通過這種方式,AI測試在不斷重復(fù)中得出更準(zhǔn)確的結(jié)果。因此,使用人工智能技術(shù)進行數(shù)據(jù)分析降低了人為錯誤概率。

加快進程——AI無需像測試人員那樣手動處理成千上萬的代碼,而是快速地對日志文件進行排序,在幾秒鐘內(nèi)掃描代碼并在更短的時間內(nèi)檢測到錯誤。通過將人工智能納入重復(fù)測試中,質(zhì)量檢查工程師可以專注于測試新功能或關(guān)注軟件的重要部分。更加自動化——人工智能程序可以隨著代碼的更改而發(fā)展。他們可以適應(yīng)并學(xué)會識別新功能。當(dāng)AI機器人識別了代碼的修正后,他們就可以被編程來判斷這是一個新功能還是代碼更改中出現(xiàn)的某些缺陷。正確理解客戶需求——軟件開發(fā)過程中,最重要的是能夠了解客戶的實際需求。AI可以檢測類似的網(wǎng)站和應(yīng)用程序,以確定哪些因素能幫助贏得目標(biāo)受眾,也可以幫助研究大量競爭產(chǎn)品以確定其優(yōu)勢。通過正確理解客戶的需求,他們可以創(chuàng)建測試用例,以確保產(chǎn)品在實現(xiàn)這些特定目標(biāo)時不會損壞。

基于人工智能的軟件測試現(xiàn)狀

目前,實踐中已經(jīng)開始使用自主和智能代理(稱為“測試機器人”)來自動化諸如應(yīng)用程序發(fā)現(xiàn)、建模、測試生成和故障檢測等活動,并結(jié)合機器學(xué)習(xí)技術(shù)來實現(xiàn)測試機器人,包括但不限于決策樹學(xué)習(xí)、神經(jīng)網(wǎng)絡(luò)和強化學(xué)習(xí)。

與傳統(tǒng)的測試自動化工具和框架不同,機器學(xué)習(xí)允許測試機器人在不確定的條件下運行。過去十年形成的人工智能驅(qū)動的測試方法包括以下示例:

差異測試——比較應(yīng)用程序版本,對差異進行分類并從分類的反饋中學(xué)習(xí)。視覺測試——利用基于圖像的學(xué)習(xí)和屏幕比較來測試應(yīng)用程序的外觀。聲明式測試——以自然語言或特定領(lǐng)域的語言明確測試的意圖,并讓系統(tǒng)確定如何執(zhí)行該測試。自我修復(fù)自動化——當(dāng)UI更改時,在測試中自動更正元素選擇。

2014年以來,提供AI驅(qū)動的測試服務(wù)的供應(yīng)商數(shù)量激增。這些工具供應(yīng)商中的大多數(shù)是初創(chuàng)公司,他們主要針對移動應(yīng)用程序系統(tǒng)級測試,這一主題在業(yè)界引起了廣泛關(guān)注。

觀察AI功能最簡單的方法是使用各種工具和框架,以下是一些很受歡迎的AI驅(qū)動的測試工具:

人工智能會“偷走”你的工作嗎?

關(guān)于此問題的當(dāng)前比較流行的觀點是,人工智能不會取代人,但會幫助人進行QA測試。支持這種觀點主要理由是,人工智能在軟件開發(fā)中的使用仍處于起步階段,其在更先進的領(lǐng)域中自主水平遠低于所見,如人類仍在主導(dǎo)的自動駕駛系統(tǒng)領(lǐng)域。但是可以肯定的是,AI協(xié)助人類的下一步就是讓AI掌握整個運作過程。這只是時間問題。

眾所周知,技術(shù)的增長,尤其是AI和機器學(xué)習(xí)的增長是指數(shù)級的,要預(yù)測未來的AI能力并不容易。AI接管測試工作的那一天可能比預(yù)期到來的要早,在此之前,你得做好準(zhǔn)備。