【課程簡介】
在敏捷開發(fā)實踐過程中總有一些棘手的問題,讓敏捷開發(fā)的過程磕磕絆絆,下面列舉了一些常見的問題:
(1)不愿意使用Unit Test與TDD,原因增加工作負擔(dān)
(2)改變我以前的工作習(xí)慣,習(xí)慣于頭腦中構(gòu)思,不愿意編寫出來
(3)不懂測試技術(shù),無法設(shè)計測試用例
(4)整個軟件中的函數(shù)都需要完成TDD嗎?
(5)如何結(jié)合UML與TDD?
(6)如何結(jié)合持續(xù)集成構(gòu)建與TDD?
(7)User story描述簡潔,如何展開User Story各種場景?
(8)如何從驗證角度完善User Story?
(9)Unit Test與TDD的粒度?
(10)有些工具支撐BDD?
這些問題引發(fā)了互聯(lián)網(wǎng)上得一些論戰(zhàn),不同實踐者,依據(jù)自己的實踐理解給出了一些有價值的經(jīng)驗,這些經(jīng)驗就像盲人摸象,只能解決其中的一部分問題,如何打通敏捷編程的五經(jīng)六脈呢?講師通過多年的實踐與咨詢,發(fā)現(xiàn)能夠?qū)崿F(xiàn)高質(zhì)量與高效率編程的一套實踐方法,有效結(jié)合UML、MDA、ATDD、BDD與TDD的方法,其中最為關(guān)鍵的事ATDD、BDD與TDD,故稱之為編程三劍客。
【培訓(xùn)對象】
(1)敏捷過程的編程者{希望融合ATDD、BDD與TDD的編程者}
(2)常規(guī)過程的編程者{希望了解編程三劍客內(nèi)涵的編程者}
(3)敏捷過程的Master
(4)常規(guī)過程的項目管理者、質(zhì)量保證者
【培訓(xùn)時間】
2天
【培訓(xùn)形式】
(1)全新的可視化教學(xué)方式-圖形化方式演繹課程的知識體系
(2)A4動手實踐法-背對背的頭腦風(fēng)暴實踐模式,揭示思維的差異
(3)A4回顧實踐法-每日階段性回顧,符合人的記憶規(guī)律
【課程大綱】
第1天 |
1.計算機解決問題需要什么 (1)馮諾依曼計算機結(jié)構(gòu)與程序結(jié)構(gòu) (2)程序結(jié)構(gòu)對需求規(guī)格描述的影響 (3)驗收測試對需求規(guī)格的要求 (4)場景步驟描述的二義性問題 (5)關(guān)鍵字的形式化語言 (6)推導(dǎo)出ATDD與BDD的需求規(guī)格 (7)圓桌實踐:你的需求我描述 (8)歸納總結(jié):記錄發(fā)布你的實踐感悟 2.ATDD驗收測試驅(qū)動開發(fā) (1)product owner的user story開發(fā)與測試問題 (2)User Story & Product Backlog (2)用戶故事的細化description (3)User Story & 測試驗證 (4)測試用例結(jié)構(gòu)與功能驗收標(biāo)準(zhǔn) (5)功能驗收標(biāo)準(zhǔn) & IDEF 0 (6)功能之間的調(diào)用關(guān)系與功能集成測試 (7)非功能性驗證標(biāo)準(zhǔn)與系統(tǒng)測試 (8)開發(fā)者與測試者輔助PO撰寫驗收標(biāo)準(zhǔn) (9)動手實踐:基于ATDD的方式描述User Story實踐 3. BDD行為驅(qū)動開發(fā) (1)Use Case & Scenario (2)與界面相關(guān)的交互場景分解 (3)功能操作的場景分解 (4)Scenario Description中的二義性問題 (5)何為形式化語言? (6)形式化語言關(guān)鍵字與語法結(jié)構(gòu) (7)形式化語言描述Scenario (8)可以執(zhí)行的形式化語言 (9)動手實踐:基于BDD形式化語言描述User Story實踐 4.良好的編程習(xí)慣改變軟件的質(zhì)量 (1)PDCA解釋一種有準(zhǔn)備的工作習(xí)慣~先構(gòu)思后編程 (2)思維導(dǎo)圖與UML一種可視化構(gòu)思表達 (3)編程者最擅長什么? (4)形式化語言是一種精準(zhǔn)方式的構(gòu)思表述 (5)以閱讀者的視角定義構(gòu)思的表達 (6)從需求變更引發(fā)文檔變更視角定義構(gòu)思表達 (7)百家爭鳴:如何改變開發(fā)者固有的編程習(xí)慣 5.全部TDD還是局部TDD (1)TDD的工作量評估 (2)動手實踐:TDD工作量評估實踐,給出代碼行數(shù)量 (3)TDD使用場景決策 (4)慣性編程是否需要TDD? (5)待開發(fā)模塊歸類,一類只需一種TDD (6)基于Software Factory的TDD編程思維 (7)百家爭鳴:TDD的全面實施與局部實施 (8)白紙方式的TDD是否可以使用 |
第2天 |
6.打通編程的五經(jīng)六脈 (1)展示:不同流派的編程模式 (2)待實現(xiàn)模塊的Structured Method (3)待實現(xiàn)模塊的Object Oriented Method (4)對象化與結(jié)構(gòu)化的銜接與圖形可視化表達 (5)結(jié)合UML與MDA的自動骨架代碼生成 (6)類函數(shù)實現(xiàn)框圖中數(shù)據(jù)流與測試腳本 (7)動手實踐:結(jié)合UML與TDD實踐 7.TDD的測試思維與測試技術(shù) (1)測試輸入、場景、輸出、依賴構(gòu)造技術(shù) (2)測試技術(shù)-邊界、等價、因果、決策、正交表、所有值對表等 (3)函數(shù)的輸入與輸出取值分析與Mapping (4)單元測試的Assert編程結(jié)構(gòu) (5)單元測試的Mock與Stub編程結(jié)構(gòu) (6)復(fù)雜數(shù)據(jù)結(jié)構(gòu)輸入與輸出的數(shù)據(jù)構(gòu)造技巧 (7)測試數(shù)據(jù)與測試腳本分離 (8)動手實踐:測試腳本撰寫實踐 8.TDD編程與重構(gòu) (1)Unit Test Process & 重構(gòu) (2)功能到斷言的中間環(huán)節(jié)如何打通 (3)函數(shù)內(nèi)部結(jié)構(gòu)-定義、初始化、算法與釋放 (4)函數(shù)內(nèi)部的邏輯結(jié)構(gòu)與輸入輸出關(guān)系 (5)邏輯結(jié)構(gòu)復(fù)雜的函數(shù)的TDD技巧 (6)TDD測試腳本的重構(gòu) (7)動手實踐:TDD測試腳本重構(gòu)實踐 9.持續(xù)集成構(gòu)建與TDD (1)持續(xù)集成構(gòu)建過程與工具 (2)持續(xù)集成構(gòu)建中的BVT驗證性測試 (3)基于接口函數(shù)單元測試的BVT測試 (4)編程者Check in去除mock的TDD腳本 (5)TDD觸發(fā)持續(xù)集成構(gòu)建事件 (6)動手實踐:基于持續(xù)集成構(gòu)建的TDD實踐
|