Tez No İndirme Tez Künye Durumu
478685
Cost-aware combinatorial interaction testing / Maliyeti dikkate alan kombinatoryal etkileşim test yöntemleri
Yazar:GÜLŞEN DEMİRÖZ
Danışman: YRD. DOÇ. DR. CEMAL YILMAZ
Yer Bilgisi: Sabancı Üniversitesi / Mühendislik ve Fen Bilimleri Enstitüsü / Bilgisayar Bilimleri ve Mühendisliği Ana Bilim Dalı
Konu:Bilgisayar Mühendisliği Bilimleri-Bilgisayar ve Kontrol = Computer Engineering and Computer Science and Control
Dizin:Maliyet yazılımı = Cost software ; Yazılım testi = Software test
Onaylandı
Doktora
İngilizce
2017
185 s.
Olası konfigürasyonların sayısı konfigürasyon seçenekleri sayısıyla üssel olarak katlanarak arttığından, yüksek seviyede konfigüre edilebilir yazılım sistemlerinin tam kapsamlı testleri genellikle uygulanabilir değildir. Kombinatoryal Etkileşim Sınama yöntemleri, yazılım sistemlerinin konfigürasyon uzaylarını sistematik bir şekilde örneklendirip, sadece seçilen konfigürasyonları test ederler. Örneklendirme, tipik olarak, t li kapsayan dizi olarak adlandırılan bir kombinatoryal objenin hesaplanması ile gerçekleştirilir. Her biri ayrık bir kümeden değerler alan konfigürasyon seçenekleri ile bu seçenek değerleri kombinasyonlarının bazılarını geçersiz kılan kısıtlamalar (eğer mevcutsa) da icçeren bir konfigürasyon uzayı verildiğinde, bir t li kapsayan dizi, her bir t li seçenek kombinasyonu için seçenek ayarlarının geçerli kombinasyonlarının en az bir kez göründüğü geçerli bir konfigürasyon dizisidir. Kapsayan dizilerin kullanılmasının temel gerekçesi, t veya daha az seçeneğin ayarlarının neden olduğu sistem davranışlarını etkin bir şekilde kullanabilmeleridir. Sonuç olarak, kapsayan diziler, konfigüre edilebilir sistemlerin, girdi parametre alanlarının, grafik kullanıcı arayüzlerinin, ağ protokollerinin ve yazılım ürünlerinin sistematik testleri de dahil olmak üzere birçok alanda test yöntemi olarak yaygın bir şekilde kullanılmaktadır. Kapsayan diziler, gerçek test maliyetini azaltmak için, seçilen konfigürasyon sayısını azaltmayı hedeflerler. Bunu yaparken aslında her konfigürasyonun test edilme maliyetinin aynı olduğunu varsayarlar. Fakat, bu tezde, pratikte maliyetin bir konfigürasyondan diğerine farklılık gösterdiği ampirik olarak gösterilmiştir ve maliyetler farklı olduğunda, konfigürasyon sayısını azaltmak, gerçek test maliyetini düşürmekle aynı şey değildir. Bu sorunun üstesinden gelmek için, ilk olarak, etkileşim sınama takımlarını hesaplarken test maliyetlerini hesaba katan, t li maliyeti dikkate alan kapsayan diziler adında, yeni bir kombinatoryal nesne tanımlanmıs¸tır. Özetle, gerçek test maliyetini, seçenek ayar kombinasyonlarının seviyesinde modelleyen bir maliyet fonksiyonu ile zenginles¸tirilmis¸ bir konfigürasyon uzay modeli gözönüne alındığında, bir t li maliyeti dikkate alan kapsayan dizi, seçilen konfigürasyonların sayısından ziyade, verilen maliyet fonksiyonunu "en aza indirgeyen" bir standart t li kapsayan dizidir. Daha sonra, iki farklı tür mevcut kapsayan dizileri, yani standart kapsayan dizileri ve test durumlarına ba˘glı kısıtları dikkate alan kapsayan dizileri, maliyeti dikkate alan etkiles¸im sınama takımlarına dönüştürmek için özel hesaplama algoritmaları geliştirilmiştir. Büyük yaygın olarak kullanılan ve yüksek yapılandırılabilir yazılım sistemleri üzerinde gerçekleştirilen deneylerin sonuçları, maliyeti dikkate alan kapsayan dizilerin mevcut kapsayan dizilerle karşılaştırıldığında, kapsama özelliklerini olumsuz şekilde etkilemeden, gerçek test maliyetini önemli ölçüde azaltabileceğini kuvvetle önermiştir. Tüm bu çalışmalarda gözlemlenen bir şey doğru ve hassas maliyet fonksiyonlarının gelis¸tirilmesinin zor olduğudur. Maliyet fonksiyonu ne kadar az doğru ve ne kadar az hassas ise, test maliyetini daha fazla azaltma imkani o kadar azalacaktır. Buna çözüm olarak da, konfigürasyon uzaylarındaki maliyet modelini otomatik olarak keşfetmek için verimli ve etkili yaklaşımlar geliştirilmiştir.
Exhaustive testing of highly configurable software systems is generally infeasible as the number of possible configurations grows exponentially with the number of configuration options. Combinatorial Interaction Testing approaches systematically sample the configuration spaces and test only the selected configurations. The sampling is typically carried out by computing a combinatorial object, called a t-way covering array. Given a configuration space model that includes a set of configuration options, each of which takes a value from a discrete domain, together with inter-option constraints (if any), which invalidate certain combinations of option values, a t-way covering array is a set of valid configurations in which each valid combination of option values for every combination of t options appears at least once. The basic justification for using covering arrays is that they can e ectively exercise the system behaviors caused by the values of t or fewer options. Consequently, covering arrays have been widely used for testing in many domains, including the systematic testing of configurable systems, input parameter spaces, graphical user interfaces, network protocols, and software product lines. To reduce the actual cost of testing, covering arrays aim to reduce the number of configurations selected. By doing so, they implicitly assume that the cost of testing each configuration is the same. In this thesis, we, however, empirically demonstrate that, in practice, the cost often varies from one configuration to another and that when the cost varies, reducing the number of configurations is not necessarily the same as reducing the actual cost of testing. To overcome this issue, we first define a novel combinatorial object for testing called, a cost-aware covering array, which takes the cost of testing into account when computing interaction test suites. In a nutshell, given a configuration space model, enhanced with a cost function, which models the actual cost of testing at the level of option value combinations, a t-way cost-aware covering array is a standard t-way covering array that "minimizes" the given cost function, rather than the number of configurations selected. We then develop specialized construction approaches to turn two di erent types of existing covering arrays, namely standard covering arrays and test case-aware covering arrays, into cost-aware interaction test suites. The results of our experiments conducted on large, widely-used, and highly-configurable software systems strongly suggest that costaware covering arrays can significantly reduce the actual cost of testing without adversely affecting the coverage properties, compared to existing covering arrays. One thing we observe in all these studies is that it could be diffcult for practitioners to develop accurate and precise cost functions. The opportunity to further reduce the testing cost decreases as the cost function is less accurate or less precise. To address this, we develop effcient and effective approaches to automatically discover the cost model in configuration spaces.