原創(chuàng)|使用教程|編輯:鄭恭琳|2020-12-14 15:59:57.720|閱讀 251 次
概述:您可以使用人工智能來幫助將API活動(dòng)組織為有意義的、可重用的和可擴(kuò)展的測試,而不是簡單地收集、記錄和回放流量。它是記錄和重播測試的擴(kuò)展,但自動(dòng)化程度更高。
# 界面/圖表報(bào)表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
相關(guān)鏈接:
您可以使用人工智能來幫助將API活動(dòng)組織為有意義的、可重用的和可擴(kuò)展的測試,而不是簡單地收集、記錄和回放流量。它是記錄和重播測試的擴(kuò)展,但自動(dòng)化程度更高。
之前,官方在Parasoft SOAtest中發(fā)布了一項(xiàng)名為Smart API Test Generator的新功能。我對此很不感冒。這項(xiàng)技術(shù)是合法的突破性技術(shù)——它使用人工智能將手動(dòng)UI測試轉(zhuǎn)換為自動(dòng)API測試,因此您無需具備API測試方面的專業(yè)知識,甚至不需要編寫任何代碼就可以入門。它們?nèi)繜o腳本,并且通過一個(gè)適用于Chrome的簡單插件激活,因此您無需安裝大型工具集即可使用它。
但是,在我實(shí)際使用并真正熟悉這個(gè)功能之前,我的腦中還是會(huì)不斷地冒出來這個(gè)問題:這與市場上已有的記錄和重放技術(shù)有何不同?相信大部分測試或開發(fā)人員也會(huì)有相同的疑問。
答案是人工智能和機(jī)器學(xué)習(xí)……但是為什么呢?為了AI的緣故,AI毫無意義——為什么我們需要在API測試中添加人工智能?好吧,我們需要它是因?yàn)橛涗浐椭胤艤y試還不夠。我會(huì)進(jìn)一步介紹這一點(diǎn)。
要真正擴(kuò)展API測試的采用并解決測試團(tuán)隊(duì)與開發(fā)保持同步的問題,您需要更多!我們希望能夠自動(dòng)幫助用戶識別捕獲的API活動(dòng)并將其組織成有意義、可重用和可擴(kuò)展的測試,而不僅僅是收集、記錄和回放流量。我們需要降低API測試的采用標(biāo)準(zhǔn),并讓更多的測試人員參與其中。
但首先,讓我解釋一下為什么如此重要。
從歷史上看,組織至少在最初就將UI測試作為主要的測試實(shí)踐,因?yàn)樗子诙x和執(zhí)行,并且易于自動(dòng)化。進(jìn)入門檻很低,并且可以擴(kuò)展到一大批測試人員。
但是,這種完全依賴手動(dòng)和UI測試的挑戰(zhàn)是隱性成本。與Selenium合作的任何人都知道,當(dāng)UI更改時(shí),事情會(huì)變得很困難,您需要更新腳本。實(shí)際上,我們發(fā)現(xiàn)多達(dá)80%的測試時(shí)間都花在了執(zhí)行手動(dòng)UI測試或修復(fù)由于應(yīng)用程序更改而中斷的自動(dòng)UI測試上。最重要的是,只有在完整的應(yīng)用程序可用后才能執(zhí)行UI測試——如果發(fā)現(xiàn)缺陷,則返工成本很高,因?yàn)樵跍y試可以繼續(xù)進(jìn)行之前,需要將應(yīng)用程序拆開、固定和重新組裝。通常,這種后期周期缺陷檢測會(huì)導(dǎo)致明顯的發(fā)布延遲,并增加測試的總成本。
為了補(bǔ)充和減少對UI測試的依賴,組織可以利用API測試,該API通過提供可維護(hù)的端到端方案來解決許多這些問題,這些方案可以重復(fù)使用,而不僅僅是功能測試。API測試在開發(fā)人員和測試人員之間建立了良好的溝通渠道,因?yàn)樗鼈冇兄谝跃唧w,現(xiàn)實(shí)的方式記錄API的行為。將通過API測試發(fā)現(xiàn)的錯(cuò)誤和安全漏洞的診斷和修復(fù)轉(zhuǎn)移到生命周期的較早階段,可以在實(shí)現(xiàn)計(jì)劃和質(zhì)量目標(biāo)方面獲得巨大回報(bào)。
但是,組織機(jī)構(gòu)一直難以采用API測試,因?yàn)榧词故呛馨舻?/span>API測試工具在歷史上也沒有提供足夠的幫助。為了有效地使用API測試工具,測試人員需要熟悉他們要測試的API,包括相關(guān)應(yīng)用程序如何使用API,這需要專門的技能和專業(yè)知識。而且開發(fā)人員沒有時(shí)間測試它們,因此避免了這種極為有益的做法-測試人員站不住腳,開發(fā)人員不希望這樣做。
為了解決這一挑戰(zhàn),功能測試自動(dòng)化公司很多年前提出了記錄API活動(dòng)并根據(jù)流量創(chuàng)建API測試的想法。之所以強(qiáng)大,是因?yàn)橹恍栌涗洃?yīng)用程序和后端系統(tǒng)之間的事務(wù),就可以捕獲API的活動(dòng),包括API調(diào)用如何重組正在傳遞的數(shù)據(jù)。
使用這項(xiàng)技術(shù),您可以記錄后端系統(tǒng)中發(fā)生的情況。這有助于非技術(shù)用戶了解調(diào)用了哪些API并基本了解調(diào)用每個(gè)API時(shí)所使用的數(shù)據(jù);但是,簡單的流量收集并不能幫助他們提高技能,也無法學(xué)習(xí)如何維護(hù)或擴(kuò)展他們的測試。它無法教給他們使用API使用的所有不同消息格式和協(xié)議進(jìn)行不同測試所必需的技術(shù)技能,并且它本身無法提供足夠的幫助以使非技術(shù)用戶可以采用這種做法。在路況記錄和功能齊全的API測試方案之間走很長的路。
這就是我們開始考慮降低采用API測試的障礙的下一步的地方。我們在想。僅記錄測試人員的UI與目標(biāo)應(yīng)用程序之間的網(wǎng)絡(luò)流量不足以幫助實(shí)現(xiàn)API測試自動(dòng)化,以實(shí)現(xiàn)其實(shí)用性。它可能類似于MP3錄音。您可以播放它以收聽歌曲,但其中不包含有關(guān)如何創(chuàng)建歌曲或使用了哪些樂器的任何信息。這首歌無法修改或擴(kuò)展。
通過簡單的記錄和重放測試,請考慮以下問題:
如果我的用戶界面改變了怎么辦?
UI在開發(fā)過程中不斷變化,維護(hù)基于UI的測試自動(dòng)化非常耗時(shí)。UI僅公開了應(yīng)用程序的基礎(chǔ)業(yè)務(wù)邏輯的某種表示形式,可能是有限的,并且依賴記錄和重播既有限制,又容易受到頻繁更改的破壞。
什么是正確的流量?
通過UI在系統(tǒng)級別進(jìn)行應(yīng)用程序測試將創(chuàng)建大量的網(wǎng)絡(luò)流量。即使對于訓(xùn)練有素的眼睛來說,也很難確定哪些流量是在UI級別上發(fā)生的實(shí)際測試情況的一部分。依靠人工解釋網(wǎng)絡(luò)流量既費(fèi)時(shí)又容易出錯(cuò)。而且,它通常不是技能測試人員所擁有的,因此他們必須依靠開發(fā)人員來提供幫助。
如何將這些測試步驟連接到方案中?
從基本的流量記錄創(chuàng)建測試場景非常困難。如果創(chuàng)建場景需要進(jìn)行多次測試,那么難度會(huì)成倍增加。重播流量記錄來代替場景通常很困難,因?yàn)樗蕾囉谠紲y試的確切前提。此外,例如,不可能重復(fù)播放相同的測試,這對于創(chuàng)建性能或與安全性相關(guān)的測試很重要。
如何獲取和重用知識?
流量記錄只是測試會(huì)話期間所有網(wǎng)絡(luò)活動(dòng)的總和。沒有對底層消息傳遞的固有了解,也沒有與API服務(wù)的關(guān)系。沒有這些,就不可能將這些錄音擴(kuò)展到其他目的,甚至無法進(jìn)行更改以適應(yīng)新的要求。它們通常會(huì)及時(shí)凍結(jié),并且僅在記錄期間有用。
在這里,人工智能發(fā)揮了作用,因此流量記錄不僅可以進(jìn)行,而且可以擴(kuò)展為用戶真正的可操作的價(jià)值。這就是為什么我們開發(fā)智能API測試生成器的原因,因此我們可以為新手API測試人員提供一個(gè)無需編寫任何代碼即可開始進(jìn)行API測試的地方。因此,用戶可以利用Parasoft SOAtest的簡單直觀界面,快速開始構(gòu)建完整的、有意義的測試方案,甚至將這些API測試擴(kuò)展到安全性和性能測試中。
它是如何工作的?
在測試UI時(shí),智能API測試生成器會(huì)像對流量收集器一樣監(jiān)視對應(yīng)用程序進(jìn)行的基礎(chǔ)API調(diào)用,然后使用人工智能發(fā)現(xiàn)模式并了解這些API調(diào)用之間的關(guān)系。然后,它可以生成自動(dòng)化的API測試方案,這些方案執(zhí)行與UI測試相同的操作,但是完全自動(dòng)化并且易于擴(kuò)展。
本質(zhì)上,這是:
但是那為什么重要呢?以下是此方法提供的一些好處:
通過將您在瀏覽器中執(zhí)行的操作自動(dòng)轉(zhuǎn)換為對您在UI中執(zhí)行的相同操作進(jìn)行建模(以正確的順序)的自動(dòng)化API測試,從而減少了確定構(gòu)建API測試的正確方法所花費(fèi)的時(shí)間。
通過基于不同API調(diào)用之間的關(guān)系自動(dòng)創(chuàng)建完整的測試方案,可以更輕松地構(gòu)建有意義的,全面的API測試。(沒有這些,用戶必須花時(shí)間研究測試用例,尋找模式并手動(dòng)建立關(guān)系以形成每個(gè)測試方案。)
自動(dòng)添加斷言和驗(yàn)證以確保您的API能夠按預(yù)期工作,因此您甚至可以執(zhí)行最復(fù)雜類型的斷言邏輯,而無需編寫任何代碼(否則可能會(huì)出錯(cuò))。
減少花在維護(hù)測試上的時(shí)間。由于它是無腳本的,因此用戶無需在服務(wù)更改時(shí)花時(shí)間為測試用例編寫代碼。
幫助開發(fā)和測試團(tuán)隊(duì)與單個(gè)工件協(xié)作,兩個(gè)工件可以輕松共享和理解這些工件(與UI測試相比,它更能診斷出缺陷的根本原因)。
通過幫助用戶擴(kuò)展測試,測試流程邏輯和數(shù)據(jù)解決方案,以完成在給定的短時(shí)間內(nèi)全面驗(yàn)證應(yīng)用程序所需的全部API測試覆蓋范圍,為可擴(kuò)展的API測試策略奠定基礎(chǔ)。
為什么我們甚至需要API測試
使用API測試補(bǔ)充UI測試
根據(jù)流量構(gòu)建API測試(“記錄和重播測試”)
為什么記錄和重放還不夠
回到人工智能
綜上所述,該工具不僅可以基于對捕獲的API活動(dòng)的有意義的解釋自動(dòng)創(chuàng)建測試,而且還支持對這些測試的輕松擴(kuò)展和維護(hù),因此在整個(gè)軟件生命周期中其價(jià)值都會(huì)倍增。
所有這些本身就是好的。但是讓我更加興奮的是Smart API Test Generator可以幫助用戶理解UI動(dòng)作和API調(diào)用之間的關(guān)系的部分,從而使測試人員更容易“熟練”并采用全面的API測試實(shí)踐。由于API測試可以完全自動(dòng)化并且可以輕松擴(kuò)展,因此團(tuán)隊(duì)可以降低質(zhì)量總成本,同時(shí)避免延遲發(fā)布。
讓我們分解一下。由于Smart API Test Generator承擔(dān)繁重的工作,為測試人員提供了輕松,無腳本的地方來開始構(gòu)建API測試,因此降低了API測試的技術(shù)切入點(diǎn),使初學(xué)者進(jìn)入API測試世界和用戶友好的Parasoft SOAtest生態(tài)系統(tǒng),用戶將從易于采用和使用的強(qiáng)大視覺工具中受益。
在系統(tǒng)和用戶界面測試期間收集API活動(dòng)的流量不足以實(shí)現(xiàn)API測試自動(dòng)化,但這是迄今為止行業(yè)所擁有的。對前提條件的依賴使這些錄音的可重用性降低,幾乎無法擴(kuò)展用于其他目的。更不用說很難從復(fù)雜的流量中創(chuàng)建有意義的測試場景,這是大多數(shù)測試人員都不熟練的技能。
但這不再重要!現(xiàn)在我們有了Parasoft SOAtest Smart API Test Generator,用戶可以利用人工智能進(jìn)行繁重的工作。初級的API測試人員可以使用它來入門并了解API測試的工作方式,而經(jīng)驗(yàn)豐富的API測試人員可以利用它來提高效率(這是我們現(xiàn)在使用它的主要方法之一,在Parasoft)。歸根結(jié)底,通過利用機(jī)器來構(gòu)建有意義的、可擴(kuò)展的和可重用的測試,組織可以從節(jié)省時(shí)間和金錢中受益。這只會(huì)是個(gè)越來越“人工智能”的時(shí)代!
本站文章除注明轉(zhuǎn)載外,均為本站原創(chuàng)或翻譯。歡迎任何形式的轉(zhuǎn)載,但請務(wù)必注明出處、不得修改原文相關(guān)鏈接,如果存在內(nèi)容上的異議請郵件反饋至chenjj@fc6vip.cn