Model-based software testing model