測(cè)試經(jīng)理
互聯(lián)網(wǎng)
單元測(cè)試
推薦課程
average > 0 ? $model->average . '分' : '10.0分' ?>

重構(gòu)和單元測(cè)試——軟件內(nèi)部質(zhì)量提升

課程費(fèi)用

6800.00 /人

課程時(shí)長(zhǎng)

2

成為教練

課程簡(jiǎn)介

本課程為期2天,從了解什么是重構(gòu)、單元測(cè)試;對(duì)人的要求和益處是什么、對(duì)產(chǎn)品的影響和結(jié)果怎么樣;到更重要怎么做重構(gòu)和單元測(cè)試。

目標(biāo)收益

學(xué)習(xí)結(jié)束后,學(xué)員對(duì)重構(gòu)和單元測(cè)試能建立正確、深入的觀點(diǎn)和理解,掌握重構(gòu)單元測(cè)試的基本實(shí)踐、要點(diǎn)、流行的工具和常見的誤解和錯(cuò)誤的做法。

培訓(xùn)對(duì)象

軟件交付人員:開發(fā)工程師、測(cè)試工程師、項(xiàng)目經(jīng)理/交付經(jīng)理

課程大綱

重構(gòu)(一天) 1. 能識(shí)別代碼中的壞味道
用團(tuán)隊(duì)中的產(chǎn)品代碼做例子分析所出現(xiàn)的壞味道
結(jié)論討論和分析
總結(jié)、講解、概要分析所有種類的壞味道(21種)
結(jié)論討論和分析
2. 正確認(rèn)識(shí)和對(duì)待壞味道
3. 為什么需要重構(gòu)?
重構(gòu)的考慮、成本、粒度、頻率和方式
4. 學(xué)習(xí)重構(gòu)的原則和步驟
5. 學(xué)習(xí)正確的重構(gòu)步驟
6. 練習(xí)小規(guī)模重構(gòu)-如何重構(gòu)一個(gè)類
重構(gòu)的循環(huán)
【講座】識(shí)別類內(nèi)的壞味道
【講座】重構(gòu)的循環(huán)
【講座】什么時(shí)候算做完了?
【講座】在一個(gè)重構(gòu)之內(nèi)
【練習(xí)】小步前進(jìn)-識(shí)別重構(gòu)常用的步驟
【練習(xí)】簡(jiǎn)單設(shè)計(jì)-如何判斷簡(jiǎn)單、你是怎么理解的

已知的Smells
【重構(gòu)】Extract Method/ Class / Subclass /Introduce
Rename Method
Introduce Assertion
Duplicate Observer Date
Replace Parameter with Method
Preserve Whole Object
Introduce Parameter Object

【講座&練習(xí)】注釋
【講座&練習(xí)】長(zhǎng)方法
【講座&練習(xí)】大類
【講座&練習(xí)】長(zhǎng)參數(shù)列表
【練習(xí)】測(cè)驗(yàn):Smells和重構(gòu)
【講座】Smells和重構(gòu)

命名
【重構(gòu)】
【講座&練習(xí)】在名字中嵌入了類型
【講座&練習(xí)】無(wú)法達(dá)意的名字
【講座&練習(xí)】不一致的名字

不必要的復(fù)雜性
【重構(gòu)】
【講座&練習(xí)】死代碼
【講座&練習(xí)】投機(jī)未來(lái)的可能性
【講座】成對(duì)出現(xiàn)的重構(gòu)

重復(fù)
【重構(gòu)】
【講座&練習(xí)】神奇數(shù)字
【講座&練習(xí)】重復(fù)的代碼
【講座&練習(xí)】可互換的類有不同的接口

條件邏輯
【重構(gòu)】
【講座&練習(xí)】空值檢測(cè)
【講座&練習(xí)】復(fù)雜的布爾表達(dá)式
【講座&練習(xí)】特殊處理的Case
【講座&練習(xí)】模擬的繼承

7. 練習(xí)較大規(guī)模重構(gòu)-多個(gè)類之間的重構(gòu)
描述數(shù)據(jù)
【講座&練習(xí)】主要的困擾
【講座&練習(xí)】數(shù)據(jù)類
【講座&練習(xí)】數(shù)據(jù)塊
【講座&練習(xí)】臨時(shí)字段

