Continuous integration : improving software quality and reducing risk

著者

    • Duvall, Paul M.
    • Matyas, Steve
    • Glover, Andrew

書誌事項

Continuous integration : improving software quality and reducing risk

Paul M. Duvall with Steve Matyas and Andrew Glover

(The Addison-Wesley signature series, A Martin Fowler signature book)

Addison-Wesley, c2007

  • : pbk

大学図書館所蔵 件 / 5

この図書・雑誌をさがす

注記

Includes bibliographical references (p. 273-274) and index

内容説明・目次

内容説明

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.

目次

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

「Nielsen BookData」 より

関連文献: 1件中  1-1を表示

詳細情報

ページトップへ