Whereas the current dominant paradigm treats testing as a phase that precedes delivery, we will build a foundation for treating analysis and testing as on-going activities to improve quality assurance without pause through several generations of product, in the deployed environment as well as the development environment. Software in the deployed environment will be monitored not only to check conformance to required properties but also to validate and refine the models and assumptions on which quality assurance activities in the development environment depend. The degree of monitoring and transmission of information to the development environment will differ depending on performance and security requirements of the end-user and will always be under user control. Approach The perpetual testing project is a collaboration of researchers at Purdue University, the University of California at Irvine, and the University of Massachusetts. The primary focus of the Purdue effort is in developing hybrids of static analysis, dynamic testing in the development environments, and monitoring in the deployed environment.
Perpetual testing is necessarily incremental.
Analysis and testing processes are carried out in response to changes in software artifacts or available information or in anticipation of change. Improvements to static and dynamic analysis technologies developed on previous ARPA funded projects will focus largely on scalability and incrementality for large evolving systems. In the face of evolution, perpetual testing processes will be aimed at attaining and maintaining adequate adherence of all software artifacts to relations captured by a rich web of hypercode links, including dependence relations among software components and among properties and analysis techniques. To enhance cost-effective perpetual testing of evolving systems, Purdue will explore incremental and evolutionary techniques for static and dynamic analysis. Purdue will deliver static and dynamic analysis tools for concurrent software, employing hierarchical analysis techniques that scale to complex systems.