iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 17
0
DevOps

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

Day17 - Continuous Testing - Test Data (Part 5 - Synthetic Data Generation)

https://ithelp.ithome.com.tw/upload/images/20201002/20129694XMEwFwyD8B.jpg
在數據涵蓋率不足或是在開發新功能時就需要利用生成/合成資料(Synthetic Data Generation)能力了。

下圖是data generation的architectural diagram。在這個情況裡我們不需要連結到prod就可以由資料管理系統(紅色)直接生成到開發(綠色)以及測試(橘色)環境中。
https://ithelp.ithome.com.tw/upload/images/20201002/20129694wP0X5Y7wCf.jpg

流程說明

  1. 能夠生成資料庫記錄以補充或替換現有測試資料
  2. 保持參照完整性(referential integrity)
  3. 提供新功能的資料
  4. 通過資料庫插入進行插入,API自動化
  5. 補充了子集和遮罩的流程,難以重新創建記錄

TDM預期收益

  1. 通過自動化更快地提供測試資料
  2. 提高資料質量
  3. 增強安全合規性

注意事項

  1. 要填充的資料表數量
  2. 資料庫table之間關係的複雜性

我們來看一下測試或開發人員實際操作的例子。

  1. 進入資料生成功能
    https://ithelp.ithome.com.tw/upload/images/20201002/20129694I1dWAlDVJx.jpg

  2. 選擇所有相關的資料表
    https://ithelp.ithome.com.tw/upload/images/20201002/20129694HQAM4rt5sC.jpg

  3. 填入生成資料的規則。以姓名為例,我們先讓系統自動從內建的名字中隨機選出一個
    https://ithelp.ithome.com.tw/upload/images/20201002/20129694sgSkiWpIlY.jpg
    在全名資料欄位我們可以連到名字欄和姓氏欄
    https://ithelp.ithome.com.tw/upload/images/20201002/20129694VqFw9Gd8Wx.jpg

  4. 所有必續的資料欄都設定好後就可以讓系統隨時生成資料了。在這裡我們可以選擇要製造到哪一個資料庫或到文件上(例如csv, json等)
    https://ithelp.ithome.com.tw/upload/images/20201002/20129694YwF80BbKBd.jpg

關於測試資料管理還有很多可以探討的,不過如果開發過程中需要的是其他程式的API呢?

下一篇我們就來討論如何確保後端服務隨時可以取得聯繫以支持測試和開發團隊。

< 上一篇 Day16 - Continuous Testing - Test Data (Part 4 - Subset and Mask)
> 下一篇 Day18 - Continuous Testing - Service Virtualization (Part 1)


上一篇
Day16 - Continuous Testing - Test Data (Part 4 - Subset and Mask)
下一篇
Day18 - Continuous Testing - Service Virtualization (Part 1)
系列文
DevOps平台的能力架構19

尚未有邦友留言

立即登入留言