單元測試
單元測試(unit testing),是指對軟件中的最小可測試單元進行檢查和驗證。對于單元測試中單元的含義,一般來說,要根據(jù)實際情況去判定其具體含義,如C語言中單元指一個函數(shù),Java里單元指一個類,圖形化的軟件中可以指一個窗口或一個菜單等。總的來說,單元就是人為規(guī)定的最小的被測功能模塊。單元測試是在軟件開發(fā)過程中要進行的最低級別的測試活動,軟件的獨立單元將在與程序的其他部分相隔離的情況下進行測試。
在一種傳統(tǒng)的結(jié)構化編程語言中,比如C,要進行測試的單元一般是函數(shù)或子過程。在像C++這樣的面向?qū)ο蟮恼Z言中, 要進行測試的基本單元是類。對Ada語言來說,開發(fā)人員可以選擇是在獨立的過程和函數(shù),還是在Ada包的級別上進行單元測試。單元測試的原則同樣被擴展到第四代語言(4GL)的開發(fā)中,在這里基本單元被典型地劃分為一個菜單或顯示界面。
經(jīng)常與單元測試聯(lián)系起來的另外一些開發(fā)活動包括代碼走讀(Code review),靜態(tài)分析(Static analysis)和動態(tài)分析(Dynamic analysis)。靜態(tài)分析就是對軟件的源代碼進行研讀,查找錯誤或收集一些度量數(shù)據(jù),并不需要對代碼進行編譯和執(zhí)行。動態(tài)分析就是通過觀察軟件運行時的動作,來提供執(zhí)行跟蹤,時間分析,以及測試覆蓋度方面的信息。
基本介紹
單元測試(模塊測試)是開發(fā)者編寫的一小段代碼,用于檢驗被測代碼的一個很小的、很明確的功能是否正確。通常而言,一個單元測試是用于判斷某個特定條件(或者場景)下某個特定函數(shù)的行為。
折疊編輯本段測試介紹
在一種傳統(tǒng)的結(jié)構化編程語言中,比如C,要進行測試的單元一般是函數(shù)或子過程。在象C++這樣的面向?qū)ο蟮恼Z言中, 要進行測試的基本單元是類。對Ada語言來說,開發(fā)人員可以選擇是在獨立的過程和函數(shù),還是在Ada包的級別上進行單元測試。單元測試的原則同樣被擴展到第四代語言(4GL)的開發(fā)中,在這里基本單元被典型地劃分為一個菜單或顯示界面。
經(jīng)常與單元測試聯(lián)系起來的另外一些開發(fā)活動包括代碼走讀(Code review),靜態(tài)分析(Static analysis)和動態(tài)分析(Dynamic analysis)。靜態(tài)分析就是對軟件的源代碼進行研讀,查找錯誤或收集一些度量數(shù)據(jù),并不需要對代碼進行編譯和執(zhí)行。動態(tài)分析就是通過觀察軟件運行時的動作,來提供執(zhí)行跟蹤,時間分析,以及測試覆蓋度方面的信息。
折疊單元測試
單元測試(模塊測試)是開發(fā)者編寫的一小段代碼,用于檢驗被測代碼的一個很小的、很明確的功能是否正確。通常而言,一個單元測試是用于判斷某個特定條件(或者場景)下某個特定函數(shù)的行為。例如,你可能把一個很大的值放入一個有序list 中去,然后確認該值出現(xiàn)在list 的尾部?;蛘?,你可能會從字符串中刪除匹配某種模式的字符,然后確認字符串確實不再包含這些字符了。
單元測試是由程序員自己來完成,最終受益的也是程序員自己。可以這么說,程序員有責任編寫功能代碼,同時也就有責任為自己的代碼編寫單元測試。執(zhí)行單元測試,就是為了證明這段代碼的行為和我們期望的一致。
工廠在組裝一臺電視機之前,會對每個元件都進行測試,這,就是單元測試。
其實我們每天都在做單元測試。你寫了一個函數(shù),除了極簡單的外,總是要執(zhí)行一下,看看功能是否正常,有時還要想辦法輸出些數(shù)據(jù),如彈出信息窗口什么的,這,也是單元測試,把這種單元測試稱為臨時單元測試。只進行了臨時單元測試的軟件,針對代碼的測試很不完整,代碼覆蓋率要超過70%都很困難,未覆蓋的代碼可能遺留大量的細小的錯誤,這些錯誤還會互相影響,當BUG暴露出來的時候難于調(diào)試,大幅度提高后期測試和維護成本,也降低了開發(fā)商的競爭力??梢哉f,進行充分的單元測試,是提高軟件質(zhì)量,降低開發(fā)成本的必由之路。
對于程序員來說,如果養(yǎng)成了對自己寫的代碼進行單元測試的習慣,不但可以寫出高質(zhì)量的代碼,而且還能提高編程水平。
要進行充分的單元測試,應專門編寫測試代碼,并與產(chǎn)品代碼隔離。我認為,比較簡單的辦法是為產(chǎn)品工程建立對應的測試工程,為每個類建立對應的測試類,為每個函數(shù)(很簡單的除外)建立測試函數(shù)。首先就幾個概念談談我的看法。
關于我們 | 友情鏈接 | 網(wǎng)站地圖 | 聯(lián)系我們 | 最新產(chǎn)品
浙江民營企業(yè)網(wǎng) peada.cn 版權所有 2002-2010
浙ICP備11047537號-1