Modern software development can require large numbers of people over long periods of time to create complex products. Industry trends showing rapid movement of people between companies and job assignments and use of specialized software maintenance groups for all maintenance activities frequently mean that the software engineers supporting (debugging, fixing, enhancing, and completing) products were not involved in the original design or coding. Hence it is important for engineers to be able to quickly find defects in unfamiliar code and to safely make changes. This paper describes results from an industrial survey initiated to collect information about software debugging and maintenance best practices. It describes failure reproduction, defect isolation, and debugging practices and tools. The paper is based on numerous actual examples and results of problem solving and analysis exercises.
展开▼