Becoming a proficient Test Automation Engineer with Java requires developing a comprehensive set of skills. Below is a roadmap that outlines the various areas of expertise required to create effective automated tests with Java.
Basic Concepts of Testing Theory
I write this article with the understanding that many articles have already been written on the same theme, and it is unlikely that I will add any new information. The valid question as to why I write it stems from my belief that the way the topic is written is also essential. The structure and definitions within this topic have been meticulously crafted with the intention of making it easier to memorize. The article is divided into 6 sections, namely: Definitions, Testing Principles, Life cycles, Testing Classification, Testing Documentation, and Testing Design Techniques.
Nearest — test automation library for API interaction
I have thought how classic architecture approach for building test automation framework for API testing with java can be improved for last two months. The first iteration was described in the article. Nearest is result of second iteration, where I have decided to incapsulate logic with generics by moving it to dedicated library.
Test automation framework for UI testing with java
Previously I have written an article about testing API services with Java. I thought that it would be nice to write an article about more generic test framework, which will contain parts for testing Web UI, be capable to interact with DB and has logging and advanced reporting.
I have a few requirements to test object:
– it should have Web UI and API
– it should have DB
– it should be open source and free
– deploy should be local and easy
I have chosen KanBoard because it fulfills all the requirements. KanBoard is open source, free software, which allows to create boards with tasks.
Test automation framework for API testing with java
Recently I have received a test task to write test automation framework for API testing with java. I think it could be interesting for others and I would like to share the results.
The framework was written with java. Maven, Lombok, TestNG and Rest Assured were used. The framework consists of clients and test layers. If tests are planned to be E2E or business logic is complicated than business layer, which contains a few API clients, could be added. Also, cucumber layer could be added.
Automated Testing Principles
The biggest challenge of automated testing is results certainty. The failed test does not give us assurance that we found a defect. This happens because there are a lot of possible reasons for failures. For instance, issues with environment, issues with tools, eligible changes due to application development or even purely designed tests. Due to a survey, which was conducted in the end of 2020, roughly 50% of 264 recipients had more than 5% flaky tests. Test failing requires human attention, which makes feedback time bigger. The worse thing is that automated tests cease to be automatic. I think there are 4 principles, which could make automated tests more reliable.