QA organisations play an important role in ensuring the flawless launch of product(s) not only in accomplishing the desired functionalities, but also in focusing on enhancement of the end-user experience. They are expected to add value by capturing product traits to make it user friendly and trying out various combinations relevant to end user behaviour. This gains significance with more and more products getting mobile and cloud enabled.
Traditional ways of testing as used in past are proving to be insufficient in overcoming the above mentioned challenges. Introduction of Agile and Test driven development (TDD) have been able to reduce this gap to an extent, for example, graceful handling of the frequent changes in requirements. But they offer limitations in terms of being too focused on the iteration in hand and often missing the larger picture. Test driven development in particular has been very useful in validating requirements and then subsequently setting up the verification ground for the development iteration.
The above methodologies, by default, are not equipped to focus on end-user experience and other aspects of unexceptional user behaviour. The key issues of capturing the feedback related to user experience under varying behaviour are not completely addressed. Focus on unearthing the exceptional scenarios requires an additional iteration in terms of analysis, test design and testing.
Need is felt for availability of improved methodologies / solutions to deal with the above situation more meaningfully. So what do we do next ?
Let's simplify the entire context. Think of visual models; how they evolved and changed the way design used to happen; They simplified the way people could think holistically and were easy to comprehend. They also made reviews simpler and faster. Additionally, they provided the ability to spot gaps and discover any uncovered scenarios. This was one of the key reasons for the success of visual modelling and making it a de-facto standard for any architecture and software design work.
Extending the same analogy to product testing, can we think of visual test models? The quick answer is "Yes". Why can't the Test models perform the same magic with testing as the visual models in UML for technical and developmental design work? May be in testing, it would not be possible to represent all the elements visually in a meaningful manner, but still some kind of alternate models would be able to fulfil the requirements. These test models are prepared for the test design and would provide an easy means to keep the test design agile and up to speed with the suggested changes. Also, since these models are updated right after the requirements stage, we put it under the ambit of TDD and see this as yet another evolution of TDD, may be Test Model driven development (TMDD) ? The industry calls this concept Model based testing (MBT) .
This concept, although not new, has been gaining momentum in the software industry. Lot of research and work is happening to evolve MBT and its implementation techniques. There are a good number of case studies that have been made available showcasing successful implementation when dealing with deterministic scenarios using finite state machine technique for devices. However, there are still few areas that needs to be worked upon like provision for automated test case generation for UAT (alpha and beta), requirement of skilled resources a.k.a. technical test analyst for modelling of the requirements, accuracy and relevancy of automated generation of test cases by various solution available in market etc. There is a need to overcome current challenges to be able to apply this to solve business problems in a scalable model.
We will talk about Model based testing in detail and explore how to overcome these challenges in my next blog. Cheers !!!