Geri Dön

Yapay zeka teknikleri kullanarak kod testini geliştirmek: Uygulamalı ve analitik bir çalışma

Enhancing code testing through artificial intelligence techniques: An applied and analytical study

  1. Tez No: 938448
  2. Yazar: AHMED MOHAMMED JALAL RAMADAN
  3. Danışmanlar: DR. HUSAM YASIN
  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: Analitik Çalışma, Yapay Zeka, Kod Geliştirme Testi, Makine Öğrenimi, Yazılım Testi, Analytical Study, Artificial Intelligence, Enhancing Code Testing, Machine Learning, Software Testing
  7. Yıl: 2024
  8. Dil: Türkçe
  9. Üniversite: Üsküdar Üniversitesi
  10. Enstitü: Fen Bilimleri Enstitüsü
  11. Ana Bilim Dalı: Bilgisayar Mühendisliği Ana Bilim Dalı
  12. Bilim Dalı: Belirtilmemiş.
  13. Sayfa Sayısı: 148

Özet

Yazılım testi, yazılımın kalitesini ve güvenilirliğini sağlamada çok önemli bir rol oynar. Ancak geleneksel test yöntemleri, yazılım sistemlerinin artan karmaşıklığına ve gelişen doğasına ayak uydurmakta zorluk çekiyor. Yapay zeka (AI) ve makine öğrenimi (ML), kod testi verimliliğini ve etkinliğini artırmak için umut verici yollar sunar. Bu analitik çalışma, yazılım test uygulamalarını iyileştirmede AI tekniklerinin potansiyelini araştırıyor. AI ve ML'nin temel kavramlarına kapsamlı bir genel bakışın yanı sıra, AI destekli yazılımların test edilmesiyle ilgili belirli zorluklar sağlar. Bu araştırma, yapay zekanın kod testi yöntemini nasıl geliştirebileceğini araştırıyor. Ayrıca, çeşitli ML yaklaşımlarının yazılım test sürecine nasıl entegre edilebileceğini inceleyerek bu alandaki yerleşik araştırmalardan içgörüler elde ediyor. Ayrıca makine öğreniminin modern test araçları üzerindeki etkisini de analiz ederek hem ticari hem de açık kaynak seçeneklerini değerlendiriyor. İşte araştırmanın bulguları: Bölüm 1: Temel Bilgiler - Bu bölümde AI ve ML'nin ne olduğu ve AI kullanan yazılımları test etmenin özel zorlukları açıklanmaktadır. Bölüm 2: AI Çerçevelerini Anlamak - Bu bölümde, yazılımı yapay zeka ile test etmenin iki farklı yolunu temsil eder: Yazılım Testi Derneği için AI modeli ve Paul Gerrard'ın iyi bilinen Yeni Test Modeli. Bölüm 3: Yazılımı Test Etmenin Yeni Bir Yolu - Bu bölümde, diğer araştırmacıların bulgularına dayanarak normal test sürecinde farklı ML yaklaşımlarının nasıl kullanılabileceğini gösterir. Bölüm 4: Daha Akıllı Test Araçları - Bu bölümde en son test araçları ve ML'nin bunları nasıl daha iyi hale getirdiği ele alınmaktadır. Test uzmanlarının mevcut en iyi araçları kullanabilmesi için hem ödememiz gereken araçları hem de ücretsiz olanları kapsayacaktır. Bu tez iki ana bölümden oluşmaktadır: teorik ve analitik bölüm ve uygulamalı bölüm. Teorik ve analitik bölümde, AI tekniklerinin yazılım test uygulamalarını iyileştirmedeki potansiyelini inceledik, AI ve ML'nin temel kavramlarına kapsamlı bir genel bakış sağladık ve AI destekli yazılımları test etmekle ilişkili zorlukları ele aldık. Ek olarak, farklı ML yaklaşımlarının yazılım test sürecine nasıl entegre edilebileceğini araştırdık. Uygulamalı bölümde, Python kodunun kalitesini otomatik olarak sınıflandırmak ve iyileştirmek için makine öğrenimini kullanan bir araç geliştirdik. Bu araç, veri toplamayı, hataları tanımak için bir model eğitmeyi ve geliştiricilere geri bildirim sağlamayı içerir. Flake8 ve Pylint gibi araçları makine öğrenimiyle birleştirerek, bu çalışma kodlama hatalarını otomatik olarak belirlemek ve sınıflandırmak ve geliştiricilere anında geri bildirim sağlamak için yöntemler geliştirdi. Bu projenin önemi, otomatik kod kalite kontrollerine olan artan ihtiyacı karşılamak, kod incelemelerini daha hızlı ve daha doğru hale getirmek, daha iyi yazılımlara ve daha verimli geliştirmeye yol açmaktır. Bu araştırma, yapay zekanın yazılım testinde nasıl kullanılabileceğini göstererek, potansiyel uygulamaları ve çerçeveleri keşfetmek için AI, ML ve yazılım testi üzerine mevcut araştırmaları eleştirel bir şekilde inceleyen bir literatür tarama metodolojisi kullandı. Bulgular, yazılım test uzmanlarını gelişmiş kod kalitesi, daha hızlı test döngüleri ve sonuçta daha güvenilir yazılım için yapay zekadan yararlanmak için gerekli bilgi ve araçlarla güçlendirebilir.

