Combining model-based and combinatorial testing for effective test case generation