Research Article
BibTex RIS Cite

An Event-Based Approach Proposal for Class Test Generation in Object-Oriented Programming

Year 2023, , 321 - 329, 31.12.2023
https://doi.org/10.54365/adyumbd.1368061

Abstract

In object-oriented programming, it is important to test classes that represent objects with life cycles. Class tests should be run at the stage where no errors are detected in method tests. While method tests verify that a method works as expected in the context of input and output, class tests verify that a class remains in a valid state and responds as expected across different method calls. Class tests are important because correct operation of methods does not necessarily indicate that a class is working correctly. In this study, an event-based approach for class testing is proposed. In this proposal, formal Event Sequence Diagrams (ESGs) are used. ESGs are directed graphs that can be produced from Finite State Machines (FSMs) and can directly use the algorithms of graph theory, unlike FSMs. In addition to this advantage, if the templates suggested in this study are used on the coding side, the mapping of ESGs and class methods can be achieved directly and quickly. The existence of a tool that generates automatic tests for ESGs makes this study directly usable. The proposed approach has been validated on a class representing an air conditioning control unit with a complex life cycle.

References

  • Wagner F, Schmuki R, Wagner T, Wolstenholme P. Modeling software with finite state machines: a practical approach. CRC Press, 2006.
  • Belli F. Finite state testing and analysis of graphical user interfaces. Proceedings 12th International Symposium on Software Reliability Engineering, Nov. 2001; 34–43.
  • Myhill J. Finite automata and the representation of events. WADD Technical Report 57. 1957: 112–137.
  • Belli F, Linschulte M, Tuğlular T. Karar tablosu destekli olay sıra çizgeleri temelli sınama durum üretim aracı. 10th Turkish National Software Engineering Symposium (UYMS 2016). CEUR Workshop Proceedings, 2016.
  • Holland IM, Lieberherr KJ. Object-oriented design. ACM Computing Surveys (CSUR). 1996; 28(1): 273-275.
  • Briand LC, Di Penta M, Labiche Y. Assessing and improving state-based class testing: A series of experiments. IEEE Transactions on Software engineering 2004; 30(11): 770-783.
  • Ali J. Using Java Enums to implement concurrent-hierarchical state machines. Journal of Software Engineering. 2010; 4(3): 215-30.
  • Belli F, Budnik CJ. Minimal Spanning Set for Coverage Testing of Interactive Systems. Theoretical Aspects of Computing - ICTAC 2004, Guiyang, China, 2004; 220–234.
  • Belli F, Budnik CJ. Test minimization for human-computer interaction. Applied Intelligence 2007; 26: 161-174.
  • Rusu V, Du Bousquet L, Jéron T. An approach to symbolic test generation. Proceedings of Integrated Formal Methods: Second International Conference (IFM 2000) Germany, Nov. 1–3, 2000; 338-357.
  • Lynch N, Tuttle M. An introduction to input/output automata. CWI Quarterly 1999; 3(2).
  • Hoare CAR. Communicating sequential processes. Prentice Hall International Series in Computer Science, 1985.
  • Frantzen L, Tretmans J, Willemse TA. A symbolic framework for model-based testing. Proceedings of International Workshop on Formal Approaches to Software Testing, Aug 15, 2006; 40-54.
  • Reed HG, Turner CD, Aibel JB, Dalton JT. Practical object-oriented state-based unit testing. WIT Transactions on Information and Communication Technologies, 1970; 9.
  • Turner CD, Robson DJ. The state-based testing of object-oriented programs. Proceedings of IEEE Conference on Software Maintenance, Sep 27, 1993; 302-310.
  • Tsai BY, Stobart S, Parrington N. A Method for Automatic Class Testing (MACT) Object-Oriented Programs Using A State-based Testing Method. Proceedings of 5th European Conference Software Testing Analysis & Review, EuroSTAR, Nov. 1997; 403-415.

