Logo PTI Logo FedCSIS

Proceedings of the 16th Conference on Computer Science and Intelligence Systems

Annals of Computer Science and Information Systems, Volume 25

Semi-automated Algorithm for Complex Test Data Generation for Interface-based Regression Testing of Software Components

,

DOI: http://dx.doi.org/10.15439/2021F58

Citation: Proceedings of the 16th Conference on Computer Science and Intelligence Systems, M. Ganzha, L. Maciaszek, M. Paprzycki, D. Ślęzak (eds). ACSIS, Vol. 25, pages 501510 ()

Full text

Abstract. This paper describes in detail the Complex Object Generation (COG) algorithm, which is a semi-automated algorithm for the generation of instances of classes (i.e., objects) with a complex inner structure for Java and similar languages designed for black-box testing (i.e., without available source code). The algorithm was developed and tested as a stand-alone algorithm and can be used as such (e.g., during unit testing). However, we plan to use it to generate the parameter values of generated method invocations, which is a vital part of our interface-based regression testing of software components.

References

  1. C. Szyperski, D. Gruntz, and S. Murer, Component Software – Beyond Object-Oriented Programming, ACM Press, New York, 2000.
  2. T. Potuzak, R. Lipka, and P. Brada, “Interface-based Semi-automated Testing of Software Components,” in 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
  3. T. Potuzak and R. Lipka, “Algorithm for Generation of Complex Test Data for Interface-based Regression Testing of Software Compo-nents,” SAC '21: Proceedings of the 36th Annual ACM Symposium on Applied Computing, Virtual Event, Republic of Korea, March 2021, pp. 1305-1308, http://dx.doi.org/10.1145/3412841.3442118
  4. T. Potuzak and R. Lipka: “Deep Object Comparison for Interface-based Regression Testing of Software Components,” in Proceedings of the 2018 Federated Conference on Computer Science and Information Systems, Poznan, September 2018, pp. 1053-1062, http://dx.doi.org/10.15439/2018F51
  5. J. T. Chan and W. Yang, “Advanced obfuscation techniques for Java bytecode,” Journal of Systems and Software, vol. 71, No. 1-2, 2004, pp. 1-10, http://dx.doi.org/10.1016/S0164-1212(02)00066-3
  6. The OSGi Alliance, OSGi Service Platform Core Specification, release 4, version 4.2, 2009.
  7. M. Bures and B. S. Ahmed, “On the effectiveness of combinatorial interaction testing: A case study,” in 2017 IEEE International Conference on Software Quality, Reliability and Security Companion (QRS-C), July 2017, pp. 69–76, http://dx.doi.org/10.1109/QRSC.-2017.20
  8. 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
  9. D. Rubio, Pro Spring Dynamic Modules for OSGiTM Service Platform, Apress, USA, 2009.
  10. G. J. Myers, T. Badgett, and C. Sandler, The Art o Software Testing, Third Edition, John Wiley and Sons, Inc., Hoboken, 2012.
  11. P. G. Sapna and H. Mohanty, “Automated Scenario Generation based on UML Activity Diagrams,” International Conference on Information Technology, 2008, December 2008, pp. 209–214, http://dx.doi.org/10.1109/ICIT.2008.52
  12. S. J. Cunning and J. W. Rozenbiit, “Test Scenario Generation from a Structured Requirements Specification,” IEEE Conference and Workshop on Engineering of Computer-Based Systems, 1999, Proceedings, March 1999, pp. 166–172, http://dx.doi.org/10.1109/- ECBS.1999.755876
  13. 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
  14. Mockaroo. Accessed: 2018-35-05. [Online]. Available: https://www.mockaroo.com
  15. Dtm test xml generator. Accessed: 2018-05-05. [Online]. Available: http://www.sqledit.com/xmlgenerator
  16. Redgate. Accessed: 2018-03-05. [Online]. Available: http://www.red-gate.com/products/sql-development/sql-data-generator
  17. Podam - pojo data mocker. Accessed: 2018-03-05. [Online]. Available: https://github.com/mtedone/podam
  18. R. Lipka, “Automated Generator for Complex and Realistic Test Data,” in 2017 IEEE International Conference on Software Quality, Reliability and Security Companion (QRS-C), July 2017, pp. 628-629, http://dx.doi.org/10.1109/QRS-C.2017.122
  19. R. Lipka and T. Potuzak, “Automated generator for complex and realistic test data - a case study,” in Communication Papers of the 2018 Federated Conference on Computer Science and Information Systems, Poznan, September 2018, pp. 1053-1062, http://dx.doi.org/-10.15439/2018F214
  20. D. Marinov and R. O’Callahan, “Object Equality Profiling,” in Proceedings of the 18th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications, Anaheim, October 2003, pp. 313-325, http://dx.doi.org/10.1145/-949305.949333
  21. A. Infante and A. Bergel, “Object Equivalence: Revisiting Object Equality Profiling (An Experience Report),” in 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
  22. G. M. Rama and R. Komondoor, “A Dynamic Analysis to Support Object-Sharing Code Refactorings,” in 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
  23. M. J. Steindorfer and J. J. Vinju, “Performance Modeling of Maximal Sharing,” in Proceedings of the 7th ACM/SPEC on International Conference on Performance Engineering, Delft, March 2016, http://dx.doi.org/10.1145/2851553.2851566
  24. N. Grech, J. Rathke, and B. Fischer, “JEqualityGen: Generating Equality and Hashing Methods,” in 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
  25. F. Naseer, S. U. Rehman, and K. Hussain, “Using Meta-data Technique for Component Based Black Box Testing,” in 2010 6th International Conference on Emerging Technologies, Islamabad, 2010, pp. 276–281, http://dx.doi.org/10.1109/ICET.2010.5638474
  26. Dynamic JavaFX form generation. Accessed 2019-05-02. [Online]. Available: https://github.com/dooApp/FXForm2
  27. I. R. Forman, N. Forman, Java Reflection in Action, Manning Publications, 2004.
  28. Java runtime metadata analysis. Accessed 2019-05-03. [Online]. Available: https://github.com/ronmamo/reflections
  29. Class Proxy. Accessed 2019-05-03. [Online]. Available: https://docs.oracle.com/javase/8/docs/api/java/lang/reflect/Proxy.html