400-888-5228

課程時長

2天+2天,中間間隔1天~1周。

 

課程思路

一個人不可能在地面上學(xué)會游泳!本課程采用完全現(xiàn)場實戰(zhàn)的方式,幫助團隊快速體驗和學(xué)會敏捷開發(fā)的各種工程實踐。

  1. 講解與練習(xí)比例大約1:1,視學(xué)員的實際情況靈活推廣
  2. 學(xué)員分為若干小組,每個小組都有2~3個核心參訓(xùn)人員人
  3. 每個小組需要至少有1人能夠維護前端界面,以便在前端自動化測試受阻時調(diào)整前端代碼
  4. 以自己實際正在開發(fā)的產(chǎn)品為練習(xí)對象,實施全景實戰(zhàn)過程

課程深度

根據(jù)學(xué)員的基礎(chǔ),此課程可以以不同的深度講授,由淺入深分別是:

  1. 演示型:講師以客戶的需求,在自己的開發(fā)環(huán)境中現(xiàn)場操作,學(xué)員不實戰(zhàn)。(適合4天)
  2. 單案例實戰(zhàn):從學(xué)員中抽取一個典型的需求,講師演示并指導(dǎo)團隊完成課程。 (適合4天)
  3. 多案例實戰(zhàn):每組都抽取一個需求,并行接受指導(dǎo)。(適合5天)

大綱脈絡(luò)

以下內(nèi)容按時間順序描述了訓(xùn)練營的整體脈絡(luò)。除整體脈絡(luò)外,各個階段還會穿插相應(yīng)知識的講授。

以下描述僅針對其中一個團隊,其他團隊也各自選定自己的產(chǎn)品,并按順序執(zhí)行實踐。

  1. 初級篇(大約對應(yīng)前2天內(nèi)容,目標是快速體驗)
    1. 現(xiàn)場對某個團隊的代表性產(chǎn)品進行代碼審查,發(fā)現(xiàn)潛在需要重構(gòu)的內(nèi)容
    2. 在重構(gòu)前,對這個產(chǎn)品建立自動化單元測試用例(冒煙測試級別)
    3. 在TDD框架下,執(zhí)行代碼重構(gòu)
  2. 高級篇(大約對應(yīng)后2天內(nèi)容,目標是優(yōu)化效率,系統(tǒng)化測試,全流程質(zhì)量管理)
    1. 封裝單元測試用例,以便快速產(chǎn)生測試用例(為ATDD做準備)
    2. 需求條目化,以便了解有哪些需求需要進行測試(宏觀需求)
    3. 對產(chǎn)品的實例化需求進行分解,挖掘出更多正向和反向用例(微觀需求)
    4. 從TDD到ATDD:將單元測試的代碼進化為驗收測試代碼
    5. 高級話題總結(jié)(限于內(nèi)容太多,以案例分享的方式進行)

課程受眾

項目經(jīng)理,技術(shù)經(jīng)理,開發(fā)骨干,測試骨干

  1. 本課程適合已經(jīng)對敏捷工程實踐有基礎(chǔ)經(jīng)驗的學(xué)員
  2. 本課程需要在實際工作環(huán)境中進行(需要有開發(fā)環(huán)境,最好有現(xiàn)場部署能力,需學(xué)員自行準備)
  3. 學(xué)員中的至少1/3應(yīng)能熟練在工作環(huán)境中開發(fā),作為核心參訓(xùn)人員
  4. 學(xué)員中至少有2~3人已經(jīng)能完成對CI環(huán)境的基本操作和維護

 