繼承
【講座&練習(xí)】子類拒絕來(lái)自父親的遺產(chǎn)
【講座&練習(xí)】不合適的親密關(guān)系(生成子類)
【講座&練習(xí)】Lazy Class


責(zé)任
【講座&練習(xí)】父類嫉妒子類的特性
【講座&練習(xí)】不合適的親密關(guān)系(提取父類)
【講座&練習(xí)】消息鏈
【講座&練習(xí)】中間人

適應(yīng)變化
【講座&練習(xí)】不同的變化動(dòng)機(jī)
【講座&練習(xí)】散彈獵槍式的修改
【講座&練習(xí)】平行繼承結(jié)構(gòu)

用作公共庫(kù)的類
【講座&練習(xí)】不完整的庫(kù)類
單元測(cè)試(1天) 單元測(cè)試入門:
1.【演示】用JUnit4進(jìn)行單元測(cè)試-初步掌握用JUnit4進(jìn)行單元測(cè)試的能力
2.【練習(xí)】如何按業(yè)務(wù)價(jià)值導(dǎo)向進(jìn)行單元測(cè)試設(shè)計(jì)
樹立正確的單元測(cè)試認(rèn)識(shí)、概念和思路
Fixture組織
單元測(cè)試的力度
如何劃分單元測(cè)試
3.【討論&分析】為什么不寫單元測(cè)試
4.【討論&分析】誰(shuí)該對(duì)(外部/內(nèi)部)質(zhì)量負(fù)責(zé)
5.【講座】什么不是單元測(cè)試
6.【講座】什么是單元測(cè)試
7.【講座】項(xiàng)目中單元測(cè)試策略

怎么寫單元測(cè)試
1.【講座】單元測(cè)試結(jié)構(gòu)
2.【講座】單元測(cè)試內(nèi)容
3.【練習(xí)】如何組織測(cè)試數(shù)據(jù)
4.【討論&分析】邊界條件
5.【練習(xí)】如何用Mock輔助邊界條件測(cè)試

單元測(cè)試重構(gòu)
1.【討論&分析】識(shí)別單元測(cè)試中的壞味道
2.【練習(xí)】重構(gòu)單元測(cè)試

單元測(cè)試和構(gòu)建流水線(bulid pipeline)
1.【討論&分析】單元測(cè)試在構(gòu)建流水線中的位置和作用
2.【講座&練習(xí)】用Buildr做Java項(xiàng)目構(gòu)建
3.【講座&練習(xí)】用Rake做Ruby項(xiàng)目構(gòu)建
4.【講座&練習(xí)】用Jenkins/Hudson做持續(xù)集成
重構(gòu)(一天)
1. 能識(shí)別代碼中的壞味道
用團(tuán)隊(duì)中的產(chǎn)品代碼做例子分析所出現(xiàn)的壞味道
結(jié)論討論和分析
總結(jié)、講解、概要分析所有種類的壞味道(21種)
結(jié)論討論和分析
2. 正確認(rèn)識(shí)和對(duì)待壞味道
3. 為什么需要重構(gòu)?
重構(gòu)的考慮、成本、粒度、頻率和方式
4. 學(xué)習(xí)重構(gòu)的原則和步驟
5. 學(xué)習(xí)正確的重構(gòu)步驟
6. 練習(xí)小規(guī)模重構(gòu)-如何重構(gòu)一個(gè)類
重構(gòu)的循環(huán)
【講座】識(shí)別類內(nèi)的壞味道
【講座】重構(gòu)的循環(huán)
【講座】什么時(shí)候算做完了?
【講座】在一個(gè)重構(gòu)之內(nèi)
【練習(xí)】小步前進(jìn)-識(shí)別重構(gòu)常用的步驟
【練習(xí)】簡(jiǎn)單設(shè)計(jì)-如何判斷簡(jiǎn)單、你是怎么理解的

已知的Smells
【重構(gòu)】Extract Method/ Class / Subclass /Introduce
Rename Method
Introduce Assertion
Duplicate Observer Date
Replace Parameter with Method
Preserve Whole Object
Introduce Parameter Object

【講座&練習(xí)】注釋
【講座&練習(xí)】長(zhǎng)方法
【講座&練習(xí)】大類
【講座&練習(xí)】長(zhǎng)參數(shù)列表
【練習(xí)】測(cè)驗(yàn):Smells和重構(gòu)
【講座】Smells和重構(gòu)

