Software tester: looking for errors
On the forums, software testers call themselves unsung heroes. The comparison is accurate: all the merits for the creation of the program are attributed to the developer, while the tester – a specialist who brings the raw product to mind, remains in the shadows.
The profession of a tester appeared not so long ago: it is almost impossible to find a person with 10 years of experience. It is believed that the first testers were quality specialists – employees who checked the software (SOFTWARE) for compliance with GOST. However, the duties of a modern tester are not limited to the simple verification 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 of all, 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 much higher than the supply (according to some estimates, one applicant has about 20 proposals from employers).
Software tester can work in IT companies that develop software and Internet sites, as part of independent testing groups or in companies engaged exclusively in software testing: in any organizations that implement their own automation systems (for example, many banks have their own software development and testing departments).
In the footsteps of the programmer
The goals and objectives of the tester fit into a simple formula – to make the program better. Perfectly conveys the meaning of this work professional joke testers:
– Why do we need testers?
– To a programmer who proudly said, “I did it!”were one to hear: “Well, look what nonsense you have done!”.
The work of the tester resembles the work of an investigator or a detective: he goes on “hot pursuit” of the programmer and looks for errors (in professional language – bugs). In the course are various deductive methods and hidden techniques. To find the error hidden in the depth of the program, you need to be creative: ask the right questions, know the psychology of the programmer and be able to foresee exactly where the dodgy bug may be hiding. A professional will never limit himself to performing template tasks of the test plan, he will come up with his own methods of testing, try different ways and combinations.
It is not enough just to check the program for errors, the most important task of testing is to make the program what the customer would like it to be. It has its own difficulties: often testing is subjected to almost ready-made SOFTWARE, and in this case it is impossible to radically change some parameters in the program. The right approach is to conduct intermediate testing at each stage of software development, only then the customer has a real chance to get the desired product.
Find and neutralize
The General problem of testers (and programmers too) is the lack of clear requirements from the customer. It is rather difficult to please the customer who doesn’t know himself what he wants. The tester does not have to interact directly with the customer – these functions are assigned to analysts. They communicate with customers, find out their wishes and prepare technical specifications (specification). The terms of reference are the same Etalon, which are equal to developers and testers of the software.
After receiving the task, the programmer begins to work. The tester (ideally) should be “tagging along” for the developer: identify and analyse defects, reports about the testing progress. In fact, the sooner an error is found, the better the end result. At different stages of development, the program can change, acquiring new properties, functions and capabilities (which were not originally prescribed in the terms of reference, but appeared on the recommendation of the testing Department).
Jack of all trades
In most companies, the tester – universal, Jack-of-all-trades: he owns all kinds of testing, and there are about a dozen (functional, user interface, localization, security, compatibility, positive and negative, manual and automated, etc.). It also combines the functions of a test designer, test developer and test system administrator.
Ideally, each tester should deal with a specific case and specialize in a certain type of testing (at least, this is the case in large testing companies). On the other hand, multifunctionality is an excellent basis for professional and career growth.
By the way, the same testing group often has to serve several projects at once. This work is another great way to quickly accumulate useful skills and knowledge.
A professional should know:
Windows OS (Mac OS if necessary);
programming language in which the application under test is written (basic knowledge);
basic test automation systems (SilkTest, Rational Robot, etc.));
error reporting systems (Rational ClearQuest, TrackStudio, etc.))
different types of applications (Web, Windows);
basic testing methodologies (CMM, RUP, MSF);
Study on the testers
Universities do not yet have a separate specialty for testers. Companies involved in software testing and trying to find experienced specialists are, of course, dissatisfied with this situation. However, representatives of universities have their own view on this problem.
It turns out that if you plan to work as a tester, you should choose any specialty related to programming and software development:
“Automated information processing and management systems»
“Computers, complexes, systems and networks»
“Computer science and engineering»
“Information systems and technologies”.
Work at home
A definite plus of the profession of a tester – the ability to work remotely. The most common remote testing to work with web applications. Beta testing (a special type of testing at the very last stage of software development) always takes place outside the office. Beta testers are, as a rule, future users of the product, they are more interested than anyone else in making the program as convenient as possible. In particular, computer games are always subjected to beta testing, and as testers are gamers for whom the best work and it is difficult to invent: they pass a new toy and get paid for it.
It is easy to get a position of an Intern in an IT-company, especially since many firms prefer to raise their own personnel: they hire people without experience and train them in specialized courses (own or external) or directly in “combat conditions”. Standard scheme of career growth: the tester-trainee – test engineer – lead test engineer – leader of test team – head of quality control Department.
How much is paid
Testers get a lot of money. As a rule, the income level of the tester is about 80% of the programmer’s earnings. Salary growth is from 5 to 20% per year.
The sphere is developing, there are few professionals, so with a good combination of circumstances to rise to the level of the head can be a year and a half. Although the main charm of this profession is not even in the rapid career growth, and the opportunity to step “aside” – to become a professional in any related field. In the course of business, testers have to delve into the essence of the work of many of their colleagues – programmers, technical support engineers, implementation specialists, etc. Therefore, often testers, having gained experience, move to “neighboring” positions. For example, heads of departments of testing often become systems analysts, project managers, heads of IT-departments etc.
If you are not interested in vertical growth in principle, you can build a career in the “horizontal plane”: to master new methods and technologies of software testing, expand the range of responsibilities and participate in different projects.