Write a Blog >>
ICSE 2023
Sun 14 - Sat 20 May 2023 Melbourne, Australia
Wed 17 May 2023 14:15 - 14:30 at Meeting Room 105 - Debugging Chair(s): Jie M. Zhang

Java’s Stream API, that massively makes use of lambda expressions, permits a more declarative way of defining operations on collections in comparison to traditional loops. While experimental results suggest that the use of the Stream API has measurable benefits with respect to code readability (in comparison to loops), a remaining question is whether it has other implications. And one of such implications is for example tooling in general and debugging in particular because of the following: While the traditional loop-based approach applies filters one after another to single elements, the Stream API applies filters on whole collections. In the meantime there are dedicated debuggers for the Stream API, but it remains unclear whether such a debugger (on the Stream API) has a measurable benefit in comparison to the traditional stepwise debugger (on loops). The present papers introduces a controlled experiment on the debugging of filter operations using a stepwise debugger versus a stream debugger. The results indicate that under the experiment’s settings the stream debugger has a significant (p<.001) and large positive effect (\eta_{p}^{2}=.899; \frac{M_{stepwise}}{M_{stream}}\sim204%) . However, the experiment reveals that additional factors interact with the debugger treatment such as whether or not the failing object is known upfront. The mentioned factor has a strong and large disordinal interaction effect with the debugger (p<.001; \eta_{p}^{2}=.928): In case an object that can be used to identify a failing filter is known upfront, the stream debugger is even less efficient than the stepwise debugger (\frac{M_{stepwise}}{M_{stream}}\sim72%). Hence, while we found overall a positive effect of the stream debugger, the answer whether or not debugging is easier on loops or streams cannot be answered without taking the other variables into account. Consequently, we see a contribution of the present paper not only in the comparison of different debuggers but in the identification of additional factors.

Wed 17 May

Displayed time zone: Hobart change

13:45 - 15:15
13:45
15m
Talk
ECSTATIC: An Extensible Framework for Testing and Debugging Configurable Static Analysis
Technical Track
Austin Mordahl University of Texas at Dallas, Zenong Zhang The University of Texas at Dallas, Dakota Soles The University of Texas at Dallas, Shiyi Wei University of Texas at Dallas
Pre-print
14:00
15m
Talk
Responsibility in Context: On Applicability of Slicing in Semantic Regression Analysis
Technical Track
Sahar Badihi University of British Columbia, Canada, Khaled Ahmed University of British Columbia (UBC), Yi Li Nanyang Technological University, Julia Rubin University of British Columbia, Canada
Pre-print
14:15
15m
Talk
Does the Stream API Benefit from Special Debugging Facilities? A Controlled Experiment on Loops and Streams with Specific Debuggers
Technical Track
Jan Reichl , Stefan Hanenberg University of Duisburg-Essen, Essen, Germany, Volker Gruhn University Duisburg-Essen
Pre-print
14:30
15m
Talk
Fonte: Finding Bug Inducing Commits from Failures
Technical Track
Gabin An KAIST, Jingun Hong SAP Labs, Naryeong Kim KAIST, Shin Yoo KAIST
Pre-print
14:45
15m
Talk
Do the Test Smells Assertion Roulette and Eager Test Impact Students’ Troubleshooting and Debugging Capabilities?
SEET - Software Engineering Education and Training
Wajdi Aljedaani University of North Texas, Mohamed Wiem Mkaouer Rochester Institute of Technology, Anthony Peruma University of Hawai‘i at Mānoa, Stephanie Ludi University of North Texas
Pre-print
15:00
7m
Talk
RexStepper: a Reference Debugger for JavaScript Regular Expressions
DEMO - Demonstrations
Luis Almeida IST, Miguel Gonzaga IST, José Fragoso Santos INESC-ID/Instituto Superior Técnico, Portugal , Rui Abreu University of Porto
15:07
7m
Talk
Toward Gaze-assisted Developer Tools
NIER - New Ideas and Emerging Results
Peng Kuang Lund University, Emma Söderberg Lund University, Diederick Niehorster Lund University, Martin Höst Lund University
Pre-print