Transitioning from a Non-IT Background to Software QA: A Learning Guide

In the past couple of weeks, a number of people from non-IT careers have approached me to provide guidance and advice on how to seamlessly transition into a career in Software QA. Most times, their first question is usually around what automation tool or programming language they should learn in order to land their first job in a QA role. 

On one hand, picking up an automation tool or programming language is a great step, but I doubt it should be the first especially when transitioning from a non-IT background.

Baby Steps: Back to the basics

Credit: https://www.babycenter.com/
  • Online Resources: Irrespective of the reason for your decision, the first step is always to build a proper foundation. There are many helpful materials and beginner courses online,  examples of which include Softwaretestinghelp.com, guru99.com, utest.com and Udemy. That being said, it’s best to receive guidance and explanations from someone with experience. This kind of in-depth explanation and guidance can be gotten while attending boot camps that last for weeks. During this period, emphasis should be placed on the art and skill of testing. It is wrongly assumed that everyone can test. It takes good analytical, communication and in-depth reasoning skills to be able to test. As a QA professional, you will be saddled with the responsibility of being the gatekeeper for software quality. Quality is never an accident – it is always the result of intelligent effort. Hence, a great Software Tester has to have these competencies: critical thinking, Business & Tech Architecture understanding, product domain knowledge, excellent communication skills, good interpersonal skills, to mention a few. Lessons on manual testing, testing principles and activities, Software Development Life Cycle etc, are things that should be learned during this phase.
  • Securing a job/Internship: Getting an internship is another way to get the proper foundation required to be a great software tester. In such a situation, you are given first-hand exposure to day to day activities and processes involved in the Software Development Cycle as well as the Software Testing Life Cycle in an Agile environment. Here you may be asked to even start testing apps yet to be shipped to production under the supervision of an experienced Tester. There is always a lot of knowledge to absorb here. You will also get to learn how to interact with other roles and observe how these roles fit the overall Software development and business picture.  

Spreading your wings: Reaching out for more knowledge

  • Pushing yourself: After having a grasp of the foundational aspects of Software testing, venture into other types of testing. If you had been testing only mobile apps up till now, it’s time to give web applications and APIs a try. While exploring other testing activities, do well to see that you are working to improve your manual testing and analytical skills.
  • ISTQB Foundation certification: The  International Software Testing Qualifications Board(ISTQB) offers different levels of certifications of which the Foundation level is the basis or first step for other Certified Tester certifications. Besides the fact that it is globally recognised, one of the reasons why the exam comes highly recommended is that it helps the tester demonstrate practical knowledge of the fundamental concepts of software testing. It also serves as a source of a common vocabulary for the profession. You can either attend trainings from accredited trainers or just opt for self-study, using the syllabus and recommended reading materials. Afterwards, you can then sit for the exam at a nearby accredited Exam Provider. It is not uncommon for people to want to attempt the exam without any practice experience. But I would strongly advise against it simply because of the edge your practical experience gives you while preparing for the exam. Your experience provides you with a better understanding and you can better relate to the lessons being learnt. ISTQB also suggests that individuals should have at least six months’ practical experience in a testing role before taking the Foundation Level.

I believe I can fly: Trying out Test Automation

Automated tests are quite helpful when performing tests for features that seem repetitive and time-consuming. Being able to automate tests also gives you an edge when trying to get a job for an experienced role. Hence, picking up this skill is also important.

  • Starting with Record and Playback automation tools: Using the Record and Playback automation tools involves you clicking on a record button while you manually go through real-life user actions. When recording is done, the tool generates a script or code snippets that can be re-run(by clicking on a play button) to reproduce the same actions automatically. You may want to try this out just to get your hands dirty in test automation. Generally, there are many drawbacks of using Record and Playback automation tools. Besides the fact that recorded files are usually very large, the test scripts are difficult to maintain as the UI could change frequently causing the code to break as well. Some of these tools include  Katalon, Selenium IDE etc.
  • Trying out Behaviour Driven Development: Another way to approach test automation is trying out code-less automated testing tools using Behaviour Driven Development. This involves collaboration from team members such that the tester is required to write the test scripts(feature files) for different scenarios in plain-text language but using Gherkin syntax. Each feature file contains all the scenarios for one feature/functionality. Then, the developers take on the coding task and start coding these features using specific programming languages by creating step definitions for each feature file. Here are two examples of feature files for Login feature in Gherkin syntax for UI test and API test respectively. Each feature file has just two scenarios:
UI test for login feature in Gherkin Syntax
API test for login feature in Gherkin Syntax
  • Learning a programming language and automation tool: Languages such as Java, Javascript, C#, Python and Ruby are most widely used programming languages for test automation. Appium, Robotium, Calabash, SeeTest are popular tools for mobile app test automation. For Web applications – Selenium, HP QuickTest Professional/Unified Functional Testing, Katalon and TestComplete are popular tools. SoapUI, Apache JMeter, Postman are some of the popular API testing tools. In my opinion, despite the demand for testers with expertise in a tool, you should choose a tool or language that your team is currently using so that you can get support from colleagues while learning. There are many online tutorials that make learning a programming language/tool for test automation easy. During these tutorials, the instructor usually shows examples by writing code for different scenarios. After watching the tutorials, attempt to rewrite this same code and tests from scratch without watching.
  • Practise again and again: A popular saying by Richelle E. Goodrich goes thus: “Do it again. Play it again. Sing it again. Read it again. Write it again. Sketch it again. Rehearse it again. Run it again. Try it again. Because again is practice, and practice is improvement, and improvement only leads to perfection.” No one has ever said anyone practised too much. It is said that the length of time it takes to lose a skill is proportional to the time it took you to learn the skill if we stop practising.

“Nothing is impossible in this world if you just put your mind to it and maintain a positive attitude”

– Lou Holtz. 

Have a blissful software testing career!

Kindly share this

Oluwatomi Familoni is a Software Quality Assurance Engineer at ZOLA Electric


© www.familonitomi.com 2023. All Rights Reserved.