paint-brush
Kombinatoryal Test Tasarım Tekniklerinin Analiziile@shad0wpuppet
23,460 okumalar
23,460 okumalar

Kombinatoryal Test Tasarım Tekniklerinin Analizi

ile Konstantin Sakhchinskiy7m2024/01/24
Read on Terminal Reader
Read this story w/o Javascript

Çok uzun; Okumak

Karar Tablosu Testi: Gereksinimleri belgelemek ve uygulama işlevselliğini açıklamak için tabloları kullanın. İş mantığı gösterimi ve test senaryoları oluşturmak için uygundur. Durum Geçiş Testi: Diyagramları veya tabloları kullanarak sistem durumlarını ve geçişlerini görselleştirin. Gereksinimleri ve sistem yapısını belgelemek için kullanışlıdır. Ortogonal Diziler: Değişken çiftlerinin tüm değer kombinasyonlarını verimli bir şekilde keşfetmek için dizilerden yararlanın. AllPairs Algoritması: Her değişken çifti için tüm değer kombinasyonlarını test etmeye odaklanarak olası tüm kombinasyonları test etme ihtiyacını azaltır.
featured image - Kombinatoryal Test Tasarım Tekniklerinin Analizi
Konstantin Sakhchinskiy HackerNoon profile picture
0-item

Burada Eşdeğerlik Sınıfları, Sınır Değer Testi ve İkili Test gibi iyi bilinen ve yaygın olarak kullanılan test tasarım tekniklerini tartışmayı atlayacağım; daha az yaygın olan diğer teknikleri tartışacağım. Ayrıca kombinatoryal test tasarım teknikleriyle ilgili sorunlar hakkındaki makalemi de okuyabilirsiniz.


Karar Tablosu Testi

Karar Tabloları, gereksinimleri belgelemek ve bir uygulamanın işlevselliğini açıklamak için mükemmel bir araçtır. Bu tablolar uygulamanın iş mantığını açıklamak için çok uygundur ve buna ek olarak test senaryoları oluşturmak için sağlam bir temel oluşturabilirler. Test edilen uygulamanın uygun dokümantasyonu yoksa, Karar Tablolarını kullanmak iyi bir nedendir. Gereksinimlerin kompakt ve basit bir biçimde sunulması, test senaryolarının oluşturulmasını oldukça kolaylaştırır.


Yaklaşmak:

Karar Tabloları, sistem durumunun varlıklarına (özellikler/koşullar) dayalı olarak uygulamanın mantığını açıklar. Her karar tablosu sistemin yalnızca bir durumunu tanımlamalıdır.


Kural 1

kural 2

kural N

Varlıklar





Özellik 1









Özellik M





Hareketler





Eylem 1









Eylem P





Varlık (Özellik) 1'den M'ye kadar sistemin çeşitli özelliklerini temsil eder; sisteme girilebilecek giriş verileri olarak tabloda sunulurlar. 1'den P'ye kadar olan eylemler, belirtilen varlık kombinasyonuyla gerçekleşebilecek eylemlerdir. Varlıkların tüm girdi verilerinin kombinasyonuna bağlı olarak eylemler gerekli değerleri alır. Her kural, belirli eylemlerin yürütülmesine yol açan tüm özellikler için benzersiz bir giriş verileri kümesini tanımlar.


Karar tablosunu oluşturduktan sonra, örneğin imkansız senaryoların bir kısmını veya tamamını kaldırarak tabloyu basitleştirmek genellikle mümkündür. Daha sonra tablo test senaryolarına dönüştürülebilir.


Durum Geçiş Testi

Karar tablosu testi gibi durum geçiş testi de gereksinimleri belgelemek ve bir sistemin yapısını ve tasarımını açıklamak için değerli bir araçtır. Belirli bir sistem durumunu tanımlayan Karar tabloları testinin aksine, Durum Geçişi testi, sistemin bu durumlarının nasıl değişebileceğini açıklar. Diyagramlar, uygulamanın çalışması sırasında meydana gelen tüm olayları ve uygulamanın bu olaylara nasıl tepki vereceğini tanımlar.


