亚洲好骚综合-亚洲黄色录像-亚洲黄色网址-亚洲黄色网址大全-99久久99久久-99久久99久久精品国产

您的位置:軟件測試 > 開源軟件測試 > 開源單元測試工具 > junit
JUnit測試教程
作者:網絡轉載 發布時間:[ 2013/8/26 14:42:48 ] 推薦標簽:

長期以來,我所接觸的軟件開發人員很少有人能在開發的過程中進行測試工作。大部分的項目都是在終驗收的時候編寫測試文檔。有些項目甚至沒有測試文檔。現在情況有了改變。我們一直提倡UML、RUP、軟件工程、CMM,目的只有一個,提高軟件編寫的質量。舉一個極端的例子:如果你是一個超級程序設計師,一個傳奇般的人物。(你可以一邊喝咖啡,一邊聽著音樂,同時編寫這操作系統中關于進程調度的模塊,而且兩天時間內完成了!)我真得承認,有這樣的人。(那個編寫UNIX中的vi編輯器的家伙是這種人。)然而非常遺憾的是這些神仙們并沒有留下如何修成正果的README。所以我們這些凡人--在同一時間只能將注意力集中到若干點(據科學統計,我并不太相信,一般的人只能同時考慮多7個左右的問題,高手可以達到12個左右),而不能既縱覽全局又了解細節--只能期望于其他的方式來保證我們所編寫的軟件質量。
為了說明我們這些凡人是如何的笨。有一個聰明人提出了軟件熵(software entropy)的概念:一個程序從設計很好的狀態開始,隨著新的功能不斷地加入,程序逐漸地失去了原有的結構,終變成了一團亂麻。你可能會爭辯,在這個例子中,設計很好的狀態實際上并不好,如果好的話,不會發生你所說的情況。是的,看來你變聰明了,可惜你還應該注意到兩個問題:1)我們不能指望在恐龍紀元(大概是十年前)設計的結構到了現在也能適用吧。2)擁有簽字權的客戶代表可不理會加入一個新功能是否會對軟件的結構有什么影響,即便有影響也是程序設計人員需要考慮的問題。如果你拒絕加入這個你認為致命的新功能,那么你很可能失去了你的住房貸款和面包(對中國工程師來說也許是米飯或面條,要看你是南方人還是北方人)。
另外,需要說明的是我看過的一些講解測試的書都沒有我寫的這么有人情味(不好意思...)。我希望看到這片文章的兄弟姐妹能很容易地接受測試的概念,并付諸實施。所以有些地方寫的有些夸張,歡迎對測試有深入理解的兄弟姐妹能體察民情,并不吝賜教。
好了,我們現在言歸正傳。要測試,要明白測試的目的。我認為測試的目的很簡單也極具吸引力:寫出高質量的軟件并解決軟件熵這一問題。想象一下,如果你寫的軟件和Richard Stallman(GNU、FSF的頭兒)寫的一樣有水準的話,是不是很有成感?如果你一致保持這種高水準,我保證你的薪水也會有所變動。
測試也分類,白箱測試、黑箱測試、單元測試、集成測試、功能測試...。我們先不管有多少分類,如何分類。先看那些對我們有用的分類,關于其他的測試,有興趣的人可參閱其他資料。白箱測試是指在知道被測試的軟件如何(How)完成功能和完成什么樣(What)的功能的條件下所作的測試。一般是由開發人員完成。因為開發人員了解自己編寫的軟件。本文也是以白箱測試為主。黑箱測試則是指在知道被測試的軟件完成什么樣(What)的功能的條件下所作的測試。一般是由測試人員完成。黑箱測試不是我們的重點。本文主要集中在單元測試上,單元測試是一種白箱測試。目的是驗證一個或若干個類是否按所設計的那樣正常工作。集成測試則是驗證所有的類是否能互相配合,協同完成特定的任務,目前我們暫不關心它。下面我所提到的測試,除非特別說明,一般都是指單元測試。
需要強調的是:測試是一個持續的過程。也是說測試貫穿與開發的整個過程中,單元測試尤其適合于迭代增量式(iterative and incremental)的開發過程。Martin Fowler(有點兒像引用孔夫子的話)甚至認為:“在你不知道如何測試代碼之前,不應該編寫程序。而一旦你完成了程序,測試代碼也應該完成。除非測試成功,你不能認為你編寫出了可以工作的程序。”我并不指望所有的開發人員都能有如此高的覺悟,這種層次也不是一蹴而的。但我們一旦了解測試的目的和好處,自然會堅持在開發過程中引入測試。
因為我們是測試新手,我們也不理會那些復雜的測試原理,先說一說簡單的:測試是比較預期的結果是否與實際執行的結果一致。如果一致則通過,否則失敗。看下面的例子:

//將要被測試的類
public class Car {
public int getWheels() {
return 4;
}
}
//執行測試的類
public class testCar {
public static void main(String[] args) {
testCar myTest = new testCar();
myTest.testGetWheels();
}
public testGetWheels() {
int expectedWheels = 4;
Car myCar = Car();
if (expectedWheels==myCar.getWheels())
System.out.println("test [Car]: getWheels works perfected!");
else
System.out.println("test [Car]: getWheels DOESN'T work!");
}
}

上一頁123456下一頁
軟件測試工具 | 聯系我們 | 投訴建議 | 誠聘英才 | 申請使用列表 | 網站地圖
滬ICP備07036474 2003-2017 版權所有 上海澤眾軟件科技有限公司 Shanghai ZeZhong Software Co.,Ltd
主站蜘蛛池模板: 日日操夜夜添 | 亚洲国产系列一区二区三区 | 精品色 | 日韩欧美亚洲国产 | 黄色片地址 | 日韩伦理一区二区 | 免费精品一区二区三区在线观看 | 国产精品久久久亚洲动漫 | 日本在线视频精品 | 欧美在线视频免费 | 97青草香蕉依人在线播放 | 免费视频精品一区二区三区 | 国产在线精彩视频 | 激性欧美在线播激性欧美 | 国产黑色丝袜小视频在线 | 黄色aa毛片 | 精品久久香蕉国产线看观看亚洲 | 国产精品久久久久国产精品三级 | 激情五月视频 | 最刺激黄a大片免费观看下截 | 动漫成年美女黄漫网站在线看 | 免费大片黄在线现看国语 | 怡红院在线视频观看 | 一级毛片免费完整视频 | 91探花福利精品国产自产在线 | 色图欧美色图 | 精品在线免费播放 | 亚洲国产成人久久精品动漫 | 欧美成人免费tv在线播放 | xxxx日日摸夜夜添夜夜添视频 | 中文在线资源链接天堂 | 日韩亚洲欧美综合一区二区三区 | 成人夜夜 | 日韩伦理免费在线观看 | jzzjlzz亚洲乱熟在线播放 | 极品美女啪啪无套 | 成人窝窝午夜看片 | 好紧好湿好黄的视频 | 精品色视频 | 免费观看呢日本天堂视频 | 人人做人人澡人人人爽 |