Tez No İndirme Tez Künye Durumu
794571
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
Yer Bilgisi: Yıldız Teknik Üniversitesi / Fen Bilimleri Enstitüsü / Bilgisayar Mühendisliği Ana Bilim Dalı / Bilgisayar Mühendisliği Bilim Dalı
Konu:Bilgisayar Mühendisliği Bilimleri-Bilgisayar ve Kontrol = Computer Engineering and Computer Science and Control
Dizin:
Onaylandı
Doktora
Türkçe
2023
75 s.
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.
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.