應(yīng)用

技術(shù)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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