命名
【重構(gòu)】
【講座&練習(xí)】在名字中嵌入了類型
【講座&練習(xí)】無(wú)法達(dá)意的名字
【講座&練習(xí)】不一致的名字

不必要的復(fù)雜性
【重構(gòu)】
【講座&練習(xí)】死代碼
【講座&練習(xí)】投機(jī)未來(lái)的可能性
【講座】成對(duì)出現(xiàn)的重構(gòu)

重復(fù)
【重構(gòu)】
【講座&練習(xí)】神奇數(shù)字
【講座&練習(xí)】重復(fù)的代碼
【講座&練習(xí)】可互換的類有不同的接口

條件邏輯
【重構(gòu)】
【講座&練習(xí)】空值檢測(cè)
【講座&練習(xí)】復(fù)雜的布爾表達(dá)式
【講座&練習(xí)】特殊處理的Case
【講座&練習(xí)】模擬的繼承

7. 練習(xí)較大規(guī)模重構(gòu)-多個(gè)類之間的重構(gòu)
描述數(shù)據(jù)
【講座&練習(xí)】主要的困擾
【講座&練習(xí)】數(shù)據(jù)類
【講座&練習(xí)】數(shù)據(jù)塊
【講座&練習(xí)】臨時(shí)字段

繼承
【講座&練習(xí)】子類拒絕來(lái)自父親的遺產(chǎn)
【講座&練習(xí)】不合適的親密關(guān)系(生成子類)
【講座&練習(xí)】Lazy Class


責(zé)任
【講座&練習(xí)】父類嫉妒子類的特性
【講座&練習(xí)】不合適的親密關(guān)系(提取父類)
【講座&練習(xí)】消息鏈
【講座&練習(xí)】中間人

適應(yīng)變化
【講座&練習(xí)】不同的變化動(dòng)機(jī)
【講座&練習(xí)】散彈獵槍式的修改
【講座&練習(xí)】平行繼承結(jié)構(gòu)

用作公共庫(kù)的類
【講座&練習(xí)】不完整的庫(kù)類
單元測(cè)試(1天)
單元測(cè)試入門:
1.【演示】用JUnit4進(jìn)行單元測(cè)試-初步掌握用JUnit4進(jìn)行單元測(cè)試的能力
2.【練習(xí)】如何按業(yè)務(wù)價(jià)值導(dǎo)向進(jìn)行單元測(cè)試設(shè)計(jì)
樹立正確的單元測(cè)試認(rèn)識(shí)、概念和思路
Fixture組織
單元測(cè)試的力度
如何劃分單元測(cè)試
3.【討論&分析】為什么不寫單元測(cè)試
4.【討論&分析】誰(shuí)該對(duì)(外部/內(nèi)部)質(zhì)量負(fù)責(zé)
5.【講座】什么不是單元測(cè)試
6.【講座】什么是單元測(cè)試
7.【講座】項(xiàng)目中單元測(cè)試策略

怎么寫單元測(cè)試
1.【講座】單元測(cè)試結(jié)構(gòu)
2.【講座】單元測(cè)試內(nèi)容
3.【練習(xí)】如何組織測(cè)試數(shù)據(jù)
4.【討論&分析】邊界條件
5.【練習(xí)】如何用Mock輔助邊界條件測(cè)試

單元測(cè)試重構(gòu)
1.【討論&分析】識(shí)別單元測(cè)試中的壞味道
2.【練習(xí)】重構(gòu)單元測(cè)試

單元測(cè)試和構(gòu)建流水線(bulid pipeline)
1.【討論&分析】單元測(cè)試在構(gòu)建流水線中的位置和作用
2.【講座&練習(xí)】用Buildr做Java項(xiàng)目構(gòu)建
3.【講座&練習(xí)】用Rake做Ruby項(xiàng)目構(gòu)建
4.【講座&練習(xí)】用Jenkins/Hudson做持續(xù)集成

課程費(fèi)用

6800.00 /人

課程時(shí)長(zhǎng)

2

預(yù)約體驗(yàn)票 我要分享

近期公開課推薦

近期公開課推薦

活動(dòng)詳情

提交需求