paint-brush
Yazılım Kalite Güvencesi: Kombinatoryal Test Tasarımıyla Sorunları Çözmeile@shad0wpuppet
26,163 okumalar
26,163 okumalar

Yazılım Kalite Güvencesi: Kombinatoryal Test Tasarımıyla Sorunları Çözme

ile Konstantin Sakhchinskiy5m2024/01/22
Read on Terminal Reader
Read this story w/o Javascript

Çok uzun; Okumak

Yazılım testindeki zorluklar, özellikle k-yollu ve ikili test gibi kombinatoryal test tasarımında. Yanlış girdiler, sağlam test yöntemleri ve değişken kombinasyonlar gibi konuları tartışıyorum. Bir vaka çalışması kullanarak, tespit edilemeyen hataların yaygınlığını vurguluyor ve varsayılan ayarları ve karmaşık değişken etkileşimlerini dikkate alan incelikli bir test yaklaşımının gerekliliğini vurguluyorum. Temel çıkarım, sağlam yazılım için kapsamlı bir test stratejisinin önemidir.
featured image - Yazılım Kalite Güvencesi: Kombinatoryal Test Tasarımıyla Sorunları Çözme
Konstantin Sakhchinskiy HackerNoon profile picture


Yazılım testinde test senaryolarının tasarımı, uygulamaların güvenilirliğinin ve sağlamlığının sağlanması açısından temel öneme sahiptir. K-yollu test ve ikili test gibi kombinatoryal test tasarım teknikleri, farklı girdi değişkenleri arasındaki etkileşimleri test etmeyi amaçlamaktadır. Ancak, zorlukların ve tuzakların, kritik hataların ortaya çıkarılmasındaki etkinliğini engelleyebileceği ortaya çıkıyor.


Bu kısa makale, kombinatoryal test tasarımı sırasında karşılaşılabilecek belirli sorunlara odaklanarak dikkatli bir şekilde dikkate alınması gereken nüansları araştırıyor. Yanlış girdi değerleri örneklerini, sağlam kahinlerin önemini, sıklıkla gözden kaçırılan değişken kombinasyonlarının önemini ve değişkenlerin nasıl etkileşime girdiğine dair önemli anlayışı derinlemesine inceleyelim.


Giriş Değerlerinin Tanımlanması Yanlış

Bir k-yollu test seti, k değişken için tüm olası değer kombinasyonlarını içerir. Örneğin, Tüm Çiftler Algoritmasının uygulanması, değişken değer çiftlerinin tüm olası kombinasyonlarını kapsayan 2 yönlü bir test seti ile sonuçlanır. Sonuç olarak, k yönlü hata, k değişkenin değerlerinin etkileşiminden kaynaklanan bir hatayı ifade eder. SYS1 ve SYS2 adlı iki sistem incelendiğinde, üretime çıktıktan sonra hatalar ortaya çıktı. Her iki sisteme de 2, 3, 4 ve 5+ k değerleri ile k-way testi uygulandı.


Tablo, iki sistem için k-yolu testinin sonuçlarını gösterir.

Arıza türü

SYS1

SYS2

2 yol

30

29

3 yollu

4

12

4 yol

7

1

> 4 yollu

7

3

Bulunamadı

34

43


Her k-yollu set için sıralı kontroller yapıldı. Şekil 2.1, iki veya daha az girdi değişkeninin etkileşiminden kaynaklanan hataların 29 in SYS1 , 30 in SYS2 olduğunu göstermektedir. Üç değişkenin etkileşiminden kaynaklanan hatalar 4*(30+4) in SYS2 ve 12*(29+12) in SYS1 idi. Dört değişken içeren etkileşimler için hatalar 7*(30+4+7) in SYS2 1*(29+12+1) in SYS1 idi. Dörtten fazla değişkenle etkileşimlerden kaynaklanan hatalar 3*(29+12+1+3) in SYS1 ve 7*(30+4+7+7) in SYS2 idi. Özellikle SYS1'de 43 hata bulunamadı ve SYS2'de 34 hata bulunamadı.


Bu örnekte en önemli hatalar Bulunamadı kategorisine aitti. Daha ileri araştırmalar, tespit edilemeyen hataların çoğunun tek yönlü hatalar olduğunu, yani bir değişkenin belirli bir değerinin diğer değişken değerlerinden bağımsız olarak hataya yol açtığını ortaya çıkardı. İkili testin bu hataları tespit etmesi gerekirdi, ancak bazı nedenlerden dolayı keşfedilmeden kaldılar. Bu Bulunamadı hataları, temel olarak belirli giriş değerlerinin seçilmemesi veya yanlış seçilmesi nedeniyle fark edilmeyen tek yönlü hatalardır.


Sorunun özü , Allpairs Algoritmasının uygulanmasından önce yapılan hataların devam etmesidir. Bu, önceki test tasarım tekniklerinin yanlış uygulanması veya giriş değerlerinin yanlış olması durumunda, Allpairs Algoritması veya Ortogonal Dizi Testi kullanılmasına bakılmaksızın uygulamadaki hataların devam edeceği anlamına gelir.


