測試軟體的Backend Job時通常除了確認Job執行可以正常之外(包含獲得正確的結果),必須要記住有一測試點一定要考慮到: Job的批次處理特性。這意味著測試Job時必須多驗證Job的不可中斷性。
什麼是Job ? Job就是在固定周期內會按時執行一特定任務的程序,通常他是批次的,也就是他執行的目標對象通常不會只有一個,而是有很多個執行對象需要處理,例如每個月第一天執行一次Summarize 上月份的每日營運報表,執行對象就有上個月30個工作日。
Job因為需要執行批次任務,所以必然會是連續一個接著一個對象處理,這時就有必要測試Job得不可中斷性: 當其中一個對象物件處理失敗時,Job必須確保能夠繼續往下執行仍未處理的對象物件,而不能因為某一個對象物件拋出錯誤就終止任務,如此Job等於沒有任何產出,即便它已經處理了90%的對象物件。
所以必須有一個Test C樣的: 當我的Job處理某筆資料時,該筆資料處理結果若拋出錯誤或異常,Job仍然可以忽略該錯誤的發生而繼續往下執行,如果該錯誤會造成Job後續執行結果都是錯誤的,那就要保證Job可以還原之前執行過的資料然後停止任務。
也就是Job遇到局部性的錯誤時要有不可中斷性,而且如果該錯誤會造成資料錯亂,Job就應該立即停止且還原已處理的資料,即資料的完整性不能因為Job運行而遭到破壞。
最後如果Job 是算力密集的,那麼壓力測試可能就是另外一個需要考慮的點,但一般我情況下,驗證Job除了確保其可以正常工作外,也必須製作有問題的測試資料讓Job處理來驗證其不可中斷性的基本要求。
2024年6月5日星期三
留言列表