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

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

課程費(fèi)用

6800.00 /人

課程時(shí)長

2

成為教練

課程簡介

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

目標(biāo)收益

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

培訓(xùn)對象

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

課程大綱

重構(gòu)(一天) 1. 能識別代碼中的壞味道
用團(tuán)隊(duì)中的產(chǎn)品代碼做例子分析所出現(xiàn)的壞味道
結(jié)論討論和分析
總結(jié)、講解、概要分析所有種類的壞味道(21種)
結(jié)論討論和分析
2. 正確認(rèn)識和對待壞味道
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)
【講座】識別類內(nèi)的壞味道
【講座】重構(gòu)的循環(huán)
【講座】什么時(shí)候算做完了?
【講座】在一個(gè)重構(gòu)之內(nèi)
【練習(xí)】小步前進(jìn)-識別重構(gòu)常用的步驟
【練習(xí)】簡單設(shè)計(jì)-如何判斷簡單、你是怎么理解的

已知的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í)】長方法
【講座&練習(xí)】大類
【講座&練習(xí)】長參數(shù)列表
【練習(xí)】測驗(yàn):Smells和重構(gòu)
【講座】Smells和重構(gòu)

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

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

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

條件邏輯
【重構(gòu)】
【講座&練習(xí)】空值檢測
【講座&練習(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í)】子類拒絕來自父親的遺產(chǎn)
【講座&練習(xí)】不合適的親密關(guān)系(生成子類)
【講座&練習(xí)】Lazy Class


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

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

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

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

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

單元測試和構(gòu)建流水線(bulid pipeline)
1.【討論&分析】單元測試在構(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. 能識別代碼中的壞味道
用團(tuán)隊(duì)中的產(chǎn)品代碼做例子分析所出現(xiàn)的壞味道
結(jié)論討論和分析
總結(jié)、講解、概要分析所有種類的壞味道(21種)
結(jié)論討論和分析
2. 正確認(rèn)識和對待壞味道
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)
【講座】識別類內(nèi)的壞味道
【講座】重構(gòu)的循環(huán)
【講座】什么時(shí)候算做完了?
【講座】在一個(gè)重構(gòu)之內(nèi)
【練習(xí)】小步前進(jìn)-識別重構(gòu)常用的步驟
【練習(xí)】簡單設(shè)計(jì)-如何判斷簡單、你是怎么理解的

已知的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í)】長方法
【講座&練習(xí)】大類
【講座&練習(xí)】長參數(shù)列表
【練習(xí)】測驗(yàn):Smells和重構(gòu)
【講座】Smells和重構(gòu)

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

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

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

條件邏輯
【重構(gòu)】
【講座&練習(xí)】空值檢測
【講座&練習(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í)】子類拒絕來自父親的遺產(chǎn)
【講座&練習(xí)】不合適的親密關(guān)系(生成子類)
【講座&練習(xí)】Lazy Class


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

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

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

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

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

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

活動詳情

提交需求