哪吒2之魔童闹海|哪吒2之魔童归来免费观看|哪吒2在线观看|哪吒2魔童闹海电影免费观看|哪吒2免费观看完整版大电影|哪吒1免费观看完整版

新疆軟件開發(fā)

本站首頁(yè) 軟件開發(fā) 成功案例 公司新聞 公司簡(jiǎn)介 客服中心 軟件技術(shù) 網(wǎng)站建設(shè)
  您現(xiàn)在的位置: 新疆二域軟件開發(fā)公司 >> 開發(fā)語(yǔ)言 >> 文章正文

軟件測(cè)試技術(shù):一個(gè)好的單元測(cè)試標(biāo)準(zhǔn)

             單元測(cè)試是保證代碼質(zhì)量最基本的手段,但是現(xiàn)在的開發(fā)中卻對(duì)單元測(cè)試不夠重視。有的人認(rèn)為編譯器就是我們的代碼質(zhì)量保證,還有的人認(rèn)為正確的調(diào)試就是測(cè)試,還有的人認(rèn)為使用這個(gè)軟件就是測(cè)試,這樣的認(rèn)識(shí)都是存在問題的。下面講講怎么樣的單元測(cè)試才是好的單元測(cè)試。
單元測(cè)試應(yīng)該準(zhǔn)確、快速地保證程序基本模塊的正確性。下面是驗(yàn)證單元測(cè)試好壞的一系列標(biāo)準(zhǔn):
     一、  單元測(cè)試應(yīng)該在最低的功能/參數(shù)上驗(yàn)證程序的正確性;
     單元測(cè)試應(yīng)該測(cè)試程序中最基本的單元——如C#中的類,在此基礎(chǔ)上,可以測(cè)試一些系統(tǒng)中最基本的功能點(diǎn)(這些功能點(diǎn)由幾個(gè)基本類組成),從面向?qū)ο蟮脑O(shè)計(jì)原理出發(fā),系統(tǒng)中最基本的功能點(diǎn)也應(yīng)該由一個(gè)類及其方法來表現(xiàn)。單元測(cè)試要測(cè)試API中的每一個(gè)方法及每一個(gè)參數(shù)。
     二、 單元測(cè)試必須由最熟悉代碼的人(程序的作者)來寫;
代碼的作者最了解代碼的目的、特點(diǎn)和實(shí)現(xiàn)的局限性。所以沒有比作者更合適的人選。

就算作者沒有時(shí)間寫測(cè)試代碼,也應(yīng)該對(duì)此單元測(cè)試進(jìn)行負(fù)責(zé)。
     三、 單元測(cè)試過后,機(jī)器狀態(tài)保持不變;
如果單元測(cè)試創(chuàng)建了臨時(shí)的文件或者目錄,在數(shù)據(jù)庫(kù)中創(chuàng)建或修改了記錄,都要?jiǎng)h除臨時(shí)數(shù)據(jù)。保證單元測(cè)試可以重復(fù)快速進(jìn)行;
     四、  單元測(cè)試要快(一個(gè)測(cè)試運(yùn)行時(shí)間是幾秒鐘,而不是幾分鐘);
快,才能保證效率。一個(gè)軟件中有幾十個(gè)基本模塊(類),每個(gè)模塊又有幾個(gè)方法,基本上要求一個(gè)類的測(cè)試在幾秒鐘內(nèi)完成。如果軟件有相互獨(dú)立的幾個(gè)層次,那么在測(cè)試組中進(jìn)行分類,分類進(jìn)行測(cè)試。比如我只修改了“用戶界面”的代碼,我只需要運(yùn)行“用戶界面”的單元測(cè)試。
     五、  單元測(cè)試應(yīng)該產(chǎn)生可重復(fù),一致的結(jié)果;
如果單元測(cè)試的結(jié)果是錯(cuò)的,那一定是程序出了問題,而且這個(gè)錯(cuò)誤一定是可以重復(fù)的。一般情況下不要使用隨機(jī)數(shù)以增加測(cè)試的真實(shí)性。
    六、  獨(dú)立性,單元測(cè)試的運(yùn)行/通過/失敗不依賴于別的測(cè)試,可以人為構(gòu)造數(shù)據(jù)以保持單元測(cè)試的獨(dú)立性;
