Tuesday, October 14, 2008

Testing as a Team Sport

If an entire Product Development is considered to be a Team Sport (say Football), what would be Testing team’s role in it? What are the things that a Testing team can adopt from Football?

Let’s consider the case when a Football Team is playing for a win. There is an entire Team who has the common objective (mission) to win the game. The only way to win the Game is by scoring goals and conceding lesser goals than what you have scored. This doesn't mean that every player in the team is trying to score goals. The Coach draws out a Game-plan to achieve the mission. Players in the team are given certain specific tasks like goal-keeping, defending the goal, controlling mid-field and there would be usually 2 strikers whose responsibility is to score goals. The combined effort of each of these roles is required if a team has to win the game. And there would be times when the coach has to redraw the game-plan according to the situation and find the best tactics to achieve the mission. The success of the Team depends on whether the players in the team know what to do when they get the ball. The task of goal-keeper when he receives the ball would be different from what the defender has to do when he gets the ball or even different from what the striker have to do when he gets the ball.

Similarly in a Product Development the Project Management draws out the game-plan. Then tasks are assigned to the respective Development and Testing teams. The combined mission of Development and Testing team is Successful Release of the Product. Both these teams will have their individual missions too which would ultimately ensure the combined mission is achieved.

The mission of the Testing team is to provide quality related information to the Stake Holders (who would be part of Management) and to facilitate them to take decisions. The Testing effort may still be broken further into sub-groups like UI Testing group, Function testing group, Installation Testing group, Database testing group etc. The Test Plan provides the game-plan as to what all things the Testing team would be responsible for (what all Testing would be done and what are the deliverables), what are the resources available and dates for completion of these tasks are provided. The Test Lead would be the captain who will marshal the resources and the coach would be the Test Manager who would ensure that the mission is on track and take decisions like altering the game-plan etc. The Testers would fill in for the various roles that the Manager provides him based on the Testers skill-sets. The success of Testing efforts depends on whether the Tester knows when they have received the ball, what should they do once they receive the ball. It also depends on how well each Tester has played his role and what information they have provided to the Management. Was the information provided by Testers help the Management to take decisions like - whether the product has matured enough to be released OR would some changes be made to the game-plan and take out the alternate game-plan?

Disclaimer : All contents in this article are my personal views.

Saturday, August 16, 2008

Gambler And an Expert Tester

Of late I have been reading a lot of stuff on Expert Testers, articles written by them and have also personally met an Expert Tester. Interacting and reading articles written by them, I feel they have certain traits which best fits a Gambler. In this article I am trying to compare few qualities of a Gambler and Expert Testers, which I personally think these Expert Testers possess and should benefit the Testers who aspire to become an Expert Tester.

#1. The Gambler would always track every single bet he makes by noting it down in his diary. It would usually include date/bets/odds/what's at risk/result and why he made the bet. By tracking his bets he would be able to remain organized, won't fall into traps he had fallen earlier into, would help him to develop a nose for identifying newer traps, would help him to think clearly in uncertain situations and would enable him to identify some sort of patterns admist of chaos.

An Expert Tester would always take down notes of the activities he is performing, the approach he used for identifying a bug in a particular context and the learnings he got while testing a particular product. He would keep on appending his list of learnings all through his testing career. He would be searching for similarities and dis-similarities, different contexts, different heuristics, more oracles and almost anything (things which normal testers are likely to miss) which could help him to achieve his mission.

#2. The Gambler doesn't fear going to the unknown territory and believes he can conquer it with his skill, courage and spirit. He has to train his mind to look beyond the obvious and to look into things which would elude normal people. He has so much at stake (money, reputation, existence ...) that he cannot miss even on minute details.

An Expert Tester challenges the application by stretching its boundaries and testing scenarios which normal Tester would usually miss or can't imagine. He would train his mind at all times to look beyond things which eludes normal testers. He challenges himself to better the benchmarks he sets for himself.

#3. The Gambler has to find his way through the traps, identifying and clearing them to reach his target. He has to make moves under condition of uncertainity. Uncertainity should not be mistaken to randomness. It requires dedicated practice and planning to play moves under uncertain situtation. Even the game of chess is uncertain until one of the Kings is check-mated, but the moves made are not random (infact it depends on the moves you make as per the given context).

Given an application to Test, an Expert Tester first tries to learn the application and establish a pattern for the way application works. He tries to identify the Traps and ways to clear them. Powered with his oracles and heuristics, he tries to find ways to break the application in a carefully planned and systematic manner (and not by Ad-Hoc appraoch).

Disclaimer : All contents in this article are my personal views.