For programmers: QA and testing

QA and testing deal with the system after all the technical team feels confident with the product features and before the customer get the product.
Experienced testers know too well that if anything can go wrong it will go wrong, and it is their job to make sure nothing goes terribly wrong.
The biggest issues in QA and testing: covering everything that can go wrong and simulating challenging environments.

The first stage of testing is running the system with developer to get look and feel of all the features. Quite often the developers and product designers do not communicate in sufficient details and the program becomes useless for the end user in its current implementation. The person testing the system needs to understand and negotiate 3 positions: the needs of the end user, the vision of the product designer, and the technological solution found by developers. Visualizing 3 perspective in great detail is not easy, and switching between these viewpoints is harder still. It helps if the tester knows specific people to associate with a viewpoint and can to some extent impersonate the relevant viewpoints.

Once the feature set is tested, there is a long list of specifications that needs to be verified. Testers tend to have all system specifications, while developers focus only on key system aspects. It is quite possible that the developer simply does not know how to test some specifications and the testers need to devise experiments to test those. Lego sets, carton and plasteline, bypassers and candies and many other improvisations may be very useful for some experiments. Since testers work with developers, they need to be able to activate brainstorming meetings and generate simple creative solutions.

There are so many features that can go wrong that covering all of them is impossible. Tester needs to brainstorm with the developers the most challenging scenarios and simulate them. Then they need to simulate the scenarios developers did not come with and simulate them. To cover system features and parameters complex scripts and equipment are used. Good memory and experience allow to cover as many limitations as possible. If something went wrong once, it may go wrong again. Searching system vulnaribility is something hackers do, so some great testers often used to be hackers.

Finally, there are results of many tests and it is needed to visualize these results to the other team members. This may be extremely challenging. The tester needs to aggregate heterogeneous information into a single score and graph.

When we talk about the people taking QA jobs we usually talk about responsibility, handling pressure and communication skills. The short analysis above shows that creativity and memory, maybe even hacker mentality may make all the difference between a regular tester and a great one.

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.