程序中的各個(gè)模塊都是相互依賴的,一般情況下,單元測(cè)試中的模塊可以直接引用其它的模塊,并期待其它的模塊能返回正確的結(jié)果。如果其它模塊很不穩(wěn)定、未完成,或者運(yùn)行比較費(fèi)時(shí),這是可以人為地構(gòu)造數(shù)據(jù)以保證這個(gè)單元測(cè)試的獨(dú)立性。
     七、  單元測(cè)試應(yīng)該覆蓋所有的代碼路徑,包括錯(cuò)誤處理路徑,為了保證單元測(cè)試的代碼覆蓋率,單元測(cè)試必須測(cè)試公開的和私有的函數(shù)/方法;
如果你的模塊中某個(gè)錯(cuò)誤處理路徑很難到達(dá),那你要想想是否可以把這個(gè)錯(cuò)誤處理拿掉。要注意一點(diǎn):100%的代碼覆蓋率并不等同于100%的正確性。
     八、  單元測(cè)試應(yīng)該集成到自動(dòng)測(cè)試的框架中;
一個(gè)重要的措施是要把測(cè)試自動(dòng)化,這樣每個(gè)人都能很容易地運(yùn)行單元測(cè)試。團(tuán)隊(duì)一般在每日構(gòu)建(在敏捷開發(fā)中要求每天都能夠提供一個(gè)可以運(yùn)行的版本進(jìn)行構(gòu)建)中運(yùn)行單元測(cè)試,這樣每個(gè)單元測(cè)試的錯(cuò)誤就能及時(shí)發(fā)現(xiàn)并得到修改。
     九、  單元測(cè)試必須和產(chǎn)品代碼一起保存和維護(hù)。

單元測(cè)試必須和代碼一起進(jìn)行版本維護(hù)。如果不是這樣,過一陣代碼和單元測(cè)試就會(huì)出現(xiàn)不一致,而且所有代碼的作者要花時(shí)間來確認(rèn)那些是程序出現(xiàn)的錯(cuò)誤,那些是由于單元測(cè)試更新滯后造成的錯(cuò)誤。這樣就失去了單元測(cè)試的意義,同時(shí)又給大家增加了負(fù)擔(dān)。如此折騰多次以后,大家就會(huì)覺得維護(hù)單元測(cè)試是一件很費(fèi)時(shí)費(fèi)力的事。

作者:未知 | 文章來源:未知 | 更新時(shí)間:2008-1-15 16:39:34

  • 上一篇文章:

  • 下一篇文章:

  • 相關(guān)文章:
    怎樣在SharpDevelop2.2環(huán)境中進(jìn)行程序單元測(cè)試
    軟件技術(shù)
    · 開發(fā)語(yǔ)言
    · Java技術(shù)
    · .Net技術(shù)
    · 數(shù)據(jù)庫(kù)開發(fā)
    最新文章  
    ·搜集整理的asp.net的驗(yàn)證方
    ·各種FOR循環(huán)結(jié)構(gòu)的整理
    ·軟件項(xiàng)目開發(fā)中應(yīng)該考慮那
    ·搜集整理的javascript sel
    ·軟件開發(fā)中項(xiàng)目經(jīng)理有那些
    ·學(xué)習(xí)如何在Lambda表達(dá)式進(jìn)
    ·C++基礎(chǔ)知識(shí):結(jié)構(gòu)體數(shù)據(jù)的
    ·C#實(shí)現(xiàn)短信發(fā)送程序的例子
    ·sun最近修補(bǔ)了一部分java的
    ·rss定制的另外一種實(shí)現(xiàn)方式
    ·delphi實(shí)現(xiàn)利用arp欺騙來實(shí)
    ·基礎(chǔ)學(xué)習(xí):基于WF的流程框
    ·網(wǎng)絡(luò)編程中怎樣得知一次數(shù)
    ·如何逆序輸出單鏈表?
    ·軟件開發(fā)過程中的性能設(shè)計(jì)
    關(guān)于我們 | 軟件開發(fā) | 下載試用 | 客服中心 | 聯(lián)系我們 | 友情鏈接 | 網(wǎng)站地圖 | 新疆電子地圖 | RSS訂閱
    版權(quán)所有 © 2016 新疆二域軟件開發(fā)網(wǎng) www.pg11qqq.com All Rights Reserved 新ICP備14003571號(hào)
    新疆軟件開發(fā)總機(jī):0991-4842803、4811639.
    客服QQ:596589785 ;地址:新疆烏魯木齊北京中路華聯(lián)大廈A-5C 郵編:830000