在线看毛片视频-国产免费av在线-欧美日韩一区二区三区-国产成人无码av在线播放无广告-亚洲人va欧美va人人爽-国产第一草草-西班牙黄色片-四虎在线网站8848-最新av片免费网站入口-东京热无码中文字幕av专区-日本大人吃奶视频xxxx-欧美精品一区二区三区四区五区-国产片天天弄-国产免费内射又粗又爽密桃视频-欧美爱爱网站-日韩v欧美

當(dāng)前位置:雨林木風(fēng)下載站 > 技術(shù)開發(fā)教程 > 詳細(xì)頁面

JUnit實(shí)施--1.測試的概念

JUnit實(shí)施--1.測試的概念

更新時(shí)間:2022-05-10 文章作者:未知 信息來源:網(wǎng)絡(luò) 閱讀次數(shù):

1.測試的概念

長期以來,我所接觸的軟件開發(fā)人員很少有人能在開發(fā)的過程中進(jìn)行測試工作。大部分的項(xiàng)目都是在最終驗(yàn)收的時(shí)候編寫測試文檔。有些項(xiàng)目甚至沒有測試文檔。現(xiàn)在情況有了改變。我們一直提倡UML、RUP、軟件工程、CMM,目的只有一個(gè),提高軟件編寫的質(zhì)量。舉一個(gè)極端的例子:如果你是一個(gè)超級(jí)程序設(shè)計(jì)師,一個(gè)傳奇般的人物。(你可以一邊喝咖啡,一邊聽著音樂,同時(shí)編寫這操作系統(tǒng)中關(guān)于進(jìn)程調(diào)度的模塊,而且兩天時(shí)間內(nèi)就完成了!)我真得承認(rèn),有這樣的人。(那個(gè)編寫UNIX中的vi編輯器的家伙就是這種人。)然而非常遺憾的是這些神仙們并沒有留下如何修成正果的README。所以我們這些凡人--在同一時(shí)間只能將注意力集中到若干點(diǎn)(據(jù)科學(xué)統(tǒng)計(jì),我并不太相信,一般的人只能同時(shí)考慮最多7個(gè)左右的問題,高手可以達(dá)到12個(gè)左右),而不能既縱覽全局又了解細(xì)節(jié)--只能期望于其他的方式來保證我們所編寫的軟件質(zhì)量。

為了說明我們這些凡人是如何的笨。有一個(gè)聰明人提出了軟件熵(software entropy)的概念:一個(gè)程序從設(shè)計(jì)很好的狀態(tài)開始,隨著新的功能不斷地加入,程序逐漸地失去了原有的結(jié)構(gòu),最終變成了一團(tuán)亂麻。你可能會(huì)爭辯,在這個(gè)例子中,設(shè)計(jì)很好的狀態(tài)實(shí)際上并不好,如果好的話,就不會(huì)發(fā)生你所說的情況。是的,看來你變聰明了,可惜你還應(yīng)該注意到兩個(gè)問題:1)我們不能指望在恐龍紀(jì)元(大概是十年前)設(shè)計(jì)的結(jié)構(gòu)到了現(xiàn)在也能適用吧。2)擁有簽字權(quán)的客戶代表可不理會(huì)加入一個(gè)新功能是否會(huì)對軟件的結(jié)構(gòu)有什么影響,即便有影響也是程序設(shè)計(jì)人員需要考慮的問題。如果你拒絕加入這個(gè)你認(rèn)為致命的新功能,那么你很可能就失去了你的住房貸款和面包(對中國工程師來說也許是米飯或面條,要看你是南方人還是北方人)。

另外,需要說明的是我看過的一些講解測試的書都沒有我寫的這么有人情味(不好意思...)。我希望看到這片文章的兄弟姐妹能很容易地接受測試的概念,并付諸實(shí)施。所以有些地方寫的有些夸張,歡迎對測試有深入理解的兄弟姐妹能體察民情,并不吝賜教(ericwq@263.net)。

