Test yönetim simülasyonu ile yazılım kalitesinin iyileştirilmesi
Software quality improvement with test simulation
Yazar: EMİNE DEMİRCİOĞLU
Danışman: PROF. DR. OYA KALIPSIZ
Yıldız Teknik Üniversitesi / Fen Bilimleri Enstitüsü / Bilgisayar Mühendisliği Ana Bilim Dalı / Bilgisayar Mühendisliği Bilim Dalı
Derece: Doktora, 2023
Konu: Bilgisayar Mühendisliği Bilimleri-Bilgisayar ve Kontrol = Computer Engineering and Computer Science and Control

Özet:
Birbirine bağlı uygulamaların sayısındaki artış ve API mesaj güdümlü geliştirmeye 
yönelik eğilim ve bunun sonucunda API kullanımındaki artışla birlikte, API testi 
yazılım testinin kritik bir parçası haline gelmiştir. Özellikle API mesajlarını 
kullanan iş mantığı açısından kritik sistemler düşünüldüğünde, tekrarlayan API 
testlerinin önemi giderek artmaktadır. Büyük ölçekli kurumsal iş uygulamalarında 
çok sayıda test senaryosunun tekrarlı ve manuel bir şekilde gerçekleştirilmesi 
insana bağlı olması, hataya açık olması API testinin başarılı yürütülmesini daha da 
zorlaştırmaktadır. Ayrıca, piyasada kullanılan mevcut API test otomasyon araçları, 
uygulama bağımlı olmaları nedeniyle tüm iş alanlarına entegre edilememektedir. 
Bu araçlar genellikle HTTP protokolü üzerinden erişilebilen Web API'lerini 
desteklemektedir. Bu çalışmanın motivasyonu da, iletişim olarak API mesajlarını 
kullanan istemci-sunucu mimarisine dayalı uygulamalara yönelik API regresyon 
testi otomasyonu çerçevesi azlığından kaynaklanmaktadır. Bu nedenle, bu 
çalışmada birbiriyle API mesajlarını kullanarak iletişimde bulunan istemci-sunucu 
mimarisine dayalı sistemler için, farklı veri formatlarını destekleyen bir mesaj 
güdümlü test otomasyon çerçevesi yaklaşımı önerilmektedir. Temel olarak, 
çerçeve ağ üzerinde istemci sunucu uygulamaları arasındaki iletişimden elde 
edilen ağ log dosyasından tersine mühendislik yöntemi ile API mesajlarını elde 
ederek test ortamına karşı yürütülmesini ve doğrulanmasını sağlamaktadır. 
Yaklaşımımız, önceki çalışmalardan farklı olarak yazılım testinde gerçek veri 
paketlerinin kullanılmasına olanak sağlamaktadır. Veriye paket seviyesinde ulaşır. 
Ağ paketlerinin kullanımı, çerçevenin genelleştirilmesini artırır. Bu çalışmada 
önerdiğimiz yaklaşımımızın etkinliğini değerlendirmek için finansal bir sisteme 
uyguladık.

Abstract:
With the increase in the number of interconnected applications and the trend 
towards API message driven development and the consequent increase in API 
usage, API testing has become a critical part of software testing. The importance 
of repetitive API tests increases, especially considering the business-critical 
systems using API messages. Successfully performing repetitive manual API testing 
for a large number of test scenarios in large business enterprise applications 
becomes even more difficult due to the fact that human errors may prevent 
performing thousands of human-written tests with high precision every time. 
Furthermore, the existing API test automation tools used in the market cannot be 
integrated into all business domains due to their dependence on applications. 
These tools generally support Web-APIs over the HTTP protocol. Hence, this study 
is motivated by the fact that there is a lack of API message-driven regression 
testing frameworks in a particular area in which API messages are used in clientserver communication. This study has been prepared to close the gap in a specific 
domain which uses business domain APIs, rather than HTTP, in client-server 
communication. We propose a novel approach based on the use of network packets for regression testing. We developed a proof-of-concept test automation 
tool implementing our approach and evaluated it in a financial domain. Unlike 
prior studies, our approach can provide the use of real network data packets in 
software testing. It reaches to the data at packet level. The use of network packets 
increases the generalization of the framework. Overall, our study reports 
remarkable reuse capacity and makes a significant impact on a real-world 
business-critical system by reducing effort and increasing the automation level of 
API regression testing.