How often does it happen that the tester is asked to test the system under test without any functional requirements (test basis). And unfortunately, we see too often that the tester simply agrees and starts testing the system under test. But is this really possible? Taking into consideration the definition of functional testing, the answer is obvious. Functional testing a process of comparing the test basis with the system under test (test object). After comparing, the tester can give insight into the different between the test basis and the test object (=quality). Thus, testing without a test basis testing is not possible. This because there is nothing to compare!
So to be clear, never just accept a test project where there is a lack of or incomplete functional specifications. How can the tester know if something conforms to the wishes of the client? After all, this wish (functional requirements) is not written down. Maybe the client wishes that after you press the enter button, the system must go up in smoke. You as a tester will notify the result as a bug, but the test conforms 100% the client wishes, thus the test is OK.
This shows that as a tester you can never judge whether a test is OK or NOK without having a reference. The client will understand this too and this will change his opinion about the importance of specifying the functionality.
In fact, having a reference is not only necessary for the purpose of testing, but also for the benefit of developing the test object. If nothing has been described how does the developer knows what he needs to build? Of course we as testers can help the client to develop the functional requirements or facilitate in getting a shared understanding of the test basis. And for this Model Based Testing can be perfectly used. The tester will draw the desired functionality in a graphic model. Such a graphic model is readable for everyone in the project and can later be used to automatically generate the test cases.
Drawing the test model often happens step by step because during this process and the client will be encouraged to think more in detail. It is like the functionality then comes to life. Once the test model is complete, it can be used by the tester in order to generate the test cases including the testdata . preconditions and expected test results, by using a Model Based Testing tool.
Here we see that Model Based Testing is more than just generating the test cases out of an test model. Model Based Testing is also a way to help the customer in getting insight into the business case and that all team members are getting the same understanding of the requirements. With this we also see that testing has shifted to the start of the project and not, as so often happened, it is done at the end!