Saturday, January 29, 2011

Tips to handle the challenges you may face as a software testing professional

Here are the possible solutions to common problems that you may face during your work as a software tester. These tips are based on my discussions with hundreds of software testers over the last several years.
ProblemTips to handle
Hectic schedule due to unforeseen delays, parallel projects or resource constraintsPlan your testing tasks assigning them priority according to their value or urgency.Execute these tasks from highest priority downwards.Many a time, it is not possible to get more time and it makes sense to stay calm, accept the need of the extra effort needed and put that effort in.
Inadequate knowledge (technical or functional)In the long-term, one has to build the required knowledge in order to perform well. Until that time, one should use all the available resources to get rid of this handicap. Useful sources of help are colleagues possessing the required knowledge, project documentation and the wealth of information available on the web (e.g. product literature, FAQs, forums, blogs and so on).
Poor or incomplete requirementsThe tests one executes should cover each requirement. Discussions with business analysts/ system analysts/ developers/ support personnel/ other testers, prior project requirements, design documents, comparison with prior application and similar applications are just some of the sources one can use to get a solid handle on the entire requirement set.
A problem with other teams e.g. developmentSuch a problem is highly specific to the particular situation. It is often useful to first understand where the other person is coming from, solicit help from one's seniors or managers and try to resolve the situation prudently before it becomes big.
Adhoc test process or re-workAny process has certain inputs, certain steps and certain outputs. In order to minimize own re-work, review each input (e.g. functional requirements, test case format, available test data) before accepting it, perform each
task carefully (informing your manager/ client and the people downstream about the progress) and help each output get accepted by the stakeholders (e.g. development team, management and release team). Other than this, it is often useful to "be in the know" regarding the developing situations in the project in order to prepare for them ahead of time and avoid work which would need to be repeated.