Abstract
Software testing costs would be reduced if managers and testing engineers could gauge which parts of a system were more complex and thus more likely to have faults. Once these areas are identified, testing resources and testing priority could be assigned accordingly. The paper defines a method that uses the relative complexity metric to allocate resources for gray box testing in an environment where object oriented code is used and historical data are not available. The proposed method can also be applied to black box and white box testing as well as software quality assessments such as maintainability and reliability. The work on an industrial C++ software subsystem presented here shows that the rank order of minor test areas of the subsystem by relative test complexity is significantly similar to the rank order obtained from the experts who designed, wrote and tested the code.