JavaRush /Java Blog /Random EN /How to get started with automated testing, part 1

How to get started with automated testing, part 1

Published in the Random EN group
We invite you to read the Russian adaptation of an article by Tim Ebie, founder of https://testdemy.teachable.com/ , a QA platform for online software testing, created to help those who are starting their journey in automated testing
How to get started with automated testing, part 1 - 1
We are seeing a surge in interest and growth in the number of web applications in the market. With them comes more and more jobs that require programming, technical skills and various automation skills. As a result, manual testers, in order to remain in demand, see the need to switch from pure manual testing to quality assurance (QA) and are looking at automated testing. Switching from manual to automated testing is a smart choice, as many QA positions require an array of technical skills related to writing code. For those who do not like change, such change can be uncomfortable. Other developers, on the other hand, see this “time of change” as an opportunity to take their careers and skills to the next level and increase their relevance. Every time the demands increase, the possibilities expand. Developers with the right skill set can jump on the train and have great, well-paying careers. If you're looking to move from manual testing to automation, or even considering a move from another software development field, it makes sense to take a few steps to help you succeed.

Step 1: Market Assessment

“Habit number two” from Dr. Stephen A. Covey’s book “7 Habits of Highly Effective People” says : “Begin with the end in mind.” . I believe that this principle is true when it comes to starting in automated testing. Start with a market assessment of the needs of those hiring automation engineers. Once you gain an understanding of the technical needs of employers, you can acquire the appropriate skills. A good place to start is to look at job descriptions on any site (e.g. Indeed.com , Dice , Monster , LinkedIn , etc.).
How to get started with automated testing, part 1 - 2
Here are examples of search words that can be used to generate a market valuation:
  • Test Automation Engineer;
  • Automation Developer;
  • automated testing/tester (automated testing) (Automation Testing/Automation Tester);
  • QA Automation Engineer ;
  • Software Development Engineer in Test (SDET).
To understand how employers think and what they really expect from candidates, keep the following questions in mind as you search:
  • What specific skills and technologies are they mentioning?
  • Do you see a separate set or “block” of skills or technologies for these skills?
  • How many years of experience are required, if any?
  • Are there certain industries that tend to hire more automation engineers than others?
  • What salary can you expect?
  • Are the tools or technologies we are interested in primarily open access or commercial products?
Now let's take a closer look at a few job descriptions to get a feel for what the market is looking for. Please keep in mind that the jobs in question are located in the United States. If you do not live in the United States, please review the job search tools in your country. Software Automation Developer I:
  • has a clear understanding of object-oriented programming languages ;
  • familiar with Jenkins , Test Complete, VersionOne, Git, Visual Studio, Oracle, MSSQL, Hyper-V, AQTime;
  • Works closely with developers, business analysts and other testers to identify test automation components that will be used to verify requirements for the developed software.
How to get started with automated testing, part 1 - 3
QA tester (automated testing):
  • saves automated tests in the appropriate version control systems - TFS, GitHub , etc.;
  • follows predefined automation standards and DevOps standards for automation, as well as continuous integration and deployment processes;
  • Experience with ALM tools (TFS, Jira, HP QC) and test automation tools (preferably Selenium WebDriver) .
Quality Assurance Automation Engineer - QA ( Quality Assurance Automation Engineer ):
  • Experience with Selenium WebDriver ;
  • programming skills in Python, Java , or similar languages;
  • mobile testing experience / Appium .
Testing software developer:
  • updating and expanding the test environment and testing tools in C#, TypeScript, JavaScript ...;
  • Strong programming skills in C# or Java and/or JavaScript along with a clear understanding of object-oriented programming concepts ;
  • Experience with Visual Studio, Subversion, GitHub, Unity, Teamcity, Jira Cloud, Confluence.
