I'm a manual tester that has started to work on appium and selenium automation work, but I have not architect a framework nor can I write code to work with an api to integrate lets say Testrails and Jenkins together. Is this required to be a QA automation engineer? What level of coding is required and how is this tested at an interview? How do I get there to be a more experienced coder and be able to read and write code to work with an api? I am very comfortable with appium and selenium, but is this enough to qualify to be an automation engineer? Any advice would much be appreciated.
I think the right answer is it depends.
It depends on where you work and what you are going to do as QA engineer.
- At some places it is just manual testing.
- At some places it is manual testing + UI automation.
- At some places it is manual, automation, API ,database testing.
- At some places it is just another software engineer position and same coding skills are expected as a developer.
- At many places it is bit combination of all of the above...
Interview:While taking an interview of an automation engineer, I expect at least one should be able to code simple programs and be able to test it as well.
Example:Write an program to remove duplicate characters from a given string.
Test: How would you test it? With what data inputs?
Advice: Before learning automation , learn programming.
Learn how to code & solve simple programming problems.
Ability to do good automation is just an byproduct of doing programming well.
Top Programming problems Sites:
To be a webdriver and appium autommation engineer you should:
Know at least one programming language fairly well.
This can easily take a year or longer. That time commitment is usually the hardest lesson to learn, truth to know. Only once past this are many folks able to look back and see how this was true. Bootcamp graduates that use one set of statements in one language are basically copy and paste engineers at the 3 month mark.
Know HTML and CSS. You are going to be spending a fair amount of time working with the DOM and using good element locator strategies. This takes education and practice
Understand Agile and Waterfall development. This is not about code (your question) but know that most likely you will be working in an Agile environment. You will need to understand Agile, the true meaning behind the Agile Manifest, Scrum, Kanban, DSU, retro and backlog refinement
Understand development and test environments. You will need to be familiar with coding and working on different operating systems, logging into servers, setting configuration files, etc. In AWS shops you'll need AWS knowledge (increasingly common)
These are the topics you should be talking about in interviews. Unfortunately many interviews are still using the application engineer 'quizzes' of travelling salesperson, recursion, etc. which is getting really old (they are testing the wrong thing - as a tester you know that).
For the original 'level of coding', I don't think there is a canonical ('one right') answer to that. There are so many factors at each place. Just like for application development. Some shops will have relatively simple code to maintain while others will have either very complicated or very abstract (or both!) code that needs a senior engineer. The same is true of application code. The only general remark I can make is that automation is usually an order of magnitude 'simpler' in many shops. But that is super general and so not really useful. Obviously junior positions don't require programming depth but they do require basic programming proficiency (in a stressful situation) which takes time and practice.
There are two different aspects of Automation Testing Frameworks (Frontend/Backend)
1. Framework design. 2. Test Script creation.
Framework Design - In designing framework from scratch, off course you need to have good programming skills as well as knowledge about the core concepts of the language (C#, Java, Python, etc), framework (Datadriven/Keyword/Hybrid) you have chosen to develop and Design patterns (Page object, Singleton) use in frameworks to increase readability and maintainability.
Test Script creation - Depending on Framework this step may or may need less programming skills. If framework base is Cucumber or SpecFlow wherein you write Test Script in plain English language (or any other), you may not need to worry about backend programming stuff. And even though if your framework is not based on these, the level required for Test Script creation is very low. You need good knowledge of base framework (Selenium Webdriver, etc.) and basic programming concepts.
Hope this helps.