Deep Object Comparison for Interface-based Regression Testing of Software Components
Tomas Potuzak, Richard Lipka
DOI: http://dx.doi.org/10.15439/2018F51
Citation: Proceedings of the 2018 Federated Conference on Computer Science and Information Systems, M. Ganzha, L. Maciaszek, M. Paprzycki (eds). ACSIS, Vol. 15, pages 1053–1062 (2018)
Abstract. In this paper, we describe the deep object comparison (DOC) algorithm, which is used for comparison of general objects in Java programming language based on their internal structures and values of primitive attributes. The DOC algorithm was designed to be utilized in our interface-based regression testing of software components, which enables to uncover subtle changes of the behavior of a component-based application under test with a newly installed version of a software component in comparison to its behavior with an old version of this component.
References
- C. Szyperski, D. Gruntz, and S. Murer, Component Software – Beyond Object-Oriented Programming, ACM Press, New York, 2000.
- T. Potuzak, R. Lipka, and P. Brada, “Interface-based Semi-automated Testing of Software Components,” Proceedings of the 2017 Federated Conference on Computer Science and Information Systems, Prague, September 2017, pp. 1335-1344, http://dx.doi.org/10.15439/ 2017F139
- The OSGi Alliance, OSGi Service Platform Core Specification, release 4, version 4.2, 2009.
- C. R. Rupakheti and D. Hou, “An Abstraction-Oriented, Path-Based Approach for Analyzing Object Equality in Java,” 2010 17th Working Conference on Reverse Engineering, Beverly, October 2010, pp. 205-214, http://dx.doi.org/10.1109/WCRE.2010.30
- C. R. Rupakheti and D. Hou, “EQ: Checking the Implementation of Equality in Java,” 2011 27th IEEE International Conference on Software Maintenance (ICSM), Williamsburg, September 2011, pp. 590-593, http://dx.doi.org/10.1109/ICSM.2011.6080837
- D. E. Stevenson and A. T. Phillips, “Implementing Object Equivalence in Java Using the Template Method Design Pattern,” Proceedings of the 34th SIGCSE technical symposium on Computer science education, Reno, January 2003, pp. 278-282, http://dx.doi.org/ 10.1145/611892.611987
- D. Marinov and R. O’Callahan, “Object Equality Profiling,” Proceedings of the 18th annual ACM SIGPLAN conference on Object-oriented programing, systems, languages, and applications, Anaheim, October 2003, pp. 313-325, http://dx.doi.org/ 10.1145/949305.949333
- I. R. Forman, N. Forman, Java Reflection in Action, Manning Publications, 2004.
- K. Jezek, L. Holy, A. Slezacek, and P. Brada, “Software Components Compatibility Verification Based on Static Byte-Code Analysis,” 39th Euromicro Conference Series on Software Engineering and Advanced Applications, Santander, September 2013, pp. 145-152, http://dx.doi.org/10.1109/SEAA.2013.58
- A. Infante, A. Bergel, “Object Equivalence: Revisiting Object Equality Profiling (An Experience Report),” Proceedings of the 13th ACM SIGPLAN International Symposium on Dynamic Languages, Vancouver, October 2017, pp. 27-38, http://dx.doi.org/ 10.1145/3170472.3133844
- A. Infante, “Identifying Caching Opportunities, Effortlessly,” Companion Proceedings of the 36th International Conference on Software Engineering, Hyderabad, May 2014, pp. 730-732, http://dx.doi.org/10.1145/2591062.2591198
- G. Xu, “Finding Reusable Data Structures,” Proceedings of the ACM international conference on Object oriented programming systems languages and applications, Tuscon, October 2012, http://dx.doi.org/ 10.1145/2398857.2384690
- K. Nasartschuk, M. Dombrowski, K. B. Kent, A. Micic, D. Henshall, and C. Gracie, “String Deduplication During Garbage Collection in Virtual Machines,” Proceedings of the 26th Annual International Conference on Computer Science and Software Engineering, October 2016, pp. 250-256
- G. M. Rama and R. Komondoor, “A Dynamic Analysis to Support Object-Sharing Code Refactorings,”, Proceedings of the 29th ACM/IEEE international conference on Automated software engineering, Vasteras, September 2014, pp. 713-723, http://dx.doi.org/10.1145/2642937.2642992
- M. J. Steindorfer and J. J. Vinju, “Performance Modeling of Maximal Sharing,” Proceedings of the 7th ACM/SPEC on International Conference on Performance Engineering, Delft, March 2016, http://dx.doi.org/10.1145/2851553.2851566
- N. Grech, J. Rathke, and B. Fischer, “JEqualityGen: Generating Equality and Hashing Methods,” Proceedings of the ninth international conference on Generative programming and component engineering, Eindhoven, October 2010, pp. 177-186, http://dx.doi.org/10.1145/1942788.1868320
- B. S. Ahmed, L. M. Gambardella, W. Afzal, and K. Z. Zamli, “Handling constraints in combinatorial interaction testing in the presence of multi objective particle swarm and multithreading,” Information and Software Technology, vol. 86, pp. 20–36, 2017 http://dx.doi.org/10.1016/j.infsof.2017.02.004
- M. Bures and B. S. Ahmed, “On the effectiveness of combinatorial interaction testing: A case study,” 2017 IEEE International Conference on Software Quality, Reliability and Security Companion (QRS-C), July 2017, pp. 69–76, http://dx.doi.org/10.1109/QRS-C.2017.20