測(cè)試驅(qū)動(dòng)開(kāi)發(fā)培訓(xùn)講義

測(cè)試驅(qū)動(dòng)開(kāi)發(fā)培訓(xùn)講義

ID:46930805

大?。?58.00 KB

頁(yè)數(shù):35頁(yè)

時(shí)間:2019-11-30

測(cè)試驅(qū)動(dòng)開(kāi)發(fā)培訓(xùn)講義_第1頁(yè)
測(cè)試驅(qū)動(dòng)開(kāi)發(fā)培訓(xùn)講義_第2頁(yè)
測(cè)試驅(qū)動(dòng)開(kāi)發(fā)培訓(xùn)講義_第3頁(yè)
測(cè)試驅(qū)動(dòng)開(kāi)發(fā)培訓(xùn)講義_第4頁(yè)
測(cè)試驅(qū)動(dòng)開(kāi)發(fā)培訓(xùn)講義_第5頁(yè)
資源描述:

《測(cè)試驅(qū)動(dòng)開(kāi)發(fā)培訓(xùn)講義》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在工程資料-天天文庫(kù)。

1、測(cè)試驅(qū)動(dòng)開(kāi)發(fā)1主題測(cè)試驅(qū)動(dòng)開(kāi)發(fā)的基本概念測(cè)試驅(qū)動(dòng)的基本流程測(cè)試驅(qū)動(dòng)的所采用的技術(shù)及工具DEMO2測(cè)試驅(qū)動(dòng)開(kāi)發(fā)的基本概念為什么會(huì)出現(xiàn)測(cè)試驅(qū)動(dòng)開(kāi)發(fā)什么是測(cè)試驅(qū)動(dòng)測(cè)試驅(qū)動(dòng)所要達(dá)到的目標(biāo)3測(cè)試驅(qū)動(dòng)蘊(yùn)含的哲學(xué)原理將復(fù)雜事情簡(jiǎn)單化讓注意力關(guān)注在單一的事物上分解Hardcode重構(gòu)4為什么會(huì)出現(xiàn)TDD—程序員當(dāng)有一個(gè)新的開(kāi)發(fā)任務(wù)時(shí),往往第一個(gè)念頭就是如何去實(shí)現(xiàn)它呢?“應(yīng)該是這么做的吧,嗯,差不多就是這樣的”。抓起任務(wù)就開(kāi)始編碼,一邊寫(xiě),一邊修改和設(shè)計(jì)。時(shí)間這么緊!我還是先實(shí)現(xiàn)任務(wù)吧,然后再好好測(cè)試。還是不工作,時(shí)間不多了。不管了,還是先做個(gè)實(shí)現(xiàn),以后再來(lái)整理代碼吧。我已經(jīng)單步調(diào)試了好幾次

2、了,遍歷了所有可能的分支,應(yīng)該不會(huì)有問(wèn)題了,提交,今天可以好好休息一下了要不要寫(xiě)單元測(cè)試把我剛才單步調(diào)試的步驟寫(xiě)下來(lái)?。磕菢邮呛芎?,但工作量很大哦這樣的情況要作自動(dòng)測(cè)試太復(fù)雜了。還是手工測(cè)試一下吧。程序員應(yīng)該做些有創(chuàng)意的東西,這樣才有趣啊測(cè)試是QA的事,我為什么要做啊,我做了他們干什么啊5為什么會(huì)出現(xiàn)TDD—程序員奇怪了,怎么代碼跟開(kāi)發(fā)文檔上有這么大的差別?。窟@段代碼究竟想表達(dá)什么意思?代碼現(xiàn)在越來(lái)越亂了,我都不敢修改代碼了,修改了這個(gè)地方,天曉得會(huì)引起多少別的地方出錯(cuò)啊!這個(gè)地方的代碼怎么好象在那個(gè)地方看到過(guò)啊?這個(gè)程序里怎么會(huì)有這么多的重復(fù)代碼呢?6為什么會(huì)出現(xiàn)TDD—

