Test Automation - A Systems Thinking Approach
Test automation is a core enabling practice on Agile projects. But test automation is difficult! Most applications are not designed to support easy test automation. Join Gerard as he leads us through applying Systems Thinking to understand why our current way of organizing our team roles and responsibilities may be the root cause of this difficulty and what you can do to address them. (Spoiler alert: the problem is trying to automate tests after the software is built!) He provides examples of good "executable specifications" that can be used to drive both functionality and testability into the application. And he describes the life-cycle of an executable specification starting with a feature idea, progressing through a non-executable example all the way to a satisfied, executable example.
Outline/Structure of the Talk
Introduce the problem of test automation being difficult to do after the fact.
Analyse the root causes of "test automation is difficult"
Introduce the concepts of "Systems Thinking"
Apply "Systems Thinking" to the "Test automation is difficult" problem
Propose an alternate system that results in test automation being less difficult
Provide examples of executable specifications/examples that can be automated.
* Understand why test automation is hard
* Understand the role of team(s) structure in making test automation hard
* Understand the role of software architecture in making test automation hard
* Understand how to organize agile teams to make test automation easier
* Understand how better team organize can influence software architecture and testability of code
Developers, Testers, Analysts, Managers, Customers