The perpetual testing project is developing technologies to support seamless, perpetual analysis and testing of software through deployment and evolution. Whereas the current dominant paradigm treats testing as a phase that succeeds development and precedes delivery, the perpetual testing project is building a foundation for treating analysis and testing as on-going activities to improve quality assurance without pause through several generations of product, both in the development environment and in the deployed 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.
Perpetual testing is necessarily incremental.
Analysis and testing processes are carried out in response to changes in software artifacts or associated information or in anticipation of change. Improvements to existing technologies are focused largely on scalability and incrementality for large evolving systems. Analysis and testing in the perpetual testing framework is 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. The perpetual testing project is a collaboration of researchers at the University of Massachusetts, the University of California at Irvine, and Purdue University.