Özet (Çeviri)

Software testing plays a crucial role in ensuring software quality and reliability. However, traditional testing methods struggle to keep pace with software systems' growing complexity and evolving nature. Artificial intelligence (AI) and machine learning (ML) offer promising avenues to enhance code testing efficiency and effectiveness. This analytical study investigates the potential of AI techniques in improving software testing practices. It provides a comprehensive overview of the fundamental concepts of AI and ML, along with the specific challenges associated with testing AI-powered software. This research explores how AI can improve the way of code testing. Furthermore, it examines how various ML approaches can be integrated into the software testing process, drawing insights from established research in the field. It also analyzes the impact of ML on modern testing tools, evaluating both commercial and open-source options. Here's what the research found: Part 1: The Basics - This part explains what AI and ML are, and the special challenges of testing software that uses AI. Part 2: Making Sense of AI Frameworks - This part represents two different ways of testing software with AI: the AI for Software Testing Association's model and Paul Gerrard's well-known New Model for Testing. Part 3: A New Way to Test Software - This part shows how different ML approaches can be used in the normal testing process, based on what other researchers have found. Part 4: Smarter Testing Tools - This part looks at the latest testing tools and how ML is making them even better. It will cover both tools we have to pay for and free ones, so testers can use the best tools available. This thesis consists of two main parts: a theoretical and analytical part, and an applied part. In the theoretical and analytical part, we studied the potential of AI techniques in improving software testing practices, providing a comprehensive overview of the fundamental concepts of AI and ML, along with the challenges associated with testing AI-powered software. Additionally, we explored how different ML approaches can be integrated into the software testing process. In the applied part, we developed a tool using machine learning to automatically classify and improve the quality of Python code. This tool involves collecting data, training a model to recognize errors, and providing feedback to developers. Using tools like Flake8 and Pylint, combined with machine learning, this study developed methods to automatically identify and classify coding errors, providing immediate feedback to developers. The importance of this project lies in meeting the growing need for automated code quality checks, making code reviews faster and more accurate, leading to better software and more efficient development. By showing how AI can be used in software testing, this research employed a literature review methodology, critically examining existing research on AI, ML, and software testing to explore the potential applications and frameworks. The findings can empower software testers with the knowledge and tools necessary to leverage AI for enhanced code quality, faster testing cycles, and ultimately, more reliable software.

Benzer Tezler

  1. Enhancing mutation testing: Search-based optimization to improve testing quality

    Mutasyon testini geliştirme: Test kalitesinin iyileştirilmesi için arama tabanlı optimizasyon

    SERHAT UZUNBAYIR

    Doktora

    İngilizce

    İngilizce

    2024

    Bilgisayar Mühendisliği Bilimleri-Bilgisayar ve Kontrolİzmir Ekonomi Üniversitesi

    Bilgisayar Mühendisliği Ana Bilim Dalı

    DR. ÖĞR. ÜYESİ KAAN KURTEL

  2. Fake news classification using machine learning and deep learning approaches

    Makine öğrenimi ve derin öğrenme yaklaşımlarını kullanarak sahte haber sınıflandırması

    SAJA ABDULHALEEM MAHMOOD AL-OBAIDI

    Yüksek Lisans

    İngilizce

    İngilizce

    2023

    Bilgisayar Mühendisliği Bilimleri-Bilgisayar ve KontrolGazi Üniversitesi

    Bilgisayar Mühendisliği Ana Bilim Dalı

    DR. ÖĞR. ÜYESİ TUBA ÇAĞLIKANTAR

  3. Python söz dizimi hatalarının derin öğrenme yöntemleri ile onarılması

    Fixing python syntax errors with deep learning methods

    SENA DİKİCİ

    Yüksek Lisans

    Türkçe

    Türkçe

    2024

    Bilgisayar Mühendisliği Bilimleri-Bilgisayar ve KontrolBursa Teknik Üniversitesi

    Bilgisayar Mühendisliği Ana Bilim Dalı

    PROF. DR. TURGAY TUGAY BİLGİN

  4. Androıd kötücül yazılımlarından koruma sistemlerinin değerlendirilmesi ve görüntü işleme algoritmalarını yapay zekâ teknikleri ile melezleştirerek yeni bir algılama yaklaşımının geliştirilmesi

    Evaluating the robustness of android anti-malware systems and developing a novel detection approach based on hybridizing image processing algorithms with artificial intelligence techniques

    HALİT BAKIR

    Doktora

    Türkçe

    Türkçe

    2021

    Bilgisayar Mühendisliği Bilimleri-Bilgisayar ve KontrolKırıkkale Üniversitesi

    Bilgisayar Mühendisliği Ana Bilim Dalı

    DOÇ. DR. HALİL MURAT ÜNVER

  5. Forex piyasaları için büyük veri ve yapay zeka destekli işlem robotu geliştirilmesi

    Development of bigdata and artifical intelligence supported trading robot for forex

    GÖKHAN TUTAR

    Doktora

    Türkçe

    Türkçe

    2024

    Bilgisayar Mühendisliği Bilimleri-Bilgisayar ve KontrolAtatürk Üniversitesi

    Yönetim Bilişim Sistemleri Ana Bilim Dalı

    DR. ÖĞR. ÜYESİ SERDAR AYDIN