單元測試實踐小結[7] 軟件測試
第二個問題如何測試:
0. 測試數據準備
可以將BA準備的數據導出。在利用Excel編輯產生一批數據。但是每個UnitTest測試本身應該focus一個關注點上,所以每個UnitTest的數據保持在較少的水平上。另外由于DBUnit導入數據的順序是依據sheet的順序的,請注意把所有外鍵表在前,否則插入數據時,會報外鍵不存在錯誤。
1. 數據庫的選擇
a.可以直接用小組用的開發數據庫。優點:現成的, 所有schema都建好了。缺點:目前數據庫的數據干凈性無法保證,連接速度太慢。
b.使用hsqldb。優點:利用其內存模式,可以隨測試程序啟動,簡單小巧,schema可以自行定義,每人各自一套互不影響。 缺點:無法提供PLSQL支持。出于UnitTest本身的要求,以及性能上考量,大部分情況下,建議使用hsqldb,對于涉及到PLSQL的,需要mock處理。
2.測試hbm
利用hsqldb內存數據庫,在setup的時候,利用hibernate的SchemaExport工具類,將hbm導出成數據庫的schema,如果有確實有潛在問題,那么測試程序將不通過。
3.測試Dao
很簡單了,調用dao程序操作。對于save,update和delete操作的。需要利用原始的connection執行查詢驗證。對于組合查詢的和邏輯排序的,就是一般的做法了。
4.在使用DBUnit時,測試非只讀操作時,我們經常會采用 DatabaseOperation.CLEAN_INSERT 策略.在關聯表比較多時,效率會很差.因為每次setUp,tearDown時都會重新先Delete,再Insert所有的數據.另外,我們還有一種數據庫操作測試的策略,就是使用真實數據庫,在每次操作完畢后都回滾事務.
文章來源于領測軟件測試網 http://www.anti-gravitydesign.com/