Are you ready for continuous integration?

Test automation would seem to be a pretty technical excercise. Don’t forget there’s a lot of communication involved too. This article describes what to tackle first and answers the following questions:

  1. What are the prerequisites for test automation?
  2. What do you achieve by automating tests?
  3. What steps do you take to get test automation in place?

Level 1.) Write clear acceptance criteria

Testing is communication. It’s the art of translating acceptance criteria into test cases and then executing those. It’s about proving to the product owner he got what he asked for. Note the word “proving”, not “telling” nor “convincing”. It’s really not a technical exercise and it shouldn’t be. It’s a conversation in which sometimes questions arise. Scenario’s the team hasn’t thought of. Or scenario’s the product owner thought were in scope, but according to the team, weren’t. Some are easy to fix, some aren’t, some should be fixed and some shouldn’t.

Level 2.) Write test cases

You’ve got your stories sorted. Great! Next step: Creating test cases out of the acceptance criteria. These must be behaviorally described test cases, which — combined with their results — result in an effective way to communicate about the systems state.

Level 3.) Agree on what to build and test. Agree on how to communicate about it.

Nothing can prove that a system works. There’s no such thing as “works”. You’ll have a description of the systems known behavior at most. Stakeholders will decide whether that’s sufficient or not based on that.

Level 4.) Test first

Write these test cases before building the product. Note that common testing techniques got lots of “D”’s in them: ATDD, TDD, BDD. Each one of these abbreviations has a “D” in it that stands for “Driven” and one that stands for “Development”. The development process is driven by these tests.

Level 5.) Automate them checks

Note that nothing of the above mentions anything about automation. And I hate to break it to you: It can’t be done. Testing can’t be automated. Test automation means you’ll automate testing with some tool or framework. And as James Bach says: “Tools don’t test. Only people test. Tools only perform actions that ‘help’ people test.”. Checks can be automated at best. Look at test automation with a DevOps mindset: Automate everything!

Summary

You can’t automate tests if you don’t know what to test. You can’t start automating tests if you don’t know how to communicate about these tests either. Testing can’t even be automated in general.

software developer / consultant @ vxcompany.com