In software industry its really difficult to validate and verify a product. First question is are we building right product ? if yes, then Next question is are we building the product right? So here comes the role of a software tester, whose sole responsibility is to analyze the client’s requirement, refine them as much as he can, Raising questions how and why?
A software tester should have deep knowledge about the product being developed irrespective of the fact whether the product is in initial analysis phase or final phase of testing. Sofware Tester must be a good team player, should possess good analytic skills,should have understanding of potential market,and should be able to get into end user’s shoes to understand how useful the product is to the end user.
Hence the most important skills which a good software tester must possess would be:
Never believe that the complete software or a module given to you for testing is bug free.A software can never be bug free no matter how sophisticated approach has been taken to write the code.Also doesn’t matters what designation the programmers has. Just use your experience and your knowledge to find out the possible loopholes in the system.
Do not compromise quality after a certain testing stage.There should never be a limit to testing unless you achieve a quality product.Compromising quality at any stage can lead to lower overall quality of the final product and can have serious implications in long term.
Always think about making end users happy. After all we are developing a software to make end user’s life easier.And a piece of software that can’t meet the end user’s satisfaction can not stay in the marker for longer. In current era of cutting edge competition ultimately another software which can ensure and maintain a level of end user satisfaction will bring your software down.
Remember we produce software for users. Think from a user perspective try to identify as much as you can what user actually want from that software. A user may or may not be that technical.If you do not think with user perspective you will certainly miss many loopholes or you can say “Bugs”.users location,age and even their qualification may matter while using software. A software product can be successful only if it provides user an ease of use and finally can make them happy.
Be open listen to everyone around you even if you are in authority to that project and having the depth knowledge of the project.Always welcome suggestions as you always have some possibilities of further improvements, getting an insight from fellow testers is always a good idea.Everyone’s suggestions and valuable feedback will ultimately contribute in delivering a bug free software to end users and stake holders of the project.
Never think your duty is to validate the final software product on the basis of client’s requirement be proactive research market, see how other similar product in market having the same functionality are working.Research what makes other products more interactive then yours.At the end of the day the research you did will help you understand the product and its potential market.
In case of a bug encountered by client or end users you will always we attacked with questions from management or even developers that why the bug was not unleashed during the process of testing. This is even common where a testers responsibilities are not well defined. Stay calm and put your focus on getting it resolved rather than finding someone to blame.As a human everyone makes a mistake, so avoid blaming others.Work as a team to build team spirit.
Sometimes while you are in-charge of the project you will have to hide certain things from client and even from developers. Sometimes you will have to take decision of a release even if you know there are certain bugs in the product,.But always keep a secret bucket with yourself to keep those bugs with yourself and get them resolved as soon as possible. And this is not wrong at any level as developers and testers have the same goal that is overall quality and success of the product they are working upon.
Tester need to negotiate at every level of software development life cycle.specially negotiation with developers is most important.Developers will do everything to prove that their code is perfect and bug logged by a tester is not valid.It requires great skills to convince developers about the defect and get it resolved.Some testers may think that its not their task but explaining the developers the true impact of a flaw is really helpful for developers to understand overall scenario and implications.
Minutely observe the things happening around you. keep a track of minor and major things taking place in the project. Observe the way coding is being done.Get involved with development team, Spend sometimes with them, try to understand problems they are facing. If they are having trouble understanding the client’s requirement explain them. Most importantly respect the development team,They are the only reason you are here.