詳談自動(dòng)化集成測(cè)試的策略
探索自動(dòng)化集成測(cè)試以實(shí)現(xiàn)無(wú)縫軟件開(kāi)發(fā)的有效技術(shù)和技巧。立即升級(jí)您的策略!
當(dāng)軟件組件的單元測(cè)試完美運(yùn)行時(shí)會(huì)發(fā)生什么?您是否曾想過(guò),為什么單元測(cè)試 100% 通過(guò)的報(bào)告對(duì)于作為一個(gè)單元進(jìn)行集成和驗(yàn)證時(shí)的組件沒(méi)有好處?發(fā)生自發(fā)故障的集成測(cè)試并不反映故障點(diǎn)位于單元內(nèi)部,而是反映單元交互的地方。
測(cè)試團(tuán)隊(duì)非常重視如何有效地依靠自動(dòng)化、集成測(cè)試來(lái)確保在當(dāng)今要求苛刻的世界中生成的軟件的質(zhì)量,在這個(gè)世界中,以結(jié)果為中心的方法尋求工作軟件的持續(xù)交付。
什么是集成測(cè)試?
集成測(cè)試包括圍繞接口進(jìn)行測(cè)試,以檢查多個(gè)軟件模塊之間的數(shù)據(jù)流,而不干擾模塊的功能。
為了構(gòu)建系統(tǒng)的“工作”版本,由各個(gè)開(kāi)發(fā)人員成功開(kāi)發(fā)和單元測(cè)試的單獨(dú)工作模塊以增量方式匯集在一起,以使系統(tǒng)正常運(yùn)行。
然后對(duì)軟件進(jìn)行驗(yàn)證,以發(fā)現(xiàn)與接口相關(guān)的任何錯(cuò)誤,使其滿足要求、標(biāo)準(zhǔn)和合規(guī)性(如果有),并按照預(yù)期的方式滿足整體功能。
同樣,集成可以在多個(gè)系統(tǒng)之間進(jìn)行,例如:
- 新系統(tǒng)到舊系統(tǒng)
- 舊系統(tǒng)到舊系統(tǒng)
- 由不同服務(wù)提供商開(kāi)發(fā)和支持的系統(tǒng)。
- 集成DB、API、Cloud等組件
讓我們?cè)敿?xì)討論所涉及的各個(gè)組件以及它們?nèi)绾谓换?,同時(shí)考慮到支付網(wǎng)關(guān)系統(tǒng)。
系統(tǒng)簡(jiǎn)介
支付網(wǎng)關(guān)的客戶端-服務(wù)器架構(gòu)如圖所示。
該軟件充當(dāng)網(wǎng)關(guān)。它是任何在線零售商的重要組成部分。卡、數(shù)字錢包、UPI 和網(wǎng)上銀行交易可以借助該軟件作為服務(wù)進(jìn)行授權(quán)。
這些服務(wù)提供一鍵式導(dǎo)航,并且?guī)缀醪恍枰獙?duì)網(wǎng)站進(jìn)行調(diào)整。第三方支付服務(wù)與商戶系統(tǒng)集成很困難。
此外,該系統(tǒng)需要針對(duì)集成點(diǎn)進(jìn)行測(cè)試,這些集成點(diǎn)為授權(quán)、結(jié)算、退款、用戶通知和交易報(bào)表等提供解決方案。
此外,最終用戶可以通過(guò)各種平臺(tái)(包括桌面、移動(dòng)和基于 Web 的系統(tǒng))訪問(wèn)系統(tǒng)也至關(guān)重要。下面列出的測(cè)試用例是測(cè)試服務(wù)時(shí)要運(yùn)行的一些最重要的測(cè)試用例,包括。
- 確保交易徹底、安全。
- 驗(yàn)證所有接受的付款方式的功能。
- 最終用戶使用的所有平臺(tái)上的一致用戶體驗(yàn)。
從整合的角度來(lái)看,驗(yàn)證網(wǎng)站和服務(wù)的整合更為重要。
集成測(cè)試的組成部分
考慮到這一點(diǎn),我們來(lái)談?wù)剣L試自動(dòng)化集成時(shí)要記住的組件。
- 逆向工程可用于預(yù)測(cè)在選擇組件時(shí)執(zhí)行集成套件時(shí)會(huì)發(fā)生的問(wèn)題。
- 如果你有分析經(jīng)驗(yàn)的話,集成測(cè)試的失敗都會(huì)來(lái)自于環(huán)境失敗。
- API 或 UI 等組件失敗,而不是整個(gè)自動(dòng)化腳本場(chǎng)景失敗。
- 在 CI/CD 管道中建立適當(dāng)?shù)拈_(kāi)發(fā)分支,以便運(yùn)行集成測(cè)試。
- 在管道中設(shè)置特定的測(cè)試環(huán)境變量,例如特定于執(zhí)行環(huán)境的URL。
- 訪問(wèn)特定于環(huán)境的測(cè)試資源。
此處詳細(xì)介紹的組件在上圖中進(jìn)行了總結(jié)。
測(cè)試腳本
需要準(zhǔn)備測(cè)試腳本并對(duì)其可能要驗(yàn)證的自動(dòng)化集成場(chǎng)景進(jìn)行徹底檢查。它應(yīng)該配備能夠標(biāo)記某個(gè)部分失敗的斷言。
管道的設(shè)置
對(duì)于自動(dòng)化、集成的套件來(lái)說(shuō),通過(guò) CI/CD 管道運(yùn)行以實(shí)現(xiàn)測(cè)試和開(kāi)發(fā)的協(xié)作至關(guān)重要。此外,當(dāng)您的系統(tǒng)與各種平臺(tái)兼容時(shí),同步自動(dòng)化集成測(cè)試可以加快測(cè)試周期,同時(shí)仍確保完全覆蓋。
預(yù)定測(cè)試的觸發(fā)器
CI/CD 管道的配置應(yīng)該是這樣的:在啟動(dòng)相應(yīng)的測(cè)試環(huán)境之前,它們首先評(píng)估推動(dòng)更改的開(kāi)發(fā)分支的環(huán)境。在多個(gè)時(shí)區(qū)工作的團(tuán)隊(duì)必須依賴通過(guò)管道執(zhí)行比平常花費(fèi)更長(zhǎng)時(shí)間的測(cè)試。
測(cè)試結(jié)果報(bào)告
該報(bào)告描述了通過(guò)/失敗率,以提醒團(tuán)隊(duì)發(fā)現(xiàn)任何問(wèn)題,有助于識(shí)別故障端點(diǎn)并評(píng)估問(wèn)題的原因,無(wú)論是管理不善的界面、不可靠的基礎(chǔ)設(shè)施還是粗制濫造的實(shí)施。
集成時(shí)確認(rèn)所有接口場(chǎng)景概述
考慮到所考慮的系統(tǒng)(支付網(wǎng)關(guān))的重要性,每個(gè)交易狀態(tài)都應(yīng)該正確地流向每個(gè)系統(tǒng)端點(diǎn)。
讓我們討論一個(gè)這樣的場(chǎng)景,即消費(fèi)者方面的在線支付失敗,在這種情況下,是未經(jīng)授權(quán)的交易。
支付網(wǎng)關(guān)用例
“您作為客戶在在線商店下訂單。支付服務(wù)接受信用卡付款。支付網(wǎng)關(guān)在將卡信息發(fā)送到卡網(wǎng)絡(luò)進(jìn)行欺詐檢查或卡有效性檢查之前對(duì)其進(jìn)行加密。發(fā)卡機(jī)構(gòu)批準(zhǔn)交易。公司將其批準(zhǔn)傳達(dá)給支付網(wǎng)關(guān),支付網(wǎng)關(guān)將其傳達(dá)給客戶。為了驗(yàn)證卡交易,發(fā)卡行會(huì)向客戶注冊(cè)的手機(jī)或電子郵件發(fā)送一次性密碼。
這些 OTP 是有時(shí)間限制的,它們是雙因素身份驗(yàn)證的組成部分。如果 OTP 輸入錯(cuò)誤,交易就會(huì)失敗?!?/p>
預(yù)計(jì)客戶在商家網(wǎng)站上下的任何訂單都將失敗,并且不會(huì)將任何資金存入商家的帳戶中。
隨著越來(lái)越多的第三方支付處理商進(jìn)入市場(chǎng),商家方與這些支付處理商集成以收集和分散支付可以有各種排列和組合。
當(dāng)我們分解場(chǎng)景中的交互時(shí),第一個(gè)交互是客戶和通過(guò)網(wǎng)站或移動(dòng)應(yīng)用程序提供軟件或服務(wù)的商家之間的交互。
客戶和應(yīng)用程序應(yīng)該能夠進(jìn)行通信,并且應(yīng)用程序應(yīng)該驗(yàn)證放入購(gòu)物車進(jìn)行付款的產(chǎn)品和價(jià)格。
用戶提交的卡信息以及通過(guò)銷售點(diǎn)進(jìn)行的購(gòu)買的雙因素身份驗(yàn)證應(yīng)在商家站點(diǎn)和支付網(wǎng)關(guān)以及卡網(wǎng)絡(luò)之間的交互過(guò)程中進(jìn)行加密。
卡網(wǎng)絡(luò)與發(fā)卡銀行之間的互動(dòng),以便及時(shí)將 OTP 交付給適當(dāng)?shù)目蛻簦⑦M(jìn)行時(shí)間驗(yàn)證。
卡網(wǎng)絡(luò)與第三方通知服務(wù)之間的交互,以便及時(shí)將 OTP 傳送給相應(yīng)的客戶。
在這種情況下,客戶與支付服務(wù)的交互未得到驗(yàn)證,因?yàn)橛脩糨斎肓藷o(wú)效的 OTP,并且支付處理商、卡網(wǎng)絡(luò)和發(fā)卡銀行均通知該交易未經(jīng)授權(quán)。
通知服務(wù)與卡網(wǎng)絡(luò)的交互向客戶提供“輸入的 OTP 錯(cuò)誤”的錯(cuò)誤通知。
卡網(wǎng)絡(luò)、收單機(jī)構(gòu)和商戶賬戶之間的支付網(wǎng)關(guān)通信。如果付款不成功,則不會(huì)向收單機(jī)構(gòu)或商戶賬戶發(fā)送任何款項(xiàng)。
最后,客戶與商家應(yīng)用程序的交互導(dǎo)致交易失敗而無(wú)法成功下單。
正如您所看到的,存在多個(gè)界面,各種玩家和系統(tǒng)(主要是支付處理系統(tǒng))進(jìn)行交互。
所有這些模塊可能不會(huì)被編碼并接受單元測(cè)試或可用于集成測(cè)試。
集成測(cè)試的美妙之處在于測(cè)試統(tǒng)一中的模塊和接口以這種方式工作。
在這樣的情況下,當(dāng)系統(tǒng)之間有大量的組件來(lái)回通信時(shí),自動(dòng)化集成測(cè)試會(huì)非常有用。
自動(dòng)化集成測(cè)試工具
在列出可用于自動(dòng)化的儀器之前,了解選擇標(biāo)準(zhǔn)至關(guān)重要。
我們想要執(zhí)行自動(dòng)化集成測(cè)試。
因此,該工具提供了一個(gè)測(cè)試各種系統(tǒng)組件(如DB、API和UI)的平臺(tái),可用于測(cè)試模塊之間的接口。應(yīng)選擇使用壽命長(zhǎng)、易于維護(hù)并支持持續(xù)集成運(yùn)行的工具,從而最大限度地提高投資回報(bào)。
有多種可用的工具,我們將在下面討論:
- Citrus:一種自動(dòng)化集成測(cè)試,可在任何消息傳遞協(xié)議和格式數(shù)據(jù)上運(yùn)行測(cè)試。它提供了一個(gè)用于自動(dòng)化 Soap 服務(wù)、HTTP Rest 以及與 TestNG 和 Junit 等不同測(cè)試框架集成的平臺(tái)。它附帶了全面的文檔,并且可以用 Java 或 XML 創(chuàng)建自動(dòng)化腳本。
- SITA(智能集成測(cè)試加速器);該工具可以運(yùn)行以業(yè)務(wù)為中心的集成測(cè)試。與 HP、IBM Rational 和 IBM 等工具無(wú)縫集成。
- TESSY:該工具主要用于安全關(guān)鍵型嵌入式系統(tǒng)的單元測(cè)試。它處理測(cè)試組織和管理的各個(gè)方面,例如需求、覆蓋率評(píng)估和可追溯性。
- Testsigma:這個(gè)測(cè)試自動(dòng)化平臺(tái)是完全托管的。它為 Web 應(yīng)用程序、消息傳遞協(xié)議和移動(dòng)應(yīng)用程序提供自動(dòng)化連續(xù)測(cè)試,并且作為開(kāi)源提供。
自動(dòng)化集成測(cè)試有哪些好處?
我們真的需要首先將集成測(cè)試自動(dòng)化嗎?
答案無(wú)疑是“是”。公司在當(dāng)前的宏觀經(jīng)濟(jì)環(huán)境下安排產(chǎn)品的發(fā)布,市場(chǎng)上競(jìng)爭(zhēng)激烈,發(fā)布的產(chǎn)品具有友好的 UI/UX、提供流暢的功能以及在其可能使用的平臺(tái)上具有最佳性能。
測(cè)試團(tuán)隊(duì)經(jīng)常因開(kāi)發(fā)工作的延遲而首當(dāng)其沖。
你會(huì)在質(zhì)量上吝嗇嗎?絕不??!
考慮到這種雙重困難,測(cè)試團(tuán)隊(duì)必須尋求創(chuàng)造性的修復(fù)來(lái)縮短測(cè)試執(zhí)行周期。
這是集成測(cè)試從手動(dòng)到自動(dòng)化的框架轉(zhuǎn)換?,F(xiàn)代組織中敏捷性的采用允許使用自動(dòng)化技術(shù)進(jìn)行質(zhì)量控制檢查和降低成本。
驗(yàn)證系統(tǒng)的主要瓶頸是執(zhí)行重復(fù)且頻繁發(fā)生的測(cè)試。自動(dòng)化集成測(cè)試消除了這一瓶頸。
自動(dòng)化至關(guān)重要,因?yàn)闇y(cè)試是耗時(shí)的組件之一,而且每個(gè)發(fā)布周期都在變得越來(lái)越短。
需要一個(gè)自動(dòng)化工具的替代平臺(tái)來(lái)自動(dòng)化跨多種技術(shù)的測(cè)試。
大綱
分層質(zhì)量方法的一個(gè)組成部分是集成測(cè)試。對(duì)于測(cè)試人員來(lái)說(shuō),自動(dòng)化各種軟件組件(而不是單元)可能相當(dāng)困難。
在上面的段落中,我們嘗試使用具有大量交互點(diǎn)的復(fù)雜系統(tǒng)來(lái)說(shuō)明自動(dòng)化集成測(cè)試的重要性。
高質(zhì)量集成測(cè)試的一個(gè)關(guān)鍵發(fā)現(xiàn)是堅(jiān)持事件的順序,這將逐個(gè)模塊地覆蓋系統(tǒng)的交互。
確定集成測(cè)試先決條件所涉及的各種模塊和參與者,制定測(cè)試策略,選擇高優(yōu)先級(jí)場(chǎng)景,準(zhǔn)備測(cè)試數(shù)據(jù)和環(huán)境,開(kāi)發(fā)自動(dòng)化測(cè)試,并使用 CI 管道集成套件以在發(fā)布后立即運(yùn)行測(cè)試在較低的環(huán)境中。
在軟件開(kāi)發(fā)周期的早期,自動(dòng)化集成測(cè)試必須發(fā)現(xiàn)接口問(wèn)題。它增強(qiáng)了團(tuán)隊(duì)對(duì)其向用戶提供高質(zhì)量產(chǎn)品的能力的信心。
為了快速執(zhí)行復(fù)雜的場(chǎng)景,應(yīng)該明智地選擇一個(gè)能夠滿足您的目標(biāo)、提供簡(jiǎn)單維護(hù)并允許無(wú)縫集成的工具。
制定評(píng)估自動(dòng)化測(cè)試儀器的精確策略至關(guān)重要。
考慮您的項(xiàng)目預(yù)算、現(xiàn)有要求以及測(cè)試團(tuán)隊(duì)在自動(dòng)化方面的經(jīng)驗(yàn),以幫助您縮小決策列表并選擇最能滿足您需求的解決方案。
自動(dòng)化集成測(cè)試使我們能夠生產(chǎn)出滿足用戶需求的優(yōu)秀解決方案。