持續(xù)測試的障礙(三):如何克服測試環(huán)境不可用,受系統(tǒng)依賴性的限制的問題
持續(xù)測試是一個過程,使團(tuán)隊(duì)能夠在軟件開發(fā)中建立質(zhì)量,并加速交付高質(zhì)量的客戶體驗(yàn)。通過持續(xù)測試,團(tuán)隊(duì)使用自動化測試獲得關(guān)于代碼健康的即時反饋。
持續(xù)測試使企業(yè)能夠評估商業(yè)風(fēng)險。最近的行業(yè)調(diào)查顯示,用于跟蹤項(xiàng)目進(jìn)展和成功的首要指標(biāo):
- 高測試覆蓋率
- 增加缺陷修復(fù)
- 減少了生產(chǎn)中的缺陷
- 在開發(fā)過程中建立質(zhì)量
如何實(shí)現(xiàn)速度和質(zhì)量的結(jié)合?答案是:持續(xù)測試。但它確實(shí)有其挑戰(zhàn)。本文就說說第三個挑戰(zhàn)或者說障礙——測試環(huán)境不可用,不可控,受系統(tǒng)依賴性的限制。
障礙三:測試環(huán)境不可用,不可控,受系統(tǒng)依賴性的限制
測試環(huán)境是阻止組織將自動化測試轉(zhuǎn)化為持續(xù)測試的障礙的關(guān)鍵所在。在試圖使測試隨時隨地運(yùn)行時,組織面臨三種類型的挑戰(zhàn),并處理應(yīng)用程序的外部依賴性。這對于微服務(wù)架構(gòu)來說尤其如此。由于設(shè)計(jì)的本質(zhì),依賴關(guān)系的數(shù)量爆炸性地增長。
測試環(huán)境的挑戰(zhàn)
測試環(huán)境是阻止組織將自動化測試轉(zhuǎn)化為持續(xù)測試的障礙的關(guān)鍵所在。在試圖使測試隨時隨地運(yùn)行時,組織面臨三種類型的挑戰(zhàn),并處理應(yīng)用程序的外部依賴性。這對于微服務(wù)架構(gòu)來說尤其如此。由于設(shè)計(jì)的本質(zhì),依賴關(guān)系的數(shù)量爆炸性地增長。
等待訪問共享系統(tǒng),如主機(jī)或由第三方提供的外部依賴。可用性可能是有時間限制和成本的。這也是一個挑戰(zhàn),如果外部的依賴性有很多人在同時工作,導(dǎo)致數(shù)據(jù)碰撞造成的測試不穩(wěn)定。
延遲訪問造成的瓶頸。這是由于并行開發(fā)的性質(zhì)和現(xiàn)代流程的典型。例如,多個團(tuán)隊(duì)合作向價值流交付新功能,如相互依賴的微服務(wù)。測試不能在一個微服務(wù)上進(jìn)行,因?yàn)榱硪粋€微服務(wù)還沒有可用。
不可控的測試數(shù)據(jù)。雖然微服務(wù)相對容易部署和隔離測試,但它們對數(shù)據(jù)或性能特性的依賴性限制了它們被徹底測試的能力。例如,對共享生產(chǎn)數(shù)據(jù)庫中的數(shù)據(jù)的依賴會限制測試服務(wù)的能力。
如何消除障礙,控制測試環(huán)境
開始模擬這些依賴關(guān)系,使用服務(wù)虛擬化解決方案讓團(tuán)隊(duì)完全控制。Parasoft Virtualize模擬那些不受你控制或不可用的服務(wù)。它提供的工作流程可以:
- 使用戶能夠訪問完整和真實(shí)的測試環(huán)境。
- 穩(wěn)定測試環(huán)境。
- 獲得其他無法訪問的依賴性。
- 管理復(fù)雜的業(yè)務(wù)邏輯、測試數(shù)據(jù)和性能特征,這些都是虛擬服務(wù)在它們所代表的真實(shí)環(huán)境中表現(xiàn)得與真實(shí)服務(wù)一樣的要求。
服務(wù)虛擬化消除了瓶頸,下面是方法:
記錄和模擬:捕獲、建模和提供實(shí)時系統(tǒng)的模擬。
使用Parasoft SOAtest的記錄能力,就有可能在其環(huán)境中捕獲應(yīng)用程序的行為。Parasoft Virtualize對外部依賴關(guān)系的行為進(jìn)行建模,使得刪除和模擬依賴關(guān)系的行為成為可能,動態(tài)地在運(yùn)行中切換出真實(shí)與虛擬。使這些服務(wù)和依賴關(guān)系在虛擬中可用和穩(wěn)定,加速了測試過程并實(shí)現(xiàn)了連續(xù)測試。

交付一個原型:基于合同描述或有效載荷例子的行為模型。
服務(wù)虛擬化使原型開發(fā)基于從SOAtest中的API交互記錄和分析得出的契約描述。
在測試另一個相鄰的服務(wù)時,可以以良好的保真度模擬依賴性服務(wù),以創(chuàng)建滿足其在系統(tǒng)中作用的原型版本。這消除了并行開發(fā)中固有的進(jìn)度限制--即使服務(wù)沒有完成,它們也可以被虛擬化,用于測試其他服務(wù)。

合成私人測試數(shù)據(jù)
測試企業(yè)應(yīng)用程序的另一個障礙是測試數(shù)據(jù)。許多組織使用真實(shí)數(shù)據(jù),但這充滿了隱私問題。純粹的合成數(shù)據(jù)往往不夠真實(shí),所以需要一個折中的方法來測試。通過去除個人可識別信息(PII)來合成真實(shí)數(shù)據(jù),可以提供現(xiàn)實(shí)的和安全使用的數(shù)據(jù)。測試數(shù)據(jù)管理需要與服務(wù)虛擬化結(jié)合起來,以提供一個現(xiàn)實(shí)的、高度可用的測試環(huán)境,不會導(dǎo)致任何隱私的損害。