“What makes you a good software tester? This is one question that we all have asked ourselves in one form or another. Even though it is a simple question, the answer can be hard to give. After all, every organization is different, every piece of software is different, and every test task is different. That said, there are definitely some traits we as testers need to have. In this blog we will look at some of them.
Work on your programming skills
It is common perception that writing code and debugging is the developer’s job, there is no denying on that. However, a good software tester should possess a reasonable amount of programming skills. Basic knowledge of coding brings a lot value to the table, irrespectively of our role in the project. It helps the tester create tools to quicken the manual testing in terms of both test data generation and verification, e.g. by querying and modifying the database to find and prepare data. It gives a mindset that enables us to easier grasp how the functionality works underneath the hood, and therefore what needs to be tested.
Furthermore, having the ability to read and understand application code also increases our credibility. It makes the developers take us more seriously when bugs are found or concerns about the functionality are raised.
Ask questions and understand the business needs
Having clear and crisp requirement document is not something every tester can dream of. It is therefore important that questions are asked, and that to the right people. This cannot be emphasized enough. It is a common mistake a lot of us do. We simply don’t manage to get the overview of the different people involved that can provide us with information we need.
To prevent that, talk to everyone and make list of what areas they can contribute on. That could be from Marketing, Development, Sales, Support to the CEO. It is imperative that we as testers see, and understand, the bigger picture and understand the organizational structure of the customer. Another point we tend to forget is that “perfect is the enemy of good”. Meaning that if an application is good enough to satisfy the customer’s need, further improvement on that area might not be justified. The special cases are simply costing more to fix rather than having a workaround for them in production. In addition, accounting for such cases might result in a more complex application, which in terms makes the application tougher to maintain. As testers we must keep the inner perfectionist in ourselves at check, and help the business understand what is important them and how any deviation might be handled. Good understanding of return on investment (ROI) is vital.
Share and grow
Sharing knowledge like how the functionality of the application works, to business or other team members, is something many of us usually don’t associate with our day to day tasks.
But sharing knowledge is also a path of gaining knowledge. It will give so much in return as the opposite party will questions and give their views on the topic. By this, we will get more ideas and better understanding for processes and improvements. In addition, the bond towards the business and/or the other team members gets stronger. It is a win-win.
Thus, in my opinion, what makes someone a good tester is among the traits mentioned in this blog. A good tester has some basic programming skills such that he or she can create (or in worst case be able to use) snippets of code to increase their and the team member’s productivity. In addition, the skill set will help improving the communication towards e.g. the developer and the overall quality on the incidents raised, as the root causes becomes easier to pinpoint. A good tester is someone that is not afraid of taking place and asking questions. The tester plays a vital part in ensuring that the application satisfies the business requirements. He/she should help business understand what is required and if possible; challenge the business to explain why a certain attribute is needed. Is the attribute really worth the implementation cost and what value does it give? Is that a nice or need to have functionality? Finally, the tester should not be afraid of knowledge sharing, as this bring down barriers and open a lot of doors for the tester to gain knowledge.
So, get under the hood and get your hands dirty!