Although t-way strategy tries to generate a minimum test suite (TS) for detecting errors in software systems, its functionality is affected by three important challenges. The first one, which relates to the quality of the generated TS, expresses that some complex errors (e.g., deadlocks in concurrent systems) may not be detected through the generated TS. The second one is that manually preparing parameters and their values in the modern software systems is difficult or even impossible, whereas the third one is the low generation speed and the large size of the generated test suite. In this paper, we propose a three-phase approach (so-called TPA) to handle these challenges. It seems that injecting some information about special errors into the test suite can raise its quality. For this purpose, TPA, in the first phase, uses an optimized version of model checking to extract such information from a model of the system under test. The extracted information is then injected into the test suite. In the second phase, TPA uses the generated state space in the first phase to automatically prepare parameters and their values. In the last phase, TPA applies an adopted version of evolution strategy to improve the functionality of t-way strategy in terms of generation speed and test suite size. Multiple and pairwise comparisons of results confirm that TPA has the best functionality in comparison with other evolutionary algorithms