The University of Sheffield
Department of Computer Science

Daniel Ayeni Undergraduate Dissertation 2015/16

Python Random Tester

Supervised by G.Fraser

Abstract

Software testing has always been one of the most fundamental parts of designing a system, through software testing, errors and bugs can be revealed. Therefore allowing developers to make changes to the system. One way in which software can be tested is through random testing.

Random testing can quickly generate many tests, is easy to implement, scales to large software applications and reveals software errors. However, it tends to generate many tests that are illegal or that exercise the same parts of the code as other tests, thus limiting its effectiveness. These limitations can be avoided by using directed random testing (DRT) which uses feedback from previous inputs to guide the execution of new inputs. 

The aim of this project is to create a system for Python that performs directed random testing. By taking classes, functions, methods and a time limit the system should output PyUnit test cases.

Achievements include a working feedback-directed random tester that generates PyUnit test cases for any function.