Note: this project obtained the highest mark awarded so far in the School of Computer Science! Project Title: A System to Aid Automated Software Testing Student: Andrew Young Course: Bsc Hons Computer Science Abstract: Software testing is a critical part of the software development lifecycle and is made up of a number of different stages. Unit testing, one of the earlier phases of the testing process, is the subject of this project. It is the process of verifying that each individual unit of a system works properly in isolation. More specifically, this project aims to aid unit testing of Java applications which make use of the JUnit framework. It does this by analysing the completeness of the unit testing, as well as estimating completion dates. The system (currently working under the name JUnitAid) is also capable of statically analysing the source code to locate key areas and scheduling tests to run on a daily basis. It is developed in the Java programming language and in order for the system to work effectively and efficiently, a number of libraries, such as Apache Ant (a Java build tool), JFreeChart and JavaParser are used. The system offers a simpler alternative to expensive systems that provide similar and more complex tools, while improving on the currently available open source systems. This report outlines the requirements for the system, along with its design and implementation, before describing the testing process and critically assessing the benefit of the completed system. At the time of writing, this system is in a position as expected at this stage, such that it is usable with a few minor limitations. That said, there are a number of improvements that could be made to the system in the future to make it more valuable as a testing tool.