3、QA開(kāi)發(fā)部在干什么啊,BUG怎么這么多,他們有沒(méi)有自己先測(cè)試一下啊這下好了,讓他們修改了一個(gè)BUG,現(xiàn)在一下子來(lái)了這么多的BUG他們到底在搞什么啊,有沒(méi)有從用戶的角度考慮啊,我新增一個(gè)采購(gòu)訂單,訂單項(xiàng)竟然可以輸入負(fù)數(shù)。7有辦法可以解決上面的矛盾嗎?8XP中的測(cè)試UnitTest(基本不提倡,只對(duì)特別功能)FunctionalTest(AcceptanceTest)RegressionTestNightlyTestIntegrationTestStressTest所有的測(cè)試都應(yīng)該獨(dú)立地自動(dòng)的運(yùn)行9什么是FunctionTest10什么是RegressionTest“Regre

4、ssiontestingistheprocessofvalidatingmodifiedpartsofthesoftwareandensuringthatnonewerrorsareintroducedintopreviouslytestedcode.”一句話,RegresstionTest就是要重新測(cè)試所有的代碼和功能。RegressionTest和DevelopmentTest的不同在于RegressionTest需要重用已經(jīng)建立的所有的測(cè)試單元(UnitTest)和功能測(cè)試套件(FunctionalTest)。RegressionTest的基礎(chǔ)是完整的自動(dòng)單元測(cè)試和功

5、能測(cè)試。11什么是NightlyTestNightlyTest就是每晚自動(dòng)運(yùn)行所有的UnitTest和AcceptanceTest。NightlyTest是XP中的ContinuousTest的一個(gè)練習(xí)(Practice)。NightlyTest可以準(zhǔn)確的反映項(xiàng)目開(kāi)發(fā)的進(jìn)度和質(zhì)量。12NightlyTestNightlyTest是軟件開(kāi)發(fā)中一個(gè)保證開(kāi)發(fā)之質(zhì)量的最有效的方法,也是衡量軟件之質(zhì)量和開(kāi)發(fā)效率的最好的指標(biāo)。NightlyTest就是每天工作結(jié)束,所有的代碼都Checkin到SourceControl后,自動(dòng)運(yùn)行所有的UnitTest和FunctionTest。測(cè)試的

6、結(jié)果應(yīng)該自動(dòng)分發(fā)給開(kāi)發(fā)人員和管理層。兩個(gè)指標(biāo)數(shù)值:測(cè)試?yán)拥耐ㄟ^(guò)率–單元測(cè)試必須是100%通過(guò)。FunctionalTest應(yīng)該按計(jì)劃的通過(guò)。單元測(cè)試的覆蓋率–表明有多少Class被測(cè)試過(guò)和測(cè)試的完善程度。13測(cè)試優(yōu)先的編程在寫(xiě)任何代碼之前,先寫(xiě)它的FunctionTest?!癗everwritealineoffunctionalcodewithoutabrokentestcase”KentBeckTest-FirstProgramming是一種測(cè)試技術(shù)嗎?Test-FirstProgramming首先是一種分析方法。它迫使程序員仔細(xì)思考要做什么和不要做什么(而不是如何具體

7、的實(shí)現(xiàn))。特別是各種例外的情況,并用程序語(yǔ)言正式的寫(xiě)下來(lái)。這就好像在程序員的任務(wù)和程序員之間簽訂了一個(gè)清晰的正式合同。Test-FirstProgramming是一種設(shè)計(jì)方法。FunctionTest測(cè)試的是程序,而不是一個(gè)想法。程序員必須清晰的定義程序的驗(yàn)收條件才能寫(xiě)出它的FunctionTest。而這時(shí)程序員是不知道(也不需要知道)里面的具體邏輯是如何實(shí)現(xiàn)的。程序員只需要考慮Class的界面和功能(Responsibility)。啊,你在做OO設(shè)計(jì)了。Test-FirstProgramming是一種質(zhì)量控制方法

當(dāng)前文檔最多預(yù)覽五頁(yè),下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁(yè),下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動(dòng)畫(huà)的文件,查看預(yù)覽時(shí)可能會(huì)顯示錯(cuò)亂或異常,文件下載后無(wú)此問(wèn)題,請(qǐng)放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫(kù)負(fù)責(zé)整理代發(fā)布。如果您對(duì)本文檔版權(quán)有爭(zhēng)議請(qǐng)及時(shí)聯(lián)系客服。
3. 下載前請(qǐng)仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進(jìn)行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時(shí)可能由于網(wǎng)絡(luò)波動(dòng)等原因無(wú)法下載或下載錯(cuò)誤,付費(fèi)完成后未能成功下載的用戶請(qǐng)聯(lián)系客服處理。