So what is software testing?

This is the process of checking a computer program (system), does it meet the prescribed requirements? Does it give the desired results? During testing, testers find errors (or bugs) in the program.

Testing is indispensable if you need to produce a quality product, without any bugs and problems.

In this tutorial you will learn:

  • What is testing?
  • Skills and abilities necessary for a tester, namely:
  • Non-technical skills and abilities
  • technical skills
  • Level of general education
  • About salaries
  • What does a tester do?
  • Testing career
  • Alternative career path
  • Myths and their refutation
  • How to become a tester
  • Exams and certifications

Skills and Abilities Needed to Become a Tester

Let’s discuss your skills, technical and non-technical, needed to become a tester.

Non-technical skills

Analytical. A good tester should have excellent analytical skills. This allows him to understand complex software systems and “break” them in his mind into smaller parts, as well as quickly think through test cases. If you are not confident in your analytical abilities, you can pass a test on this site, for example; if you manage to solve at least ONE task – analytical skills are certainly present.

Skills of communications. A good tester has good verbal and written skills. The so-called test artifacts (that is, documents: test cases and plans, test strategies, bug reports, etc.) created by the tester should be easy to read and understand. Communication with programmers (about bugs or other issues) requires a certain delicacy and diplomacy.

Time management and organization. Sometimes the work of a tester can be quite stressful, and during the release it is generally so. You need to be able to effectively manage your workload, have high productivity, manage your time optimally, and have the skill of being organized.

The right attitude to work. Being a good tester means having a conscientious attitude towards work. This means sometimes (sometimes!) working hard, quickly navigating the small details, passionate about learning new things, and constantly improving your workflow. In our industry, technology is developing at a breathtaking pace, which means that the tester must improve his skills, in accordance with the speed of external changes. The attitude towards work should always have a certain tinge of independence, when you take on the task assigned to you, and carry it out without much interference and supervision.

Love for testing. To succeed in any job, you must still love it. Tester is no exception. But how do you make sure you find your favorite job? Just try to work for a long time, giving all your time, and if you still don’t like testing, then maybe you should do something else.

Technical skills

And this list is going to be long.

Basic database/SQL knowledge. Usually the software has behind it a full-fledged “lining” of the arrays of collected data. This data is stored “at the backend”, in database systems like Oracle, MySQL, and so on. Thus, you may need to understand these databases, check and correct data, etc. To do this, you will need at least a basic knowledge of the SQL query language, the ability to make simple or more complex queries in order to check whether the correct data is stored in the databases.

Basic knowledge of Linux, Linux commands. A lot of software, such as web services, databases, servers, either work on operating systems of the Linux family, or are tightly “tied” to them. It is very important for testers to know Linux commands.

Knowledge and experience in test management systems. Test management is an important aspect of testing. If there is no correct management, the process will not go. For example, there is a Testlink tool to keep track of all test cases written by the development team.

There are other test management tools as well. So, it is important to have knowledge and experience with these tools, they are used in all large companies.

Knowledge and experience in defect/bug tracking tools. Defect tracking and defect lifecycle are key concepts in the testing world. It is essential to properly manage defects and track them in a systematic manner. Proper defect tracking is essential because the entire team needs to be aware of them, including managers, developers, and all testers. For tracking, QC tools, Bugzilla, Jira, etc. are used.

Knowledge and experience with automation tools. If you see yourself in the future as an “Automation tester” after a couple of years of work in manual testing, then you need to hone your skills in this matter, gain deep experience in automation tools.

Note: episodic experience in itself with automated testing tools is not enough for a successful interview: you need to have good experience, a lot of practice. Further, it is highly desirable to know some kind of programming language, especially scripting, such as JavaScript, or Python; or even C#; this will always help the tester to “jump” into automated testing. There are companies that are still looking for people with Perl, there are testers who know Perl, it all depends on the company, but languages ​​are important.

There are also many tools for measuring the performance of software, as it is an integral part of the overall evaluation of software (and is part of the so-called non-functional testing). Of course, they must be owned.

This is purely technical skills. In principle, it is not necessary to possess all of them in a superlative degree. It depends on job responsibilities and the company.

