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