ABSTRACT
In this paper, we propose a method to help users avoid bugs in GUI applications. In particular, users would use the application normally and report bugs that they encounter to prevent anyone -- including themselves -- from encountering those bugs again. When a user attempts an action that has led to problems in the past, he/she will receive a warning and will be given the opportunity to abort the action -- thus avoiding the bug altogether and keeping the application stable. Of course, bugs should be fixed eventually by the application developers, but our approach allows application users to collaboratively help each other avoid bugs -- thus making the application more usable in the meantime. We demonstrate this approach using our "Stabilizer" prototype. We also include a preliminary evaluation of the Stabilizer's bug prediction.
- K. Chan, Z. Liang, and A. Michail. Design recovery of interactive graphical applications. In Proc. 25th International Conference on Software Engineering, pages 114--124, 2003. Google ScholarDigital Library
- A. Chou, J. Yang, B. Chelf, S. Hallem, and D. Engler. An empirical study of operating systems errors. In Proc. 18th ACM Symposium on Operating Systems Principles, pages 73--88, 2001. Google ScholarDigital Library
- B. Demsky and M. Rinard. Automatic detection and repair of errors in data structures. In Proc. 18th ACM SIGPLAN Conference on Object-Oriented Programing, Systems, Languages, and Applications, pages 78--95, 2003. Google ScholarDigital Library
- S. Elbaum, S. Kanduri, and A. Andrews. Anomalies as precursors of field failures. In Proc. International Symposium of Software Reliability Engineering, pages 108--118, 2003. Google ScholarDigital Library
- D. Kurlander and S. Feiner. Editable graphical histories. In IEEE Workshop on Visual Languages, pages 127--134, 1988.Google ScholarCross Ref
- T. Lane and C. E. Brodley. Temporal sequence learning and data reduction for anomaly detection. ACM Transactions on Information and System Security, 2(3):295--331, 1999. Google ScholarDigital Library
- B. Liblit, A. Aiken, A. X. Zheng, and M. I. Jordan. Bug isolation via remote program sampling. In Proc. ACM SIGPLAN 2003 Conference on Programming Language Design and Implementation, pages 141--154, 2003. Google ScholarDigital Library
- A. M. Memon, I. Banerjee, and A. Nagarajan. What test oracle should I use for effective GUI testing? In Proc. 18th IEEE International Conference on Automated Software Engineering, pages 164--173, 2003.Google ScholarDigital Library
- T. M. Mitchell. Machine Learning. McGraw-Hill, 1997. Google ScholarDigital Library
- M. Renieris and S. P. Reiss. Fault localization with nearest neighbor queries. In Proc. 18th IEEE International Conference on Automated Software Engineering, pages 30--39, 2003.Google ScholarDigital Library
- I. H. Witten, A. Moffat, and T. C. Bell. Managing Gigabytes: Compressing and Indexing Documents and Images. Morgan Kaufmann, 1999. Google ScholarDigital Library
- A. Zeller and R. Hildebrandt. Simplifying and isolating failure-inducing input. IEEE Trans. Softw. Eng., 28(2):183--200, 2002. Google ScholarDigital Library
Index Terms
- Helping users avoid bugs in GUI applications
Recommendations
An empirical analysis of reopened bugs based on open source projects
EASE '16: Proceedings of the 20th International Conference on Evaluation and Assessment in Software EngineeringBackground: Bug fixing is a long-term and time-consuming activity. A software bug experiences a typical life cycle from newly reported to finally closed by developers, but it could be reopened afterwards for further actions due to reasons such as ...
Are these bugs really "normal"?
MSR '15: Proceedings of the 12th Working Conference on Mining Software RepositoriesUnderstanding the severity of reported bugs is important in both research and practice. In particular, a number of recently proposed mining-based software engineering techniques predict bug severity, bug report quality, and bug-fix time, according to ...
Characterizing duplicate bugs: Perceptions of practitioners and an empirical analysis
AbstractBug handling is an essential part of the software development process. Ideally, in a bug‐tracking system, bugs are reported, fixed, verified, and closed. In some cases, bugs have to be reopened mostly due to an incorrect fix. However, instead of ...
Our study investigates the difference between unique and duplicate bugs and further categorizes duplicates into Master‐Unresolved (Category‐1) and Missed‐Reopen (Category‐2) bugs. Through investigation of bug reports, we found that duplicates are up to ...
Comments