Nesneye Yönelik Programlamada Sınıf Test Üretimi için Olay Temelli Bir Yaklaşım Önerisi

Year 2023, , 321 - 329, 31.12.2023
https://doi.org/10.54365/adyumbd.1368061

Abstract

Nesneye yönelik programlamada yaşam döngüsü bulunan nesneleri temsil eden sınıfların test edilmesi önemlidir. Sınıf testleri, metot testleri ile hata bulunmadığı aşamada çalıştırılması gereken testlerdir. Metot testleri bir metodun girdi ve çıktı bağlamında beklendiği gibi çalıştığını doğrularken, sınıf testleri bir sınıfın farklı metot çağrıları karşısında geçerli bir durumda kaldığını ve beklendiği gibi yanıt verdiğini teyit eder. Metotlarının doğru çalışması bir sınıfın doğru çalıştığını göstermeyeceği için sınıf testleri önemlidir. Bu çalışmada sınıf testleri için olay temelli bir yaklaşım önerilmiştir. Bu öneri içinde formel Olay Sıra Çizgesi (OSÇ) kullanılmıştır. OSÇ’ler, Sonlu Durum Makineleri (SDM) üzerinden üretilebilen yönlü çizgeler olup çizge teorisinin algoritmalarını SDM’lerden farklı olarak doğrudan kullanabilmektedir. Bu avantajına ek olarak kodlama tarafında yine bu çalışmada önerilen şablonların kullanılması durumunda OSÇ’ler ile sınıf metotların eşleşmesi doğrudan ve hızlıca sağlanabilmektedir. OSÇ’ler için otomatik test üreten bir aracın varlığı ise bu çalışmayı doğrudan kullanılabilir kılmaktadır. Önerilen yaklaşım karmaşık bir yaşam döngüsüne sahip klima kontrol ünitesi sınıfı üzerinde doğrulanmıştır.

References

  • Wagner F, Schmuki R, Wagner T, Wolstenholme P. Modeling software with finite state machines: a practical approach. CRC Press, 2006.
  • Belli F. Finite state testing and analysis of graphical user interfaces. Proceedings 12th International Symposium on Software Reliability Engineering, Nov. 2001; 34–43.
  • Myhill J. Finite automata and the representation of events. WADD Technical Report 57. 1957: 112–137.
  • Belli F, Linschulte M, Tuğlular T. Karar tablosu destekli olay sıra çizgeleri temelli sınama durum üretim aracı. 10th Turkish National Software Engineering Symposium (UYMS 2016). CEUR Workshop Proceedings, 2016.
  • Holland IM, Lieberherr KJ. Object-oriented design. ACM Computing Surveys (CSUR). 1996; 28(1): 273-275.
  • Briand LC, Di Penta M, Labiche Y. Assessing and improving state-based class testing: A series of experiments. IEEE Transactions on Software engineering 2004; 30(11): 770-783.
  • Ali J. Using Java Enums to implement concurrent-hierarchical state machines. Journal of Software Engineering. 2010; 4(3): 215-30.
  • Belli F, Budnik CJ. Minimal Spanning Set for Coverage Testing of Interactive Systems. Theoretical Aspects of Computing - ICTAC 2004, Guiyang, China, 2004; 220–234.
  • Belli F, Budnik CJ. Test minimization for human-computer interaction. Applied Intelligence 2007; 26: 161-174.
  • Rusu V, Du Bousquet L, Jéron T. An approach to symbolic test generation. Proceedings of Integrated Formal Methods: Second International Conference (IFM 2000) Germany, Nov. 1–3, 2000; 338-357.
  • Lynch N, Tuttle M. An introduction to input/output automata. CWI Quarterly 1999; 3(2).
  • Hoare CAR. Communicating sequential processes. Prentice Hall International Series in Computer Science, 1985.
  • Frantzen L, Tretmans J, Willemse TA. A symbolic framework for model-based testing. Proceedings of International Workshop on Formal Approaches to Software Testing, Aug 15, 2006; 40-54.
  • Reed HG, Turner CD, Aibel JB, Dalton JT. Practical object-oriented state-based unit testing. WIT Transactions on Information and Communication Technologies, 1970; 9.
  • Turner CD, Robson DJ. The state-based testing of object-oriented programs. Proceedings of IEEE Conference on Software Maintenance, Sep 27, 1993; 302-310.
  • Tsai BY, Stobart S, Parrington N. A Method for Automatic Class Testing (MACT) Object-Oriented Programs Using A State-based Testing Method. Proceedings of 5th European Conference Software Testing Analysis & Review, EuroSTAR, Nov. 1997; 403-415.
