Using Program Slicing in Software Maintenance
IEEE Transactions on Software Engineering
ICSE '94 Proceedings of the 16th international conference on Software engineering
Yesterday, my program worked. Today, it does not. Why?
ESEC/FSE-7 Proceedings of the 7th European software engineering conference held jointly with the 7th ACM SIGSOFT international symposium on Foundations of software engineering
Expertise recommender: a flexible recommendation system and architecture
CSCW '00 Proceedings of the 2000 ACM conference on Computer supported cooperative work
Bugs as deviant behavior: a general approach to inferring errors in systems code
SOSP '01 Proceedings of the eighteenth ACM symposium on Operating systems principles
Prioritizing Test Cases For Regression Testing
IEEE Transactions on Software Engineering
Hipikat: recommending pertinent software development artifacts
Proceedings of the 25th International Conference on Software Engineering
Predicting problems caused by component upgrades
Proceedings of the 9th European software engineering conference held jointly with 11th ACM SIGSOFT international symposium on Foundations of software engineering
Populating a Release History Database from Version Control and Bug Tracking Systems
ICSM '03 Proceedings of the International Conference on Software Maintenance
RacerX: effective, static detection of race conditions and deadlocks
SOSP '03 Proceedings of the nineteenth ACM symposium on Operating systems principles
Journal of Systems and Software
Scaling regression testing to large software systems
Proceedings of the 12th ACM SIGSOFT twelfth international symposium on Foundations of software engineering
HATARI: raising risk awareness
Proceedings of the 10th European software engineering conference held jointly with 13th ACM SIGSOFT international symposium on Foundations of software engineering
Proceedings of the 10th European software engineering conference held jointly with 13th ACM SIGSOFT international symposium on Foundations of software engineering
MSR '05 Proceedings of the 2005 international workshop on Mining software repositories
Proceedings of the 28th international conference on Software engineering
Have things changed now?: an empirical study of bug characteristics in modern open source software
Proceedings of the 1st workshop on Architectural and system support for improving software dependability
Proceedings of the 14th ACM SIGSOFT international symposium on Foundations of software engineering
/*icomment: bugs or bad comments?*/
Proceedings of twenty-first ACM SIGOPS symposium on Operating systems principles
Learning from mistakes: a comprehensive study on real world concurrency bug characteristics
Proceedings of the 13th international conference on Architectural support for programming languages and operating systems
Documenting and automating collateral evolutions in linux device drivers
Proceedings of the 3rd ACM SIGOPS/EuroSys European Conference on Computer Systems 2008
The influence of organizational structure on software quality: an empirical case study
Proceedings of the 30th international conference on Software engineering
Classifying Software Changes: Clean or Buggy?
IEEE Transactions on Software Engineering
Efficient online validation with delta execution
Proceedings of the 14th international conference on Architectural support for programming languages and operating systems
Toward an understanding of bug fix patterns
Empirical Software Engineering
Does distributed development affect software quality? An empirical case study of Windows Vista
ICSE '09 Proceedings of the 31st International Conference on Software Engineering
Automatically patching errors in deployed software
Proceedings of the ACM SIGOPS 22nd symposium on Operating systems principles
Secure open source collaboration: an empirical study of linus' law
Proceedings of the 16th ACM conference on Computer and communications security
SherLog: error diagnosis by connecting clues from run-time logs
Proceedings of the fifteenth edition of ASPLOS on Architectural support for programming languages and operating systems
Has the bug really been fixed?
Proceedings of the 32nd ACM/IEEE International Conference on Software Engineering - Volume 1
Recurring bug fixes in object-oriented programs
Proceedings of the 32nd ACM/IEEE International Conference on Software Engineering - Volume 1
Towards understanding bugs in open source router software
ACM SIGCOMM Computer Communication Review
The missing links: bugs and bug-fix commits
Proceedings of the eighteenth ACM SIGSOFT international symposium on Foundations of software engineering
Non-essential changes in version histories
Proceedings of the 33rd International Conference on Software Engineering
A human study of patch maintainability
Proceedings of the 2012 International Symposium on Software Testing and Analysis
A systematic study of automated program repair: fixing 55 out of 105 bugs for $8 each
Proceedings of the 34th International Conference on Software Engineering
MoonBox: debugging with online slicing and dryrun
Proceedings of the Asia-Pacific Workshop on Systems
Predicting recurring crash stacks
Proceedings of the 27th IEEE/ACM International Conference on Automated Software Engineering
High-coverage symbolic patch testing
SPIN'12 Proceedings of the 19th international conference on Model Checking Software
Metric techniques for maintenance programmers in a maintenance ticket environment
Journal of Computing Sciences in Colleges
MoonBox: debugging with online slicing and dryrun
APSys'12 Proceedings of the Third ACM SIGOPS Asia-Pacific conference on Systems
Automated concurrency-bug fixing
OSDI'12 Proceedings of the 10th USENIX conference on Operating Systems Design and Implementation
Be conservative: enhancing failure diagnosis with proactive logging
OSDI'12 Proceedings of the 10th USENIX conference on Operating Systems Design and Implementation
Proceedings of the ACM SIGSOFT 20th International Symposium on the Foundations of Software Engineering
How do software engineers understand code changes?: an exploratory study in industry
Proceedings of the ACM SIGSOFT 20th International Symposium on the Foundations of 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
Report on the fourth workshop on hot topics in software upgrades (HotSWUp 2012)
ACM SIGOPS Operating Systems Review
Production-run software failure diagnosis via hardware performance counters
Proceedings of the eighteenth international conference on Architectural support for programming languages and operating systems
ConAir: featherweight concurrency bug recovery via single-threaded idempotent execution
Proceedings of the eighteenth international conference on Architectural support for programming languages and operating systems
Griffin: grouping suspicious memory-access patterns to improve understanding of concurrency bugs
Proceedings of the 2013 International Symposium on Software Testing and Analysis
Partition-based regression verification
Proceedings of the 2013 International Conference on Software Engineering
Proceedings of the 2013 International Conference on Software Engineering
Safe software updates via multi-version execution
Proceedings of the 2013 International Conference on Software Engineering
A characteristic study on failures of production distributed data-parallel programs
Proceedings of the 2013 International Conference on Software Engineering
Discovering, reporting, and fixing performance bugs
Proceedings of the 10th Working Conference on Mining Software Repositories
Inferring project-specific bug patterns for detecting sibling bugs
Proceedings of the 2013 9th Joint Meeting on Foundations of Software Engineering
KATCH: high-coverage testing of software patches
Proceedings of the 2013 9th Joint Meeting on Foundations of Software Engineering
Debugging non-deadlock concurrency bugs
Proceedings of the 2013 International Symposium on Software Testing and Analysis
Current challenges in automatic software repair
Software Quality Control
Maintaining the health of software monitors
Innovations in Systems and Software Engineering
A Study of Linux File System Evolution
ACM Transactions on Storage (TOS)
A study of Linux file system evolution
FAST'13 Proceedings of the 11th USENIX conference on File and Storage Technologies
HARDFS: hardening HDFS with selective and lightweight versioning
FAST'13 Proceedings of the 11th USENIX conference on File and Storage Technologies
Hi-index | 0.00 |
Software bugs affect system reliability. When a bug is exposed in the field, developers need to fix them. Unfortunately, the bug-fixing process can also introduce errors, which leads to buggy patches that further aggravate the damage to end users and erode software vendors' reputation. This paper presents a comprehensive characteristic study on incorrect bug-fixes from large operating system code bases including Linux, OpenSolaris, FreeBSD and also a mature commercial OS developed and evolved over the last 12 years, investigating not only themistake patterns during bug-fixing but also the possible human reasons in the development process when these incorrect bug-fixes were introduced. Our major findings include: (1) at least 14.8%--24.4% of sampled fixes for post-release bugs in these large OSes are incorrect and have made impacts to end users. (2) Among several common bug types, concurrency bugs are the most difficult to fix correctly: 39% of concurrency bug fixes are incorrect. (3) Developers and reviewers for incorrect fixes usually do not have enough knowledge about the involved code. For example, 27% of the incorrect fixes are made by developers who have never touched the source code files associated with the fix. Our results provide useful guidelines to design new tools and also to improve the development process. Based on our findings, the commercial software vendor whose OS code we evaluated is building a tool to improve the bug fixing and code reviewing process.