原創(chuàng)|行業(yè)資訊|編輯:李燕|2019-11-14 11:15:03.417|閱讀 325 次
概述:本文將講述什么是持續(xù)測(cè)試以及怎么將持續(xù)測(cè)試應(yīng)用到企業(yè)軟件測(cè)試中。
# 界面/圖表報(bào)表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
相關(guān)鏈接:
作為進(jìn)入市場(chǎng)戰(zhàn)略的一部分,企業(yè)越來越關(guān)注客戶體驗(yàn),而客戶體驗(yàn)的關(guān)鍵部分是他們以快速,無縫的方式遍歷軟件的能力。為了減少不良客戶體驗(yàn)的風(fēng)險(xiǎn),組織將質(zhì)量計(jì)劃加倍,軟件開發(fā)行業(yè)也將持續(xù)測(cè)試作為主流活動(dòng)。
連續(xù)測(cè)試是軟件測(cè)試的一項(xiàng)原則,在該原則中,所有測(cè)試始終在執(zhí)行,從而為應(yīng)用程序的質(zhì)量和運(yùn)行狀況提供連續(xù)的反饋。但是為了實(shí)現(xiàn)連續(xù)測(cè)試,組織必須首先采用測(cè)試自動(dòng)化。測(cè)試自動(dòng)化的類型很多,涵蓋了從UI層開始的應(yīng)用程序的整個(gè)范圍,中間件系統(tǒng)甚至后端系統(tǒng)。了解如何盡可能有效地引入這些不同類型的測(cè)試自動(dòng)化實(shí)踐,可以使您邁向連續(xù)測(cè)試的道路。
現(xiàn)在已經(jīng)被廣泛接受的測(cè)試金字塔(由Michael Cohen和Martin Fowler推廣)為不同類型的測(cè)試活動(dòng)確定了最佳策略。在最代表測(cè)試數(shù)量最多的基礎(chǔ)上,我們希望建立廣泛的單元測(cè)試和API測(cè)試,這些測(cè)試最容易在自動(dòng)化中運(yùn)行,但通常需要技術(shù)技能來構(gòu)建。到達(dá)測(cè)試金字塔的頂部,您會(huì)發(fā)現(xiàn)自動(dòng)UI測(cè)試和手動(dòng)測(cè)試。我們希望這種類型的測(cè)試活動(dòng)在頂部,因?yàn)檫@是確保客戶體驗(yàn)的唯一方法。
大多數(shù)人專注于UI測(cè)試的“自動(dòng)化手冊(cè)”方法,而單元開發(fā)人員則以“開發(fā)人員應(yīng)測(cè)試”的心態(tài)專注于測(cè)試金字塔的底部和頂部。盡管這些做法很重要,但專注于頂部和底部會(huì)在UI和代碼之間的API層中間產(chǎn)生間隙。但是,這種差距只會(huì)變得越來越嚴(yán)重,Programmable Web最近的一項(xiàng)調(diào)查預(yù)測(cè),到2021年,將有22,000多個(gè)公開可用的API。API測(cè)試比以往任何時(shí)候都更加重要,需要成為持續(xù)測(cè)試策略不可或缺的一部分你正在建造。
之前,我曾討論過如何根據(jù)組織的獨(dú)特需求選擇最佳的API測(cè)試解決方案,并根據(jù)行業(yè)和應(yīng)用程序提出了可能需要的關(guān)鍵功能。從一個(gè)API測(cè)試解決方案開始很有幫助,該解決方案可以隨著您的API測(cè)試成熟度的增長(zhǎng)而增長(zhǎng)。選擇工具后,如何開始?這是三個(gè)關(guān)鍵步驟,可以更快地實(shí)現(xiàn)功能測(cè)試自動(dòng)化并實(shí)現(xiàn)連續(xù)測(cè)試。
慧都科技是parasoft一級(jí)授權(quán)代理商,如果您想了解parasoft各類產(chǎn)品,請(qǐng)咨詢 ~幫您選擇適合您的最佳產(chǎn)品
要?jiǎng)?chuàng)建廣泛的自動(dòng)化測(cè)試,可以從Web記錄和API合同構(gòu)建無腳本測(cè)試,然后使用這些測(cè)試來連續(xù)驗(yàn)證API的運(yùn)行狀況,確保API能夠按設(shè)計(jì)的方式運(yùn)行。將此視為API的單元測(cè)試,但無需費(fèi)力-這不僅是一種有價(jià)值的測(cè)試技術(shù),而且它也是您可以執(zhí)行的最早的功能測(cè)試驗(yàn)證類型之一,因?yàn)锳PI的服務(wù)合同通常是首先要做的事情之一在創(chuàng)建新功能部件或功能時(shí)進(jìn)行編寫。
例如,假設(shè)團(tuán)隊(duì)在我們的銀行應(yīng)用程序中添加了一些新功能。第一步,開發(fā)團(tuán)隊(duì)發(fā)布了新的服務(wù)定義。在這種情況下,將生成一張草率的文檔。被添加的新服務(wù)是RequestLoan服務(wù)。該服務(wù)接受一系列輸入,并與貸款提供者響應(yīng)以獲取新貸款。為了測(cè)試該服務(wù),我可以使用Swagger YAML,并為每個(gè)單獨(dú)的操作創(chuàng)建一系列客戶端。
這些客戶之一就是請(qǐng)求貸款服務(wù)。我可以創(chuàng)建一個(gè)正向和負(fù)向的系列輸入,以驗(yàn)證該服務(wù)的行為是否適當(dāng)。然后,我可以將這些測(cè)試重新用于回歸目的。
當(dāng)然,盡管這種測(cè)試非常有價(jià)值,但這只是API測(cè)試難題的一半,因?yàn)?它無法驗(yàn)證API的實(shí)際使用方式。輸入步驟2。
API測(cè)試策略的第二部分是能夠?qū)⒛鷮?duì)應(yīng)用程序的人工使用建模為完整的API測(cè)試方案。您可以通過利用人工智能來增強(qiáng)您的能力,從而在用戶瀏覽您的應(yīng)用程序時(shí)了解幕后實(shí)際發(fā)生的事情,并將這些幕后事務(wù)解釋為API調(diào)用,從而開始彌合測(cè)試金字塔中的空白。這種類型的測(cè)試可讓您將用戶體驗(yàn)與關(guān)鍵的API測(cè)試保持一致。
人工智能是該策略的關(guān)鍵組成部分,因?yàn)槲覀兛梢钥煽康厥褂萌斯ぶ悄軄韼椭覀儗⑦@些通信分解為關(guān)系和模式,以了解如何測(cè)試應(yīng)用程序的業(yè)務(wù)規(guī)則。我們可以將其與我們的單元級(jí)API測(cè)試結(jié)合起來,以廣泛涵蓋我們的API范圍。
繼續(xù)前面的示例,您會(huì)發(fā)現(xiàn)請(qǐng)求貸款服務(wù)需要我應(yīng)用程序其他區(qū)域的輸入。特別:
現(xiàn)在,盡管我可以任意提供customerID和accountAccountID,但我確實(shí)需要它們存在于我的應(yīng)用程序中。因此,我將需要?jiǎng)?chuàng)建一個(gè)動(dòng)態(tài)方案,在該方案中,我首先查詢單個(gè)用戶以獲得客戶ID和帳戶ID,以便我可以將該信息傳遞給請(qǐng)求貸款服務(wù),并確保動(dòng)態(tài)方案按所述方式工作。確保我正在使用真實(shí)的動(dòng)態(tài)數(shù)據(jù),以確??梢猿鋵?shí)因API相互交互而存在的行為。
這些類型的技術(shù)將使我們能夠向左移API測(cè)試實(shí)踐,并在可能的最早階段為我們的應(yīng)用程序創(chuàng)建廣泛的覆蓋范圍。一旦實(shí)現(xiàn),此實(shí)踐的第三個(gè)關(guān)鍵組成部分就是我們理解和適應(yīng)變化的能力。
我已經(jīng)與很多人談?wù)撨^他們的功能測(cè)試計(jì)劃,一旦他們的應(yīng)用程序更改了,他們的計(jì)劃就停滯了。這是常見的情況,因?yàn)闇y(cè)試人員將大部分時(shí)間都花在構(gòu)建豐富而出色的API測(cè)試上,而只是在應(yīng)用程序的API發(fā)生更改時(shí)才讓它們中斷。這可能會(huì)產(chǎn)生累積效應(yīng),從而降低對(duì)API測(cè)試策略的信心,因?yàn)闇y(cè)試人員將大量時(shí)間用于維護(hù)API測(cè)試,而不是建立新的價(jià)值。
變更管理是任何功能測(cè)試策略的關(guān)鍵部分,而AI在這里也可以成為關(guān)鍵的推動(dòng)者。通過自動(dòng)掃描服務(wù)定義(是的,與最初創(chuàng)建測(cè)試用例的服務(wù)定義相同)來確定您的API何時(shí)更改,您可以了解何時(shí)會(huì)受到影響,然后構(gòu)建用于將現(xiàn)有服務(wù)遷移到新服務(wù)的模板版。
回到銀行應(yīng)用程序示例的第一部分,我聲明了將新服務(wù)添加到我的應(yīng)用程序中。這實(shí)際上代表API的更改。自從我使用服務(wù)定義創(chuàng)建了第一輪基準(zhǔn)測(cè)試以來,我現(xiàn)在可以相互比較服務(wù)定義的不同版本,不僅可以識(shí)別已更改的內(nèi)容,還可以構(gòu)建一個(gè)映射來更新現(xiàn)有的測(cè)試用例:
在查看變更模板后,不難看出,不僅添加了新服務(wù),而且還重構(gòu)了我現(xiàn)有的許多服務(wù)。在上圖中,您會(huì)注意到讓客戶擁有一系列新字段。使用變更管理工作流程,您可以主動(dòng)識(shí)別服務(wù)變更,同時(shí)管理現(xiàn)有測(cè)試用例的更新,以便您可以盡快從變更中恢復(fù)。
可以說,這是在制定其功能測(cè)試策略時(shí)必須建立的最重要的實(shí)踐,并且從一開始就對(duì)質(zhì)量有理解和承諾將有助于您和您的組織采用這種實(shí)踐。
因此,憑借出色的測(cè)試自動(dòng)化功能,可以輕松地在此處停止測(cè)試。但是請(qǐng)說您花了很多時(shí)間來構(gòu)建這種豐富而強(qiáng)大的功能測(cè)試策略,并將其作為自動(dòng)夜間連續(xù)測(cè)試過程的一部分在您的環(huán)境中運(yùn)行測(cè)試,并且在查看結(jié)果時(shí)您會(huì)發(fā)現(xiàn)很大一部分您的測(cè)試因系統(tǒng)無法控制而失敗。這是否意味著您的測(cè)試不合格?您現(xiàn)在對(duì)技術(shù)超出測(cè)試范圍的系統(tǒng)負(fù)責(zé)嗎?
這不是一個(gè)罕見的故事。我們知道功能測(cè)試只能與執(zhí)行它們的測(cè)試環(huán)境一樣有效。不穩(wěn)定,不可用或只是普通的不穩(wěn)定測(cè)試環(huán)境會(huì)降低我們從功能測(cè)試工具中獲得的投資回報(bào)。因此,我必須至少簡(jiǎn)短地提到穩(wěn)定測(cè)試環(huán)境的最佳方法之一,那就是:服務(wù)虛擬化。
不要與虛擬機(jī)(即硬件虛擬化)相混淆,服務(wù)虛擬化使您能夠?qū)嶋H模擬在不同硬件之間進(jìn)行通信的服務(wù)。例如,考慮一個(gè)調(diào)用數(shù)據(jù)庫(kù)的應(yīng)用程序。您在測(cè)試環(huán)境中實(shí)際上是否需要該數(shù)據(jù)庫(kù)?如果沒有所需的數(shù)據(jù)怎么辦?使用服務(wù)虛擬化,您可以記錄與數(shù)據(jù)庫(kù)的事務(wù),然后使用該記錄創(chuàng)建該數(shù)據(jù)庫(kù)的模擬版本,以及針對(duì)測(cè)試環(huán)境所需的所有行為。但是,當(dāng)然,它并不僅限于數(shù)據(jù)庫(kù)-它可以是任何類型的服務(wù),例如SOAP或REST API,甚至是TCP和微服務(wù)。
作為制定可持續(xù)的API測(cè)試策略的一部分,您需要制定可持續(xù)的服務(wù)虛擬化策略,首先要回答以下問題:
哪些服務(wù)適合虛擬化?
如何創(chuàng)建虛擬服務(wù)?
如何維護(hù)虛擬環(huán)境?
如何將虛擬環(huán)境部署為持續(xù)測(cè)試策略的一部分?
服務(wù)虛擬化是可持續(xù)的連續(xù)測(cè)試策略的關(guān)鍵推動(dòng)力,但是了解在何處,何時(shí)引入它以及如何使其盡可能有效是成功的關(guān)鍵。
通過此文章您或許對(duì)如何將API測(cè)試集成為持續(xù)測(cè)試策略的一部分有了更好的了解,在軟件開發(fā)的初期階段與API測(cè)試工具供應(yīng)商合作將提高您的開發(fā)速度,更快地交付產(chǎn)品,祝您持續(xù)測(cè)試愉快!
慧都科技是parasoft一級(jí)授權(quán)代理商,如果您想購(gòu)買parasoft產(chǎn)品,請(qǐng)咨詢 ~
更多parasoft文章資訊敬請(qǐng)關(guān)注慧都科技。
本站文章除注明轉(zhuǎn)載外,均為本站原創(chuàng)或翻譯。歡迎任何形式的轉(zhuǎn)載,但請(qǐng)務(wù)必注明出處、不得修改原文相關(guān)鏈接,如果存在內(nèi)容上的異議請(qǐng)郵件反饋至chenjj@fc6vip.cn