First I would like to expand a bit more regarding my view of the dynamics in the testing profession, before focusing on session-based testing. In my opinion, the greatest value in the context-driven test school is their redefinition of the tester role. The boundary being drawn, that is transforming traditional testing, is how and where scripting is utilized.
Most scripted tests are “checks” according to context-driven testing, much like what has been built in order to regression test; just checking to see that nothing has changed recently. Scripted tests have a disadvantage that they take time to create and maintain, and their usage is easily made obsolete by feature changes. What ultimately results, as the designated most-essential scripted tasks, are those that target features posing the most risk.
Who scripts those tasks then? In the case of automation tests, oftentimes coders with high-level skills create these scripts, and the line between developer and tester becomes fuzzy. With test-driven development, an Agile process, indeed the tester is often doing less scripting in his/her role as a user advocate. As such, the Agile tester provides stories, questions, and suggests issues. In this sense, I see context-driven testing and Agile testing as having a common ground. The former has made an attempt to make the distinction clearer in saying that traditional scripting is not really necessary for the latest incarnation of the tester.
With this in mind, I see the traditional role of testers narrowing, and being focused more on objective risk assessment, “threat” prevention, and generally, user advocacy. It is a less technical role than the traditional tester has now, in that it must be able to re-create scenarios that are oblivious to intended usage, and explore the deviations in human behavior, rather than follow usage defined in product specifications. I wouldn’t want to write the certification test for assessing these new skills.
Joking aside, there is much to be said for the efforts of those in the context-driven school who are grooming these testers of the future with “tester coaching” sessions. User-advocacy and risk-assessment skills are how the new breed of testers will shine.
Then there are the real world applications, and non-applications, of this idealized new tester. Realistically, if this tester was in the field, exclusively practicing these newly evolved skills, he/she would be a specialist. In practice, these new skills may need to be be mixed with scripting skills, as there are so many small companies/departments looking to add testers who do it all; an automated test developer who also does manual, exploratory testing. Indeed, I have seen Business Analysts and User Experience engineers performing many “user advocacy” test tasks. I have also seen developers dictating the test methodology they preferred, as often other product teams consider testing as a service that is customizable. In such cases, this new testing can be unheard-of, considered unusual, and not considered.
I may have created an expectation that user-advocacy testing is the sort of testing that will be exercised in session-based testing. Lets see what I think after the next post.
I may have also made context-driven testing sound highly reliant on the absence of scripting. I blame the impact of James Bach’s delivery style for that.