Education

In general, the so-called “academic background”, in other words, formal education, confirmed by diplomas, the tester should have from the field of what is called the general term “Computer Science”, that is, the specialty “Computer Engineering” and the like, this is a fairly wide list of specialties (on In the West, this is called something like BTech / BE, MCA, BCA – Bachelor of Computer Applications, BSc-Computers and more). Such an entry in the diploma radically improves the attitude of interviewers.

If there is no such diploma, then the only way to document your knowledge is to pass the certification of the developer; such as ISTQB or CSTE, regarding “Software Development” or “Life Cycle Testing”, or other similar specifications. And you can test your knowledge right now on our website on a trial test ISTQB: basic level.

Payment

The salary of a tester can vary greatly in different companies, and depends on the workload and knowledge. In the US, the salary of a tester is slightly higher than the national average, in Russia, Ukraine and Belarus it is several times higher than the average. A tester in a large company can count on health insurance, bonuses, loyalty, etc.

What does a tester do?

A typical day of a tester consists of reading documents describing software requirements, writing test cases, reporting, directly searching for bugs, attending meetings and similar office activities, interspersed with team building in nature.

The path of the tester

A typical tester (QA Analyst in the West) working in the largest international company of the “Indian model” (which has become, as it were, a kind of standard and not only in India), and with an assigned level of “company maturity” of the CMMI-5 level, goes to success like this:

  1. QA Analyst – novice tester
  2. Senior QA Analyst (Sr QA Analyst) – 2-3 years of experience
  3. QA Team Coordinator (QA team coordinator), 5-6 years of experience
  4. Test Manager (8-11 years of experience)
  5. Senior test manager (over 14 years of experience)

Alternative path

If you do not digest manual testing, you can look at other related areas.

Automated Testing : As an Automation Test Engineer, you will be responsible for the automated execution of test cases, which can be time consuming to execute manually. Tools you need to know: IBM Rational Robot, Silk performer, and QTP.


Performance Testing : As a tester subspecies “performance test engineer”, you will test the speed of the application (that is, the time spent loading into a working state); or the maximum load that the application can “support”. Tools: WEBLoad, Loadrunner.

Business analyst: One of the rare advantages that testers have over developers is a good understanding of the business “lining” of applications being developed. A perfectly reasonable way to pursue a further career as a tester is to become a business analyst. In this capacity, you will be responsible for analyzing and evaluating your company’s business model and its work processes. A business analyst “combines” different models of work in a company, helps to introduce new technologies.

Myths about testers

It is believed that developers earn more than testers

Contrary to the myth, testers (QA-engineers) receive no less salary than junior developers, at least this is what happens in “advanced” companies. The job of a tester is not “low paid”.

Testing is tedious

Software testing can really “test” your nerves once you understand how far your software is from the prescribed Business Requirements by looking at fresh test cases. In general, testing is not tiring. That’s what’s tiring: doing the same thing over and over again. The key to avoiding fatigue is to try new things. In general, if you talk to a developer with at least 3 years of experience, he can tell you how tiring work days can be.

How to become a tester

If it’s a complete zero, then, in short, you need to master Selenium, Jmeter, TestLink. That is, at first you need to try to master the “base”, after that the software, and you can try to apply for freelance , take small orders. This will help to gain practical knowledge and reinforce the understanding of the basic principles already learned.

Then you move on to Selenium (an automation tool) – then to JMeter (a performance evaluation tool), and then you master TestLink (a test management tool). During the development of this software, you can try to submit a resume for freelance orders.

After completing the development of the necessary tools, you can (and should) think about certification. We recommend ISTQB certification.

Certification

The ISTQB Foundation Certificate is practically a basic certification in Testing. It is not necessary to have such a certificate, but the certificate significantly increases the chances of a “serious” employment. Many companies require such a certificate.

A tester with an ISTQB level certificate receives more benefits, both in salary and career advancement.

Certification certifies that the applicant for the position has testing skills; but the owner can simultaneously act as a freelancer; it is also appreciated by employers on large projects.

You can also receive separate certificates for the possession of any testing tools.

Feature Image Credit

Author