欧美麻豆久久久久久中文_成年免费观看_男人天堂亚洲成人_中国一级片_动漫黄网站免费永久在线观看_国产精品自产av一区二区三区

中培偉業企業IT內訓課程
您現在的位置:首頁 > 企業內訓 > 軟件研發 > 單元測試和重構改進軟件質量

單元測試和重構改進軟件質量

2022-04-29 10:53:28 | 來源:中培企業IT培訓網
  • 課程背景
在每個現代軟件的構造階段,測試這一實踐都扮演著中心角色。過去那種先編寫代碼,然后有空的時候再測試(或者根本不測試)的日子已經一去不返,因為大多數開發人員現在認識到需要采用編碼和測試彼此交織、同步推進的軟件方法論,以便盡早發現 bug,在開發過程開始的時候就識別出主要的風險。
本課程系統全面地介紹了單元測試技術、方法以及原則,同時通過靜態分析Java/C#/C++/C語言程序常見代碼發現隱形Bug,而如何采用工具提高單元測試效率,則由講解使用XUnit等單元測試工具實現,最后使用代碼重構改進代碼質量和可測性。
  • 課程目標
持續交付
TDD-測試驅動開發
單元測試概念
單元測試用例設計
應用單元測試框架實踐單元測試
多種技術平臺編程語言單元測試實戰
單元測試效率
單元測試最佳實踐經驗
實現代碼質量的度量
 代碼覆蓋率分析
Code review
面向對象設計原理與原則
重構實踐
重構代碼到模式。
  • 培訓時長
3天(18課時)
  • 課程安排
應用單元測試和重構改進軟件質量
時間 課程內容



持續交付
  • 軟件研發交付面臨的挑戰
  • 持續交付的研發流程
  • 使用高質量的單元測試提高開發期質量的反饋
  • 應用CI進行每日構建以頻繁地交付可工作的軟件
  • 基本腳本的自動化部署縮短系統部署時間
  • 自動化的回歸功能測試加速UAT測試
單元測試概述
  • 什么叫單元測試?
  • 為什么要做單元測試
  • 單元測試實施流程
  • 單元測試代碼的編寫規范
  • 單元測試策略
  • 單元測試用例設計
  • 單元測試覆蓋率分析
  • 單元測試報告模板
 
基于單元測試的開發習慣
  • 開發過程是否需要單元測試
  • 是先代碼開發,還是先單元測試
  • 進行Debug是否可以替代單元測試
  • 什么時間展開單元測試
  • 單元測試的粒度(函數級別嗎?)
  • 單元測試與代碼開發的時間比例關系
  • XP中的TDD實施過程
 
TDD-測試驅動開發
  • TDD開發優勢、價值
  • TDD開發過程
  • TDD開發模式
  • TDD實踐過程的問題、難點解決方案
 
單元測試代碼結構
  • 實現代碼結構與單元測試代碼結構對比
  • 單元測試代碼結構的可復用性
  • 單元調用接口替身代碼結構
  • 集成單元測試代碼結構
 
實現代碼結構分析
  • 實現代碼語句分析
  • 實現代分支、循環分析
  • 實現代碼路徑分析
  • 實現代碼條件分析
  • 標識測試點
 
單元測試用例設計
  • 單元測試點之測試技術選擇
  • 單元測試點之斷言標準設計
  • 單元測試點之測試數據設計
  • 單元測試點集成測試場景設計
  • 基于設計模式實現代碼的單元測試設計(創建、結構與行為)
 
應用單元測試框架實踐單元測試
  • 單元測試框架概述
  • 編譯單元測試框架源代碼
  • 使用斷言編寫單元測試用例
  • 使用Fixture機制靈活支持單元測試
  • 使用參數化批量定義單元測試用例
  • 使用運行參數控制測試用例執行
  • 使用工具生成單元測試覆蓋率報告



多種技術平臺編程語言單元測試實戰
  • 使用JSUnit、JSMock實踐Javascript單元測試
  • Java語言單元測試實踐:
    • 使用JUnit/TestNG框架實施Java代碼的單元測試
    • 使用MockIto框架實施隔離測試
    • 使用Spring Test API實踐Spring框架單元測試
    • 使用DBUnit框架實施基于數據庫的單元測試
  • C#語言單元測試實踐
    • 使用MSTest實施C#代碼的單元測試
    • 使用RhinoMock框架實施隔離測試
  • C++語言單元測試實踐
    • 使用Google Test框架實施C++代碼的單元測試
    • 使用Google Mock框架實施隔離測試
  • C語言單元測試實踐:使用Cmockery框架
  • 使用SQLUnit實踐數據庫存儲過程單元測試
案例:使用單元測試框架進行單元測試案例實踐
 
單元測試效率(縮短單元測試時間)
  • 測試的全面性與測試效率
  • 函數級別單元測試與測試效率
  • 簡單且可運行實現代碼的測試效率
  • 將單元測試代碼集成到CI過程中
 
使用Mock實現測試隔離
  • Mock對象的設計和應用原則
  • 如何編寫Mock和Stub
  • 使用Mock框架實現測試隔離
  • Mock和Stub的最佳實踐
 
單元測試最佳實踐經驗
  • 根據架構設計分析單元測試策略
  • 基于軟件需求、技術設計單元測試用例
  • 自動化回歸單元測試用例
  • 生成、分析單元測試覆蓋率報告
 
Test Review技巧
  • 如何Review已有單元測試代碼
  • 分析單元測試覆蓋率報告以發現問題
  • 分類測試問題以實現單元測試的可讀性和可維護性
  • 案例分析開源項目的單元測試方案
 