Yaklaşmak:

Bu tekniğin iki tür görsel temsili vardır:

  1. Durum Geçiş Diyagramları
  2. Durum Geçiş Tabloları

Durum Geçiş Diyagramları

Örnek olarak uçak bileti rezervasyonunu ele alalım. Kabaca şu şekilde çalışır: Başlangıçta müşteriler havayolu şirketine rezervasyon için kalkış yeri, varış yeri, tarih ve kalkış saati gibi bilgileri sağlar. Bir havayolu çalışanı, müşteri tarafından sağlanan bilgileri kullanarak rezervasyon oluşturmak için müşteri ile bilet rezervasyon sistemi arasında arayüz görevi görür. Bundan sonra müşterinin rezervasyonu "Yapıldı" durumuna geçer. Ayrıca rezervasyon oluşturulduktan sonra sistem bir zamanlayıcı başlatır. Süre dolduğunda ve ayırtılan bilete ödeme yapılmadığında sistem o bilete ilişkin rezervasyonu iptal eder.


Daire, uçak bileti rezervasyon sisteminin durumunu, yani "Yapıldı" durumunu temsil eder. Ok, "Yapıldı" durumuna geçişi gösterir. Okun altındaki açıklama ("get_info") sistemin dışından kaynaklanan bir olaydır. Okun altındaki açıklamadaki komut ("/"dan sonra), sistemin olaya yanıt olarak bazı eylemler gerçekleştirdiğini, bu durumda bir zamanlayıcı başlattığını belirtir. Siyah daire diyagramın başlangıç/giriş noktasını gösterir.


Süre dolmamışsa ve rezerve edilen biletin ücretini ödemişsek sistem "Ücretli" durumuna geçer. Bu, "payMoney" etiketli okla ve "Yapıldı" durumundan "Ücretli" durumuna geçişle gösterilmektedir.


  • Durum (diyagramda daire olarak gösterilir) : Sistemin bir veya daha fazla olayı beklediği durumdur. Durum o ana kadar alınan giriş verilerini hatırlar ve sistemin alınan olaylara nasıl tepki vereceğini gösterir. Olaylar eylemleri tetikleyebilir ve/veya durumda bir değişikliğe yol açabilir.
  • Geçiş (diyagramda okla gösterilmiştir) : Bu, bir olay nedeniyle meydana gelen bir durumdan diğerine geçişi temsil eder.
  • Olay (okun üzerinde dikdörtgen olarak gösterilir) : Olay, uygulamanın durumunu değiştirmesine neden olan bir şeydir. Olaylar, uygulamanın kullanıcı arayüzü gibi uygulamanın dışından gelebilir. Eş zamanlı olarak uygulamanın kendisi de "zamanlayıcının süresi doldu" gibi olaylar üretebilir. Bir olay meydana geldiğinde uygulama aynı durumda kalabilir, durumu değiştirebilir veya bir eylem gerçekleştirebilir. Olayların parametreleri olabilir; örneğin, "pay_money" etkinliğinde "Nakit", "Çek", "Banka Kartı" veya "Kredi Kartı" gibi parametreler bulunabilir.
  • Eylem (geçişin üzerindeki etikette "/" ile gösterilir) : Bu, durum değişikliğiyle başlatılan bir eylemdir. Bunlar "bilet yazdırma", "ekranda görüntüleme" vb. eylemler olabilir. Tipik olarak eylemler, sistemin çıktı verileri olarak hizmet veren çıktılar oluşturur. Eylemler geçişler sırasında meydana gelir; devletlerin kendisi pasiftir.
  • Giriş noktası diyagramda siyah bir nokta olarak gösterilir.
  • Çıkış noktası diyagramda "hedef noktası" sembolü olarak gösterilir.

Durum Geçiş Tabloları

Durum geçiş tabloları dört sütundan oluşan tablolardır: Mevcut Durum, Olay, Eylem ve Sonraki Durum.

