Affiliation:
1. Institute of Software Technology, Graz University of Technology, 8010 Graz, Austria
Abstract
Dynamic and relevant (backward) slicing helps programmers in the debugging process by reducing the number of statements in an execution trace. In this paper, we propose an approach called pruned slicing, which can further reduce the size of slices by reasoning over Boolean expressions. It adds only those parts of a Boolean expression that are responsible for the evaluation outcome of the Boolean expression to the set of relevant variables. We empirically evaluate our approach and compare it to dynamic and relevant slicing using three small benchmarks: the traffic collision avoidance system (TCAS), the Refactory dataset, and QuixBugs. Pruned slicing reduces the size of the TCAS slices on average by 10.2%, but it does not reduce the slice sizes of the Refactory and QuixBugs programs. The times required for computing pruned dynamic and relevant slices are comparable to the computation times of non-pruned dynamic and relevant slices. Thus, pruned slicing is an extension of dynamic and relevant slicing that can reduce the size of slices while having a negligible computational overhead.
Reference47 articles.
1. Program Slicing;Weiser;IEEE Trans. Softw. Eng.,1984
2. Soha, P.A., Gergely, T., Horváth, F., Vancsics, B., and Beszédes, Á. (2023, January 12–16). A Case Against Coverage-Based Program Spectra. Proceedings of the IEEE Conference on Software Testing, Verification and Validation (ICST), Porto de Galinhas, Brazil.
3. Beizer, B. (1990). Software Testing Techniques, ITP Media. [2nd ed.].
4. Hirsch, T., and Hofer, B. (2021, January 4). What we can learn from how programmers debug their code. Proceedings of the 8th International Workshop on Software Engineering Research and Industrial Practice (SER-IP), Madrid, Spain.
5. Dynamic program slicing;Korel;Inf. Process. Lett.,1988