課程大綱

  1. 初級篇(大約對應(yīng)前2天內(nèi)容,目標是快速體驗)
    1. 代碼審查與重構(gòu)定位
      1. 目標:此階段完成后,學(xué)員發(fā)現(xiàn)代碼中的不足,并確認重構(gòu)的大體方向
      2. 理論講解
        1. 編碼的四重境界
        2. 好代碼的三級終極奧義
        3. 重構(gòu)的三種最佳時機
      3. ?現(xiàn)場實踐
        1. 現(xiàn)場對某個團隊的代表性產(chǎn)品進行代碼審查,發(fā)現(xiàn)潛在需要重構(gòu)的內(nèi)容
        2. 代碼要求
          1. 代碼可以是Java,C#(net),C++
          2. 重構(gòu)部分代碼的長度大約為200~500回車行
          3. 代碼最好既有后端也有前端
            1. 有前端才方便界面的自動化測試
          4. 代碼最好業(yè)務(wù)上利于理解
    2. 建立TDD與單元測試
      1. 目標:在重構(gòu)前,對這個產(chǎn)品建立自動化單元測試用例(冒煙測試級別),以便確認重構(gòu)前后的產(chǎn)品功能相同
      2. 理論講解
        1. Selenium分支
        2. 代碼單元測試與功能單元測試
      3. 講師演示
        1. 如何使用MarS快速建立頁面自動化測試
      4. 現(xiàn)場實踐
        1. 現(xiàn)場編寫某個幾個功能(頁面)的測試用例
          1. 一般為增刪改一整套用例,但只包含正向測試
        2. 重點:前端開發(fā)人員可能需要持續(xù)修改前端代碼以便通過測試
    3. 代碼重構(gòu)
      1. 目標:在TDD框架下,執(zhí)行代碼重構(gòu);重構(gòu)后仍能通過之前寫的單元測試
      2. 講師演示
        1. 講師演示重構(gòu)的編碼次序
          1. 重點:如何保證重構(gòu)過程每10分鐘左右即可編譯甚至測試一次
      3. 現(xiàn)場實踐(此階段時間較長)
        1. 學(xué)員重構(gòu)代碼
          1. 建立心跳:每測試并通過一次視為一次心跳
          2. 持續(xù)檢測心跳的頻率
  2. 高級篇(大約對應(yīng)后2天內(nèi)容,目標是優(yōu)化效率,系統(tǒng)化測試,全流程質(zhì)量管理)
      1. 封裝單元測試用例
        1. 目標:提升測試用例生產(chǎn)速度,以便快速產(chǎn)生測試用例,為ATDD所需的大量正反向用例做準備
        2. 講師演示
          1. 講師演示如何產(chǎn)生模板數(shù)據(jù)、模板測試,以及如何通過少許修改即可產(chǎn)生大量用例
        3. 現(xiàn)場實踐
          1. 學(xué)員對測試代碼進行重構(gòu)代碼
            1. 將原來的單個正向用例模板化即可
      2. 需求條目化
        1. 目標:建立宏觀的需求結(jié)構(gòu),從而可以確認要編寫哪些測試用例
        2. 理論講解
          1. SEA需求分層方法
            1. 將需求分為Scenario場景,Entity實體,Action行為三層
              1. 實體發(fā)現(xiàn):名詞捕捉法
              2. 行為發(fā)現(xiàn):CRUD法
          2. 現(xiàn)場實踐
            1. 學(xué)員對正在測試的范圍(一般只包含一個實體)所在的場景進行需求條目化分解
        3. 實例化需求
          1. 目標:將微觀需求實例化,以便產(chǎn)生ATDD所需的測試用例
          2. 理論講解
            1. 需求實例化方法
          3. 現(xiàn)場實踐
            1. 對產(chǎn)品的實例化需求進行分解,挖掘出更多正向和反向用例
        4. 建立ATDD過程
          1. 目標:將單元測試的代碼進化為驗收測試代碼,使得產(chǎn)品隨時處于已驗收狀態(tài)
          2. 理論講解
            1. 測試分層與測試策略
            2. 正向與反向測試
          3. 現(xiàn)場實踐(時間較長)
            1. 根據(jù)需求實例,編寫更多正向和反向測試用例
            2. 保持正向:反向比例為2:4~2:5左右
        5. 高級話題總結(jié)(限于內(nèi)容太多,以案例分享的方式進行)
          1. 目標:建立起敏捷的開發(fā)與測試工程流程
          2. 話題:敏捷質(zhì)量意識
            1. 縱向意識
              1. 質(zhì)量前移
            2. 橫向意識
              1. 破窗原理
              2. 童子軍法則
          3. 話題:Scrum的跨職能團隊與敏捷工程實踐
            1. 提升軟件“可測試性”
              1. 可測試性編碼規(guī)范
            2. 開發(fā)與測試分工
              1. 金字塔形知識體系
              2. 自動化測試流程
          4. 話題:QAD量化敏捷開發(fā)中的測試度量項及其監(jiān)控
            1. 基于敏捷功能點的測試度量
            2. 測試覆蓋率
            3. 測試密度
            4. 測試用例正反向比例
            5. 測試自動化率
            6. 測試用例生產(chǎn)率
          5. 話題:ATDD,CI,CD之間的關(guān)系
            1. 如何做到三者環(huán)環(huán)相扣
          6. 案例分享:用微服務(wù)實現(xiàn)零編碼接口自動化測試
          7. 其他可擴展的話題(由電話會議確認)