遺留代碼的單元測試導入與改進
  • 設計解耦分離解決方案
  • 測試已有代碼的方法和策略
  • 通過重新設計改進代碼可測性
  • 針對不可測代碼的解決方案



靜態測試
  • 靜態測試的目的
  • 靜態測試的原則
  • 靜態測試實戰
  • 案例:使用CheckStyle,PMD,Findbugs進行校驗代碼規則 , 發現重復代碼,檢查代碼注釋率
 
實現代碼質量的度量
  • 代碼質量的度量
  • Chidamber & Kemerer度量,
  • Depth of Inheritance Tree(DIT)
  • Number of Childre(NOC)
  • Response for a Class(RFC)
  • Afferent/Efferent Couplings(CA/CE)
  • Lack of cohesion in methods(LCOM)
  • 業界其他度量標準
 
Code review
  • Code review的原則
  • Code review前期準備
  • Code review的代碼量
  • Code review的缺陷檢查表
  • Code review實戰
  • 案例:使用Eclipse插件執行Code review活動
 
代碼覆蓋率分析
  • 代碼覆蓋率的意義
  • 代碼覆蓋率工具介紹
  • 代碼覆蓋率實戰
  • 代碼覆蓋率分析
  • 案例:使用 CodePro進行覆蓋測試
 
使用重構提高代碼可測試性
面向對象設計原理與原則
  • 開-閉原則(Open-Closed Principle)
  • 里氏代換原則(Liskov Substitution Principle)
  • 依賴倒換原則(Dependence Inversion Principle)
  • 接口隔離原則(Interface Segregation Principle)
  • 合成、聚合復用原則(Composite Aggregate Reuse Principle)
  • 迪米特法則(Law of Demeter)
 
重構實踐
  • 分析并初步重構一個案例
  • 重構原則
  • 代碼的壞味道
  • 構筑測試體系
  • 重構工具
  • 優秀程序結構的風格
  • 如何觀察代碼
  • 重構名錄
  • 重新組織函數與屬性
  • 重新組織對象關系
  • 簡化表達式
  • 組織繼承體系
  • 如何讓重構成為習慣
  • 重構案例實踐與分析
  • 重構工具
  • 案例:使用Eclipse/VS.NET工具進行重構實戰



 
使用重構提高代碼可測試性
重構到模式
  • 設計模式概述
  • 設計模式歷史,描述,分類,應用
  • 使用模式的預先設計
  • 過度使用設計模式后果分析
  • 通過重構實現、趨向和去除濫用模式
  • 代碼的壞味道:過度設計、設計不足
  • 構筑測試體系
  • 演進式設計
 
案例---重點介紹重構基本類型依賴和對應模式
  • 通過案例學習以下重構到模式手段
  • 以State取代狀態改變條件語句
  • 以Strategy取代條件邏輯
  • 以Composite取代隱含樹
  • 以Interpreter取代隱式語言
  • 轉移裝飾功能到Decorator
  • 用Builder封裝Composite
 
案例---重點介紹重構代碼重復和對應模式
  • 通過案例學習以下重構到模式手段
  • 構造Template Method
  • 以Composite取代一/多之分
  • 引入Null Object
  • 用Adapter統一接口
  • 用Fatory Method引入多態創建
 
案例---重點介紹重構代碼過長/過大的類/方法和對應模式
  • 轉移聚集操作到Vistor
  • 以Strategy取代條件邏輯
  • 以Command取代條件調度程序
  • 轉移聚集操作到Collecting Parameter
 
案例---重點介紹條件邏輯過度復雜和對應模式
  • 以Strategy取代條件邏輯
  • 以State取代狀態改變條件語句
  • 轉移裝飾功能到Decorator
  • 引入Null Object
  • 以Command替換條件調度程序
  • 轉移聚集操作到Visitor

相關閱讀

主站蜘蛛池模板: 欧美乱码卡1卡2卡三卡四卡 | 午夜伦4480YY私人影院 | 大伊香蕉AV最新播放 | 91丨国产丨蚪窝海角社区 | 解开人妻的裙子猛烈进入 | 日韩欧美亚 | 久久人人爽天天玩人人妻精品 | 欧美《熟妇的荡欲》在线观看 | 亚洲欧美另类激情综合区 | 涩涩激情网 | 亚洲熟女乱色一区二区三区 | 日本人浓密BBW | 免费看又黄又爽又猛的视频软件 | 欧美内射深插日本少妇 | 欧美综合区 | 欧洲熟妇色XXXXX欧美老妇伦 | 久草热久草在线视频 | 9I精品福利一区二区三区蜜桃 | 亚洲伊人久久综合成人网站 | 婷婷五月婷婷五月 | 强壮的公弄得高潮HD | 免费同性男男自慰网站 | 人妻夜夜爽天天爽 | 亚洲aⅴ无码成人网站国产 婷婷亚洲精品久久无码一区二区三区 | 亚洲伊人久久大香线蕉 | 国产精品免费久久久久影视 | 嫩草懂你的影院 | 蜜臀亚洲AV无码精品国产午夜. | 色在线亚洲视频www 国产无套粉嫩白浆在线观看 | 性猛交| 国产日韩精品欧美一区 | 成 人影片免费观看 | 国产chinasex对白videos麻豆 | 粉色视频在线观看高清免费完整 | 欧美精品亚洲精品日韩专区一乛方 | 国内精品视频在线播放不卡 | 无码人妻熟妇AV又粗又大 | 免费99精品国产人妻自在线 | 一本大道东京热无码一区 | 尤物AV无码国产在线观看 | 怡红院福利视频 |