2023年全國(guó)碩士研究生考試考研英語(yǔ)一試題真題(含答案詳解+作文范文)_第1頁(yè)
已閱讀1頁(yè),還剩12頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、Python自動(dòng)單元測(cè)試框架自動(dòng)單元測(cè)試框架軟件的測(cè)試是一件非常乏味的事情,在測(cè)試別人編寫(xiě)的軟件時(shí)尤其如此,程序員通常都只對(duì)編寫(xiě)代碼感興趣,而不喜歡文檔編寫(xiě)和軟件測(cè)試這類(lèi)“沒(méi)有創(chuàng)新”的工作。既然如此,為什么不讓程序員在編寫(xiě)軟件時(shí)自己加入一些用于測(cè)試的代碼,使測(cè)試過(guò)程自動(dòng)化呢?在軟件工程中,這一技術(shù)稱(chēng)為自動(dòng)單元測(cè)試,本文介紹在用Python開(kāi)發(fā)軟件時(shí)如何實(shí)現(xiàn)這一目標(biāo)。一、軟件測(cè)試一、軟件測(cè)試大型軟件系統(tǒng)的開(kāi)發(fā)是一個(gè)很復(fù)雜的過(guò)程,其中因?yàn)槿?/p>

2、的因素而所產(chǎn)生的錯(cuò)誤非常多,因此軟件在開(kāi)發(fā)過(guò)程必須要有相應(yīng)的質(zhì)量保證活動(dòng),而軟件測(cè)試則是保證質(zhì)量的關(guān)鍵措施。正像軟件熵(softwareentropy)所描述的那樣:一個(gè)程序從設(shè)計(jì)很好的狀態(tài)開(kāi)始,隨著新的功能不斷地加入,程序逐漸地失去了原有的結(jié)構(gòu),最終變成了一團(tuán)亂麻(其實(shí)最初的“很好的狀態(tài)”得加個(gè)問(wèn)號(hào))。測(cè)試的目的說(shuō)起來(lái)其實(shí)很簡(jiǎn)單也極具吸引力,那就是寫(xiě)出高質(zhì)量的軟件并解決軟件熵這一問(wèn)題??上У氖?,軟件開(kāi)發(fā)人員很少能在編碼的過(guò)程中就進(jìn)行軟

3、件測(cè)試,大部分軟件項(xiàng)目都只在最終驗(yàn)收時(shí)才進(jìn)行測(cè)試,有些項(xiàng)目甚至根本沒(méi)有測(cè)試計(jì)劃!隨著軟件質(zhì)量意識(shí)的增強(qiáng),許多軟件開(kāi)發(fā)組織開(kāi)始轉(zhuǎn)向UML、CMM、RUP、XP等軟件工程方法,以期提高軟件質(zhì)量,并使軟件開(kāi)發(fā)過(guò)程更加可控,好在這些方法對(duì)測(cè)試都提出了很?chē)?yán)格的要求,從而使得測(cè)試在軟件開(kāi)發(fā)過(guò)程的作用開(kāi)始真正體現(xiàn)出來(lái)。軟件測(cè)試作為一種系統(tǒng)工程,涉及到整個(gè)軟件開(kāi)發(fā)過(guò)程的各個(gè)方面,需要管理人員、設(shè)計(jì)人員、開(kāi)發(fā)人員和測(cè)試人員的共同努力。作為軟件開(kāi)發(fā)過(guò)程中的

4、主要力量,現(xiàn)今的程序員除了要編寫(xiě)實(shí)現(xiàn)代碼外,還承擔(dān)著單元測(cè)試這一艱巨任務(wù),因此必須采用新的工作模式:?編寫(xiě)和維護(hù)一套詳盡的單元測(cè)試用例;?先構(gòu)造單元測(cè)試和驗(yàn)收測(cè)試用例,然后再編寫(xiě)代碼;?根據(jù)構(gòu)造的測(cè)試用例來(lái)編寫(xiě)代碼。單元測(cè)試負(fù)責(zé)對(duì)最小的軟件設(shè)計(jì)單元(模塊)進(jìn)行驗(yàn)證,它使用軟件設(shè)計(jì)文檔中對(duì)模塊的描述作為指南,對(duì)重要的程序分支進(jìn)行測(cè)試以發(fā)現(xiàn)模塊中的錯(cuò)誤。由于軟件模塊并不是一個(gè)單獨(dú)的程序,為了進(jìn)行單元測(cè)試還必須編寫(xiě)大量額外的代碼,從而無(wú)形中增

