Analysis of test smell impact on test code quality
Test kokusunun test kodu kalitesi üzerindekietkisinin analizi
- Tez No: 879502
- Danışmanlar: PROF. DR. TUĞKAN TUĞLULAR
- Tez Türü: Yüksek Lisans
- Konular: Bilgisayar Mühendisliği Bilimleri-Bilgisayar ve Kontrol, Computer Engineering and Computer Science and Control
- Anahtar Kelimeler: Belirtilmemiş.
- Yıl: 2024
- Dil: İngilizce
- Üniversite: İzmir Yüksek Teknoloji Enstitüsü
- Enstitü: Mühendislik ve Fen Bilimleri Enstitüsü
- Ana Bilim Dalı: Bilgisayar Mühendisliği Ana Bilim Dalı
- Bilim Dalı: Belirtilmemiş.
- Sayfa Sayısı: 100
Özet
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.
Özet (Çeviri)
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.
Benzer Tezler
- A composed technical debt identification methodology to predict software vulnerabilities
Yazılım zafiyetlerini tahmin etmek için kapsamlı bir teknik borç tanımlama yöntemi
RUŞEN HALEPMOLLASI
Doktora
İngilizce
2024
Bilgisayar Mühendisliği Bilimleri-Bilgisayar ve Kontrolİstanbul Teknik ÜniversitesiBilgisayar Mühendisliği Ana Bilim Dalı
DOÇ. DR. AYŞE TOSUN KÜHN
- Sumak ekşisi akıtının Kahramanmaraş mutfağında kullanımı ve yeni kullanım alanına yönelik deneysel bir çalışma
Use of sumac syrup in Kahramanmaraş local cuisine and an experimental research on it's new usages
ALİ ALDIOĞLU
Yüksek Lisans
Türkçe
2023
Gastronomi ve Mutfak SanatlarıKapadokya ÜniversitesiGastronomi ve Mutfak Sanatları Ana Bilim Dalı
DR. ÖĞR. ÜYESİ MİNE ERDEM BÜYÜKKİRAZ
- Hazırlık sürelerinin analizi ve azaltılması
Setup time analysis and reduction
RIFAT GÜRCAN ÖZDEMİR
Yüksek Lisans
Türkçe
1995
Endüstri ve Endüstri Mühendisliğiİstanbul Teknik ÜniversitesiDOÇ.DR. BÜLENT DURMUŞOĞLU
- Nesneye yönelik sistemlerde kusurlu sınıfların öngörülmesi için makine öğrenmesi temelli bir yöntem oluşturulması
Creating a machine learning based method for predicting defective classes in object oriented systems
FİKRET AKTAŞ
Yüksek Lisans
Türkçe
2018
Bilgisayar Mühendisliği Bilimleri-Bilgisayar ve Kontrolİstanbul Teknik ÜniversitesiBilgisayar Mühendisliği Ana Bilim Dalı
DOÇ. DR. FEZA BUZLUCA
- 5 Eylül 2012 Afyonkarahisar Askeri Mühimmat Deposu patlamasının sismolojik analizi
Seismological analysis of 5 September 2012 Afyonkarahisar Military Ammunition Store explosion
İREM ÖZKAVAF
Yüksek Lisans
Türkçe
2024
Jeofizik MühendisliğiSakarya ÜniversitesiJeofizik Mühendisliği Ana Bilim Dalı
DR. ÖĞR. ÜYESİ EMRAH BUDAKOĞLU