原創(chuàng)|行業(yè)資訊|編輯:龔雪|2014-03-17 09:37:21.000|閱讀 630 次
概述:單元測試在整個軟件測試工程中非常重要,本文總結(jié)了單元測試需要注意的一些事項。
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
相關(guān)鏈接:
作為一名優(yōu)秀的程序員,應(yīng)該知道單元測試的重要性。整個軟件測試工程,單元測試是基礎(chǔ),做好單元測試勢在必行。
小編從網(wǎng)絡(luò)和程序員處收集了大量的單元測試注意事項,以供參考。
1 保持單元測試小巧, 快速
理論上, 任何代碼 Check-in 之前都應(yīng)該把所有測試套件完整的跑一遍。 所以保持測試代碼輕快能減少開發(fā)迭代周期。
2 單元測試應(yīng)該是全自動/非交互式的
測試套件通常是定期執(zhí)行的, 執(zhí)行過程也必須是完全自動化才有意義。 輸出結(jié)果需要人工檢查的測試不是一個好的單元測試。
3 讓單元測試很容易跑起來
對開發(fā)環(huán)境進行配置, 最好是敲一條命令或是點擊一個按鈕就能把單個測試用例和測試套件跑起來。
4 對測試進行評估
對執(zhí)行的測試進行覆蓋率分析, 以便得到精確的代碼執(zhí)行覆蓋率, 調(diào)查哪些代碼未被執(zhí)行。
5 立即修正失敗的測試
每個開發(fā)人員都應(yīng)該保證新 Check-in 的測試用例能夠跑成功, 并且當(dāng)有代碼 Check-in 現(xiàn)有測試用例也都能跑通過。
6 把測試維持在單元級別
單元測試即類 (Class) 的測試。 一個 “測試類” 應(yīng)該只對應(yīng)于一個 “被測類”, 并且對 “被測類” 行為的測試環(huán)境應(yīng)該是隔離的。 必須謹(jǐn)慎的避免使用單元測試框架來測試整個程序的工作流, 這樣的測試即低效又難維護。 工作流測試 (譯注: 指跨模塊/類的數(shù)據(jù)流測試) 有它自己的地盤, 但它絕不是單元測試, 必須單獨設(shè)置和執(zhí)行。
7 由簡入繁
再簡單的測試也遠遠勝過完全沒有測試。 一個簡單的 “測試類” 會促使建立 “被測類” 基本的測試骨架, 可以對構(gòu)建環(huán)境, 單元測試環(huán)境, 執(zhí)行環(huán)境以及覆蓋率分析工具等有效性進行檢查, 同時也確保 “被測類” 能夠整合并被調(diào)用。
下面便是單元測試版的 Hello, world! :
void testDefaultConstruction() { Foo foo = new Foo(); assertNotNull(foo); }
8 保持測試的獨立性
為了保證測試穩(wěn)定可靠且便于維護, 測試用例之間決不能有相互依賴, 也不能依賴執(zhí)行的先后次序。
9 測試類的控制
大部分C++和 Python 庫均把測試代碼從功能代碼目錄中獨立出來, 通常是創(chuàng)建一個和 src 目錄同級的 tests 目錄, 被測模塊/類名之前也常常 不加 Test 前綴。 這么做保證功能代碼和測試代碼隔離, 目錄結(jié)構(gòu)清晰, 并且發(fā)布源碼的時候更容易排除測試用例。
10 合理的命名測試用例
確保每個測試方法只測試 “被測類” 的一個明確特性, 并且相應(yīng)的給測試方法命名。 典型的命名俗定是 test[what], 比如 testSaveAs(),testAddListener(), testDeleteProperty() 等。
本站文章除注明轉(zhuǎn)載外,均為本站原創(chuàng)或翻譯。歡迎任何形式的轉(zhuǎn)載,但請務(wù)必注明出處、不得修改原文相關(guān)鏈接,如果存在內(nèi)容上的異議請郵件反饋至chenjj@fc6vip.cn