Yazılım testinde eşdeğerlik bölümlemesi, test kapsamından ödün vermeden verimli test senaryoları oluşturmanıza yardımcı olan bir kara kutu test tekniğidir.
Bu makalede, denklik sınıfı bölümlemenin ne olduğuna, neden yararlı olduğuna bakacak ve bu tekniğin avantajlarını ortaya çıkarmak için kullanabileceğiniz bazı süreçleri ve yaklaşımları keşfedeceğiz.
Denklik sınıfı bölümlemesi nedir
yazılım testinde?
Tüm yazılımların belirli giriş koşulları vardır. Yazılım testi bağlamında, bu girdi koşulları, bir test uzmanının yazılımlarının kalitesini ve işlevselliğini doğrulamak için kullanması gereken değerleri veya verileri tanımlar. Bu girdiler bir fare tıklaması kadar basit bir şey olabileceği gibi, metin ve sayılara kadar uzanabilir.
Yazılım testinde eşdeğer bir bölümleme, yazılımı kullanmak için gereken farklı girdileri araştırır ve bunları eşdeğerlik sınıflarına, yani yazılımın davranışı üzerinde eşdeğer bir etkiye sahip olacak girdi kümelerine gruplandırır.
Her bir girdi grubunun nasıl davranacağını biliyorsanız, grubun her bir temsilcisini test etmeniz gerekmez. Bu nedenle, denklik sınıfı bölümleme, test uzmanlarının gereksiz testlerin sıklığını azaltmasına yardımcı olmak için harika bir yoldur. Son teslim tarihlerinin giderek sıkılaştığı hiper rekabetçi yazılım geliştirme dünyasında, yazılım testi yaşam döngüsünde (STLC) zamandan ve emekten tasarruf etmek çok önemlidir.
Son olarak, eşdeğerlik testinin bir kara kutu test tekniği olduğunu belirtmek gerekir. Kısacası, test uzmanlarının programın dahili kodu veya iç işleyişi hakkında bilgi sahibi olması gerekmediği anlamına gelir. Testler girdilere, çıktılara ve harici davranışlara dayanır. Bu nedenle, bu testler büyük ölçüde programı kullanırken kullanıcı davranışına odaklanır.
1. Özetle yazılım testi eşdeğerlik bölümlemesi
Eşdeğerlik bölümlemesi, yazılım testi girdi verilerini iki kampa ayırır: geçerli ve geçersiz girdiler. Her bir bölüm içindeki değerler yazılımın aynı davranışı sergilemesine neden olmalıdır. Örneğin:
- A Bölmesindeki bir değerin koşulu doğruysa, A Bölmesindeki diğer değerlerin de doğru olması gerekir.
- Aynı şekilde, A Bölmesindeki bir değerin koşulları yanlışsa, A Bölmesindeki diğer değerlerin de yanlış olması gerekir.
Bir test bağlamında, her bölüm en az bir kez ele alınmalıdır. Mantıksal olarak bu, Bölüm A’daki bir girişin başarısız olması durumunda diğer tüm girişlerin de başarısız olacağı anlamına gelir. Bu süreç zaman kazandıracaktır çünkü test uzmanları A Bölümünde yer alan her bir girdiyi test etmek yerine sadece bir tanesini test edebilir ve ortak noktalarına dayanarak sonucu tahmin edebilirler.
2. Yazılım testinde eşdeğerlik sınıfı testi neden önemlidir?
Yazılım testinde eşdeğerlik sınıfı testinin doğrudan faydalarına geçmeden önce, bu yaklaşımın neden önemli olduğunu tanımlamamız gerekir.
Tüm test uzmanları, yazılım testlerinin ödün vermeyi gerektirdiğini bilir. Zaman ve bütçeler sınırlıdır, bu da test uzmanlarının kaynaklarını en iyi şekilde kullanmaları gerektiği anlamına gelir. Yazılım testi eşdeğerlik bölümlemesi, ekiplerin girdi sayısını azaltarak testlerinde verimlilik ve güvenilirlik arasında bir denge bulmalarına yardımcı olur.
Eşdeğerlik bölümlemesinin faydaları
yazılım testlerinde
Yazılım testinde eşdeğer bir bölüm, test ekipleri tarafından çeşitli nedenlerle tercih edilmektedir. İşte en ilgi çekici olanlardan bazıları.
1. Verimlilik
Eşdeğerlik bölümü testinin en büyük avantajı verimliliğinde yatmaktadır. Test uzmanları denklik bölümlendirmesini kullandıklarında, test kapsamından ödün vermeden ihtiyaç duydukları test senaryosu sayısını azaltabilirler. Test uzmanları, her eşdeğerlik sınıfından bir girdi durumu seçerek yazılımlarının çeşitli girdilerle nasıl çalıştığını anladıklarından emin olabilirler.
2. Basitlik
Yazılım testi eşdeğerlik bölümlemesinin bir diğer büyük avantajı da basitliktir. Çeşitli girdileri hem geçerli hem de geçersiz veriler olarak ayırmak, test planlamasının çok daha basit olduğu anlamına gelir. Her bir girdinin ayrı ayrı test edilmesi çok fazla dokümantasyon ve koordinasyon gerektirir. Bunu temsili bir örneğe indirgemek test sürecini kolaylaştırır.
Geliştirilmiş kapsam
Testlerde denklik sınıflarını kullanmak, test sürenizi daha verimli kullanmanızı da sağlar. Test girdilerini sınıflara indirgemek, her sınıfı daha kapsamlı bir şekilde test edebileceğiniz anlamına gelir. Her bir girdiyi ayrı ayrı test etseydiniz bu kapsamlı yaklaşım açıkçası imkansız olurdu. Eşdeğerlik bölümlemesi, ekiplerin geçerli ve geçersiz verileri, uç durumları, sınır değerleri ve daha fazlasını kapsamlı bir şekilde test etmesine olanak tanır.
3. Yeniden kullanılabilirlik
Yazılım testinde her bir eşdeğerlik sınıfını oluşturmak için harcadığınız ilk zaman, bu sınıfları gelecekteki girdi testleri için yeniden kullandığınızda karşılığını verir. Tüm bölümler gelecekteki testler için uygun olmasa da, uygun olanlar gelecekteki projelerde ve hatta regresyon testi durumlarında size çok zaman kazandıracaktır.
Eşdeğerlik bölümlemesinin dezavantajları
yazılım testlerinde
Denklik bölümlemesi bazı önemli avantajlar sunsa da, her senaryo için ideal çözüm değildir. Bazı sınırlamalarını inceleyelim.
1. Giriş sırası
Bazı durumlarda, girdi sırası bir uygulamanın işlevselliğini test etmenin kritik bir parçasıdır. Bu, eşdeğerlik bölümlemesi kullanarak gerçekten azaltabileceğiniz bir şey değildir. Test uzmanları bu durumlara dikkat etmeli ve iyi bir kapsam sağlamak için alternatif teknikler kullanmalıdır.
2. Karmaşık girdi bağımlılıkları
Karmaşık girdi bağımlılıklarına sahip karmaşık yazılımlar, eşdeğerlik bölümlemesinin sınırlamalarının ortaya çıktığı bir başka alandır. Örneğin, çeşitli girdilere dayalı hesaplamalar yapan yazılımlar. Bu senaryoda, test uzmanlarının kombinatoryal patlamayı azaltmak ve hataları izole etme olasılığını artırmak için çeşitli teknikler kullanması gerekecektir.
Tamamlayıcı alternatif yaklaşımlar
eşdeğerlik testinin sınırlamaları
Eşdeğerlik bölümü testi birçok test senaryosu için uygun olsa da, girdi değerleri arasında karmaşık bağımlılıklara sahip son derece karmaşık yazılımlar ek tamamlayıcı yaklaşımlar gerektirebilir.
Karmaşık yazılımlar için test senaryoları yazmak söz konusu olduğunda, bu yaklaşımların bir kombinasyonunu kullanmak sağlam bir fikirdir.
1. İkili testler
İkili test, her bir girdi parametresi çiftinin olası tüm kombinasyonlarını test eden bir yazılım test tekniğidir. Bu yaklaşım, her bir parametre çiftinin en az bir kez birlikte test edilmesini sağlar.
2. Karar tablosu testi
Bir karar tablosu, test uzmanlarının farklı girdi kombinasyonlarını metodik olarak haritalandırmasına yardımcı olur. Karmaşık bağımlılıklar olduğunda sistematik kapsama sağlamak için iyi bir yoldur.
3. Durum geçiş testi
Bu test türü, çeşitli girdi kombinasyonlarına yanıt olarak yazılımın farklı durumlar arasında nasıl geçiş yaptığını ölçer.
4. Model tabanlı test
Bu yaklaşım, yazılımın iç mantığına dayalı bir model oluşturmayı ve bu modele dayalı test senaryoları oluşturmak için bir otomasyon aracı kullanmayı gerektirir. Bu teknik, karmaşıklığın üstesinden gelme ve yeterli kapsamı sağlama konusunda ustadır.
Eşdeğerlik sınıfı bölümleme testi örnekleri
Eşdeğerlik bölümlemesini anlamanın en iyi yolu, yazılım testinde bir eşdeğerlik sınıfını nasıl ve nerede kullanabileceğinize bakmaktır. Konsepti daha iyi görselleştirmenize yardımcı olacak birkaç örnek aşağıda verilmiştir.
1. Eşdeğerlik sınıfı bölümleme testi örneği #1
Çevrimiçi bir sipariş formu, yazılım testinde iyi bir eşdeğerlik sınıfı örneğidir.
Diyelim ki çevrimiçi bir sabit ekipman perakendecisi için bir uygulama geliştiriyorsunuz. A4 kağıt kovaları için tipik bir sipariş formu bulunmaktadır. Bu formu test etmek için denklik sınıflarını nasıl kullanabileceğiniz aşağıda açıklanmıştır.
Eşdeğerlik sınıfları:
A4 kağıt miktarları, örneğin 1 ila 100 gibi belirli bir aralıktadır. Yani, üç sınıf vardır:
- 1 ila 100
- 1’in altındaki sayılar
- 100’ün üzerindeki sayılar.
Test senaryoları:
Aşağıdaki beklenen sonuçlarla birlikte üç test senaryosu çalıştırılmalıdır
- 1 ile 100 arasında herhangi bir sayı = Sipariş işlendi
- 1’in altındaki sayılar = hata mesajı
- 100’den büyük sayılar = hata mesajı
2. Eşdeğerlik bölümleme testi örneği #2
Yazılım testinde bir denklik sınıfı sayılardan daha fazlasıyla ilgilenebilir. Bu örnekte, bir dosya yükleme portalını doğrulamak için aynı prensibi nasıl kullanabileceğinizi keşfedeceğiz. Diyelim ki kullanıcıların kimlik belgelerini yüklemesini gerektiren bir site için test yapmanız gerekiyor, ancak yalnızca belirli formatları kabul edebiliyorsunuz.
Eşdeğerlik sınıfları:
- Desteklenen belgeler PDF ve JPEG’dir.
- Desteklenmeyen belgeler diğer tüm belge biçimleridir
- Belge yok
Test senaryoları:
- PDF veya JPEG yükleyerek test edin = başarılı yükleme
- Desteklenmeyen biçimi yükleyerek test edin = hata mesajı
- Dosya yükleme olmadan test = hata mesajı
Bir denklik bölümlemesi nasıl uygulanır
yazılım test yaklaşımı
Testlerde denklik sınıflarını kullanmak istiyorsanız stratejik bir yaklaşım benimsemeniz gerekir. İşte yazılım testinde eşdeğerlik bölümlemesini uygulamak için adım adım faydalı bir kılavuz.
Adım #1: Girdi değişkenlerini belirleyin
Her yazılım çeşitli girdi değişkenlerine yanıt verir. Karmaşık yazılımlar için bu değişkenler çok büyük olabilir. Bu nedenle, yazılım gereksinimlerini ve teknik özelliklerini gözden geçirin ve yazılımın davranışı üzerinde etkisi olan tüm değişkenleri belirleyin.
En belirgin girdilerden bazıları kullanıcı giriş formlarını içerecektir. Ancak, listeniz için daha geniş bir girdi yelpazesini göz önünde bulundurmanız gerekir. Ayrıca çevresel değişkenleri, API çağrılarını, dahili hesaplamaları ve benzerlerini de göz önünde bulundurabilirsiniz.
Sırada, farklı değişken veri türlerini anlamak var. Uygun bölümleri tanımlamak için bu değişkenleri tamsayı, Boolean, dize vb. olarak kategorize edebilirsiniz.
Son olarak, girdi kısıtlamalarını keşfetmeniz gerekir. Bu, hangi karakterlere izin verildiği, tanımlı formatlar ve minimum/maksimum değerler gibi şeyler olacaktır.
Adım 2. Geçerli ve geçersiz bölümleri belirleme
Her bir girdi değişkenine bakın ve bunları geçerli ve geçersiz sonuçlara göre bölümlendirmeye başlayın. Bunlar testteki denklik sınıflarınız olacaktır.
1. Geçerli bölümler
Geçerli bölümler iki sınıfa ayrılabilir.
Pozitif denklik sınıfları:
Yazılımınızın başarıyla işlemesini beklediğiniz değerler. Örneğin, yüzdelik notları kaydeden bir yazılım için 0 ile 100 arasındaki her şey geçerlidir.
Negatif denklik sınıfları:
Bu kategori, beklenen girdi sınırlarının dışında kalan ancak yazılımınızın bir hata mesajıyla ele alması gereken değerler için olacaktır. Örneğin, yüzde notu için giriş 110’dur ve bu da yazılımın “Tüm değerler 0 ila 100 arasında olmalıdır” şeklinde bir hata mesajı vermesine neden olur.
2. Geçersiz bölümler
Bu denklik sınıfları, hataları veya beklenmedik davranışları tetikleyecek girdileri içerecektir. Yukarıdaki örneğimizde, yüzde notuna A+ veya B veya benzer girdileri girme girişimleri buna dahil olabilir. Bu girdiler teknik olarak doğru olsa da, sayısal beklentilerin dışındadır.
#3. Etkili test senaryoları yazma
Daha sonra, her bir denklik bölümünü en az bir kez kapsayan test senaryoları tasarlamanız gerekir. Makalede daha önce de belirtildiği gibi, bu uygun test kapsamını sağlar.
Öncelikle, her bir eşdeğerlik bölümü içinde hem geçerli hem de geçersiz verileri kapsayabilecek temsili değerler seçmelisiniz.
Sağlam test senaryoları yazmak için ipuçları
- Sınır değerleri hakkında düşünün: Bölümlerinizin sınırlarını test ettiğinizden emin olun. Minimum, maksimum, kapsayıcı, özel, vs. gibi alanlar böcekler için güçlü adaylardır. Örneğin, girdi beklentileriniz 0 ile 100 arasındaysa, negatif değerlerin yanı sıra 101 gibi sayıları da test edin.
- Hem geçerli hem de geçersiz test senaryolarınız için pozitif ve negatif test senaryolarını göz önünde bulundurun.
- Kombinasyon testi iyi bir fikirdir. Yukarıdaki eşdeğerlik testi bölümünün sınırlamalarını tamamlamak için alternatif yaklaşımlarımızda belirtildiği gibi birkaç farklı yaklaşım kullanın.
- Girdi değerlerinin neden belirli bölümlere ayrıldığının arkasındaki mantığı belgeleyin ve her testin beklenen davranışını açıkça özetleyin
- Mümkünse, bölümlerinizi haritalamak için diyagramlar veya tablolar kullanarak test senaryolarınıza netlik ve nesnellik duygusu getirmek için görsel araçlar kullanın.
#4. Test senaryolarınızı planlayın ve yürütün
Görevlerinizi aşağıdaki gibi faktörlere göre önceliklendirin:
- Hangi bölgelerde kusur olma olasılığı daha yüksektir
- Hangi senaryoların çökme veya donma gibi ciddi senaryolara neden olma olasılığı daha yüksektir
Ardından, testlerinizi yürütün ve çıktıları ve meydana gelen hataları kaydedin. Çok sayıda girdisi olan karmaşık programlar için, kullanıcı eylemlerini taklit etmek üzere RPA araçlarını kullanabilirsiniz.
#5. Sonuçları analiz edin
Toplanan test verilerini bir araya getirin ve sonuçları analiz edin. Kullanmanız gereken bazı yöntemler şunlardır:
- Her bir test senaryosuna bakın ve gerçek çıktıları beklediğiniz çıktılarla karşılaştırın
- Herhangi bir tutarsızlığı bulun ve hataları ve kusurları araştırın ve raporlayın.
#6 Ek ipuçları
Bu ipuçları her senaryoda geçerli olmasa da karmaşık yazılım testleri için faydalı olacaktır.
- Karar tabloları, denklik bölümlerinizi ve kullanmak isteyebileceğiniz farklı girdi kombinasyonlarını görselleştirmenin mükemmel bir yoludur
- Neredeyse aynı davranışı sergiliyorlarsa denklik sınıflarını birleştirerek test sürecini daha da optimize edebilirsiniz
- Hata tespitini iyileştirmek için sınır değer testini kullanın
- Mümkünse, denklik bölümleme test senaryolarınızı otomatikleştirin
Eşdeğerlik bölümlemesi ve sınır değer analizi
Eşdeğerlik bölümlemesi, bir bölüm içindeki her testin aynı sonucu üreteceği varsayımına dayanır. Bu birçok durumda doğru olsa da, her zaman işe yaramayacaktır. Örneğin, bir bölüme yanlışlıkla eklenen girdiler kontrol edilmeyebilir, bu da kapsamın azalmasına ve yazılımın ileride istikrarsızlık yaşamasına neden olabilir.
Bu sorunun çözümü sınır değer testidir. Yazılım test ekiplerinin risk içermesi en muhtemel alanlara odaklanmasını ve yazılımı bu temelde test etmesini sağlar. Kısacası, risklerin büyük olasılıkla girdi bölümlerinizin kenarlarında veya sınırlarında meydana geleceğini öne sürer. Bu nedenle, test uzmanları diğer denklik sınıfı test senaryolarına ek olarak girdilerin üst ve alt sınırlarında da test senaryoları yazabilirler.
ZAPTEST ile eşdeğerlik bölümleme ve otomasyon
ZAPTEST gibi yazılım testi otomasyon araçları, ekiplerin hem test oluşturma hem de yürütme sırasında eşdeğerlik bölümlemesini otomatikleştirmesine yardımcı olabilir.
ZAPTEST’in bu faydalı kara kutu test yaklaşımının avantajlarını ortaya çıkarmanıza nasıl yardımcı olabileceğini keşfedelim.
1. Araç seçimi
İş için doğru aletin seçilmesi önemlidir. Çoğu test otomasyon aracı web, mobil veya masaüstü testlerinde uzmanlaşmıştır. ZAPTEST, farklı platformlar ve uygulamalar arasında test yapabilme yeteneğine sahiptir, bu da onu sağlam bir seçim haline getirir.
2. Test senaryoları yazmak ve yürütmek
ZAPTEST 1Script, test otomasyonu oluşturmak için kullanıcı arayüzünü taramanızı sağlar. Ayrıca, geliştirmenin erken bir aşamasındaysanız uygulama maketlerini de tarayabilirsiniz. Tarama GUI özelliğini kullanarak, ZAPTEST tüm test nesnelerini tarayacak ve bunları nesneler listesine ekleyecektir.
Buradan diyagrama nesneler ekleyebilir ve test adımlarını oluşturabilirsiniz.
ZAPTEST, basit bir sürükle ve bırak arayüzü ile vakaların yazılmasını otomatikleştirmenizi sağlar. ZAPTEST ile test senaryoları oluşturmak için kodlama uzmanlığına ihtiyacınız yoktur. Böylece, buradan, açılır bir yöntemden ilgili işlemi seçebilir ve arayüzünüz için gereken giriş değerlerine göre bir test senaryosu oluşturabilirsiniz. Ardından, her bir denklik için test senaryoları oluşturabilir ve test senaryolarınızı yürütebilirsiniz. Hatta test senaryolarını yeniden kullanabilir ve bunları Adım düzenleyicide düzenleyerek çok zaman kazanabilirsiniz.
3. Raporlama ve test senaryosu yönetimi
ZAPTEST, test senaryolarını paralel olarak çalıştırmanıza olanak tanıyarak önemli ölçüde zaman tasarrufu sağlar. Bu, çok sayıda farklı denklik bölümünü aynı anda çalıştırmanıza veya belirli test gruplarını çalıştırmanıza yardımcı olabilir.
Ayrıntılı başarısız/geçti raporları, ekran görüntüleri, yürütme günlükleri ve her test senaryosuyla ilgili performans ölçümleri sayesinde sonuçları toplamak kolaydır.
4. Test senaryosu bakımı
Ayrıca, kaliteli sürüm kontrolü özellikleri sayesinde test senaryolarınızı kolayca takip edebilir ve koruyabilirsiniz. Dahası, ZAPTEST kullanıcıları yeni bir verimlilik düzeyi elde etmek için testleri klonlayabilir ve yeniden kullanabilir.
ZAPTEST, test senaryosu otomasyonunun yanı sıra çok daha fazla işlevsellik sunar. Bir RPA araçları paketi ile ZAPTEST, otomatikleştirilebilecek her şeyin otomatikleştirileceği hiperotomasyonun damgasını vurduğu bir gelecekte DevOps ve BizOps arasındaki boşluğu doldurarak 2’si 1 arada işlevsellik sunar.
Son düşünceler
Eşdeğerlik bölümlemesi, test uzmanlarının verimlilik ve doğruluk arasında bir denge kurması gereken durumlar için zarif bir çözümdür. Bazı yazılımlar neredeyse sonsuz sayıda girdiye izin verdiğinden, denklik sınıfı bölümleme ekiplerin test verilerini her biri kapsamlı bir şekilde test edilebilecek yönetilebilir, küçük parçalara ayırmasına yardımcı olur.