Whatever industry you are working in, any requires you to keep your skills up to date. The most illustrative example of this point relates to software testing. QA specialists face more and more challenges during the work: the volume of tests rises while technologies dynamically change. To optimize the workflow and keep up with the changing technologies, they need to apply completely new methods, such as testing automation and go deeper into programming.
Recently, I’ve received a peculiar task — my manager came to me and asked to train a group of manual testers to update them to QA automation engineers. My main purpose was to walk the manual QA testing team through Java basics so that they could continue with QA automation engineer tutor. The latter had to walk them through QA automation basics to let successful testers keep working in a new position.
But, before jumping to the actual training tips, let’s find out who QA automation engineers are and how they differ from QA analysts.
QA automation engineers are quality assurance professionals who leverage certain automation tools for writing scripts and completing test run in less time compared to manual testing. While creating automatic scenarios, they enable checking the program operation based on test cases prepared by manual QA specialists. As far as there are a lot of repetitive and time-consuming actions during software testing, automation is in high demand.
Technically, QA automation engineer combines the skills of a manual tester and a coder. In addition to monitoring the quality of the product on different stages, they also writing some scripts (which are codes by definition) to check the product code the developers have implemented.
So, how the groups of manual testers can benefit from moving to automation? Let’s see.
- Automated testing allows for locating more bugs in less time.
- The testing process is recorded, so it can be reused and run for similar testing operations.
- Automation ensures fast and precise testing results, hence improves efficiency.
- Test execution requires the use of software tools which can operate an unlimited amount of time compared to human testers who get tired due to a lot of work.
- Automated testing excludes human factors and hardly miss a single bug.
In the upcoming upgrade of your QA team to QA automation engineers, you should be interested to know a few effective ways that would ensure smooth transformation. Let’s consider them based on the real case.
Where to start? What the right way to learn Java for QA analysts who want to turn to QA automation engineers? These and other questions are answered in this paragraph.
Automated testing is code- and algorithm-driven which means that everyone who wants to be a QA automation specialist should have at least Java basics. It was not mandatory to dive deep into Java architecture, although, knowing well syntax and tools was vital to write scripts and use them for checking someone else’s code promptly and with confidence.
To start writing a script or code, manual testers had to get many coding tasks solved from the very beginning of their training. Together with many different tasks on the Internet, the manual QA testing team completed some on CodeGym, the website with Java courses for novice and experienced users. Aside from numerous tasks covering key Java topics, the site ensured an automatic review of the solution so that the tutor didn’t have to spend time checking every single task. Also, you could find great Java course and a collection of coding tasks on GeeksforGeeks.
The manual QA testing team had up to 30 minutes to complete all the tasks and then exchanged their works between each other, reviewed the solution and left recommendations on how to adjust the code. Once done, they exchanged the works back and tried to correct them based on given suggestions.
Note: If you don’t have time to conduct such exercises daily, let your manual QA testing team read someone else’s code on certain forums every day. At help section, there are numerous questions about what is wrong with the code. So, the students can try to solve the issues and get back to you with the results. Also, I suggested my students going to the CodeRanch forum and read the section for beginners.
A high-class QA automation engineer can boast with an ability to clearly see if the code is bad and optimize it right away. Therefore, during the training, the students learned the basics of refactoring and optimization. Besides, they got a few tasks to optimize the code within certain examples and explain why they did it. Additionally, they got a home task to search for bad code on still the same forum and, surely, improve it.
Friendly recommendation: for everyone trying to turn to QA automation, I recommend acquainting with the book “Refactoring” by Martin Fowler that will help to improve the design of the existing codebase.
After two months of the course, the students knew well data structures, OOP, and basics of Java syntax, got to know about Spring and Maven-projects, and acquainted with all types of automated tests including unit, integration, and functional testing. With all the knowledge they gained, the beginners of QA automation started to learn how to work with JUnit and Mockito libraries.
By that time, the tasks the students had to resolve became even more complicated. They kept completing them and exchanging with their future QA automation colleagues. Besides, during the classes, they discussed all the encountered difficulties with the tutor and found ways to resolve them.
On the whole, studying lasted three months. After completing it, the students switched to the course of automated testing where they got acquainted with Selenium Webdriver, PageObject, and PageFactory, Jenkins, service testing patterns comprising REST and SOAP, etc. The final stage of transition to QA automation engineers took not that much because the students already had a thorough knowledge of Java syntax and tools.
In the end, all specialists who completed programming and automation courses successfully moved to automation. Except one who became a Java developer.
For all manual testers who want to move to automation without the help of tutors, I’ve prepared a short checklist that will help you succeed.
- Learn Java Core. Make sure to get acquainted with Java Syntax, OOP, Collections, and Regex.
- Work in a high-class integrated development environment like IntelliJ IDEA.
- Learn different types of automated tests including unit testing.
- Overview the code results using unit tests.
- Get to know about test refactoring. Read “Refactoring” by Martin Fowler for better understanding.
- Study SQL at the entry-level.
- Get acquainted with Spring, Maven, and Gradle.
- Go to special forums, read someone else’s code, and try to enhance it. Keep doing this regularly.
- Learn how to work with JUnit and Mockito libraries. Put your knowledge into practice.
- Learn more about testing frameworks like Selenium and Appium or testing platforms like Sauce, soapUI, Endtest, etc. You’ll mostly use one of them in your future work.
Was published on Product Coalition.