This project will develop software engineering approaches to improve reliability in Pervasive and Trusted Network and Service Infrastructures (ICT-2007.1.2). This is achieved today by extensive testing, combined with monitoring and logging in the field. Volumes of automated tests and logging code are written, failures must be analysed and diagnosed and this accounts typically for half the cost of software. Even so, residual errors impose high costs on users.
We aim to automate much fault finding and diagnosis, reducing its cost and improving effectiveness, based on properties of the system (specified by developers) which should always hold. Automated tools will generate and run tests, monitor execution at run-time, and log events for post-mortem analysis. When properties fail, the tools will search for simplest failing cases, and analyse trace and coverage information, to assist speedy diagnosis. Concurrency is a major challenge, which will be addressed in part by integrating model checking into our tools.
Today's developers are not used to formulating general properties, so we will investigate ways of deriving them from two sources: UML (or UML-like) models, and by re-factoring existing test suites.
We combine academic expertise in re-factoring, model checking and testing; a tool vendor; and industrial expertise in telecoms. Three partners are SMEs, Ericsson is a leading telecoms supplier. All use Erlang, an open-source concurrent functional language aimed at telecoms and Internet servers, which will be a common vehicle for our research' easing the transfer of theory into industrial practice. Erlang's good interoperability will enable our tools to find faults in all kinds of systems.
Our results will improve our tool vendor's products, be adopted by our partners within Ericsson and Lambda-stream, and be disseminated by ETC to their customers throughout Europe's telecoms sector. This three-pronged strategy will guarantee real impact.