The inductive software engineering manifesto: principles for industrial data mining
Proceedings of the International Workshop on Machine Learning Technologies in Software Engineering
Bug prediction based on fine-grained module histories
Proceedings of the 34th International Conference on Software Engineering
Software analytics in practice: mini tutorial
Proceedings of the 34th International Conference on Software Engineering
An industrial study on the risk of software changes
Proceedings of the ACM SIGSOFT 20th International Symposium on the Foundations of Software Engineering
Improving scenario testing process by adding value-based prioritization: an industrial case study
Proceedings of the 2013 International Conference on Software and System Process
Software analytics: achievements and challenges
Proceedings of the 2013 International Conference on Software Engineering
ACM SIGSOFT Software Engineering Notes
Hi-index | 0.01 |
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.