It's all about psychology
The way of thinking of a testing specialist must be different from that of a developer. Generally speaking, programmers are quite capable of testing both their own written code and the functionality of the system they are working on. But testing is performed by independent experts for a reason - people tend to misjudge the results of their own work. Therefore, a tester with a certain degree of independence will almost always find faults and failures in the system more efficiently than a programmer. Here we should mention that independence cannot be a substitute for knowledge - some tasks are much easier and faster to be performed by programmers, for instance, modular testing that requires understanding of a program's inner structure.
There are four levels of independence - from low to high:
1. Tests for a program are developed and performed by the person who is its author (developer).
2. Tests are developed and executed by other people (for example, another developer).
3. Tests are developed by representatives of another organizational group (e.g., from the testing department) or by specialized testers (e.g., performance or security testers).
4. Tests are developed and executed by specialists from another organization (e.g., an outsourcing or auditing organization).
Because of their activities, testers are involved in evaluating someone else's work, finding flaws in it, which is often perceived as a destructive activity, even though its result is the correction of errors and improvement of the overall quality of the product. A good tester must possess several personal and professional qualities: he/she must be curious, critical, attentive to detail, communicative, retain professional pessimism, and have sufficient experience to make assumptions about the possible sources of errors.
A tester, unlike a programmer whose main goal is to create a working product, must be able to find all the flaws in that product. And to do this, we must first of all concentrate on what can go wrong. Studies have shown that if a person who tests a program perceives it to be working correctly, he will find fewer errors than someone who is sure it has many flaws. Therefore, the tester should always remember that "Software has bugs".
And finally, one more important point: when writing a report on the defect be objective and never explicitly or implicitly point to its culprit, even if it is well worth it. Remember, you still must work with programmers, you do not want to spoil the relationship.
There are some simple tips for improving communication with colleagues:
- remember that you are all working on the same project and going towards the same goal - the creation of a quality and marketable product.
- present the results of your work in a neutral tone, focusing on the facts.
- put yourself in the shoes of others and try to understand the reasons for their behavior.
- always make sure the other person understands you and you understand them.
Myth about testing
Few outside the IT industry have a clear idea of what software testers are doing. But even among those directly involved in software development, there are often misconceptions about the work of quality professionals. Let's debunk a few common myths about testing.
- Testing requires no coding skills. Testing requires foundational knowledge of coding and understanding of Software Development Life Cycle to effectively discover bugs and problems with the software. Java language is one of the most popular programming languages used in testing to conduct automation testing.
- Testing is too expensive and takes long time. Yes, testing costs money and requires time to ensure that software is bug free and ready to be launched. However, it is always within the budget and one of the most required steps before software made available to the users.
- Testing is done at the end of the development. Testing starts from the as soon as project starts. There is no need to wait until developers build the software. Testers can start working with setting the testing environment, learning the software requirements and other documentations. Early testing saves money for the business.
- Testers have no idea about development. Testers expected to know the backend and frontend frameworks that are used to build the software. Including the database structure and schema to work with the databases. Testers write codes to build automation scenarios which requires development skills. So, Testers are also part of the development team.
- Anyone can become a tester in short time. Not exactly, unless the person have previous background in development and coding. Testers are expected to know at least one programming language and learning it takes at least 4-6 months. Only after that they can act as a Software Testers who can do both manual and automation testing.
- Testing is less important than development. There are several cases when companies lost billions due to missing a bug and allowing it to