5、加了開(kāi)發(fā)人員的工作量,目前解決這一問(wèn)題比較好的方法是使用測(cè)試框架。測(cè)試框架是在用XP方法進(jìn)行單元測(cè)試時(shí)的關(guān)鍵,尤其是在需要構(gòu)造大量測(cè)試用例時(shí)更是如此,因?yàn)槿绻耆揽渴止さ姆绞絹?lái)構(gòu)造和執(zhí)行這些測(cè)試,肯定會(huì)變成一個(gè)花費(fèi)大量時(shí)間并且單調(diào)無(wú)味的工作,而測(cè)試框架則可以很好地解決這些問(wèn)題。使用Python語(yǔ)言的開(kāi)發(fā)人員可以使用StevePurcell編寫(xiě)的PyUnit作為單元測(cè)試框架,通過(guò)將單元測(cè)試融合到PyUnit這一測(cè)試框架里,Python程

6、序員可以更容易地增加、管理、執(zhí)行測(cè)試用例,并對(duì)測(cè)試結(jié)果進(jìn)行分析。此外,使用PyUnit還可以實(shí)現(xiàn)自動(dòng)單元測(cè)試(回歸測(cè)試)。二、規(guī)范二、規(guī)范Python單元測(cè)試單元測(cè)試測(cè)試是一個(gè)貫穿于整個(gè)開(kāi)發(fā)過(guò)程的連續(xù)過(guò)程,從某個(gè)意義上說(shuō),軟件開(kāi)發(fā)的過(guò)程實(shí)際上就是測(cè)試過(guò)程。正如MartinFowler所說(shuō)的“在你不知道如何測(cè)試代碼之前,就不該編寫(xiě)程序。而一旦你完成了程序,測(cè)試代碼也應(yīng)該完成。除非測(cè)試成功,你不能認(rèn)為你編寫(xiě)出了可以工作的程序?!睖y(cè)試最基本的

7、原理就是比較預(yù)期結(jié)果是否與實(shí)際執(zhí)行結(jié)果相同,如果相同則測(cè)試成功,否則測(cè)試失敗。為了更好地理解PyUnit這一自動(dòng)測(cè)試框架的作用,先來(lái)看一個(gè)簡(jiǎn)單的例子,假設(shè)我們要對(duì)例1中的Widget類(lèi)進(jìn)行測(cè)試:else:print“test[Widget]:getSizedoesntwk!“#測(cè)試if__name__==__main__:myTest=TestWidget()myTest.testSize()稍一留心你不難發(fā)現(xiàn)這種手工測(cè)試方法存在許多問(wèn)

8、題。首先,測(cè)試程序的寫(xiě)法沒(méi)有一定的規(guī)范可以遵循,十個(gè)程序員完全可能寫(xiě)出十種不同的測(cè)試程序來(lái),如果每個(gè)Python程序員都有自己不同的設(shè)計(jì)測(cè)試類(lèi)的方法,光維護(hù)被測(cè)試的類(lèi)就夠麻煩了,誰(shuí)還顧得上維護(hù)測(cè)試類(lèi)。其次,需要編寫(xiě)大量的輔助代碼才能進(jìn)行單元測(cè)試,例1中用于測(cè)試的代碼甚至比被測(cè)試的代碼還要多,而這毫無(wú)疑問(wèn)將增大Python程序員的工作量。為了讓單元測(cè)試代碼能夠被測(cè)試和維護(hù)人員更容易地理解,最好的解決辦法是讓開(kāi)發(fā)人員遵循一定的規(guī)范來(lái)編寫(xiě)用于

9、測(cè)試的代碼,具體到Python程序員來(lái)講,則是要采用PyUnit這一自動(dòng)測(cè)試框架來(lái)構(gòu)造單元測(cè)試用例。目前PyUnit已經(jīng)得到了大多數(shù)Python開(kāi)發(fā)人員的認(rèn)可,成了事實(shí)上的單元測(cè)試標(biāo)準(zhǔn)。如果采用PyUnit來(lái)進(jìn)行同樣的測(cè)試,則測(cè)試代碼將如例3所示:例3.auto.pyfromwidgetimptWidgetimptunittest#執(zhí)行測(cè)試的類(lèi)classWidgetTestCase(unittest.TestCase):defsetUp

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫(kù)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論