Geri Dön

Analysis of test smell impact on test code quality

Test kokusunun test kodu kalitesi üzerindekietkisinin analizi

  1. Tez No: 879502
  2. Yazar: İSMAİL CEBECİ
  3. Danışmanlar: PROF. DR. TUĞKAN TUĞLULAR
  4. Tez Türü: Yüksek Lisans
  5. Konular: Bilgisayar Mühendisliği Bilimleri-Bilgisayar ve Kontrol, Computer Engineering and Computer Science and Control
  6. Anahtar Kelimeler: Belirtilmemiş.
  7. Yıl: 2024
  8. Dil: İngilizce
  9. Üniversite: İzmir Yüksek Teknoloji Enstitüsü
  10. Enstitü: Mühendislik ve Fen Bilimleri Enstitüsü
  11. Ana Bilim Dalı: Bilgisayar Mühendisliği Ana Bilim Dalı
  12. Bilim Dalı: Belirtilmemiş.
  13. 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

  1. 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

    İngilizce

    2024

    Bilgisayar Mühendisliği Bilimleri-Bilgisayar ve Kontrolİstanbul Teknik Üniversitesi

    Bilgisayar Mühendisliği Ana Bilim Dalı

    DOÇ. DR. AYŞE TOSUN KÜHN

  2. 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

    Türkçe

    2023

    Gastronomi ve Mutfak SanatlarıKapadokya Üniversitesi

    Gastronomi ve Mutfak Sanatları Ana Bilim Dalı

    DR. ÖĞR. ÜYESİ MİNE ERDEM BÜYÜKKİRAZ

  3. 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

    Türkçe

    1995

    Endüstri ve Endüstri Mühendisliğiİstanbul Teknik Üniversitesi

    DOÇ.DR. BÜLENT DURMUŞOĞLU

  4. 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

    Türkçe

    2018

    Bilgisayar Mühendisliği Bilimleri-Bilgisayar ve Kontrolİstanbul Teknik Üniversitesi

    Bilgisayar Mühendisliği Ana Bilim Dalı

    DOÇ. DR. FEZA BUZLUCA

  5. 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

    Türkçe

    2024

    Jeofizik MühendisliğiSakarya Üniversitesi

    Jeofizik Mühendisliği Ana Bilim Dalı

    DR. ÖĞR. ÜYESİ EMRAH BUDAKOĞLU