Introduction | p. 1 |
Solving the Business Software "Last Mile" | p. 5 |
The Source of the "Last Mile" Problem | p. 5 |
Understanding the Problem | p. 6 |
Solving the "Last Mile" Problem | p. 8 |
People | p. 8 |
Automation | p. 9 |
Design for Automated Testing of Nonfunctional Requirements | p. 10 |
Decouple Design from Production Environment | p. 12 |
Versionless Software | p. 13 |
One Lair and Twenty Ruby DSLs | p. 15 |
My Lair Example | p. 15 |
Using Global Functions | p. 18 |
Using Objects | p. 21 |
Using Closures | p. 27 |
Evaluation Context | p. 28 |
Literal Collections | p. 31 |
Dynamic Reception | p. 36 |
Final Thoughts | p. 38 |
The Lush Landscape of Languages | p. 39 |
Introduction | p. 39 |
The Specimens | p. 39 |
The Variety of Varieties | p. 43 |
The Tree of Life for Languages | p. 47 |
That's All Very Interesting, But Why Should You Care? | p. 49 |
Polyglot Programming | p. 51 |
Polyglot Programming | p. 52 |
Reading Files the Groovy Way | p. 52 |
JRuby and isBlank | p. 54 |
Jaskell and Functional Programming | p. 55 |
Testing Java | p. 58 |
Polyglot Programming the Future | p. 60 |
Object Calisthenics | p. 61 |
Nine Steps to Better Software Design Today | p. 61 |
The Exercise | p. 62 |
Conclusion | p. 70 |
What Is an Iteration Manager Anyway? | p. 73 |
What Is an Iteration Manager? | p. 73 |
What Makes a Good Iteration Manager? | p. 74 |
What an Iteration Manager Is Not | p. 75 |
The Iteration Manager and the Team | p. 76 |
The Iteration Manager and the Customer | p. 77 |
The Iteration Manager and the Iteration | p. 78 |
The Iteration Manager and the Project | p. 79 |
Conclusion | p. 80 |
Project Vital Signs | p. 81 |
Project Vital Signs | p. 81 |
Project Vital Signs vs. Project Health | p. 82 |
Project Vital Signs vs. Information Radiator | p. 82 |
Project Vital Sign: Scope Burn-Up | p. 83 |
Project Vital Sign: Delivery Quality | p. 86 |
Project Vital Sign: Budget Burn-Down | p. 87 |
Project Vital Sign: Current State of Implementation | p. 89 |
Project Vital Sign: Team Perceptions | p. 92 |
Consumer-Driven Contracts: A Service Evolution Pattern | p. 93 |
Evolving a Service: An Example | p. 95 |
Schema Versioning | p. 96 |
Breaking Changes | p. 101 |
Consumer-Driven Contracts | p. 103 |
Domain Annotations | p. 113 |
Domain-Driven Design Meets Annotations | p. 113 |
Case Study: Leroy's Lorries | p. 118 |
Summary | p. 132 |
Refactoring Ant Build Files | p. 135 |
Introduction | p. 135 |
Ant Refactoring Catalog | p. 137 |
Summary | p. 164 |
References | p. 164 |
Resources | p. 164 |
Single-Click Software Release | p. 165 |
Continuous Build | p. 165 |
Beyond Continuous Build | p. 166 |
Full Lifecycle Continuous Integration | p. 167 |
The Check-in Gate | p. 168 |
The Acceptance Test Gate | p. 170 |
Preparing to Deploy | p. 170 |
Subsequent Test Stages | p. 173 |
Automating the Process | p. 174 |
Conclusion | p. 174 |
Agile vs. Waterfall Testing for Enterprise Web Apps | p. 177 |
Introduction | p. 177 |
Testing Life Cycle | p. 178 |
Types of Testing | p. 181 |
Environments | p. 187 |
Issue Management | p. 190 |
Tools | p. 191 |
Reports and Metrics | p. 192 |
Testing Roles | p. 193 |
References | p. 195 |
Pragmatic Performance Testing | p. 197 |
What Is Performance Testing? | p. 197 |
Requirements Gathering | p. 198 |
Running the Tests | p. 203 |
Communication | p. 209 |
Process | p. 211 |
Summary | p. 213 |
Bibliography | p. 215 |
Index | p. 217 |
Table of Contents provided by Ingram. All Rights Reserved. |
The New copy of this book will include any supplemental materials advertised. Please check the title of the book to determine if it should include any access cards, study guides, lab manuals, CDs, etc.
The Used, Rental and eBook copies of this book are not guaranteed to include any supplemental materials. Typically, only the book itself is included. This is true even if the title states it includes any access cards, study guides, lab manuals, CDs, etc.