Test automation bootcamp
“Test automation is software development”
You have probably heard this quote before, but in my experience, it is one that is not often enough acknowledged in courses, workshops and other resources aimed at teaching you to become a better automation engineer.
If you want to become an all-round automation engineer, you will need to learn more than just how to wield a tool or two. Sure, knowing how to use tools is important, but you will also need to learn about:
- the ‘why?’, ‘what?’, ‘where?’, ‘when?’ and ‘who?’ of automation
- how to use object-oriented programming principles to write test code that is easy to read and to maintain
- how different tools can be combined into a well-designed automation solution
- how to use version control and build automation to collaborate on your code and have it deliver the fast feedback you are looking for
- … and many other things
Learning how to do all of these things well takes time, a significant amount of time. Yet every automation engineer will benefit from a solid introduction to all the subjects listed above, as well as learning how they fit together to form a solid automation approach and setup.
This is exactly the goal of this five-day test automation bootcamp: to give you the head start you’ll need to become an in-demand, all-round automation engineer.
Bootcamp - Day 1
On the first day of the bootcamp, we will set the stage for the remainder of the week by introducing the domain and application we will use. We will then cover what goes into a solid automation strategy and explore
- Reasons for (not) using automation to support your testing
- Pitfalls of translating existing test scripts into automation
- Different types and scopes of automation
- How automation fits into your overall software development lifecycle
- Required skills and distribution of automation responsibilities in a team
After we have established the automation strategy, we will start learning about the foundation of many modern test automation approaches and frameworks: unit tests and (unit) testing frameworks. We will
- Learn how to set up a new test automation project for the programming language of our choice
- Work with dependency managers and build tools
- Write unit tests for the business logic for our application
- Learn how to run them from our IDE and from the command line
- Get an introduction to debugging and resolving test failures
- Explore useful features of our unit testing framework and how they help write tests efficiently
Bootcamp - Day 2
On day 2, we will continue our exploration of unit tests and dive deeper into writing readable and maintainable code and writing more efficient tests. We will also learn how understanding fundamental object-oriented programming principles help you in doing both. We will
- Learn about the pillars of object-oriented programming: encapsulation, inheritance, polymorphism and abstraction
- Explore some of the SOLID principles and the role they play in testability
- Discuss the use of mocking libraries in unit testing and when (not) to use them
We will also make a head start on bringing our test code under version control and learn how to use the Git version control system to do so.
Bootcamp - Day 3
Day 3 is all about integration testing and API tests. Testing at the API level is often underappreciated, but when done well, it provides a great balance between efficient testing and automation and covering business logic and end user observable behaviour. On day 3, we will
- Learn about APIs and what to test for when you’re testing APIs
- Explore the building blocks of a holistic API testing approach
- Perform exploratory testing on APIs
- Learn to look for potential API security issues using common API testing tools
- Write automation for API-level integration tests using code libraries
- Discuss ways in which APIs can help us test more efficiently all across our testing and automation strategy
Bootcamp - Day 4
On day 4 of this bootcamp, we will focus our attention on user interface-driven automation. This is one of the hardest and most expensive forms of automation out there. To set you off in the right direction, on this day, we will learn how to:
- Identify opportunities where UI automation shines, and where it doesn’t
- Find and interact with elements on a UI
- Apply object-oriented programming principles to write UI automation that is easy to read, write and maintain
- Use waiting and synchronization strategies (either built-in or self-built) for rock solid, reliable UI automation
- Use APIs and other interfaces to make UI automation faster and less painful
Bootcamp - Day 5
Day 5 is the final day of this bootcamp, and we will use this day to tie everything we have learned together and make all the tests we wrote part of an automated build pipeline. After all, we want our tests to run as early and as often as needed, and automating the process of executing our tests makes this happen, you guessed it, automatically. Today, we will:
- Learn more about bringing our test code under version control
- Learn about different ways to collaborate on our test code (trunk-based development, feature branches)
- Create build pipelines as code to automate the execution of our tests and reporting on the results
- Wrap up loose ends and reflect on what we have learned throughout the week (and that’s a lot!)
- Explore where to go from here now that the bootcamp is a wrap
Supported tools technology stacks
To maximize the understanding of how different types of tests and tools fit together, and to minimize the amount of context switching, we will work on a single application in a single domain throughout the entire bootcamp.
I have run this bootcamp, both as a whole and in parts, in C# and in Java, using the following tools and frameworks:
- Unit testing frameworks: NUnit, xUnit, MSTest (C#), JUnit, TestNG (Java)
- Mocking libraries: Moq (C#), Mockito (Java)
- API testing libraries: RestAssured .Net, RestSharp, Playwright (C#), REST Assured, Playwright (Java)
- UI automation libraries: Selenium WebDriver, Playwright (C#, Java)
- Version control: Git
- Build pipelines: GitHub Actions, Azure DevOps, CircleCI
Using other technologies and programming languages is available on request. For contact details, see the bottom of this page.
Intended audience and prerequisite knowledge
If you are a software tester or a software developers looking to move ahead as an automation engineer and to go beyond learning a new tool or trick, this bootcamp is a perfect fit for you.
As we will be writing a significant amount of code, being comfortable with the syntax of the programming language we’ll be using in this course will be very helpful.
Also, understanding the basic concepts of software testing is assumed, and we will not go over them in this bootcamp. Of course, I’m happy to address any and all questions.
After this course
After completing this bootcamp, you will have a solid foundational grasp of all the skills required to become a successful automation engineer.
Will you have learned everything there is to know? No. That’s impossible. I’ve been in this field for 18 years now, and I’m still learning new things every day.
Will you have a much better understanding of how different automation concepts fit together and of the tools that can help you in your automation activities? Yes.
Will there be lots of recommendations for ‘the next step’ after the bootcamp? Absolutely!
Delivery and group size
This is a live training course, available both onsite and online.
Please keep in mind that this is an intense and high-paced bootcamp, and participants will be required to process and apply a large amount of information. Experience teaches me that courses like this work better when delivered onsite and in person.
However, I have delivered an online version of this bootcamp several times, too, to excellent reviews. Online delivery also gives us the opportunity to take days off in between to process the information that is presented during the bootcamp.
If you would like to book me to teach this bootcamp in your organization, or if you have any additional questions, please email bas@ontestautomation.com or use the contact form on this page.
For an overview of all training courses I have on offer, please visit the main training page.