Software Tester: In Search of Errors
The profession of the testator appeared not so long ago: to find a person now, let’s say with 10 years of work experience, it is almost impossible. It is believed that the first testers were specialists in quality – employees who checked software (software) for compliance with GOST. However, the responsibilities of the modern testers are not limited to a simple reconciliation of certain indicators: testing today is a complex, multi-step work that accompanies the process of creating a software product from the beginning to the end.
What was the impetus for the emergence of a new profession – software tester? It’s simple: gradually, the development companies realized that the key component of the success of any software product is, first and foremost, its quality. As a result, if a few years ago this profession was considered rare and not very popular, today the demand for testers is an order of magnitude higher than the supply (according to some estimates, for one applicant there are about 20 proposals from employers).
A software tester can work in IT companies that develop software and websites, whether they are independent testing teams or in companies that exclusively test software: in any organization that embeds their own automation systems (for example, many banks have their own development and testing departments ON).
In the footsteps of the programmer
The goals and objectives of the test taker fit into the simple formula – to make the program better. Excellent conveys the meaning of this work professional joke testers:
– Why do you need testers?
– To hear a programmer who proudly said “This I did!”, “Well, see what nonsense you did!”
The work of the tester resembles the work of the investigator or detective: he goes on the “hot tracks” of the programmer and searches for errors (in professional language – bugs). There are various deductive methods and hidden techniques in progress. To find hidden error in the depth of the program, you need to be creative: ask the necessary questions, know the psychologist of the programmer and be able to foresee where the huggerous bug may hide. A professional will never confine himself to fulfilling the template tasks of the test plan, he will devise his own testing methods, try different paths and combinations.
It’s not easy to check the program for errors, the super-task of testing – to make the program the one that it would like to see the customer. It has its own difficulties: testing is practically ready for software, and in this case it is already impossible to change any parameters in the program. The right approach is to conduct intermediate tests at each stage of software creation, only then the customer has a real chance to get the desired product.
Find and disinfect it
The general problem of the testers (and also the programmers too) is the lack of clear requirements from the customer. It’s quite difficult to please a customer who does not know what he wants. It is not necessary to interact directly with the customer the testers – these functions are entrusted to analysts. They communicate with clients, find out their wishes and prepare a technical specification (specification). Technical work is the same standard, which equals developers and software testers.
Having received the assignment, the programmer begins to work. The tester (ideally) follows the “heel” behind the developer: detects and analyzes the defects, reports on the progress of the test. In essence, the earlier the one or another error will be found, the better will be the final result. At different stages of development, the program can change, relying on new features, features and capabilities (which were originally not written in the technical task, but appeared on the recommendation of the testing department).
Wizard for all hands
In most companies, the test engineer is a wagon, a wizard for all hands: he owns all types of testing, and their about a dozen (functional, user interface, localization, security, compatibility, positive and negative, manual and automated, etc.). He combines the functions of the test designer, the test developer and the test system administrator.
Ideally, each tester should deal with a specific business and specialize in a certain type of testing (at least, this is the case in large testing companies). On the other hand, multifunctionality is a perfect basis for professional and career growth.
By the way, the same testing group often has to service several projects at once. Such work is another great way to quickly accumulate useful skills and knowledge.
The professional should know:
Windows (if necessary – Mac OS);
the programming language on which the test application is written (basic knowledge);
basic testing automation systems (SilkTest, Rational Robot, etc.);
error reporting systems (Rational ClearQuest, TrackStudio, etc.)
various types of applications (Web, Windows);
basic testing methodologies (CMM, RUP, MSF);