Practical Model-Based Testing: A Tools Approach