Software Test Automation : A Design And Tool Selection Approach For A Heterogeneous Environment