Title :
CRANE: Failure Prediction, Change Analysis and Test Prioritization in Practice -- Experiences from Windows
Author :
Czerwonka, Jacek ; Das, Rajiv ; Nagappan, Nachiappan ; Tarvo, Alex ; Teterev, Alex
Abstract :
Building large software systems is difficult. Maintaining large systems is equally hard. Making post-release changes requires not only thorough understanding of the architecture of a software component about to be changed but also its dependencies and interactions with other components in the system. Testing such changes in reasonable time and at a reasonable cost is a difficult problem as infinitely many test cases can be executed for any modification. It is important to obtain a risk assessment of impact of such post-release change fixes. Further, testing of such changes is complicated by the fact that they are applicable to hundreds of millions of users, even the smallest mistakes can translate to a very costly failure and re-work. There has been significant amount of research in the software engineering community on failure prediction, change analysis and test prioritization. Unfortunately, there is little evidence on the use of these techniques in day-to-day software development in industry. In this paper, we present our experiences with CRANE: a failure prediction, change risk analysis and test prioritization system at Microsoft Corporation that leverages existing research for the development and maintenance of Windows Vista. We describe the design of CRANE, validation of its useful-ness and effectiveness in practice and our learnings to help enable other organizations to implement similar tools and practices in their environment.
Keywords :
object-oriented programming; operating systems (computers); program diagnostics; program testing; risk management; software architecture; software maintenance; software performance evaluation; CRANE; Microsoft Corporation; Windows Vista; change analysis; change risk analysis; day-to-day software development; failure prediction; large software systems; organizations; post-release change fixes; risk assessment; software component architecture; software engineering community; test prioritization system; Cranes; Maintenance engineering; Measurement; Operating systems; Software maintenance; Testing; Failure Prediction; Software Reliability;
Conference_Titel :
Software Testing, Verification and Validation (ICST), 2011 IEEE Fourth International Conference on
Conference_Location :
Berlin
Print_ISBN :
978-1-61284-174-8
Electronic_ISBN :
978-0-7695-4342-0
DOI :
10.1109/ICST.2011.24