xUnit Test Patterns: Refactoring Test Code


Gerard Meszaros - 2003
    An effective testing strategy will deliver new functionality more aggressively, accelerate user feedback, and improve quality. However, for many developers, creating effective automated tests is a unique and unfamiliar challenge. xUnit Test Patterns is the definitive guide to writing automated tests using xUnit, the most popular unit testing framework in use today. Agile coach and test automation expert Gerard Meszaros describes 68 proven patterns for making tests easier to write, understand, and maintain. He then shows you how to make them more robust and repeatable--and far more cost-effective. Loaded with information, this book feels like three books in one. The first part is a detailed tutorial on test automation that covers everything from test strategy to in-depth test coding. The second part, a catalog of 18 frequently encountered "test smells," provides trouble-shooting guidelines to help you determine the root cause of problems and the most applicable patterns. The third part contains detailed descriptions of each pattern, including refactoring instructions illustrated by extensive code samples in multiple programming languages. Topics covered includeWriting better tests--and writing them faster The four phases of automated tests: fixture setup, exercising the system under test, result verification, and fixture teardown Improving test coverage by isolating software from its environment using Test Stubs and Mock Objects Designing software for greater testability Using test "smells" (including code smells, behavior smells, and project smells) to spot problems and know when and how to eliminate them Refactoring tests for greater simplicity, robustness, and execution speed This book will benefit developers, managers, and testers working with any agile or conventional development process, whether doing test-driven development or writing the tests last. While the patterns and smells are especially applicable to all members of the xUnit family, they also apply to next-generation behavior-driven development frameworks such as RSpec and JBehave and to other kinds of test automation tools, including recorded test tools and data-driven test tools such as Fit and FitNesse.Visual Summary of the Pattern Language Foreword Preface Acknowledgments Introduction Refactoring a Test PART I: The Narratives Chapter 1 A Brief Tour Chapter 2 Test Smells Chapter 3 Goals of Test Automation Chapter 4 Philosophy of Test Automation Chapter 5 Principles of Test Automation Chapter 6 Test Automation Strategy Chapter 7 xUnit Basics Chapter 8 Transient Fixture Management Chapter 9 Persistent Fixture Management Chapter 10 Result Verification Chapter 11 Using Test Doubles Chapter 12 Organizing Our Tests Chapter 13 Testing with Databases Chapter 14 A Roadmap to Effective Test Automation PART II: The Test Smells Chapter 15 Code Smells Chapter 16 Behavior Smells Chapter 17 Project Smells PART III: The Patterns Chapter 18 Test Strategy Patterns Chapter 19 xUnit Basics Patterns Chapter 20 Fixture Setup Patterns Chapter 21 Result Verification Patterns Chapter 22 Fixture Teardown Patterns Chapter 23 Test Double Patterns Chapter 24 Test Organization Patterns Chapter 25 Database Patterns Chapter 26 Design-for-Testability Patterns Chapter 27 Value Patterns PART IV: Appendixes Appendix A Test Refactorings Appendix B xUnit Terminology Appendix C xUnit Family Members Appendix D Tools Appendix E Goals and Principles Appendix F Smells, Aliases, and Causes Appendix G Patterns, Aliases, and Variations Glossary References Index "

Implementing Lean Software Development: From Concept to Cash


Mary Poppendieck - 2006
    These principles have revolutionized manufacturing and have been adopted by the most innovative product companies including Toyota and 3M. In 2003 the Poppendieck's published Lean Software Development: An Agile Toolkit which showed how these same lean principles can be successfully applied to software development. Since that publication the authors have increased their understanding of Lean and Agile problems faced by large organizations and have emerged as leading advocates for bringing Lean production techniques to software development. While their first book provides an introduction, theoretical advice and a reference to Lean, this follow-up incorporates their gained knowledge and understanding of what works and goes steps further to provide hands-on guidance for implementing a Lean system. Using historical case studies from prominent companies such as Polaris, Lockheed and Fujistu the authors prove the overall value of Lean practices and shows how to effectively apply these methods to software production.

Ethics And Technology: Ethical Issues In An Age Of Information And Communication Technology


Herman T. Tavani - 2003
    . . . We need a good book in cyberethics to deal with the present and prepare us for an uncertain future. Tavani's Ethics and Technology is such a book." --from the foreword by James Moor, Dartmouth College Is there privacy in a world of camera phones and wireless networking? Does technology threaten your civil liberties? How will bioinformatics and nanotechnology affect us? Should you worry about equity and access in a globalized economy? From privacy and security to free speech and intellectual property to globalization and outsourcing, the issues and controversies of the information age are serious, complex, and pervasive. In this new edition of his groundbreaking book, Herman Tavani introduces computer professionals to the emerging field of Cyberethics, the interdisciplinary field of study that addresses these new ethical issues from all perspectives: technical, social, and philosophical. Using fascinating real-world examples--including the latest court decisions in such cases as Verizon v. RIAA, MGM v. Grokster, Google versus the Bush Administration, and the Children's Online Pornography Act (CIPA) --as well as hypothetical scenarios, he shows you how to understand and analyze the practical, moral, and legal issues that impact your work and your life. Tavani discusses such cutting-edge areas as: * Globalization and outsourcing * Property rights and open source software * HIPAA (privacy laws) and surveillance * The Patriot Act and civil liberties * Bioinformatics and genomics research * Converging technologies--pervasive computing and nanocomputing * Children's online pornography laws Updating and expanding upon the previous edition, Ethics and Technology, Second Edition provides a much-needed ethical compass to help computer and non-computer professionals alike navigate the challenging waters of cyberspace. About the Author Herman T. Tavani is Professor of Philosophy at Rivier College and Co-Director of the International Society for Ethics and Information Technology (INSEIT). He is the author, editor, or co-editor of five books on ethical aspects of information technology. www.wiley.com/college/tavani