iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 18
0
DevOps

DevOps平台的能力架構系列 第 18

Day18 - Continuous Testing - Service Virtualization (Part 1)

https://ithelp.ithome.com.tw/upload/images/20201003/20129694gjONqjRI90.jpg

前幾篇探討了測試資料管理的各種運用方式,不過製造測試資料不管在時間,人力和儲存上都是最貴的選擇。在開發和測試環境中比較有效率的方法是製造虛擬的API服務 (Virtual Services)。

流程說明:

  1. 為相關的第三方或開發中系統創建虛擬服務
  2. 對於絕對需要更新第三方系統資料的交易,可以繞過虛擬服務,直接連到實際服務

現在回到我們的網銀例子來看Virtual Services如何運作。下圖可見我們有Prod(紫色),Test(橘色),和Dev(綠色)三個不同環境。裡面只有Prod能接到Visa和Mastercard的服務(藍色)
https://ithelp.ithome.com.tw/upload/images/20201003/20129694n8TP9HQ808.jpg

開發和測試團隊在過程中有可能遇到的情況有:
情況1
https://ithelp.ithome.com.tw/upload/images/20201003/20129694eQOJgIKmGT.jpg
網站開發者(Dev2)在寫網頁時需要的其他服務,Account Service和Transaction Service,也正在開發中。
Dev2在Dev1和Dev3開發完成前無法測試網頁功能。

這時候如果我們為Account Service和Transaction Service製造虛擬服務的話,Dev1就可以提早測試網頁的邏輯功能,當其他服務開發完成後需要的修改也會比較少。
https://ithelp.ithome.com.tw/upload/images/20201003/20129694NrAzPqQ4Yf.jpg

情況2:
https://ithelp.ithome.com.tw/upload/images/20201003/20129694ap4FZaaTKt.jpg
Dev1在開發Account Service時,需要連到Visa和Mastercard的服務,不過要跟Visa和Mastercard申請測試區域需要一段時間,而且每次運用時還需要收費。在開發過程中常需要修改和連線,這樣下來也是一筆不小的開銷。而在不同的SIT環境中也會遇到同樣的問題。

所以解決方法是製造Visa和Mastercard的虛擬服務,運用在開發和SIT環境上,然後到UAT時再連結到實際的服務上。
https://ithelp.ithome.com.tw/upload/images/20201003/201296947wno5HrUA1.jpg

預期效益

  1. 減少了第三方系統的資料供應時間
  2. 更早完整測試系統
  3. 更好地控制資料狀態並減少資料研究和驗證時間

不過我在跟developer提到virtual service時,最常聽到的一句話是 "我可以很快的stub或mock那個部分,為什麼需要另外製造一個virtual service呢?"

下一篇來看一個virtual service如何被製造和它的功能與stub/mock有何不同。

< 上一篇 Day17 - Continuous Testing - Test Data (Part 5 - Synthetic Data Generation)
> 下一篇 Day19 - Continuous Testing - Service Virtualization (Part 2)


上一篇
Day17 - Continuous Testing - Test Data (Part 5 - Synthetic Data Generation)
下一篇
Day19 - Continuous Testing - Service Virtualization (Part 2)
系列文
DevOps平台的能力架構19

尚未有邦友留言

立即登入留言