A novel process to discover test case patterns is proposed. This has led to the construction of a test case patterns catalogue. The catalogue has been analysed to estimate the potential reusability in different software applications. This has shown that 43% of system functions are generally application domain independent, whereas 57% are application domain dependent. Statistical tests showed that the level of specialisation in software systems could be as low as 20%, which supports the direction taken in this research to reuse test case patterns in software engineering activities, in particular, software cost estimation at the early sages of software development.