Durum Geçiş Tablolarının avantajı, yalnızca doğru olanları değil, tüm olası Durum Geçiş senaryolarını tanımlamasıdır. Bu nedenle Durum Geçiş Tabloları sıklıkla, kodu yazmadan önce tanımlanması daha iyi olan tanımlanmamış, belgelenmemiş Durum Geçişi kombinasyonlarının keşfedilmesine yol açar.


  • Durum Geçiş Diyagramları test senaryoları oluşturmak için kolaylıkla kullanılabilir. Tüm geçişleri en az bir kez kapsaması gereken bir dizi test senaryosu oluşturmak gereklidir.
  • Durum Geçiş Tablolarından test senaryoları oluşturmak da nispeten basittir. Tüm geçerli kombinasyonların üzerinden geçilmesi gerekir (eğer zaman izin veriyorsa veya riskler yasaklamıyorsa, tüm geçersiz kombinasyonların üzerinden geçmek de mümkündür).

Ortogonal Diziler

"1" ve "2" değer çifti için kaç kombinasyon vardır? {1,1}, {1,2}, {2,1} ve {2,2}. Ortogonal dizi, özel bir özelliğe sahip iki boyutlu bir dizidir; dizinin herhangi iki sütununda, bu sütunlardaki tüm değer kombinasyonları mevcuttur. Yani, değerlerin yalnızca "1" veya "2" olabileceği ortogonal diziden herhangi iki sütun alırsanız, bu sütunlar için aşağıdaki satırları bulacaksınız - {1,1}, {1,2}, { 2,1} ve {2,2}.

Örnek olarak, her biri ikili olan (yani "1" veya "2" değerini alan) üç giriş parametresine sahip bir sistemi düşünün.

satırlar

değişken 1

değişken 2

değişken 3

1

1

1

1

2

2

1

1

3

1

2

1

4

1

1

2

5

2

2

1

6

1

2

2

7

2

1

2

8

2

2

2

Ortogonal Dizi - L_4(2^3) olarak temsil edilir; burada L_4, ortogonal dizinin dört satıra sahip olduğunu belirtir ve (2^3), dizinin "1" veya "2" olabilen değerlerle üç sütuna sahip olduğunu belirtir. ".

satırlar

değişken 1

değişken 2

değişken 3

1

1

1

1

2

1

2

2

3

2

1

2

4

2

2

1

L_4, burada 4 satır sayısıdır

2^3, burada 2 maksimum değerdir (== 2, 3, …, N) ve 3 sütun sayısıdır


Ortogonal Dizi - aşağıdaki özelliğe sahip iki boyutlu bir dizidir: dizinin herhangi iki sütununu seçtiğinizde, bu sütunlarda tüm değer kombinasyonlarını bulacaksınız.

Ortogonal dizileri kullanma:

  1. Değişkenleri tanımlayın (giriş verilerinin sayısı). Giriş verilerini, mantıksal olarak var olabilecek herhangi bir değer kombinasyonunu seçmek gerekir.
  2. Her değişkenin alabileceği değer sayısını belirleyin. Değerlerin sayısı belirlendiğinde, değer sayısını azaltmak için diğer test tasarım teknikleri (örneğin, sınır değerleri, eşdeğerlik sınıfları ve diğerleri) halihazırda uygulanmış olmalıdır.
  3. Her değişken için bir sütunun olacağı ortogonal bir dizi belirleyin (ortogonal dizinin sütununda değişken kadar değer seçeneği vardır).
  4. Test görevini ortogonal diziye yansıtın.
  5. Test senaryolarını yazın.

Tüm Çiftler Algoritması

AllPairs algoritmasının özü, tüm değişkenler için tüm değer kombinasyonlarını test etmeye gerek olmamasıdır. Bunun yerine, her bir değişken çifti için tüm değer kombinasyonlarını test etmeye odaklanır.



Bir QA uzmanı olarak bu nüansları anlamak önemlidir. Bazı durumlarda teorik olsa da, kombinatoryal test tasarım tekniklerinin 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.