Thursday, 1 May 2014

Software Testing - Traditional Versus The Now

Traditionally, software testing was the study of requirements, preparation of tests, execution of the identified tests in a controlled environment and presenting the results to the sources who should have access to this information.
Then came the want to universalize, generalize, process, package and sell this traditional approach. The same was sold by company X and bought by company Y. The word spread and companies A, B and C bought it too because company Y’s testimonials were grand.
Caution: Be aware of who you talk and listen to in the business world.
In the early days of software testing, the limitations set by the traditional approach and the decline of this approach did not go unnoticed. With the lack of awareness, that the traditional approach to software testing is just not sufficient to deliver quality, companies A, B, C and Y stayed back to relish the thriving business and failed to embrace the change that was happening as early as in the 1980’s.
This decline,  gave rise to the need for testing the testing system inside out. And a revolution thus began in the software testing industry, which is now in it’s progressive phase in some organizations that are least to say passionate about delivering quality products and who find themselves responsible to contribute to the growing needs of this industry.
With the rising need for dynamism in testing the software developed and the way systems interacted with other such dynamic systems and the realization that this is not the time to re-frame a vignette gave/gives rise to the need for:
1) Revisiting the software testing industry norms and
2) The knowing that the boundaries/limitations set in the software testing realms requires to be extended to embrace new technology and old wisdom.
The needs of such learning and sharing under categories mentioned below:
Epistemology: The Study of Knowledge.
Study of knowledge itself is essential and personally, I feel that epistemology requires to be introduced to every learner. It is the key to knowing and learning (goes without saying)effectively. As Susan Cain in her book ‘Quiet’ mentions that to be proficient in music one also needs to be proficient in yet another activity. Such is the skill demanded while testing software. In the book ‘An Introduction to General Systems Thinking’, Jerry Weinberg shares the idea that to learn a system or an application one has to territorize it(knowing that the map itself is not the territory).
What we see is only a subset of the real world – W. Ross Ashby
Technology and Testing: The know-why of Testing.
The science of testing software/know-why could take the form of the models built and used to test, the approach deduced to test, application of the heuristics and oracles learnt, technique/skill accumulated, technology/applied science explored and experimented with – these and other scientific forms are used to perform testing with the understanding of the below knowledge shared by Jerry.
Science and technology need to keep pace with the second-order effects produced by their first-order victories  – Jerry Weinberg
Tacit Knowledge: The Know-how of testing.
Testing also requires to be extended to knowing the how along with the what, who and why. Questioning to know what, how, who and why is to pique the mind to think and proceed.
Effective transfer of tacit knowledge generally requires extensive personal contact, regular interaction and trust. This kind of knowledge can only be revealed through practice in a particular context and transmitted through social networks. To some extent it is “captured” when the knowledge holder joins a network or a community of practice.
People: The know-who of testing.
Know who’s who in the field of your choice of study. Interact and network with people to learn and share the tacit knowledge. Join hands with other volunteers to share the knowledge, to create awareness or simply to help answer questions from the community.
Test Ideas:The know-what of testing.
The Know-what or gathering the facts is a prerequisite to understand any system. Test ideas will form the integral part of this category. To know the system of testing itself – know the what/facts by being involved in the testing community and by testing software(without a bias).
Test Reports: The deliverables of testing.
Test report is a collated report on the know why, what, how and who of the tested system. It is a way of representing the information to the information seekers. Information seekers in the software testing industry are the business owners who would like to learn the system in an other point of view.
Testing Games:The joy of learning.
The need to mix gaming with learning and testing is essential to train and practice the skills required to test software better. Games that have helped in learning to focus, de-focus, collaborate when testing are the board games, rolling the dices, petals around the rose to name a few. Skills developed by gaming helps one acquaint oneself with the dynamic needs of a system under test or to just de-focus and get back to thinking how else could a user handle the system.
Teaching : Is learning.
As Dean Mackenzie puts it ‘Learning is indeed a two-way street’ and in Ratan Tata’s words ‘If you want to walk fast, walk alone. But if you want to walk far, walk together’.
  • Learn
  • Share
  • Teach
Take people with you, along your learning journey.
Unlearn: Excited about unlearning.
Submerging amounts of information are generated on blogger, newsletters, e-magazines, on twitter and other mediums on the internet and off the internet in the form of testing, thinking, arguing, book reading and conferring. This also arises for a routine need to unlearn and consciously making mental notes of the points un-learnt, helps.
Concluding thoughts: If you asked a tester how do they test, script, explore, learn, know or remember. They might be able to provide an instant or a thought answer. Might as well be able to express it in writing and be able to teach and share it with others. Yet, there always remains the knowledge that which cannot be expressed(Tacit) and the unknown. Which is why there is a need to explore, learn and grow constantly by trusting the instincts, mentors and learning without biases (and/or un-biasing when required) and without the fear of failing. The concluding thoughts thus implies that the above mentioned list is not an exhaustive list and there is scope to learn and add to this.
Your thoughts and suggestions are welcome.

Originally published here: TestBrewer