Top-Down and Bottom-Up Approach for Model-Based Testing of Product