Continuous Integration: Improving Software Quality and Reducing Risk (Paperback)
Paul M. Duvall, Steve Matyas, Andrew Glover
- 出版商: Addison Wesley
- 出版日期: 2007-06-29
- 定價: $2,080
- 售價: 9.0 折 $1,872
- 語言: 英文
- 頁數: 336
- 裝訂: Paperback
- ISBN: 0321336380
- ISBN-13: 9780321336385
-
相關分類:
CI/CD
立即出貨
買這商品的人也買了...
-
$520$416 -
$880$695 -
$880$695 -
$550$468 -
$980$774 -
$480$379 -
$680$537 -
$990$891 -
$3,170$3,012 -
$600$480 -
$299The Art of Agile Development (Paperback)
-
$1,200$1,020 -
$680$537 -
$1,488C++ GUI Programming with Qt 4, 2/e (Hardcover)
-
$780$616 -
$750$593 -
$980$774 -
$960$758 -
$580$493 -
$750$675 -
$2,090Continuous Delivery: Reliable Software Releases through Build, Test, and Deployment Automation (Hardcover)
-
$580$458 -
$1,501How Google Tests Software (Paperback)
-
$450$383 -
$650$507
相關主題
商品描述
Description
For any software developer who has spent days in “integration hell,” cobbling together myriad software components, Continuous Integration: Improving Software Quality and Reducing Risk illustrates how to transform integration from a necessary evil into an everyday part of the development process. The key, as the authors show, is to integrate regularly and often using continuous integration (CI) practices and techniques.
The authors first examine the concept of CI and its practices from the ground up and then move on to explore other effective processes performed by CI systems, such as database integration, testing, inspection, deployment, and feedback. Through more than forty CI-related practices using application examples in different languages, readers learn that CI leads to more rapid software development, produces deployable software at every step in the development lifecycle, and reduces the time between defect introduction and detection, saving time and lowering costs. With successful implementation of CI, developers reduce risks and repetitive manual processes, and teams receive better project visibility.
The book covers
- How to make integration a “non-event” on your software development projects
- How to reduce the amount of repetitive processes you perform when building your software
- Practices and techniques for using CI effectively with your teams
- Reducing the risks of late defect discovery, low-quality software, lack of visibility, and lack of deployable software
- Assessments of different CI servers and related tools on the market
The book’s companion Web site, www.integratebutton.com, provides updates and code examples.
Table of Contents
Foreword by Martin Fowler xiii
Foreword by Paul Julius xv
Preface xix
About the Authors xxxi
About the Contributors xxxiii
Part I: A Background on CI: Principles and Practices 1
Chapter 1: Getting Started 3
Build Software at Every Change 4
Features of CI 12
Summary 20
Questions 20
Chapter 2: Introducing Continuous Integration 23
A Day in the Life of CI 25
What Is the Value of CI? 29
What Prevents Teams from Using CI? 32
How Do I Get to Continuous Integration? 33
When and How Should a Project Implement CI? 35
The Evolution of Integration 36
How Does CI Complement Other Development Practices? 37
How Long Does CI Take to Set Up? 38
CI and You 39
Commit Code Frequently 39
Don't Commit Broken Code 41
Fix Broken Builds Immediately 41
Write Automated Developer Tests 41
All Tests and Inspections Must Pass 42
Run Private Builds 42
Avoid Getting Broken Code 43
Summary 44
Questions 44
Chapter 3: Reducing Risks Using CI 47
Risk: Lack of Deployable Software 49
Risk: Late Discovery of Defects 53
Risk: Lack of Project Visibility 55
Risk: Low-Quality Software 57
Summary 62
Questions 62
Chapter 4: Building Software at Every Change 65
Automate Builds 67
Perform Single Command Builds 69
Separate Build Scripts from Your IDE 73
Centralize Software Assets 74
Create a Consistent Directory Structure 75
Fail Builds Fast 76
Build for Any Environment 77
Build Types and Mechanisms 78
Use a Dedicated Integration Build Machine 81
Use a CI Server 85
Run Manual Integration Builds 86
Run Fast Builds 87
Stage Builds 92
How Will This Work for You? 96
Summary 101
Questions 102
Part II: Creating a Full-Featured CI System 105
Chapter 5: Continuous Database Integration 107
Automate Database Integration 110
Use a Local Database Sandbox 117
Use a Version Control Repository to Share Database Assets 119
Continuous Database Integration 121
Give Developers the Capability to Modify the Database 123
The Team Focuses Together on Fixing Broken Builds 124
Make the DBA Part of the Development Team 124
Database Integration and the Integrate Button 125
Summary 126
Questions 128
Chapter 6: Continuous Testing 129
Automate Unit Tests 132
Automate Component Tests 134
Automate System Tests 136
Automate Functional Tests 137
Categorize Developer Tests 138
Run Faster Tests First 141
Write Tests for Defects 143
Make Component Tests Repeatable 148
Limit Test Cases to One Assert 156
Summary 158
Questions 159
Chapter 7: Continuous Inspection 161
What Is the Difference between Inspection and Testing? 164
How Often Should You Run Inspectors? 165
Code Metrics: A History 166
Reduce Code Complexity 167
Perform Design Reviews Continuously 170
Maintain Organizational Standards with Code Audits 173
Reduce Duplicate Code 176
Assess Code Coverage 180
Evaluate Code Quality Continuously 182
Summary 185
Questions 186
Chapter 8: Continuous Deployment 189
Release Working Software Any Time, Any Place 191
Label a Repository's Assets 191
Produce a Clean Environment 194
Label Each Build 195
Run All Tests 196
Create Build Feedback Reports 196
Possess Capability to Roll Back Release 199
Summary 199
Questions 200
Chapter 9: Continuous Feedback 203
All the Right Stuff 205
Use Continuous Feedback Mechanisms 209
Summary 222
Questions 222
Epilogue: The Future of CI 223
Appendix A: CI Resources 227
Continuous Integration Web Sites/Articles 227
CI Tools/Product Resources 229
Build Scripting Resources 232
Version Control Resources 233
Database Resources 234
Testing Resources 236
Automated Inspection Resources 239
Deployment Resources 241
Feedback Resources 241
Documentation Resources 243
Appendix B: Evaluating CI Tools 245
Considerations When Evaluating Tools 247
Automated Build Tools 255
Build Scheduler Tools 263
Conclusion 272
Bibliography 273
Index 275
商品描述(中文翻譯)
描述
對於那些在「整合地獄」中度過數天的軟體開發人員,持續整合:提升軟體品質並降低風險展示了如何將整合從一個必要的惡魔轉變為開發過程中的日常部分。正如作者所示,關鍵在於使用持續整合(CI)的實踐和技術進行定期且頻繁的整合。
作者首先從基礎開始檢視CI的概念及其實踐,然後探討CI系統執行的其他有效流程,例如數據庫整合、測試、檢查、部署和反饋。通過使用不同語言的應用示例進行的四十多個與CI相關的實踐,讀者將了解到CI可以加快軟體開發速度,在開發生命週期的每一步都能產生可部署的軟體,並減少缺陷引入和檢測之間的時間,節省時間並降低成本。成功實施CI後,開發人員可以減少風險和重複的手動流程,團隊可以獲得更好的項目可見性。
本書涵蓋了以下內容:
- 如何使整合成為軟體開發項目中的「非事件」
- 在構建軟體時如何減少重複的流程
- 有效使用CI與團隊的實踐和技術
- 減少缺陷發現延遲、低質量軟體、缺乏可見性和可部署軟體的風險
- 市場上不同CI服務器和相關工具的評估
本書的附屬網站www.integratebutton.com提供更新和代碼示例。
目錄
序言(馬丁·福勒) xiii
序言(保羅·朱利斯) xv
前言 xix
關於作者 xxxi
關於貢獻者 xxxiii
第一部分:CI的背景:原則和實踐
1
第1章:入門 3
在每次更改時構建軟體 4
CI的特點 12
摘要 20
問題 20
第2章:介紹持續整合 23
CI的一天 25
CI的價值是什麼? 29
什麼阻止團隊使用CI? 32
如何實現持續整合? 33
何時以及如何實施CI? 35
整合的演進 36
CI如何與其他開發實踐相輔相成?
37
設置CI需要多長時間? 38
CI和你 39
頻繁提交代碼 39
不要提交有問題的代碼 41
立即修復損壞的構建 41
<```