Effective Unit Testing


Lasse Koskela - 2012
    Savvy Java developers know that not all testing is created equal. In addition to traditional functional testing, many shops are adopting developer testing techniques such as unit testing. Specific, automated tests are created to verify the accuracy and function of code while or even before it's written - to catch bugs early.Unit Testing in Java teaches how to write good tests that are concise and to the point, useful, and maintainable. This book focuses on tools and practices specific to Java. It introduces emerging techniques like specification by example and behavior-driven development, and shows how to add robust practices into developers' toolkits.Table of ContentsI. FOUNDATIONS1. The promise of good tests2. In search of good3. Test doublesII. CATALOG4. Readability5. Maintainability6. TrustworthinessIII. DIVERSIONS7. Testable design8. Writing tests in other JVM languages9. Speeding up test executionsAppendix A: JUnit primerAppendix B: Extending JUnitIndex

JUnit in Action


Vincent Massol - 2003
    Today, most developers acknowledge the benefits of unit testing and rely on the increasingly sophisticated tools now available. The recently released JUnit 4.5 represents the state of the art in unit testing frameworks, and provides significant new features to improve the Java development process.JUnit in Action, Second Edition is an up-to-date guide to unit testing Java applications (including Java EE applications) using the JUnit framework and its extensions. This book provides techniques for solving real-world problems such as testing AJAX applications, using mocks to achieve testing isolation, in-container testing for Java EE and database applications, and test automation.Written to help readers exploit JUnit 4.5, the book covers recent innovations such as the new annotations that simplify test writing, improved exception handling, and the new assertion methods. You'll also discover how to use JUnit extensions to test new application styles and frameworks including Ajax, OSGi, and HTML-based presentation layers.Using a sample-driven approach, various unit testing strategies are covered, such as how to unit test EJBs, database applications, and web applications. Also addressed are testing strategies using freely available open source frameworks and tools, and how to unit test in isolation with Mock Objects. The book will also bring you up to speed on the latest thinking in TDD, BDD, Continuous Integration, and other practices related to unit testing.

Wordpress for Beginners - A Visual Step-by-Step Guide to Creating your Own Wordpress Site in Record Time, Starting from Zero! (Webmaster Series)


Andy Williams - 2012
    Not any more. Wordpress makes it possible for anyone to create and run a professional looking website.While Wordpress is an amazing tool, the truth is it does have a steep learning curve, even if you have built websites before. Therefore, the goal of this book is to take anyone, even a complete beginner and get them building a professional looking website. I'll hold your hand, step-by-step, all the way. As I was planning this book, I made one decision early on. I wanted to use screenshots of everything, so the reader wasn't left looking for something on their screen that I was describing in text. This book has screenshots. I haven't counted them all, but it must be close to 300. These screenshots will help you find the things I am talking about. They'll help you check your settings and options against the screenshot of mine. No more doubt, no more wondering if you have it correct. Look, compare and move on to the next section.With so many screenshots, you may be worried that the text might be a little on the skimpy side. No need to worry there. I have described in the minutest detail, every step on your journey to a great looking website. In all, this book has over 35,000 words. This book will cut your learning curve associated with WordpressEvery chapter of the book ends with a "Tasks to Complete" section. By completing these tasks, you'll not only become proficient at using Wordpress, you'll become confident & enjoy using Wordpress.

Modern C++ Programming with Test-Driven Development: Code Better, Sleep Better


