“If I could show you the profile of a developer and a tester, it would be evident that a developer isn’t an ideal candidate to perform testing. A tester’s strengths might be a developer’s weakness, so they often work well together. Let the developers develop and let us find the bugs,” says Ezanne Grobler, General Manager: Global Testing Services (GTS), an EOH company.
“Software testing is all about evaluating the quality of the application under test. Software testing provides an objective, independent view of the quality of the software to allow a business to appreciate and understand the risks of implementing the software,” explains Grobler.
Software testing techniques include the process of executing a program or application with the intent of finding software bugs. Software testing also entails the process of validating and verifying that a software application meets the business and technical requirements that guided its design and development; works as expected; and can be implemented with the same characteristics.
“Software testing, depending on the testing method employed, traditionally are implemented during or after the development process and most of the test effort occurs after the requirements have been defined and the coding process has been completed. However, the sooner in the software development lifecycle (SDLC) one identifies the incorrect or ambiguous requirements, the lesser impact it will have on the code and the cheaper it would be to fix the bug,” she continues.
The fundamental test process consists of planning and control, analysis and design, implementation and execution, evaluating entrance and exit criteria and reporting, as well as test closure activities. Although logically sequential, the activities in the process may overlap or take place concurrently.
The most visible part of testing is the testing execution phase. But to be effective and efficient, test plans govern the planning process and should indicate the time to be spent on planning the tests, designing test cases, preparing for execution and evaluating status.
The typical career path for a tester includes tester, test analyst, test lead to test manager or test consultant and test specialist, to test manager. Interestingly enough, the US prefers to refer to these positions as test engineers.
“A software tester generally starts off as a junior software test analyst, who gets to learn how to analyse requirements and to write test cases, even though most of their time is spent on the execution of test cases and less on the analysis phase,” indicates Grobler.
From there a software tester generally progresses to test analyst, where more emphasis is given to the proper design of a test case. A properly designed test case will ensure defect detection. A poor one does exactly the opposite. From there the person can be promoted to test leader or training test manager, then to test manager or test consultant or test specialist. Depending on the industry and the company, the next step from a managerial point of view might include promotion to senior test manager or programme test manager, and finally to head of testing. In the specialist field, the specialists are either referred to as principal consultants or software test engineers, specialising in automation, performance or security testing.
The requirements for a trainee tester are a Matric with a good maths and science mark, plus six months’ work experience in the formal sector, although it is recommended to have a three-year post-matric diploma or degree in information technology. Typically a tester performs the duties of a tester for 12 months, before moving up the career ladder. International Software Testing Qualification Board (ISTQB) certification – at its various levels – is then required on this journey.
“In our experience, the characteristics of a tester can be summed up as a person who is analytical, logical, organised, curious, and pays attention to detail. Such a person is also confident; a team player, able to learn quickly and handle stress, able to meet tight deadlines, and has good communication and interpersonal skills. Above all, a good tester is someone with a healthy dose of professional pessimism,” says Grobler.