iT邦幫忙

0

後端如何做與資料庫相關的自動化整合測試?

  • 分享至 

  • xImage

想請問一下,我目前想到的方法是這樣:

1.測試資料庫開兩個,一個是給手動測試的,另外一個是給自動化測試的

2.部屬時,會將自動測試的資料庫清空,然後依序執行測試

我個人對這樣不滿的地方在於,這樣子每個測試對上一步嚴重依賴,如果今天中間要插入其他測試,等於要檢查所有的測試資料,回傳的值也要重新檢查

請問有甚麼好方法可供參考?

圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 個回答

1
Ray
iT邦大神 1 級 ‧ 2023-01-07 12:04:34
  1. 自動測試啟動之後, 就會一路跑到完, 中間怎麼會讓你有機會插入其他測試? 如果你把自動測試到一半的東西停下來, 那這個測試就不能算數了, 你再去跑的都要算新的測試, 重頭做起

  2. 手動測試的測試環境, 應該是給這批測試的對象專用, 所以也不應該有中間插進來測試的問題; 有其他的新的測試要做, 請她另開一個根據她測試目的專屬的測試環境去測, 不應該跑來人家設計好的測試環境插隊測.

  3. 如果不能多開測試環境, 只能有一個讓所有不同目的人都可以測, 那當初在設計這個環境的時候, 就應該要有動態自適應能力 (Dynamic Adpative), 可以自我隔離不同的測試批次, 在同一個環境裡面同時執行不同批次的測試.

你應該調整組織的制度或設計, 選擇以上三種情境之一來使用.

d630200x iT邦新手 5 級 ‧ 2023-01-07 13:11:36 檢舉

我所謂中間插入測試的意思是:在開發流程中依據新加入的功能會有新的測試,而這些測試可能會插入在原本的流程中,這樣等於我的測試程式也要不斷更動維護,我覺得很麻煩

Ray iT邦大神 1 級 ‧ 2023-01-07 15:36:49 檢舉

新功能本來就需要有新測試, 不然你要如何測到這個功能?

既然新測試跑不到, 就沒有閃躲的空間; 你不寫, 也要有某個人出來寫; 如果權責在你身上, 那就跑不掉; 不過, 通常我們都會要求 RD 要自己寫好 Unit Test 程式, 才能交給 QA 去做測試. 所以 QA 只是在整合各段 UT 變成自動化的 SIT 而已, 不需要花太多時間去寫 UT

測試程式原本就應該有版控, 通常比較難拿一個通用的測試程式, 去側開發過程新增的各種需求.

如果有版控的話, 那就是:
RD Branch v0.1 -> 套用 Test Branch v0.1
RD Branch v0.2 -> 套用 Test Branch v0.2
RD Branch v0.3 -> 套用 Test Branch v0.3

但是你的 Test v0.1 到 0.2 (或是 0.2 到 0.3), 應該不需要改太多, 只要新增新功能的 UT 部分就可以.

這樣即使 RD v0.1 還在測試, 你也不需要去改 test v0.1, 而是另外 folk 一版 test code 出來, 新開 test v0.2 branch 去測才對. 所以兩個版本原本就可以同時間同時受測.

這種做法, 不管你們是用 MicroService 還是 Monolithic 架構開發, 都可以應付得來.

總之, 沒有甚麼測試程式是可以:
只寫一次, 就適用從現在到未來的所有版本.
你非得改寫不可.

d630200x iT邦新手 5 級 ‧ 2023-01-07 17:01:26 檢舉

好吧,看來是我的預期錯誤,我本來是想說能以類似unit test的方式來切割每個case,然後以堆疊的方式來完善測試,感謝你的說明

我要發表回答

立即登入回答