好了,我們現(xiàn)在言歸正傳。要測試,就要明白測試的目的。我認(rèn)為測試的目的很簡單也極具吸引力:寫出高質(zhì)量的軟件并解決軟件熵這一問題。想象一下,如果你寫的軟件和Richard Stallman(GNU、FSF的頭兒)寫的一樣有水準(zhǔn)的話,是不是很有成就感?如果你一致保持這種高水準(zhǔn),我保證你的薪水也會(huì)有所變動(dòng)。

測試也分類,白箱測試、黑箱測試、單元測試、集成測試、功能測試...。我們先不管有多少分類,如何分類。先看那些對我們有用的分類,關(guān)于其他的測試,有興趣的人可參閱其他資料。白箱測試是指在知道被測試的軟件如何(How)完成功能和完成什么樣(What)的功能的條件下所作的測試。一般是由開發(fā)人員完成。因?yàn)殚_發(fā)人員最了解自己編寫的軟件。本文也是以白箱測試為主。黑箱測試則是指在知道被測試的軟件完成什么樣(What)的功能的條件下所作的測試。一般是由測試人員完成。黑箱測試不是我們的重點(diǎn)。本文主要集中在單元測試上,單元測試是一種白箱測試。目的是驗(yàn)證一個(gè)或若干個(gè)類是否按所設(shè)計(jì)的那樣正常工作。集成測試則是驗(yàn)證所有的類是否能互相配合,協(xié)同完成特定的任務(wù),目前我們暫不關(guān)心它。下面我所提到的測試,除非特別說明,一般都是指單元測試。

需要強(qiáng)調(diào)的是:測試是一個(gè)持續(xù)的過程。也就是說測試貫穿與開發(fā)的整個(gè)過程中,單元測試尤其適合于迭代增量式(iterative and incremental)的開發(fā)過程。Martin Fowler(有點(diǎn)兒像引用孔夫子的話)甚至認(rèn)為:“在你不知道如何測試代碼之前,就不應(yīng)該編寫程序。而一旦你完成了程序,測試代碼也應(yīng)該完成。除非測試成功,你不能認(rèn)為你編寫出了可以工作的程序。”我并不指望所有的開發(fā)人員都能有如此高的覺悟,這種層次也不是一蹴而就的。但我們一旦了解測試的目的和好處,自然會(huì)堅(jiān)持在開發(fā)過程中引入測試。

因?yàn)槲覀兪菧y試新手,我們也不理會(huì)那些復(fù)雜的測試原理,先說一說最簡單的:測試就是比較預(yù)期的結(jié)果是否與實(shí)際執(zhí)行的結(jié)果一致。如果一致則通過,否則失敗。看下面的例子:

//將要被測試的類public class Car {public int getWheels() {return 4;}}//執(zhí)行測試的類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!");elseSystem.out.println("test [Car]: getWheels DOESN'T work!");}}
如果你立即動(dòng)手寫了上面的代碼,你會(huì)發(fā)現(xiàn)兩個(gè)問題,第一,如果你要執(zhí)行測試的類testCar,你必須必須手工敲入如下命令:
[Windows] d:>java testCar[Unix] % java testCar
即便測試如例示的那樣簡單,你也有可能不愿在每次測試的時(shí)候都敲入上面的命令,而希望在某個(gè)集成環(huán)境中(IDE)點(diǎn)擊一下鼠標(biāo)就能執(zhí)行測試。后面的章節(jié)會(huì)介紹到這些問題。第二,如果沒有一定的規(guī)范,測試類的編寫將會(huì)成為另一個(gè)需要定義的標(biāo)準(zhǔn)。沒有人希望查看別人是如何設(shè)計(jì)測試類的。如果每個(gè)人都有不同的設(shè)計(jì)測試類的方法,光維護(hù)被測試的類就夠煩了,誰還顧得上維護(hù)測試類?另外有一點(diǎn)我不想提,但是這個(gè)問題太明顯了,測試類的代碼多于被測試的類!這是否意味這雙倍的工作?不!1)不論被測試類-Car 的 getWheels 方法如何復(fù)雜,測試類-testCar 的testGetWheels 方法只會(huì)保持一樣的代碼量。2)提高軟件的質(zhì)量并解決軟件熵這一問題并不是沒有代價(jià)的。testCar就是代價(jià)。

