Software is today used in more and different ways than ever before. From refrigerators and cars to space shuttles and smart cards. As such, most software, usually need to adhere to a specification, i.e. to make sure that it does what is expected. Normally, a software engineer goes through a certain process to establish that the software follows a given specification. This process, verification and validation (V & V), ensures that the software conforms to its specification and that the customers ultimately receive what they ordered. Software testing is one of the techniques to use during V & V. To be able to use resources in a better way, computers should be able to help out in the “art of software testing” to a higher extent, than is currently the case today. One of the issues here is not to remove human beings from the software testing process altogether—in many ways software development is still an art form and as such pose some problems for computers to participate in—but instead let software engineers focus on problems computers are evidently bad at solving. This dissertation presents research aimed at examining, classifying and improving the concept of automated software testing and is built upon the assumption that software testing could be automated to a higher extent. Throughout this thesis an emphasis has been put on “real life” applications and the testing of these applications. One of the contributions in this dissertation is the research aimed at uncovering different issues with respect to automated software testing. The research is performed through a series of case studies and experiments which ultimately also leads to another contribution—a model for expressing, clarifying and classifying software testing and the automated aspects thereof. An additional contribution in this thesis is the development of framework desiderata which in turns acts as a broad substratum for a framework for object message pattern analysis of intermediate code representations. The results, as presented in this dissertation, shows how software testing can be improved, extended and better classified with respect to automation aspects. The main contribution lays in the investigation of, and the improvement in, issues related to automated software testing.