Broadly speaking, a software tester should have two kinds of skills one is how to perform at his work and another is how to approach work. First one is about technical skill and the second one is about soft skill. For a software tester these two skills are compliment to each other. Only technical skill makes one how to touch the goal but the combination of technical skills and soft skill makes one how to succeed and exceed expectations.
Other qualities of a tester are positive attitude, patience, discipline etc and most importantly to have good relationship with developers. Sometime a tester may get bad response from developers when he gets a bug and produces it in front of developers because in this world no one prefers his mistakes to be pointed out. Particularly in this type of situation a tester should show his patient and cordial nature. A tester should always keep one thing in his mind that the developers and tester work for a single goal.
But here one can ask a question how to be patient when he/she receives a hard response from developers? Yes, it is very hard to be patient and have positive attitude when you get bad response from your colleague.
So how can one have technical skills, soft skills as well as maintain good relationship with developers?
Be Disciplined and Maintain Perseverance:
One obvious aspect of testing is it is very repetitive and may need lot of manual effort.
There are numerous examples where a software tester shows his iterative nature.
You can take some example when one tester needs discipline and perseverance.
>> A tester tests a project and encounters a crash after doing number of steps, now he is supposed to find out the exact condition for which the crash occurred. For this kind of situation the tester need to go through the same step again and again.
>>As per the daily routine, a tester has been asked to collect data about test cases executed, bugs logged, etc.
>>After finding a bug / defect a tester has to reproduce it again and report to developers.
For this kind of situation a software tester need to be more organized at his work and have very critical eye to catch the bug at the first instance. Also needs to think in multi dimensional way about a problem/requirement.
Be a good communicator:
For a software tester it is very important to have good communication skills (Oral) as well as good writing skills. Because as a software tester you need to interact with different kind of people like your development team, designing team, and other testing team including your client who sits far way from you. It is necessary to explain yourself (the issues/problems/clarifications that you may have) to them. It has to be understood clearly by the person to whom you interact or to whom you submit your bug reports.
Like soft skill it is very important for a software tester to have a sound technical skill. It is necessary for tester to know about the product as well as the technology he is testing.
For example if one tester is working in a web application based project then he must be well aware about his project along with the other technology like how to test his project in security basics or how to make the project automated etc.
May be it sounds odd to say reading is a skill but if one looks deep into the testing aspect then it will definitely sound better. Because a tester deals with number of document and test cases everyday, the application of reading as a skill makes a big difference for a tester.
Think Otherwise but don’t be Philosophical:
Otherwise or say negative thinking can be a useful alloy if it is applied in right place. When a new project comes to the QA department for testing then the tester is working to create a test plan or a master plan how to test the product. While mentioning the risks involved in the project, a tester has to consider all the things that can go wrong during the lifecycle of project. Training the mind to think otherwise or negative in such situations helps testers develop an efficient plan. For a tester this kind of thinking is a skill but it should be applied in certain situations. At this point a software tester must keep one thing in his mind that when he tests with this kind of mind, he must be practical, and should not assume things beyond the logic of the project.
Be a good listener:
While discussing about bugs / defect or requirement of the project, be a good listener from the viewer’s point and prospectus. Understand the logic and limitation of the project at first when the project starts because there are certain areas to be assigned to the testing department which needs to be automated before the development finishes.
Tester often go to or interact with developers when he gets a bug, argument with developers about the bug, but practically if you think in deep and question yourself that, is it right? Definitely the answer is “NO”. Don’t make the situation embarrassing because nobody in this real world want to point out his or her mistakes rather a good tester can handle the situation in diplomatic way and represent the bug in the way like say “this is a very minor bug I know, this project is running fine so far, if you just look at this bug then it will be better”. Then the same bug will be highly appreciable and developer will take care of it.
Also tester must be careful while he is reporting a defect or is giving a clarification of a requirement, be as factual as possible, don’t use the word which describes the type of work or the person who developed the product. Strongly avoid the word like “your project should not behave in this way”, “This is the often crashing project”, “badly developed software” etc. This will result in people not viewing your defect reports with seriousness.
To sum up, as a tester you need special set of interpersonal skills and technical skills. Make a start, be aware and practice.