There are 16 citations in total.

Details

Primary Language Turkish
Subjects Information Systems Development Methodologies and Practice, Information Systems (Other)
Journal Section Makaleler
Authors

Tuğkan Tuğlular 0000-0001-6797-3913

Publication Date December 31, 2023
Submission Date September 28, 2023
Published in Issue Year 2023

Cite

APA Tuğlular, T. (2023). Nesneye Yönelik Programlamada Sınıf Test Üretimi için Olay Temelli Bir Yaklaşım Önerisi. Adıyaman Üniversitesi Mühendislik Bilimleri Dergisi, 10(21), 321-329. https://doi.org/10.54365/adyumbd.1368061
AMA Tuğlular T. Nesneye Yönelik Programlamada Sınıf Test Üretimi için Olay Temelli Bir Yaklaşım Önerisi. Adıyaman Üniversitesi Mühendislik Bilimleri Dergisi. December 2023;10(21):321-329. doi:10.54365/adyumbd.1368061
Chicago Tuğlular, Tuğkan. “Nesneye Yönelik Programlamada Sınıf Test Üretimi için Olay Temelli Bir Yaklaşım Önerisi”. Adıyaman Üniversitesi Mühendislik Bilimleri Dergisi 10, no. 21 (December 2023): 321-29. https://doi.org/10.54365/adyumbd.1368061.
EndNote Tuğlular T (December 1, 2023) Nesneye Yönelik Programlamada Sınıf Test Üretimi için Olay Temelli Bir Yaklaşım Önerisi. Adıyaman Üniversitesi Mühendislik Bilimleri Dergisi 10 21 321–329.
IEEE T. Tuğlular, “Nesneye Yönelik Programlamada Sınıf Test Üretimi için Olay Temelli Bir Yaklaşım Önerisi”, Adıyaman Üniversitesi Mühendislik Bilimleri Dergisi, vol. 10, no. 21, pp. 321–329, 2023, doi: 10.54365/adyumbd.1368061.
ISNAD Tuğlular, Tuğkan. “Nesneye Yönelik Programlamada Sınıf Test Üretimi için Olay Temelli Bir Yaklaşım Önerisi”. Adıyaman Üniversitesi Mühendislik Bilimleri Dergisi 10/21 (December 2023), 321-329. https://doi.org/10.54365/adyumbd.1368061.
JAMA Tuğlular T. Nesneye Yönelik Programlamada Sınıf Test Üretimi için Olay Temelli Bir Yaklaşım Önerisi. Adıyaman Üniversitesi Mühendislik Bilimleri Dergisi. 2023;10:321–329.
MLA Tuğlular, Tuğkan. “Nesneye Yönelik Programlamada Sınıf Test Üretimi için Olay Temelli Bir Yaklaşım Önerisi”. Adıyaman Üniversitesi Mühendislik Bilimleri Dergisi, vol. 10, no. 21, 2023, pp. 321-9, doi:10.54365/adyumbd.1368061.
Vancouver Tuğlular T. Nesneye Yönelik Programlamada Sınıf Test Üretimi için Olay Temelli Bir Yaklaşım Önerisi. Adıyaman Üniversitesi Mühendislik Bilimleri Dergisi. 2023;10(21):321-9.