我們目前所能做的就是盡量降低所付出的代價(jià):我們編寫的測試代碼要能被維護(hù)人員容易的讀取,我們編寫測試代碼要有一定的規(guī)范。最好IDE工具可以支持這些規(guī)范。 好了,你所需要的就是JUnit。一個(gè)Open Source的項(xiàng)目。用其主頁上的話來說就是:“JUnit是由 Erich Gamma 和 Kent Beck 編寫的一個(gè)回歸測試框架(regression testing framework)。用于Java開發(fā)人員編寫單元測試之用。”所謂框架就是 Erich Gamma 和 Kent Beck 定下了一些條條框框,你編寫的測試代碼必須遵循這個(gè)條條框框:繼承某個(gè)類,實(shí)現(xiàn)某個(gè)接口。其實(shí)也就是我們前面所說的規(guī)范。好在JUnit目前得到了大多數(shù)軟件工程師的認(rèn)可。遵循JUnit我們會(huì)得到很多的支持。回歸測試就是你不斷地對所編寫的代碼進(jìn)行測試:編寫一些,測試一些,調(diào)試一些,然后循環(huán)這一過程,你會(huì)不斷地重復(fù)先前的測試,哪怕你正編寫其他的類,由于軟件熵的存在,你可能在編寫第五個(gè)類的時(shí)候發(fā)現(xiàn),第五個(gè)類的某個(gè)操作會(huì)導(dǎo)致第二個(gè)類的測試失敗。通過回歸測試我們抓住了這條大Bug。

溫馨提示:喜歡本站的話,請收藏一下本站!

本類教程下載

系統(tǒng)下載排行

