Introducing a Reasonably Complete and Coherent Approach for Model-based Testing