This work presents an approach that can reduce the software testing cost by selecting test cases based on a spectrum of complexity metrics. A comprehensive taxonomy of product metrics was developed based on two dimensions, the product level and the characteristics of the product. To evaluate these metrics, a tool, which uses these metrics to target test cases, was implemented. To investigate the efficiency of the approach, an experiment was conducted on three applications where a significant number of mutants and a series of a significant number of seeded errors inserted independently by a third party were applied. The experiment shows that the test case selections discover 100% of the errors seeded by the third party and at least 60% of the mutants implemented by the automatic mutation testing tool. For further evaluation, the approach was compared to the boundary value analysis technique. The results of experiments indicate that the approach is highly effective in the detection of the mutants as well as the seeded errors.