Jeff Langr - 2013
    Test-driven development (TDD) is a modern software development practice that can dramatically reduce the number of defects in systems, produce more maintainable code, and give you the confidence to change your software to meet changing needs. But C++ programmers have been ignored by those promoting TDD--until now. In this book, Jeff Langr gives you hands-on lessons in the challenges and rewards of doing TDD in C++.Modern C++ Programming With Test-Driven Development, the only comprehensive treatment on TDD in C++ provides you with everything you need to know about TDD, and the challenges and benefits of implementing it in your C++ systems. Its many detailed code examples take you step-by-step from TDD basics to advanced concepts. As a veteran C++ programmer, you're already writing high-quality code, and you work hard to maintain code quality. It doesn't have to be that hard. In this book, you'll learn: how to use TDD to improve legacy C++ systems how to identify and deal with troublesome system dependencies how to do dependency injection, which is particularly tricky in C++ how to use testing tools for C++ that aid TDD new C++11 features that facilitate TDD As you grow in TDD mastery, you'll discover how to keep a massive C++ system from becoming a design mess over time, as well as particular C++ trouble spots to avoid. You'll find out how to prevent your tests from being a maintenance burden and how to think in TDD without giving up your hard-won C++ skills. Finally, you'll see how to grow and sustain TDD in your team. Whether you're a complete unit-testing novice or an experienced tester, this book will lead you to mastery of test-driven development in C++.What You Need A C++ compiler running under Windows or Linux, preferably one that supports C++11. Examples presented in the book were built under gcc 4.7.2. Google Mock 1.6 (downloadable for free; it contains Google Test as well) or an alternate C++ unit testing tool. Most examples in the book are written for Google Mock, but it isn't difficult to translate them to your tool of choice. A good programmer's editor or IDE. cmake, preferably. Of course, you can use your own preferred make too. CMakeLists.txt files are provided for each project. Examples provided were built using cmake version 2.8.9. Various freely-available third-party libraries are used as the basis for examples in the book. These include: - cURL - JsonCpp - Boost (filesystem, date_time/gregorian, algorithm, assign) Several examples use the boost headers/libraries. Only one example uses cURL and JsonCpp.

GUI Bloopers: Don'ts and Do's for Software Developers and Web Designers


Jeff Johnson - 2000
    While equipping you with the minimum of theory, GUI expert Jeff Johnson presents the reality of interface design in an entertaining, anecdotal, and instructive way. * Updated to reflect the bloopers that are common today, incorporating many comments and suggestions from first edition readers. * Takes a learn-by-example approach that teaches how to avoid common errors. * Covers bloopers in a wide range of categories: GUI controls, graphic design and layout, text messages, interaction strategies, Web site design -- including search, link, and navigation, responsiveness issues, and management decision-making. * Organized and formatted so information needed is quickly found, the new edition features call-outs for the examples and informative captions to enhance quick knowledge building. * Hundreds of illustrations: both the DOs and the DON'Ts for each topic covered, with checklists and additional bloopers on www.gui-bloopers.com.

Perfect Software--And Other Illusions about Testing


Gerald M. Weinberg - 2008
    Editorial Reviews - Perfect Software

The Haystack Syndrome: Sifting Information Out of the Data Ocean


Eliyahu M. Goldratt - 1990
    You'll see the differences between data and information in a new light, and understand precisely how misunderstanding those differences can affect the quality of your decision-making process. Starting with the structure of an organization, The Haystack Syndrome ends with a detailed description of the logic that must underpin the information system for any organization to maximize effectiveness.

Goldratt's Theory of Constraints


H. William Dettmer - 1997
    Goldratt's Theory of Constraints (TOC), a system improvement philosophy focusing on logic and identifying the weakest link in an organization in order to, as the author states, manage the living daylights out of it. Dettmer introduces TOC, defining the concepts of

Understanding Variation: The Key to Managing Chaos


Donald J. Wheeler - 1993
    But before numerical information can be useful it must be analyzed, interpreted, and assimilated. Unfortunately, teaching the techniques for making sense of data has been neglected at all levels of our educational system. As a result, through our culture there is little appreciation of how to effectively use the volumes of data generated by both business and government. This book can remedy that situation. Readers report that this book as changed both the way they look a data and the very form their monthly reports. It has turned arguments about the numbers into a common understanding of what needs to be done about them. These techniques and benefits have been thoroughly proven in a wide variety of settings. Read this book and use the techniques to gain the benefits for your company.

2 Second Lean: How to Grow People and Build a Fun Lean Culture


