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 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.
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:
Ö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 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.
"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:
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.