Petrillo, Fabio, Guéhéneuc, Yann-Gaël, Pimenta, Marcelo, Freitas, Carla Dal Sasso and Khomh, Foutse (2019) Swarm Debugging: the Collective Intelligence on Interactive Debugging. Journal of Systems and Software . ISSN 01641212 (In Press)
Preview |
Text (In Press, Accepted Manuscript) (application/pdf)
2MBSwarm-Debugging--the-Collective-Intelligence-on-I_2019_Journal-of-Systems-an.pdf - Accepted Version Available under License Spectrum Terms of Access. |
Official URL: http://dx.doi.org/10.1016/j.jss.2019.04.028
Abstract
One of the most important tasks in software maintenance is debugging. To start an interactive debugging session, developers usually set breakpoints in an integrated development environment and navigate through different paths in their debuggers. We started our work by asking what debugging information is useful to share among developers and study two pieces of information: breakpoints (and their locations) and sessions (debugging paths). To answer our question, we introduce the Swarm Debugging concept to frame the sharing of debugging information, the Swarm Debugging Infrastructure (SDI) with which practitioners and researchers can collect and share data about developers’ interactive debugging sessions, and the Swarm Debugging Global View (GV) to display debugging paths. Using the SDI, we conducted a large study with professional developers to understand how developers set breakpoints. Using the GV, we also analyzed professional developers in two studies and collected data about their debugging sessions. Our observations and the answers to our research questions suggest that sharing and visualizing debugging data can support debugging activities.
Divisions: | Concordia University > Gina Cody School of Engineering and Computer Science > Computer Science and Software Engineering |
---|---|
Item Type: | Article |
Refereed: | Yes |
Authors: | Petrillo, Fabio and Guéhéneuc, Yann-Gaël and Pimenta, Marcelo and Freitas, Carla Dal Sasso and Khomh, Foutse |
Journal or Publication: | Journal of Systems and Software |
Date: | 9 April 2019 |
Funders: |
|
Digital Object Identifier (DOI): | 10.1016/j.jss.2019.04.028 |
Keywords: | Debugging; Swarm debugging; Software visualization; Empirical studies; Distributed systems; Information foraging |
ID Code: | 985267 |
Deposited By: | Monique Lane |
Deposited On: | 18 Apr 2019 19:40 |
Last Modified: | 09 Apr 2021 01:01 |
References:
T.M. Ahmed, W. Shang, A.E. Hassan An empirical study of the copy and paste behavior during development Mining Software Repositories (MSR), 2015 IEEE/ACM 12th Working Conference on(2015), pp. 99-110K. Araki, Z. Furukawa, J. Cheng A general framework for debugging Software, IEEE, 8 (3) (1991), pp. 14-20
B. Ashok, J. Joy, H. Liang, S.K. Rajamani, G. Srinivasa, V. Vangala DebugAdvisor: A Recommender System for Debugging Proceedings of the 7th joint meeting of the European software engineering conference and the ACM SIGSOFT symposium on The foundations of software engineering on European software engineering conference and foundations of software engineering symposium - E, ACM Press, New York, New York, USA (2009), p. 373
T. Ball, S. Eick Software visualization in the large Computer, 29 (4) (1996), pp. 33-43
M. Beller, N. Spruit, D. Spinellis, A. Zaidman On the dichotomy of debugging behavior among programmers 40th International Conference on So ware Engineering, ICSE (2018), pp. 572-583
Beller, M., Spruit, N., Zaidman, A., 2017. How developers debug.
R. Chern, K. De Volder Debugging with control-flow breakpoints Proceedings of the 6th International Conference on Aspect-oriented Software Development, ACM, New York, NY, USA (2007), pp. 96-106
A. Cockburn Agile Software Development: The Cooperative Game, Second Edition
Addison-Wesley Professional (2006)
S. Demeyer, S. Ducasse, M. Lanza A hybrid reverse engineering approach combining metrics and program visualization Proceedings of the Sixth Working Conference on Reverse Engineering, IEEE Computer Society, Washington, DC, USA (1999)
Eclipse Managing conditional breakpoints.
H.C. Estler, M. Nordio, C.a. Furia, B. Meyer Collaborative debugging
Proceedings - IEEE 8th International Conference on Global Software Engineering, ICGSE 2013 (2013), pp. 110-119
S.D. Fleming, C.Scaffidi, D. Piorkowski, M. Burnett, R. Bellamy, J. Lawrance, I. Kwan An Information Foraging Theory Perspective on Tools for Debugging, Refactoring, and Reuse Tasks
ACM Transactions on Software Engineering and Methodology, 22 (2) (2013), pp. 1-41
S. Garnier, J. Gautrais, G. Theraulaz The biological principles of swarm intelligence
Swarm Intelligence, 1 (1) (2007), pp. 3-31
D. Grove, G. DeFouw, J. Dean, C. Chambers Call graph construction in object-oriented languages Proceedings of the 12th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications - OOPSLA ’97 (1997), pp. 108-124
B. Hofer, F. Wotawa Combining slicing and constraint solving for better debugging: the CONBAS approach Advances in Software Engineering, 2012 (2012), p. 13
S. Jiang, C. McMillan, R. Santelices Do programmers do change impact analysis in debugging? Empirical Software Engineering (2016), pp. 1-39
H. Katso sdb: a symbolic debugger Unix Programmer’s Manual, Bell Telephone Laboratories, Inc. (1979), p. N/A
I. Katz, J. Anderson Debugging: An Analysis of Bug-Location Strategies
Human-Computer Interaction, 3 (4) (1987), pp. 351-399
M. Kersten, G.C. Murphy Using task context to improve programmer productivity
Proceedings of the 14th ACM SIGSOFT international symposium on Foundations of software engineering (2006), pp. 1-11
A. Ko Debugging by asking questions about program output Proceeding of the 28th international conference on Software engineering - ICSE ’06(2006), p. 989
A. Ko, B.A. Myers Finding Causes of Program Output with the Java Whyline
ACM (Ed.), CHI 2009 - Proceedings of the SIGCHI Conference on Human Factors in Computing Systems. New York, New York, USA (2009), pp. 1569-1578
A.J. Ko, H.H. Aung, B.A. Myers Eliciting design requirements for maintenance-oriented ides: a detailed study of corrective and perfective maintenance tasks
Proceedings. 27th International Conference on Software Engineering, 2005. ICSE 2005.(2005), pp. 126-135
A.J. Ko, B.A. Myers, M.J. Coblenz, H.H. Aung An exploratory study of how developers seek, relate, and collect relevant information during software maintenance tasks IEEE Transaction on Software Engineering, 32 (12) (2006), pp. 971-987
T.D. LaToza, B.a. Myers Developers ask reachability questions 2010 ACM/IEEE 32nd International Conference on Software Engineering, 1 (2010), pp. 185-194
T.D. LaToza, G. Venolia, R. DeLine Maintaining mental models: a study of developer work habits ICSE (2006), pp. 492-501
J. Lawrance, C. Bogart, M. Burnett, R. Bellamy, K. Rector, S.D. Fleming How programmers debug, revisited: An information foraging theory perspective
IEEE Transactions on Software Engineering, 39 (2) (2013), pp. 197-215
M.A. LintonThe evolution of dbx Proceedings of the Summer USENIX Conference (1990), pp. 211-220
W. Maalej, R. Tiarks, T. Roehm, R. Koschke On the Comprehension of Program Comprehension ACM Transactions on Software Engineering and Methodology, 23 (4) (2014), pp. 1-37
W. Maalej, R. Tiarks, T. Roehm, R. Koschke On the comprehension of program comprehension ACM Transactions on Software Engineering and Methodology, 23 (4) (2014), pp. 31:1-31:37
P. Wainwright, 2010. GNU DDD - Data Display Debugger.
C. Parnin, A. Orso Are automated debugging techniques actually helping programmers? Proceedings of the 2011 International Symposium on Software Testing and Analysis ISSTA 11 (2011), p. 199
F. Petrillo, G. Lacerda, M. Pimenta, C. Freitas Visualizing interactive and shared debugging sessions 2015 IEEE 3rd Working Conference on Software Visualization (VISSOFT), IEEE (2015), pp. 140-144
F. Petrillo, H. Mandian, A. Yamashita, F. Khomh, Y.G. Guéhéneuc How do developers toggle breakpoints? observational studies 2017 IEEE International Conference on Software Quality, Reliability and Security (QRS)(2017), pp. 285-295
F. Petrillo, Z. Soh, F. Khomh, M.Pimenta, C. Freitas, Y.-G. Guéhéneuc Towards understanding interactive debugging In Proceedings of the 2016 IEEE International Conference on Software Quality, Reliability and Security (QRS) (2016), p. 10
R. Pienta, J. Abello, M. Kahng, D.H. Chau Scalable graph exploration and visualization: Sensemaking challenges and opportunities 2015 International Conference on Big Data and Smart Computing (BIGCOMP), IEEE(2015), pp. 271-278
D. Piorkowski, S. Fleming The whats and hows of programmers’ foraging diets Proceedings of the SIGCHI Conference on Human Factors in Computing Systems CHI ’13, ACM, Paris, France (2013), p. 3063—-3072
D.Piorkowski, S.D. Fleming, C. Scaffidi, M. Burnett, I. Kwan, A.Z. Henley, J. Macbeth, C.Hill, A. Horvath To fix or to learn? how production bias affects developers’ information foraging during debugging 2015 IEEE International Conference on Software Maintenance and Evolution (ICSME)(2015), pp. 11-20
G. Pothier, É. Tanter Back to the Future: Omniscient Debugging IEEE Software, 26 (6) (2009), pp. 78-85
J. Ressia, A. Bergel, O. Nierstrasz Object-centric debugging Proceedings - International Conference on Software Engineering (2012), pp. 485-495
P. Romero, B. du Boulay, R. Cox, R. Lutz, S. Bryant Debugging strategies and tactics in a multi-representation software environment International Journal of Human-Computer Studies, 65 (12) (2007), pp. 992-1009
J. Rößler How helpful are automated debugging tools? 2012 1st International Workshop on User Evaluation for Software Engineering Researchers, USER 2012 - Proceedings (2012), pp. 13-16
R. Saito, M.E. Smoot, K. Ono, J. Ruscheinski, P.- . Wang, S. Lotia, A.R. Pico, G.D. Bader, T. IdekerA travel guide to Cytoscape plugins. Nature methods, 9 (11) (2012), pp. 1069-1076
H. Sanchez, R. Robbes, V.M. Gonzalez An empirical study of work fragmentation in software evolution tasks Software Analysis, Evolution and Reengineering (SANER), 2015 IEEE 22nd International Conference on (2015), pp. 251-260
J. Sillito, G.C. Murphy, K.D. Volder Asking and answering questions during a programming change task IEEE Transactions on Software Engineering, 34 (4) (2008), pp. 434-451
Z. Soh, F. Khomh, Y.-G. Guéhéneuc, G.Antoniol, B. Adams On the effect of program exploration on maintenance tasks Reverse Engineering (WCRE), 2013 20th Working Conference on (2013), pp. 391-400
R. Stallman, S. Shebs Debugging with GDB - The GNU Source-Level Debugger
GNU Press (2002)
M.-A. Storey, L. Singer, B. Cleary, F.Figueira Filho, A. Zagalsky The (R) Evolution of social media in software engineering Proceedings of the on Future of Software Engineering - FOSE 2014, ACM Press, New York, New York, USA (2014), pp. 100-116
A.S. Tanenbaum, W.H. Benson The people’s time sharing system Software: Practice and Experience, 3 (2) (1973), pp. 109-119
R. Tiarks, T. Röhm Challenges in Program Comprehension Softwaretechnik-Trends, 32 (2) (2013), pp. 19-20
W.R. Tschinkel The architecture of subterranean ant nests: beauty and mystery underfoot Journal of Bioeconomics, 17 (3) (2015), pp. 271-291
S. Wang, D. Lo Version history, similar report, and structure: putting them together for improved bug localization Proceedings of the 22nd International Conference on Program Comprehension - ICPC 2014, ACM Press, New York, New York, USA (2014), pp. 53-63
X. Ye, R. Bunescu, C. Liu Learning to rank relevant files for bug reports using domain knowledge Proceedings of the 22nd ACM SIGSOFT International Symposium on Foundations of Software Engineering - FSE 2014, ACM Press, New York, New York, USA (2014), pp. 689-699
A. Ying, M. Robillard The influence of the task on programmer behaviour
Proceedings International Conference on Program Comprehension (2011), pp. 31-40
I. Zayour, A. Hamdar A qualitative study on debugging under an enterprise IDE
Information and Software Technology, 70 (2016), pp. 130-139
C. Zhang, J. Yang, D. Yan, S. Yang, Y. Chen Automated Breakpoint Generation for Debugging Journal of Software, 86 (3) (2013), pp. 603-616
F. Zhang, F. Khomh, Y. Zou, A.E. Hassan An empirical study of the effect of file editing patterns on software quality Proceedings Working Conference on Reverse Engineering (2012), pp. 456-465
A.X. Zheng, M.I. Jordan, B. Liblit, M. Naik, A. Aiken Statistical Debugging : Simultaneous Identification of Multiple Bugs Challenges, 148 (2006), pp. 1105-1112
J. Zhou, H. Zhang, D. Lo Where should the bugs be fixed? More accurate information retrieval-based bug localization based on bug reports 2012 34th International Conference on Software Engineering (ICSE), IEEE (2012), pp. 14-24
Repository Staff Only: item control page