This report is submitted as a first year qualifying dissertation, due 30 June 1997.
Software testing is an expensive process which few programmers like. Previous attempts to automate test-data generation are surveyed and shown to lack general applicability. For such automation methods to be widely used they must be general -- both in terms of the programs and the testing problems for which they can generate test-data. A review of three modern heuristic optimisation techniques (simulated annealing, tabu-search and genetic algorithms) is given. The flexibility of these techniques means that their use may allow a general frame-work for test-data automation to be produced. A plan is given for further research which aims to investigate the use of these optimisation techniques in automated testing (for a wide variety of both functional and non-functional testing problems). The preliminary results, presented at the end of this report, show how simulated annealing can be used to find test-data for a worst-case execution time and specification falsification problems.