Beklenen Sonuçların Tanımlanmasında Zayıflık: Test Sonuçlarında Belirsizlik

Örnek olarak, çok sayıda seçeneğe (bu forma benzeyen bir şeye) ve dolayısıyla çok sayıda giriş verisi kombinasyonuna sahip bir uygulama modülünü ele alalım.


Modülde 2^12 * 3 olası kombinasyon olduğunu varsayalım. Burada zorluk, yanlış giriş değerlerinin seçilmesi değildir, çünkü olası tüm değişken değerleri Allpairs algoritması kullanılarak kapsamlı bir şekilde test edilebilir. Ancak bu, tüm kritik hataları ortaya çıkaracak mı? Beklenen sonuçlarla ilgili sorunlar nedeniyle muhtemelen hayır. Bu tür bir yazılım modülünde her seçenek kombinasyonunu değiştirdikten sonra, seçeneklerin doğru çalıştığını ve seçilen seçenekleri uyguladıktan sonra başka hiçbir şeyin bozulmadığını doğrulamak için sistemi bir süre kullanmanız gerekir. Bu durumda, kolayca gözden kaçan, bariz olmayan hiçbir sorunun olmayacağının garantisi yoktur.


Her testten sonra sistemin temel işlevlerinin kapsamlı bir şekilde değerlendirilmesi gerekebilir. Buradaki önemli nokta, ciddi kusurların çoğu zaman istenildiği kadar belirgin olmaması ve beklenen sonuçlarda her şeyin hesaba katılmasının neredeyse imkansız hale gelmesidir.


En Olası Kombinasyonlara Dikkatsizlik

2^12 * 3 kombinasyonları arasında (yukarıdaki örnekte önerdiğimiz gibi), modül seçeneklerinin bir kombinasyonunun diğerlerinden çok daha sık ortaya çıkması muhtemeldir - varsayılan ayar. İnsanların %95'i bu modülün varsayılan ayarlarındaki seçenekleri hiçbir zaman değiştirmeyecekse, neredeyse/varsayılana yakın seçenekler iyi bir şekilde kapsanmalıdır. Varsayılan konfigürasyondan sapma gösteren tüm varyasyonların tek bir seçenekte test edilmesi, 2 basamaklı test sayısıyla sonuçlanacaktır. Tüm seçenek kombinasyonlarını varsayılandan iki ayarda olası sapmayla test edersek, bu yaklaşık yüz test durumu olacaktır. Bu test senaryolarıyla ve tüm çift test senaryolarıyla test yapmak, varsayılan seçeneğin varlığını göz ardı etmekten daha iyi sonuçlar verebilir. Ancak Allpairs algoritması, testçiyi en olası ve yaygın olarak kullanılan değişken kombinasyonlarını gözden kaçırmaya zorlar.


Bilinmeyen Değişken Etkileşimleri

İkili testin başarısı veya başarısızlığı için temel faktör, girdi değişkenlerinin kombinasyonunun çıktı verilerini nasıl etkilediğinin anlaşılmasında yatmaktadır. Test edilen iki farklı uygulamaya ikili test uygulamak, önemli ölçüde farklı sonuçlar verebilir. Bazı uygulamalar çıktı verisi üretmek için daha az girdi verisi kullanırken, diğerleri daha fazlasını kullanır.


Örnek olarak, üç giriş değişkenine (X, Y, Z) ve üç olası çıkış verisine (1, 2, 3) sahip olan programı düşünün. Oklar, belirli bir sonuç üretmek için hangi değişkenlerin etkileşime girmesi gerektiğini gösterir. 1 sonucunu elde etmek için Y ve X değişkenlerinin etkileşime girmesi gerekir; 2 sonucunu elde etmek için Z ve X değişkenlerinin etkileşime girmesi gerekir. Bu uygulama için ikili testin uygulanması uygun bir seçim olacaktır ve olumlu sonuçlar alınması muhtemeldir. Bununla birlikte, çıktı verilerinin ikiden fazla girdi değişkeninin etkileşiminden kaynaklandığı senaryoların olduğu durumlarda, ikili testin hataları tanımlamada başarısız olma ihtimali yüksektir. Basitçe ikili test uygulamak, test edilen uygulamadaki kritik hataların gözden kaçırılma riskini artırır.


Bir QA uzmanı olarak bu nüansları anlamak önemlidir. Bazı durumlarda teorik olsa da bu bilgiler, yüzeyin ötesine geçerek uygulamalarınızın güvenilirliğini ve sağlamlığını sağlayan bütünsel bir test yaklaşımına olan ihtiyacın altını çiziyor. Kombinatoryal test tasarımının karmaşıklığını anlamak, QA profesyonellerinin uygulamaların karmaşık iş mantığını etkili bir şekilde test etmesine ve kullanıcılarına yüksek kaliteli yazılım sunmasına olanak tanır.