"Testing" he said, "Ah, that can be pretty soul destroying, it is a thankless task."
Now this, coming from a man who was a teacher for years and complained bitterly about the hardships of teaching for most of them, worried me. I was concerned that working as a tester would cause me to degenerate into a bitter, frustrated individual who criticised the work of others for a living, creating nothing of my own.
I have encountered organisations and individuals for whom this is not so far from the truth, but this certainly does not need to be the case. My personal feeling is that the Testing role is a very positive and creative one. Here I discuss some of the key elements that I think can help testers to flourish as constructive influences into the creative process that is software development.
Involvement from the start
A lot has been written about the benefits of having test involved in the development process right from the elaboration of requirements. In addition to the tangible benefits of identifying potential issues early in the feature lifecycle, I believe that there are also significant psychological benefits for the tester. Working on a project from inception creates a sense of pride and ownership of the deliverables of that project. Delaying the involvement of the tester risks alienating them from the development and can push them into the more adversarial role of external quality gatekeeper.
Involvement during development
By being involved through the development of new functionality testers feel more integral to the creative process of software development. They can use their critical analysis skills to help drive the project forward through identifying potential problem areas and allowing resolutions to be implemented as an integral part of the development team. I feel that this level of involvement leads to testers being less inclined to taking a stance of detached criticism that can occur when testing is a more isolated discipline.
Significant negative feelings can be generated when the testing activity is focused after development is perceived to have finished, and the development team is trying to move onto other items. I think the two most significant causes of negative feeling in this situation are:-
- The feeling of being left behind Development is moving on with new things and the tester is left working on the 'old' project. A lot of resentment can result from this situation, particularly if the tester perceives the quality to be poor.
- A reluctance to disturb others If the developers who worked on an item have moved on by the time the testing is being performed, then the tester can develop feelings of guilt about disturbing the progress of others to look at issues in work that the developer hoped to have completed.
Ironically the worst case scenario for these last issues may not be Waterfall, where at least we have planned testing phases with expected rework, but rather iterative development processes where the testing is staggered from development e.g. in the following iteration. This has the worst of both cases as we have neither the immediate input into the development process of true collaborative agile, nor the contingency planning and development resource devoted to a traditional waterfall testing phase.
Specification by example
The process of automating examples of customer use of the system can help in more ways than the obvious demonstration and regression testing benefits. Again there are intangible psychological advantages from having the tester help to drive the development through the implementation of key examples. I personally gain a huge sense of satisfaction from seeing realistic automated examples working on new functionality that I have helped to create. Testers with a project deliverable of demonstratable working examples of the funtionality have more of a personal investment in, and therefore sense of responsibility towards, the success of the development as a whole.
Exploratory testingMuch has been written about the effectiveness of exploratory testing as compared to manual scripted testing. Due consideration should also be given to the benefits for job satisfaction for the testers involved. Executing manual scripted tests is dull, unchallenging and, if we are honest, unlikely to be performed with a high level of diligence. The benefits to the tester of exploratory testing in terms of their personal sense of creativity and the sense of developing their craft should not be underestimated.
Here I've highlighted just a few techniques and principles that help towards a healthy testing culture and hopefully a more positive outlook for the testers involved. Rather than adopting a stance of criticising developments and raising as many issues as possible, the tester can work to improve the product as it is developed. In this way we become agents for positive change in the organisation, and improve our own job satisfaction in the process.
Copyright (c) Adam Knight 2011