在线看毛片视频-国产免费av在线-欧美日韩一区二区三区-国产成人无码av在线播放无广告-亚洲人va欧美va人人爽-国产第一草草-西班牙黄色片-四虎在线网站8848-最新av片免费网站入口-东京热无码中文字幕av专区-日本大人吃奶视频xxxx-欧美精品一区二区三区四区五区-国产片天天弄-国产免费内射又粗又爽密桃视频-欧美爱爱网站-日韩v欧美
  • <li id="86scu"><menu id="86scu"></menu></li>
    <li id="86scu"></li>
    <button id="86scu"></button>
  • <s id="86scu"></s><button id="86scu"><menu id="86scu"></menu></button>
  • 一区二区在线免费看| 成年人免费观看的视频| 黄色一级片国产| 一级日本黄色片| 日本黄色a视频| 国产精品无码乱伦| 婷婷激情综合五月天| 伊人色在线观看| 九九久久久久久| 粉嫩av一区二区三区天美传媒| 伊人国产精品视频| 国产对白在线播放| 69精品丰满人妻无码视频a片| 成人一区二区av| 日韩av中文字幕第一页| 人人干视频在线| 国产九九在线视频| 超碰在线超碰在线| 美女av免费观看| 北条麻妃在线视频观看| 亚洲精品高清无码视频| 黄色成人免费看| 亚洲成人动漫在线| 黄色免费视频大全| 女人高潮一级片| 国产欧美日韩小视频| 妺妺窝人体色www在线观看| 亚洲综合20p| 日韩精品xxxx| 亚洲第一区第二区第三区| 欧美日韩视频免费| 一级黄色录像在线观看| 东北少妇不带套对白| 污版视频在线观看| 久久亚洲国产成人精品无码区| 妞干网在线免费视频| 黄色免费高清视频| www.色偷偷.com| 成人免费毛片在线观看| 天天综合成人网| 国产女女做受ⅹxx高潮| 久久久久久久免费视频| 超碰在线97免费| 国产 国语对白 露脸| xxxx一级片| www.爱色av.com| 粉嫩av一区二区三区天美传媒 | 国产精品久久久毛片| 中文字幕日韩精品无码内射| 91亚洲精品久久久蜜桃借种| 国产黄页在线观看| 女人被男人躁得好爽免费视频| 三区视频在线观看| 成年人在线观看视频免费| 国产午夜大地久久| www.欧美黄色| 久操手机在线视频| 精品无码av无码免费专区| 婷婷激情5月天| 日本77777| 亚洲小视频网站| 日本黄色福利视频| 17c国产在线| 中文字幕亚洲影院| 成人不卡免费视频| 亚洲制服在线观看| 国产a级片免费看| 亚洲热在线视频| 九一免费在线观看| 欧美在线观看视频免费| 亚洲熟妇无码av在线播放| 成人短视频在线观看免费| 国产免费内射又粗又爽密桃视频| √天堂资源在线| 国产激情片在线观看| 99久热在线精品视频| 妺妺窝人体色777777| 成年人视频观看| 欧美日韩亚洲第一| 青青草久久伊人| 免费在线精品视频| 91九色在线观看视频| 91日韩视频在线观看| 极品粉嫩美女露脸啪啪| 青青在线视频免费观看| 男人操女人逼免费视频| 超碰超碰在线观看| 玖玖精品在线视频| 亚洲 高清 成人 动漫| 性chinese极品按摩| 亚洲五月激情网| 欧美a v在线播放| 中文字幕第17页| 97在线国产视频| 中文字幕第38页| 国产精品一线二线三线| 超碰影院在线观看| 国产午夜精品视频一区二区三区| 日韩欧美精品在线观看视频| 两性午夜免费视频| 日韩久久一级片| 久久久国内精品| 182午夜在线观看| av网站手机在线观看| www.com黄色片| 欧美,日韩,国产在线| 三年中文高清在线观看第6集| 国产手机免费视频| 日韩最新中文字幕| 啊啊啊国产视频| 国产老熟妇精品观看| 久久久无码中文字幕久...| 北条麻妃av高潮尖叫在线观看| 日本福利视频在线观看| 日韩高清第一页| 亚洲欧美另类动漫| 欧美精品色婷婷五月综合| 久久人妻无码一区二区| 亚洲一区日韩精品| 中文字幕国产传媒| 蜜臀久久99精品久久久酒店新书| 欧美亚洲色图视频| 免费成人深夜夜行网站视频| 国产v亚洲v天堂无码久久久| av之家在线观看| 大西瓜av在线| 国产一级做a爰片久久毛片男| 日韩欧美中文在线视频| 亚洲欧美日韩三级| 女人高潮一级片| 极品粉嫩美女露脸啪啪| 一区二区在线免费看| 色呦色呦色精品| 免费网站在线观看黄| 青青草原播放器| 天堂av在线中文| 国产午夜精品视频一区二区三区| 老汉色影院首页| 欧美视频在线观看视频| 欧美国产日韩激情| 国产日产欧美视频| 91淫黄看大片| 日本人69视频| 黄色片免费在线观看视频| 轻点好疼好大好爽视频| 91九色在线观看视频| 久久久精品麻豆| 日本中文字幕在线不卡| 国产欧美精品aaaaaa片| 91视频最新入口| 亚洲美女性囗交| 大片在线观看网站免费收看| 人妻少妇精品无码专区二区| 国产二区视频在线播放| 午夜激情在线观看视频| 久久久成人精品一区二区三区| 男女啪啪免费观看| 老熟妇仑乱视频一区二区| 久久久九九九热| 黄色动漫网站入口| 国产精品12p| 欧美在线观看成人| 久久久精品视频国产| 国产精品久久中文字幕| 午夜大片在线观看| 波多野结衣综合网| 一级一片免费播放| 妓院一钑片免看黄大片| 成人小视频在线观看免费| 五月婷婷激情久久| 加勒比成人在线| 日本三级福利片| 日韩一级免费片| 丰满爆乳一区二区三区| 男同互操gay射视频在线看| 免费观看成人网| 成人一区二区免费视频| 成人手机视频在线| 男女视频在线看| 37pao成人国产永久免费视频| 亚洲小说欧美另类激情| 九九精品久久久| 国产a视频免费观看| 欧美图片激情小说| 成人在线观看www| 激情五月开心婷婷| 一本久道综合色婷婷五月| 欧美人成在线观看| 五月天激情图片| 日韩不卡视频一区二区| 草b视频在线观看| 成人手机视频在线| 亚洲欧美日韩一二三区| 大陆极品少妇内射aaaaaa| 亚洲成人av免费看| www在线观看免费| 欧美一区二区激情| 日本香蕉视频在线观看| 男人午夜视频在线观看| 亚洲美女性囗交|