JBuilder2005單元測試之創建測試固件
一個產品只有透過檢驗才能投放市場,同樣的,一個業務類也只有在經驗測試後才能保證功能的正確性,以便被其他類或程序調用,否則隱藏其中的Bug就蔓延開了。業務功能點測試是測試人員的職責,但業務類API的正確性必須由開發人員保證。
回憶一下最近你所開發的系統,往往一個最難忘的情節是通宵達旦地毯式搜尋某個刁專的Bug,歷盡千辛萬苦,最終找到並解決了它。查找一個隱藏的Bug往往是踏破鐵蹄無覓處,而找到後卻是:解決全不費功夫。
造成這尷尬窘局有以下幾點原因:
其一是使用增量式測試策略,即先編寫功能代碼,在模組開發完畢後纔回過頭來編寫測試用例,因爲一個功能模組可能包含許多相互關聯的類,形成了層層調用,交錯複雜的調用網絡,一旦發現了Bug,只得查戶口似的逐一排查,其艱辛程度可想而知。
其二是使用不正確的測試方法,如在每個類中提供一個main()測試函數,對類中的功能方法進行測試,透過執行類的main()方法檢視類功能的正確性。在某種程序上,這或許是一個值得讚揚的工作習慣,但工作方式卻不足取。因爲每個類都必須單獨執行,以執行其測試功能,並由開發人員觀察測試的正確性。隨着程序規模的擴大,類數目直線上升,原有的類也會發生代碼的調整,一些功能點可能就變成了漏網之魚,變成了茫茫"類"海里的黑戶口,將來"違法亂紀"起來就很難監控了。
針對這些傳統測試思想的不足,測試先行、頻繁測試、自動測試的測試思想被越來越多的開發人員所接受並付諸實踐。
測試先行乍聽起來有點讓人不可思議,一件東西還沒有做出來就想着怎麼去測試它?仔細分析,這並不荒唐,因爲這讓你在設計類時,站在調用者的角度去理解類的對外接口,迫使你深入理解類的外在關係,考慮接口的用途,而在具體編寫程序時纔去具體考慮內部實現細節,這樣設計出接口將更易使用,結構也會更趨合理。
頻繁測試,即指測試不應當是階段性的工作,而應當在程序編寫過程中不斷進行。因爲系統中的類之間往往都存在較多的關聯關係,當更改了類的`功能時,往往會有多個類受到直接或間接的影響。所以你應該頻繁測試以及早發現這種因功能、調整而引起的Bug,越早發現錯誤解決它的代價越小。頻繁測試也是XP編程的一個重要環節,XP編程總讓人覺得他們注重功能實現而忽視測試,其實他們也非常關注測試,畢竟測試可以使他們儘可能快的穩步前進。
所謂自動測試並不是說有一個工具可以讓你像安檢器一樣,自動測試出你類中的問題。而是指應用一定的測試框架,爲每個業務類編寫獨立的測試用例,類代碼調整後,對應的測試用例同步調整。多個測試用例組成一個測試套件一起批量執行,它們就像一個強大的Bug嗅探器,一旦發現Bug就會輸出特定的資訊報告錯誤,只要一個測試用例沒有透過測試就說明程序中有問題。測試用例中所包含的測試規則完成由你定製,這個測試套件對Bug嗅探的"靈敏度"完全取決於測試用例的測試規則,框架提供編寫和執行測試用例的規範性方法。
在編寫一個業務類時,需要相應編寫對應的測試用例,一開始挺招"慣性定律"牴觸的,因爲它要求你將創建一個測試用例類,似乎需要更多的工作。但你的付出是會得到加倍回報的,隨着軟件類規模的增大你會發現,當傳統測試方法越來越捉襟見肘,窮於應付時,基於測試框架的測試技術依然"談笑自如"。當然別人這麼說,我們也不應當馬上就深信不疑,疑惑永遠是值得推崇的科學精神,我們應該透過自己的實踐卻真真切切地體會這種改進所帶來的快樂。
-
小學語文六年級複習題
要想學習好,死記硬背是遠遠不夠的,多做試題是難免的,這樣才能夠掌握各種試題類型的解題思路,在考試中應用自如。下面是小編爲大家整理的小學語文六年級複習題,僅供參考,歡迎閱讀。第一單元一、看拼音寫詞語nuóyízhēngróngyóusīchāyāngkūwěi()()()()()jīyèxìngéry...
-
《冬荷》閱讀練習題及答案
①冰掐滅了一湖的波浪。又冰上加雪。荷的屍骨就這樣狼藉在冰雪的湖面上,肢折頭斷,東倒西歪,稀稀落落。②蒼涼。落寞。好像這裏從來就沒有過擠擠挨挨、漲潮似的荷葉,沒有過大火一樣燃了一湖的荷花,也沒來過那隻在尖角小荷上立了近千年的蜻蜓。③湖,真的死去了嗎?④但...
-
數學五年級北師大版上冊第一單元複習要點歸納
第一節數的認識本節知識點總結:1.自然數:像0,1,2,3,4,5,6······這樣的數叫自然數。2.整數:像-3,-2,-1,0,1,2,3······這樣的數叫整數。3.倍數和因數:4x5=20中,4和5是20的因數,20是4和5的倍數;45x2=90中,45和2是90的因數,90是45和2的倍數。第二節2和5的倍數...
-
鄂教版一年級語文上冊第五單元測試卷
一、填空,書寫要規範。(書寫分5分)lèchūqùshēnɡshūxiě快學zuòyèdōnɡxihépínɡháishìrènzhēnduānzhènɡshǐyònɡtāmen真端使xiǎoniǎozhènɡzàikěshìyuándīnɡ園二、給下面的字填上聲母或韻母。()ì()iǎod()z()h()是鳥丁總歡x()d(...