About the Book
The trend of software development is moving towards frequently releasing backed up automated functional testing. This is Continuous Testing.
- Unit tests ⇒ Functional tests
- Adhoc test execution ⇒ Repeatable process to run all automated tests
- Programmers only ⇒ The whole team
- Testing for better code quality ⇒ Testing for overall quality and frequent releases
This movement shall not come as a surprise, as being able to push out software releases frequently with high quality is what every software project team is pursuing, i.e, “Quality at speed”. In my view, this is the true objective of Agile and DevOps.
Despite all the hype of CT (and previously CI/CD) and DevOps, most software projects failed on functional testing, hence, on Agile or DevOps. Not convinced? You can try to answer this question: "Does your team have the capability to push software updates to the production every day?"
To succeed in Continuous Testing, software projects need to overcome the following four technical challenges:
- Functional Test Automation
- Continuous Execution in a CI/CT server
- Scaling with Parallel execution in multiple build agents
- Maintaining test execution (scripts and infrastructure) with high efficiency
In my opinion, the key to overcome the challenges is to courageously adjust the approach based on the feedback from CT.
- If the team spends significant time maintaining Cucumber tests, why not use a much simpler and better BDD framework RSpec?
- The testers and business analysts find it difficult to read test scripts in Java, why not change it to a good scripting language such as Ruby?
- If the execution time of automated functional tests is too long, why not try parallel execution?
- The current End-2-End test suite fails in a CI Server (such as Jenkins) every day with high failure rate, why not change the CI server to a proper CT server?
In this book, I will share my 14 years of experience in CT to help you to implement real Agile and DevOps for your organizations.
What's unique about this book? Being practical. By following the instructions in Chapter 2 (included in the sample), you shall be able to set up a CT server and run a set of Selenium tests on your machine within one hour. How can that be? The answer is to use a real CT server, BuildWise. BuildWise is a free, open-source CT Server that I have created from the ground up to manage executing automated functional tests better. AgileWay (my company) has been using BuildWise since 2013, which enables our DevOps process: releasing all our (Web and Desktop) apps to the production daily. BuildWise won the 2nd prize of the prestigious Ruby Award in 2018.
Learning CT techniques with a real CT server is much easier, more engaging and more fun. Very soon, you shall be able to set up a CT process at work.
About the Author
Zhimin Zhan is the founder and principal agile testing coach of AgileWay Pty Ltd, Australia. As an advisor and coach, he helps organizations by implementing test automation with Continuous Testing using open technologies such as Selenium WebDriver and RSpec. Zhimin is the creator of TestWise, the next-generation functional testing tool that supports functional test refactorings, and BuildWise, an award-winning Continuous Testing Server. Zhimin is a frequent speaker and author of 11 books on software testing and programming. He shares his test automation and CI experience on Medium.