Test Automaton Engineer
One of the areas I love in software development is testing. Specifically, automated testing. When I write an application I always write tons of unit-tests and when appropriate also integration tests and other types of test.
I also help companies introduce testing and test automation to their companies.
I also see that many companies are looking for Automation engineer or Test Automation engineer, or QA Automation engineer.
Let's see what kind of personality traits will help you in this position and do you need to know if you are interested in one of these positions?
You'll have to be able to have a broad view of the product, products of the company.
You have to be an investigator. Being able to find the source of a problem in a usually large and messy environment.
You'll have to be able to learn about technologies that sometimes have no good documentation. Part of your job might be to actually check how good the documentation is.
You'll have to communicate your findings with the rest of the company. Both with the developer, the manual QA people, and management.
I'd say empathy should be high on the required personality traits as you will need to be able to look at the product as a client even if you don't have a personal use for the product. You also need to be able to think how and why a developer might make certain mistakes creating bug or broken features.
There is a very broad set of technologies that are in use in various companies. There can also be specialized tools that are relevant only to a small group of companies. Even in-house technologies that are only used in the specific company.
So I won't give a comprehensive list, but you will get the picture.
In Unix/Linux environment Bash or some other Unix/Linux shell language.
In some places you'll need to be familiar with specific relational databases and maybe some non-relational (also referred to as no-SQL) databases.
In any case it is general a good idea to be familiar with SQL.
You will have to be familiar with the Software Version Control System (SVCS or VCS) or the company. These days Git is by far the most popular version control system.
You will also have to also know one of the Git server systems. Either cloud-based or local.
Bug tracking system
You'll have to understand the concept of the bug and feature-tracking systems. There are many such systems, Jira seems to be one of the popular ones, but the Git servers system also have their own.
CI - Continuous Integration
While running the CI system might be the job of the DevOps team, you will have to be familiar with the concept and you'll have to be able to use at leas one of such systems. The most popular open source CI system is Jenkins that uses the Groovy language.
Travis CI is a very popular cloud-based CI system.
There are many others of course.
CD - Continuous Delivery or Deployment
Another area where DevOps will be heavily involved, but where it will be quite important for you too to have some understanding.
See above under CI and CD.
Containers - Docker
- Experience in manual testing.
- Good understanding of software testing theory and methodologies.
- Knowledge in unit tests, integration tests, and data validation.
- Knowledge of test framework.
- Skills in diagnosing and solving complex problems and providing detailed technical analysis./li>