Extracting Generally Applicable Patterns from Object-Oriented Programs for the Purpose of Software Test Creation Richard Torkar, Robert Feldt, and Tony Gorschek Blekinge Institute of Technology, Sweden {rto|rfd|tgo}@bth.se Abstract. This paper presents a case study performed on three large open source applications. The applications were instrumented automat- ically with a total of 10,494 instrumentation points. The purpose of the instrumentation was to collect and store data during the execution of each application which later could be analysed off-line. Data analysis, on the collected data, allowed for the creation of test cases (test data, test fixtures and test evaluators) in addition to finding object message patterns for object-oriented software. 1 Introduction In order to automate software quality assurance to a high(er) extent, one needs to look at techniques that are suitable for this purpose. In this respect ran- dom testing [1] is a likely candidate for automation due to its nature where a minimum of human intervention is needed. Unfortunately, random testing of object-oriented software has not been researched widely (for an overview please see [2]). One of the reasons for this is surely the fact that random testing tradi- tionally compares well to other techniques when it comes to dealing with scalar (pre-defined or primitive) types, while usually is seen to have weaknesses deal- ing with compound (programmer-defined or higher-level) types. Another reason might be that random testing, again traditionally, has been used on small and delimited examples. . . The research contribution of this paper is to: i) Show how object message pattern analysis (from automatically instrumented applications) can be used to automatically create test cases. Test cases in this context equals test data, evaluators and fixtures. ii) Point to how random testing can be performed on these test cases. iii) Examine the possible existence of object message patterns in object-oriented software in addition to the question of general applicability of said patterns and, finally, iv) point out current possibilities for using instru- mentation of software items as an underlying foundation to automated software testing. Throughout this paper an empirically descriptive model is used, i.e. ex- plaining a phenomenon sufficiently on ‘real life’ software. Next, related work