The Futurology of Software Testing, part 1/2
“Futures studies (also called futurology) is the study of postulating possible, probable, and preferable futures and the worldviews and myths that underlie them. There is a debate as to whether this discipline is an art or science.”⑴
Whether art or science, futurology is subject – as every human activity is – to the ways of human feeling and thinking, and reasoning, which are studied by the science of psychology. Psychology tells you mercilessly, and with vivid examples, why and how human predictions fail.
Dietrich Dörner in his great book ⑵ describes comprehensively the mechanisms, which make people err often and spectacularly while planning and making decisions. Remembering that predicting the outcome, timing and resources of a software project is doubtlessly beyond your grasp, so how can you expect predictions on a much higher level of complexity, such as seeing software testing in 20 years’ time, to be even remotely accurate?
However inaccurate my conclusions will be ⑶, due to unexpected events occurring before the future has become the present ⑷, the very process of attempting to imagine the unknown is a very perceptive and useful tool to achieve helicopter view of the present, its ills and its glories: bypassing irrelevant details, fashionable fads and short-lived, superficial technologies and silver-bullets.
So, let the show begin! I have chosen four crystal balls, each looking into a different possible future.
1. Automatic process design
An unpopular, sarcastic, truth-telling person like myself, in order to survive in this world, must perform various unglamorous tasks to earn money. So it happens to me that I teach an unaccredited ISTQB course ⑸ from Monday to Wednesday, and a BPM or BPMN course on Thursday and Friday. Then an abyss of realisation opens in front of me – why, for God’s sake, neither ISTQB nor PRINCE 2, nor PMI, nor ITIL, uses BPMN diagrams to describe their “fundamental(istic) processes”, but relies on logorrhea instead? BPMN has been available for more than 14 years now, and is an obvious tool for serious process descriptions.
I had the privilege once to help introduce a BPMS for an apple wholesaler. Yes, quality control was very much an important part of the wholesaler’s processes, but we did not use any AQCPI ⑹ to analyse it and suggest possible improvements; instead, the apple quality control process (you may call it apple testing, if you prefer) was treated, correctly, as a part of the whole, integrated “apple delivery value stream process”, where customer satisfaction was in focus.
Needless to say, this intelligent apple wholesaler ⑺ knew that no process is prefect, not even good enough forever. Knowing that new technologies will appear, and that great men’s favours are uncertain ⑻, he (or she) wanted to be able to change and adopt his (or her) business processes without much ado and without much expenditure – therefore he or she wanted a BPMS ⑼.
What struck me there and then, was the discrepancy between the intelligent sophistication of the apple industry compared to the heavy-handed, prescriptive approach still prevalent in software industry.
One of my visions of software testing future is therefore that, in 20 years’ time, it will become equally sophisticated as apple industry, implementing flexible processes based on BPMS and providing continuous process improvement and continuous business analysis.
TEST PROCESS – possible future 1
2. Paramount test hacking
I try to be quiet and collected – after all, life is too wonderful a gift to waste it going angry and irritated. In spite of some reasonable success in this area – my wife calls me sometimes a “Dalai Lama wannabe”, I still have much difficulty controlling anger when I encounter complacent ignorance. A few days ago, I saw somewhere on LinkedIn the following question: “Please tell me which test tool is better, Selenium or Cucumber?”⑽. Such blatant mixing up triangles and pears, combined with such compulsive-obsessive fixation on tools instead of on issues, goals and processes, made me so angry I mowed the lawn both in the garden and outside, to pacify my murderous emotions.
Testing has developed and grown very, very much indeed during the last 20 years, but alas the development has gone in the direction of what I called test hacking rather than in the direction of quality thinking on all levels. Testing as profession has become the domain of nimble-fingered test execution tools’ programmers, with really great ability to automate anything. However, testing as a general approach, with the ability to ask such vital questions as: “have we really taken all important stakeholders into account?”, or “is the development of such a Web platform really according to what Porter’s Five Forces Model analysis tells us we should do?”, or “shall we be able to achieve this SLA, and at what cost?”, has not developed at all. On business analysis level, and on requirements engineering level, testing is still in its infancy, with naïve, stone age gut-feeling approach dominant.
Sometimes, during my hour of the wolf, embedded in bed and in dark thoughts, a see the future of software testing as a relentless path of phytomisation, and selenisation, and uTestisation of testing, and I feel like some Cassandra indeed.
2. Dietrich Dörner “The Logic of Failure: Recognizing And Avoiding Error In Complex Situations”; unless you want to buy this book, some good summaries are available in http://www.maxmednik.com/home/notes-on-the-logic-of-failure-by-dietrich-dorner or in http://csse.usc.edu/csse/event/2012/ARR/presentations/pres7.pptx
3. Please remember to verify their correctness in August 2036!
4. Do you remember Minitel, WAP, OS/2, Modula?
5. It must be unaccredited, because sarcastic and truth-telling training slides do not get accredited!
6. AQCPI – Apple Quality Control Process Improvement no, just kidding, folks!
7. From the Grójec fruit-growing area – the EU’s biggest apple producer
8. Meaning that the preconditions for customer satisfaction will change
9. See https://en.wikipedia.org/wiki/Business_process_management#BPM_suites
10. Just not to stress you: Selenium is a test execution tool, while Cucumber is a framework tool for archiving requirements and their respective acceptance test cases, and connecting them to executable tests.