Abstract
Localizing faults in programs and repairing them is considered a difficult, time-consuming, but necessary activity of software engineering to assure programs fulfilling their expected behavior during operation. In this paper, we introduce the Java2CSP debugging tool implementing the principles of model-based diagnosis for fault localization, which can be accessed over the internet using an ordinary web browser. Java2CSP makes use of a constraint representation of a program together with a failing test case for reporting debugging candidates. The tool supports a non-object-oriented subset of the programming language Java. Java2CSP is not supposed to be used in any production environment. Instead, the tool has been developed for providing a prototypical implementation of a debugger using constraints. We present the underlying foundations behind Java2CSP, discuss some preliminary results, and show how the tool can also be used for test case generation and other applications.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Notes
- 1.
Access the web interface of Java2CSP using the following link: http://modelinho.ist.tugraz.at. Note that there are currently two frontends available. The one we are talking about in this paper, and an early release of a new improved interface that is currently under development. To access the version of the tool we are describing in this paper follow the first version link given on the mentioned web page.
- 2.
The model used in Java2CSP and especially the given indices might vary but follows the same idea behind conversion.
References
Abreu, R., Zoeteweij, P., Golsteijn, R., van Gemund, A.J.C.: A practical evaluation of spectrum-based fault localization. J. Syst. Software 82(11), 1780–1792 (2009). https://doi.org/10.1016/j.jss.2009.06.035
Beizer, B.: Software Testing Techniques. Van Nostrand Reinhold, New York (1990)
Boehm, B.W.: Improving software productivity. Computer 20, 43–57 (1987)
Brandis, M.M., Mössenböck, H.: Single-pass generation of static assignment form for structured languages. ACM TOPLAS 16(6), 1684–1698 (1994)
de Moura, L., Bjørner, N.: Z3: an efficient SMT solver. In: Ramakrishnan, C.R., Rehof, J. (eds.) TACAS 2008. LNCS, vol. 4963, pp. 337–340. Springer, Heidelberg (2008). https://doi.org/10.1007/978-3-540-78800-3_24
Gotlieb, A., Botella, B., Rueher, M.: Automatic test data generation using constraint solving techniques. In: Proceedings of the 1998 ACM SIGSOFT International Symposium on Software Testing and Analysis. ISSTA 1998, New York, NY, USA, pp. 53–62. Association for Computing Machinery (1998). https://doi.org/10.1145/271771.271790
Krinke, J.: Effects of contex on program slicing. J. Syst. Softw. 79, 1249–1260 (2006)
Reiter, R.: A theory of diagnosis from first principles. Artif. Intell. 32(1), 57–95 (1987)
Weiser, M.: Program slicing. IEEE Trans. Software Eng. 10(4), 352–357 (1984)
Wong, W.E., Gao, R., Li, Y., Abreu, R., Wotawa, F.: A survey on software fault localization. IEEE Trans. Software Eng. 42(8), 707–740 (2016). https://doi.org/10.1109/TSE.2016.2521368
Lughofer, E., Sayed-Mouchaweh, M. (eds.): Predictive Maintenance in Dynamic Systems. Springer, Cham (2019). https://doi.org/10.1007/978-3-030-05645-2
Wotawa, F., Dumitru, V.A.: Java2csp - a model-based diagnosis tool not only for software debugging. In: Intelligent Decision Technologies 2021 - Proceedings of the 13th KES International Conference on Intelligent Decision Technologies (KES-IDT-21). Smart Innovation, Systems and Technologies, Springer Nature Singapore Pte Ltd. (2021)
Wotawa, F., Lewitschnig, H.: Monitoring hierarchical systems for safety assurance. In: Intelligent Distributed Computing XIV. Studies in Computational Intelligence. Springer (2022)
Wotawa, F., Nica, M., Aichernig, B.K.: Generating distinguishing tests using the minion constraint solver. In: ICST Workshops. pp. 325–330. IEEE Computer Society (2010)
Wotawa, F., Nica, M., Moraru, I.: Automated debugging based on a constraint model of the program and a test case. J. Log. Algebraic Methods Program. 81(4), 390–407 (2012). https://doi.org/10.1016/j.jlap.2012.03.002
Acknowledgements
ArchitectECA2030 receives funding within the Electronic Components and Systems For European Leadership Joint Undertaking (ESCEL JU) in collaboration with the European Union’s Horizon2020 Framework Programme and National Authorities, under grant agreement number 877539. All ArchitectECA2030 related communication reflects only the author’s view and the Agency and the Commission are not responsible for any use that may be made of the information it contains. The work was partially funded by the Austrian Federal Ministry of Climate Action, Environment, Energy, Mobility, Innovation and Technology (BMK) under the program “ICT of the Future” project 877587.
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2022 Springer Nature Switzerland AG
About this paper
Cite this paper
Wotawa, F., Dumitru, V.A. (2022). The Java2CSP Debugging Tool Utilizing Constraint Solving and Model-Based Diagnosis Principles. In: Fujita, H., Fournier-Viger, P., Ali, M., Wang, Y. (eds) Advances and Trends in Artificial Intelligence. Theory and Practices in Artificial Intelligence. IEA/AIE 2022. Lecture Notes in Computer Science(), vol 13343. Springer, Cham. https://doi.org/10.1007/978-3-031-08530-7_46
Download citation
DOI: https://doi.org/10.1007/978-3-031-08530-7_46
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-031-08529-1
Online ISBN: 978-3-031-08530-7
eBook Packages: Computer ScienceComputer Science (R0)