Wednesday, 10 September 2014

8 Best Practices in Software Testing


Article I wrote for Infosys Newletter -


Best Practices in Software Testing
By Azfar Alam, Principal Consultant, FSI-IVS

‘Best Practices in Software Testing’ is a topic on which anyone who has ever been involved in Testing, will have a view.  Also, anyone can spend a few minutes on Google and get a lot of stuff on that. Hence the best way to approach this topic is to highlight those points which one has found most useful in one’s own experience.

1.       Process is Testing Team’s Biggest Ally
The very nature of Tester’s job is to find faults, and try to break the application which the Development Team has built with much hard work and planning. Hence Testing Teams will frequently find themselves taking a position contrary to that of the Development Teams. This may give rise to disagreements and conflicts. In these situations the Testers should remember that their biggest ally is the Test Process which is clearly laid down and agreed by all. As long as they have followed the Process correctly, they will always have the ‘higher moral ground’ in any disagreement or conflict situation.  
Testers should also try to take emotion out of a conflict situation. They should not focus on individuals but should always shift the focus to the Test Process and say to the other party ‘It’s not me who wants you to do this, it is the Process. I am bound by that too’.

2.       Top Management Buy-In Into Testing
Testing Team’s task becomes doubly difficult if the top stakeholders in the Programme/Project don’t have an understanding of the value it brings. Hence it is very important for the Test Delivery Manager/Test Manager to constantly showcase the critical role Test Team plays and the value it brings to the table.

3.       Testers need to keep enhancing their Domain & Business Knowledge
Testers have to understand that even through at the beginning of a Test Engagement they may be doing only ‘Functional Testing’, but very soon the Customer expectation will be that they pick up knowledge on the Domain and Business side as well. This is key to the longevity and success of Test Engagements.

4.       Need for a good working relationship with the Dev Team/Other Key Stakeholders
Test Teams need to strive to create good working relationships based on respect with the Development Teams, BA’s and Designers. This will help in everyone working towards a common goal rather than getting into conflicts and ego clashes.

5.       Test Manager – Effective Reporting and Showcasing Value
A good Test Manager ensures that the Test Team understands and is committed to the Test Process. Once that happens the Test Manager needs to support the Testers and stand by them when they come under pressure.
Test Manager also needs to provide frequent and effective reporting to the senior stakeholders and keep showcasing the value of the Test Team. This will keep the morale of the team high.

6.       Proper Test Environments
Many a Test Engagement have failed to deliver effectively due to lack of proper Test Environment. Sometimes we see System Test and UAT happening on the same environment. This is a recipe for failure.Test Environments should not be compromised due to lack of time/money.

7.       Test Automation is not a silver bullet
Test Automation is an excellent way to increase Test Efficiency and coverage. But many a times it is projected as a ‘solution for all Testing Issues’. This is a fallacy. Test Automation has its limitations and these should be clearly highlighted.
This will help in managing expectations.

8.       Use of Statistical Techniques and Metrics

There are many useful statistical tools and techniques which can be used to bring a more scientific approach to testing and to optimise testing. Some being – Orthogonal Arrays, Six Sigma. Testing Metrics should also be chosen carefully to fit the purpose and then should be tracked for Test Compliance as well as continuous improvement.

No comments:

Post a Comment