讓軟件測試也可以變得有趣的措施[3] 軟件測試
單元測試與功能測試的界限
通常單元測試與功能測試之間并沒有明確的界限。老實說,有時我也不清楚這個界限在什么位置。在編寫單元測試時,我根據以下原則來確定當前編寫的單元測試實際上是否是功能測試:
如果單元測試跨越類邊界,則它就可能是功能測試。
如果單元測試變得很復雜,則它可能是功能測試。
如果單元測試很脆弱(也就是說,雖然它是一個有效測試,但它必須不斷改變以處理不同的用戶組合),則它可能是功能測試。
如果編寫單元測試比編寫其所測試的代碼更難,則它可能是功能測試。
請注意“它可能是功能測試”這一措辭。本文無法提供硬性而快速的規則。單元測試與功能測試中之間有一個界限,但界限的具體位置要由您來確定。您用單元測試用得越熟練,某個特定測試是單元測試還是功能測試的界限就越明顯。
小結
單元測試是從開發人員的角度出發編寫的,并且關注的是所測試的類的特定方法。當編寫單元測試時,請使用以下這些原則:
首先編寫單元測試,然后再編寫要測試的類代碼
在單元測試中捕獲代碼注釋。
測試所有執行“令人感興趣的”功能(即,不是 getter 和 setter,除非它們以某種獨特的方式執行獲取和設置操作)的公共方法。
將每個測試實例與它要測試的類放在同一個包內,以獲得對包成員和保護成員的訪問權。
避免在單元測試中使用特定于域的對象。
功能測試是從用戶的角度出發編寫的,并且關注用戶感興趣的系統行為。找一個優秀的功能測試框架,或者開發一個測試框架,并使用這些功能測試識別用戶的真實需求。這樣,功能測試人員即可獲得一種自動化工具以及使用這一工具的著手點。
使單元測試和功能測試成為您開發過程中的中心環節。如果您這樣做了,您將對系統的運行及擴展充滿信心。如果您沒有這樣做,您對系統就沒有十足的把握。測試可能不那么有趣,但是在開發過程中進行單元測試和功能測試使開發變得相當有趣。
文章來源于領測軟件測試網 http://www.kjueaiud.com/