Paul A. Akers - 2011
    It’s a practical way to improve your life every day by making a simple 2 second improvement. Join author, business expert, radio show host, and international speaker, Paul A. Akers, as he takes you on a LEAN journey that will transform every aspect your life... from your home to the office. “Ten years ago I began my Lean journey. I had never even heard the word before, but what happened was nothing short of astounding. Lean thinking has propelled my business from a small operation in my garage into an international, multi-million dollar enterprise. Welcome to my world of Extreme Lean thinking. Once you have experienced the vast benefits of Lean, you will crave it, want it, and do anything to get it. Lean thinking has made an enormous difference in my life – personally and professionally.”“This book is not intended for MBAs or those interested in manufacturing theory or flow charts. This book is intended to blast open the door of opportunity for people who want to improve their daily life, be it in their workplace or home. Lean is not as complicatedas all the experts and textbooks make it out to be. In fact, as you learn to incorporate a Lean approach to your life, you will see that the more Lean thinking you have in your life, the more you will enjoy life.” ~ Paul A. AkersRead this book and be inspired by how easy and fun it can be. No flow charts or graphs – just the real life journey of one company and the astounding results Lean thinking can produce. Take a few hours, read 2 Second Lean and change your life!

Geekonomics: The Real Cost of Insecure Software


David Rice - 2007
    It explains why low-quality software is continually distributed, why consumers willingly purchase unreliable software, why governments leave the industry alone, and what can be done to improve matters.

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 "

The Toyota Way Fieldbook


Jeffrey K. Liker - 2005
    The Toyota Way Fieldbook builds on the philosophical aspects of Toyota's operating systems by detailing the concepts and providing practical examples for application that leaders need to bring Toyota's success-proven practices to life in any organization. The Toyota Way Fieldbook will help other companies learn from Toyota and develop systems that fit their unique cultures.The book begins with a review of the principles of the Toyota Way through the 4Ps model-Philosophy, Processes, People and Partners, and Problem Solving. Readers looking to learn from Toyota's lean systems will be provided with the inside knowledge they need toDefine the companies purpose and develop a long-term philosophyCreate value streams with connected flow, standardized work, and level productionBuild a culture to stop and fix problemsDevelop leaders who promote and support the systemFind and develop exceptional people and partnersLearn the meaning of true root cause problem solvingLead the change process and transform the total enterpriseThe depth of detail provided draws on the authors combined experience of coaching and supporting companies in lean transformation. Toyota experts at the Georgetown, Kentucky plant, formally trained David Meier in TPS. Combined with Jeff Liker's extensive study of Toyota and his insightful knowledge the authors have developed unique models and ideas to explain the true philosophies and principles of the Toyota Production System.

The Essential Deming: Leadership Principles from the Father of Quality


W. Edwards Deming - 2012
    Edwards Deming, the "High Prophet of Quality" ("The New York Times")"The Essential W. Edwards Deming" is a collection of articles, excerpts, case studies, and other influential writings that reveal how Deming's ideas evolved over time and show how he worked through problems and challenges many people in his profession previously considered unsolvable.Organized by theme, the book's covers such topics as the consequences of focusing on short-term goals, the problems with delegating quality, why "not" to focus too much on the bottom line, how to treat a business as a system, and eight misuses of statistics.Joyce Orsini is a professor of management at Fordham University and the Director of Fordham's Deming Scholars Program. Diana Deming Cahill, a retired elementary classroom teacher, accompanied her father, W. Edwards Deming, at numerous public and private seminars and consulting sessions, classes, and meetings at New York University and at companies in the United States, Japan, Korea, New Zealand, Australia, and South Africa.

Lessons Learned in Software Testing: A Context-Driven Approach


Cem Kaner - 2001
    Along the way, there is an abundance of traps that one can fall into, which can derail the best-laid plans and put your projects behind schedule.Cem Kaner, James Bach, and Bret Pettichord know this all too well. Between them, they have over fifty years of testing experience, and know what it takes for successful testing. In this groundbreaking new book, they have compiled 293 pieces of experience-tested advice for you to put to work in your testing projects. They reveal insights on how to do the job well, how to manage it, and how to steer clear of common misunderstandings in software testing. Each lesson is an assertion related to software testing, followed by an explanation or example that shows you the how, when, and why of the testing lesson.The ultimate resource for software testers, developers, and managers at every level of expertise, this guidebook also features:- Useful practices and helpful ways of evaluating situations gleaned from over fifty years of combined testing experience from the world's leading software testing experts- Lessons for all key topic areas including test design, test automation, test management, testing strategies, and bug reporting- Advice on how to match the selection of practices to the circumstances of your project