Açık Akademik Arşiv Sistemi

Test data generation for dynamic unit test in java language using genetic algorithm

Show simple item record

dc.contributor.advisor Assist. Profesör Doktor M. Fatih Adak
dc.date.accessioned 2022-01-28T08:48:56Z
dc.date.available 2022-01-28T08:48:56Z
dc.date.issued 2021
dc.identifier.citation Rashid, Zhela Jalal. (2021). Test data generation for dynamic unit test in java language using genetic algorithm. (Yayınlanmamış Yüksek Lisans Tezi). Sakarya Üniversitesi Institute of Science and Technology, Sakarya.
dc.identifier.uri https://hdl.handle.net/20.500.12619/97176
dc.description 06.03.2018 tarihli ve 30352 sayılı Resmi Gazetede yayımlanan “Yükseköğretim Kanunu İle Bazı Kanun Ve Kanun Hükmünde Kararnamelerde Değişiklik Yapılması Hakkında Kanun” ile 18.06.2018 tarihli “Lisansüstü Tezlerin Elektronik Ortamda Toplanması, Düzenlenmesi ve Erişime Açılmasına İlişkin Yönerge” gereğince tam metin erişime açılmıştır.
dc.description.abstract Yazılım testi, yazılım geliştirme yaşam döngüsünün önemli ve temel bir parçasıdır. Test etme, son kullanıcılara daha kaliteli bir sistem sunmaya yardımcı olur. Fakat, süreç, sistemdeki hataları tespit etme işlemini yerine getirdiğinden emin olmak için yazılması ve sürekli güncel tutulması gerektiğinden maliyetli bir işlemdir. Test senaryolarını sürdürmedeki sorunlardan biri, testleri yazılım ürününün her bir yolunu ve kod satırını kapsayacak şekilde çalıştırmak için kullanılan girdi verileridir. Bu test verilerinin oluşturulması, herhangi bir standart otomatikleştirilmiş test verisi oluşturma aracıyla gerçekleştirilmesi gereken tipik bir faaliyettir. Rastgele test veri oluşturucuları, testler için girdi verileri oluşturmak için en yaygın kullanılan araçlar arasındadır. Ancak, veri türleri ve parametrelerin araçlara göre manuel olarak uyarlanması ve kaynak kodu veya test senaryoları değiştirildiğinde manuel olarak güncellenmesi gerekir. Bu maliyetli bir süreçtir ve bu verileri oluşturmak ve güncellemek çok zaman ve çaba gerektirir. Rastgele test verisi oluşturucu, sembolik değerlendirici, fonksiyon minimizasyon yöntemleri gibi çeşitli test verisi oluşturucu araçları mevcuttur. Son yıllarda, yazılım testine bazı daha gelişmiş iyileştirilmiş arama teknikleri uygulanmıştır. Bu çalışmada, test verisi oluşturma sürecini otomatikleştiren bir model önerilmiştir. Giriş verilerini oluşturmak için gereken süreyi önemli ölçüde azaltmaktadır. Aynı zamanda, önerilen modelde, üretilen veriler, giriş verilerinin doğruluğu ve duyarlılığı açısından rastgele oluşturulan verilerden daha iyi performans göstermiştir. Önerilen modelde en yaygın kullanılan sezgisel algoritmalara dayanan Genetik algoritma kullanılmıştır. Geliştirilen model, farklı yöntem imzası, dönüş türü ve argüman sayısı olan 6 bağımsız genel yöntemle örnek bir sınıf üzerinde çalıştırılmıştır. Ortalama standart sapma 0,15 ve en iyi aday uygunluk ortalaması 8,82 ve ortalama uygunluk 9,79 olan her bir yöntem için 10 olası girdi üretmek ortalama 5 saniye sürmüştür. Sonuçlar çalışmanın sonuçlar bölümünde detaylı bir şekilde tartışılmıştır. Anahtar Kelimeler: Yazılım Testi, Birim Testi, Test Verisi, Evrimsel Algoritma, Genetik Algoritma
dc.description.abstract Software testing is an essential and fundamental part of the software development lifecycle. Testing helps delivering a higher quality system to end users. However, it is costly as it needs to be written and updated as the process continues to ensure that it does its job in detecting faults and bugs in the system. One of the problems in maintaining test cases is the input data used to run the tests such a way that it covers each path and line of code of the software product. Generation of these test data is a typical activity which has to be accomplished through any standard automated test data generation tool. Random test data generators are among the most widely used tools to generate input data for the tests. However, the data types and parameters has to be manually tailored into the tools and needs to be updated manually once the source code or the test cases are changed. It is a costly process and takes a lot of time and effort to generate and update these data. There are various test data generator tools are available such as: random test data generator, symbolic evaluator, function minimization methods. In recent years some more advanced heuristic search techniques have been applied to software testing. In this study, we propose a model which automates the test data generation process. It significantly reduces the time required to generate the input data. At the same time, the data generated by our model outperforms the data generated randomly in terms of accuracy and sensibility of the input data. It is based on the most widely used heuristic algorithms which is genetic algorithm. We run the model on a sample class with 6 independent public methods of different method signature, return type and number of arguments. It takes 5 seconds to generate10 possible inputs for each method with a mean standard deviation of 0.15 and best candidate fitness average of 8.82 and mean fitness of 9.79. The results will be further discussed in results section of the study. Keywords: Software Testing, Unit Testing, Test Data, Evolutionary Algorithm, Genetic Algorithm
dc.format.extent viii, 52 yaprak : grafik, tablo ; 30 cm.
dc.language İngilizce
dc.language.iso eng
dc.publisher Sakarya Üniversitesi
dc.rights.uri http://creativecommons.org/licenses/by/4.0/
dc.rights.uri info:eu-repo/semantics/openAccess
dc.subject Software Testing
dc.subject Unit Testing
dc.subject Test Data
dc.subject Evolutionary Algorithm
dc.subject Genetic Algorithm
dc.title Test data generation for dynamic unit test in java language using genetic algorithm
dc.type masterThesis
dc.contributor.department Sakarya Üniversitesi Institute of Science and Technology, Computer and Information Engineering,
dc.contributor.author Rashid, Zhela Jalal
dc.relation.publicationcategory TEZ


Files in this item

This item appears in the following Collection(s)

Show simple item record

http://creativecommons.org/licenses/by/4.0/ Except where otherwise noted, this item's license is described as http://creativecommons.org/licenses/by/4.0/