Please use this identifier to cite or link to this item:
https://hdl.handle.net/11147/14950
Title: | Test Kokusunun Test Kodu Kalitesi Üzerindekietkisinin Analizi Analysis of Test Smell Impact on Test Code Quality |
Authors: | Cebeci, İsmail | Advisors: | Tuğlular, Tuğkan | Keywords: | Bilgisayar Mühendisliği Bilimleri-Bilgisayar ve Kontrol Computer Engineering and Computer Science and Control |
Abstract: | Test Kokuları, test kodundaki kalıplardır ve mutlaka yanlış olmasa da, test kodunun sürdürülebilirliğini ve etkililiğini engelleyebilecek kötü tasarım seçimlerini önerir. Yazılım geliştirmede, programlamada daha derin sorunlara işaret eden kod kokuları kavramından kaynaklanan test kokuları, benzer şekilde otomatik test komut dosyalarındaki, yazılım test sürecinin güvenilirliğini ve netliğini tehlikeye atabilecek sorunlara işaret eder. Bu tez içinde en çok bilinen 2 araç kullanarak (JNose and TestSmellDetector), GitHub üzerinden erişilen 500 proje incelenmiştir. Belirtilen 500 adet projelerde Java dili kullanılmasına dikkat edildi. İncelenen projelerde bulunan bütün test dosyaları, kullanılan 2 araç için input olarak kullanılmıştır. Araçların çıktıları karşılaştırılarak, toplam kaç adet test kokusu bulunduğu, hangi aracın hangi test kokularını daha iyi tespit ettiğini, en çok hangi test kokularının test dosyalarına etki ettiğini, test kokularının birbiriyle olan ilişkileri ve meydana gelme şıklıkları araştırılmıştır. Sonuç olarak 'Assertion Roulette,' 'Magic Number Test,' ve 'Lazy Test,' iki araç içinde en yaygın test kokuları olarak elde edilmiştir. Ek olarak, JNose aracı kullanılarak en yüksek birlikte gerçekleşme oranları 'Koşullu Test Mantığı' ile 'Hevesli Test' ve 'İstisna Yakalama Fırlatma' ile 'Bilinmeyen Test' arasında gözlemlenmiştir. Öte yandan, TestSmellDetector Aracı kullanıldığında en yüksek birliktelik oranları 'Bilinmeyen Test' ile 'Hevesli Test' ile 'Kaynak İyimserliği' ve 'Gizemli Misafir' arasında gözlenmiştir. Bu sonuçlar kullanılarak, test dosyaları üzerinde yeniden düzenleme işlemleri için ne tür çalışmalar yapılması gerektiği kolaylıkla belirlenebilir. Software testing is a crucial component of the software development lifecycle, playing a key role in ensuring the quality and robustness of software products. However, test code, like production code, is susceptible to poor design choices or 'test smells,' which can compromise its effectiveness and maintainability. This thesis investigates the prevalence and impact of various test smells across open-source software projects, using advanced detection tools such as JNose and TestSmellDetector. The study reveals insights into the nature of test smells, their occurrence, and the efficacy of these detection tools. The research highlights that certain test smells, such as 'Assertion Roulette,' 'Magic Number Test,' and 'Lazy Test,' are notably prevalent. The study also examines the co-occurrence of different test smells, providing understanding of how these issues interrelate. Highest co-occurrence rates are observed between 'Conditional Test Logic' and 'Eager Test' and between 'Exception Catching Throwing' and 'Unknown Test' using the JNose tool. On the other hand, Highest co-occurrence rates are observed between 'Unknown Test' and 'Eager Test' and 'Source Optimism' and 'Mystery Guest' using TestSmellDetector Tool. Additionally, the thesis compares the effectiveness of JNose and TestSmellDetector in detecting test smells, providing insights into their strengths and limitations. The analysis of these tools demonstrates their utility in identifying problematic patterns in test code, thereby contributing to better testing practices. The thesis concludes with mentioning future work, including the development of more advanced detection algorithms and the exploration of refactoring techniques to mitigate the impact of test smells. |
URI: | https://tez.yok.gov.tr/UlusalTezMerkezi/undefined https://hdl.handle.net/11147/14950 |
Appears in Collections: | Master Degree / Yüksek Lisans Tezleri |
Show full item record
CORE Recommender
Items in GCRIS Repository are protected by copyright, with all rights reserved, unless otherwise indicated.