Evolutionary Anatomy of Test Automation Code
Evolutionary Anatomy of Test Automation Code
Minimum price
Suggested price
Evolutionary Anatomy of Test Automation Code

Last updated on 2018-06-06

About the Book

Many people agree that one important outcome of Behavior Driven Development is a set of regression tests to demonstrate the desired behavior and ensure that it is maintained over time. Then they often struggle to do so in a manner that remains maintainable as the system and the test code grows larger. Sometimes they even abandon their tests and start over, repeatedly.

In this book we demonstrate the changing needs as the application and suite of tests grow. We identify some of the patterns that help us manage the complexity over time.

The book uses an racehorse fortune-telling application, EquineHoroscope (https://github.com/gdinwiddie/EquineHoroscope) for illustration. The code is in Java, and the tests use Cucumber and JUnit. The IDE is Eclipse. The concepts and patterns, however, are useful in other languages and tools.

Some of the lessons:

  • How and when to shift focus between business and programmer levels
  • Extracting "helper" code out of test scenarios
  • Giving meaningful shape to "helper" code
  • Articulating layers of test code

This first publication coincides with the Agile Alliance Technical Conference 2016 in Raleigh North Carolina. Attendees to my session on this topic (http://aatc2016.sched.org/event/5ycy/evolutionary-anatomy-of-test-automation-code-george-dinwiddie) will be given a coupon code for a free copy of this book.

I anticipate that the book will grow over time, as I have more patterns to describe. I'd also love to learn the patterns you've identified in your test suites.

About the Author

George Dinwiddie
George Dinwiddie

Trained in literature, I have been an organic vegetable farmer, an electronic hardware designer, and a software developer. What else do you do with a degree in English?

Today I help organizations succeed in their software development efforts, as a consultant and coach. I bring to bear decades of personal experience, lessons from Systems Thinking, a wide variety of Agile Development approaches, and an appreciation for individual and team dynamics.

Table of Contents

  • About this edition
  • Preface
  • Preparation
    • “Gitting” the Code
    • Using Eclipse
    • Using Maven
    • Using Ant
  • Starting
    • It starts with an Idea
    • From one brain to another
    • Example Mapping
    • Rules and Examples
  • Developing From Nothing
    • The Simplest Scenario
    • What have we accomplished?
    • Dropping down to “Programmer Tests”
    • Review
  • External Dependencies
    • The Problem with External Dependencies
    • Isolating our Code
    • Breaking the Problem in Half
    • Remaining Risks
    • Review
  • Simplifying Scenarios
    • Permutations tested sufficiently at a lower level
    • Cases covered by more advanced tests might be obsolete
    • Cases that better identify a problem might be worth keeping
    • Non-deterministic tests ‘might’ be useful
  • Refactoring Tests
    • Step Definitions
  • Evolving Structure
    • Two Layer Tests
    • Cohesive Feature Files
    • Three Layer Tests
    • Utility classes
    • System adapters
    • Four Layer Tests
    • Review
  • Writing For The Future
    • Readable Code
    • Naming Tests
    • Organizing Scenarios into Features
  • Notes

The Leanpub 45-day 100% Happiness Guarantee

Within 45 days of purchase you can get a 100% refund on any Leanpub purchase, in two clicks.

See full terms...

Write and Publish on Leanpub

Authors, publishers and universities use Leanpub to publish amazing in-progress and completed books and courses, just like this one. You can use Leanpub to write, publish and sell your book or course as well! Leanpub is a powerful platform for serious authors, combining a simple, elegant writing and publishing workflow with a store focused on selling in-progress ebooks. Leanpub is a magical typewriter for authors: just write in plain text, and to publish your ebook, just click a button. It really is that easy.

Learn more about writing on Leanpub