How to get started with automated testing, part 1 - 4
Here are some key takeaways from these job descriptions. Hybrid/Blended Roles: Pay close attention to job titles and how these companies view automated software testing. This can be seen by the names of the roles they list (Software Automation Developer, Software Developer in Test, etc. Notice a pattern? These companies more or less refer to QA engineers as developers Software: For manual testers, this means it's time to learn how to write code to turn manual test cases into automated test scripts. For developers looking to move into automated testing, this means you should learn more about software testing methodologies, test life cycle Software, and learn how to build automated test cases to support these lifecycles.Don't miss this critical shift or you'll fall behind.With the rise of Agile methodologies and Agile-based projects, more and more organizations are mixing QA and developers into one. So it's time for you to prepare for your new responsibilities.Individuals who have basic training in the world of software testing and at the same time have a good understanding of the skills of a software developer are worth their weight in gold. Open Source Technologies/Programming Languages: Please note the technologies and programming languages ​​highlighted in bold in the descriptions . These technologies and languages ​​are targeted, you need to learn them in order to be in demand in the market. Pick one high-demand technology and start building your skill set by practicing them and participating in real-world, hands-on applications and projects. This will speed up your learning. If you're not sure which programming language to start with , let's narrow the field a little.

Step 2: Master an Object-Oriented Programming Language (OOP)

Let's face it: most manual testers are afraid of programming. The very thought of getting under the hood and seeing how systems and applications actually work scares many manual testers. This fear is mainly the reason why they became manual testers.
How to get started with automated testing, part 1 - 5
Programming is the basis of automated testing. If you want to get into automation testing, you need to be able to code, and the better you are at programming, the more successful you will be in automation testing or automation development. Therefore, if you want to stay competitive in this ever-changing world of development and technology, you must resolve to conquer this fear and become an in-demand automated test developer. The good thing is that with minimal guidance from a more experienced colleague, applying persistence and perseverance, constantly practicing (like we do at JavaRush), you can definitely improve your programming skills. The next logical question is: what programming language should I learn? Based on our market assessment, we know that employers want to hire people "with a strong understanding of object-oriented programming languages." And according to our analysis, we can see several object-oriented programming languages ​​that they refer to. For example, Java, C#, JavaScript, and Python. You can start with any of them. If you're starting to learn an OOP language, here are a few concepts to get a good handle on to become better versed in automated testing:
  • object-oriented programming (classes, objects, instances, inheritance, attribute, etc.);
  • Modules, Standard Libraries (in whatever language you choose);
  • data structures (dictionaries, lists, tuples, etc.);
  • data types (strings, characters, integers, floating point, logical or Boolean types, NoneType, etc.);
  • variables;
  • error/exception handling;
  • arithmetic operators/precedence order;
  • comparison, logical Boolean operators;
  • procedures/functions/methods;
  • control flow: If statements, for loops, while loops, etc.
  • read/write to files;
Programming is the basis of automated testing. Learn to program and you will learn to automate.

Step 3: Mastering Automation Tools

I keep saying this: the better you can program, the better you can automate. Once you've started learning a programming language, the next step is to learn how to use automation tools. Because most companies are leaning towards open source automation tools (or free software) rather than commercial licensed products for cost reasons.
How to get started with automated testing, part 1 - 6
An excellent tool that can be found in the public domain is Selenium WebDriver. Selenium has several language bindings (Python, Java, C#, Ruby, PHP, JavaScript, etc.), so learning one of these programming languages ​​will provide an excellent foundation for building a solid career in automation. A few key concepts you need to master to build reliable, functional, and efficient automated test cases:
  • design patterns: page object model;
  • searching for web page elements using different locators (CSS Selector, XPATH, ID, Name, etc.);
  • switch Windows/iFrames;
  • refactoring;
  • unit testing;
  • cloud testing/parallel testing;
  • data checking;
  • testing on different web browsers (Firefox, Internet Explorer, Chrome, Safari, Opera, etc.);
  • implicit and explicit expectations;
  • chains of actions
If you have chosen an object-oriented programming language and relied on automation tools to evaluate the market, the next logical step is... What would you think?...

Step 4: Practice, Practice, Practice

Whatever you do, never quit. Learning something new is always a challenge. But every challenge can be overcome with enough practice and dedication. How long it takes to learn new skills and technologies is entirely up to you and how much practice and dedication you put into mastering those skills.
How to get started with automated testing, part 1 - 7
Any professional athlete will say that he or she has reached the heights of their journey through the work and effort of their training. They say Michael Jordan played hard, but trained even harder. This approach should be adopted by anyone looking to automate - practice, practice, practice your new skills until they become second nature. This is the only way to improve your skills and be in demand as a tester. One of the good ways to train is to actively learn a programming language and automation tools at the same time, “playing” with them. In other words, write small programs or automated testing scripts, break them, change them, and see how it works now. Learn from what you've done and try again. Practice by playing, doing and learning. Do this and your learning curve will go up.

Time to start

The most important thing in a new business is to start. All the times we procrastinate or fail to get started, it's because we don't have a road map or game plan to help chart our course.
How to get started with automated testing, part 1 - 8
While attempting to radically change the direction of your career may seem daunting, being valued and marketable is essential. You need to develop new skills to stay on top of the ever-changing world of software development and be what employers are actually looking for. Start small: evaluate market requirements, learn object-oriented programming and automation tools, and practice constantly. And you'll be prepared for new job opportunities before you know it. Source: https://simpleprogrammer.com/2017/07/28/start-automation-testing-part-1/
Comments
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION