Sınır değer analizi – genellikle BVA olarak kısaltılır – yaygın bir kara kutu test tekniğidir. Bu yaklaşım, izin verilen aralıkların sınırlarındaki girdi değerlerini doğrulayarak yazılım kusurlarını test eder.
Bu makale sınır analizi testinin ne olduğunu, neden yararlı olduğunu ve bazı farklı yaklaşımları, teknikleri ve çeşitli sınır testi araçlarını keşfedecektir.
Yazılım testinde sınır değer analizi nedir?
Sınır değer analizi bir tür işlevsel testtir. Bu tür testler, yazılımın her bir işlevinin gereksinimleri ve spesifikasyonları karşıladığını doğrulamakla ilgilidir. Sınır testi söz konusu olduğunda, bu işlevsellik yazılımın çeşitli girdilerle nasıl başa çıktığını içerir.
BVA, yazılımın girdi sınırlarının kenarında veya çevresinde girdilere nasıl yanıt vereceğini doğrulayan bir yazılım test tekniğidir. Temelde, her girişin izin verilen aralıkları vardır. Örneğin, bir oturum açma için 8 ila 12 karakter arasında parola kabul eden bir parola kutunuz olabilir. Sınır testi 7, 8, 12 ve 13 karakter uzunluğuna sahip parolaları test edecektir.
Buradaki düşünce, sınırların sınırlarının, yani 7, 8, 12 ve 13’ün, 9, 10 ve 11 gibi sınırların içindeki sayılardan daha fazla hata yapma olasılığı olduğudur. Buradaki faydalar, 8 ila 12 karakter kabul eden bir alan kutusu örneğinde marjinal görünse de, 1 ila 20 karakter veya 1 ila 1000 arasında sayı alan alan kutuları için test senaryoları yazmanız gerektiğinde daha belirgin hale gelir.
Bu nedenle, zamandan tasarruf etmek ve fonksiyonel testlerdeki test senaryolarının sayısını azaltmak için sınır değer analizi değerlere bakar:
- Minimum değerde
- Minimum değerin hemen altında
- Maksimum değerde
- Maksimum değerin hemen üstünde
Testlerde sınır değer analizinin faydaları
Sınır testi, QA ekipleri için çeşitli zorlayıcı avantajlara sahiptir.
#1. Daha iyi yazılım kalitesi
Test uzmanları için kabus senaryosu, fark edilmeyen hatalar ve kusurlardır. Doğrulanması gereken bu kadar çok şey varken, bazı kusurlar gözden kaçabilir. Sınır testi, yazılımda hata içerme olasılığı daha yüksek olan alanların işlevselliğini kanıtlar, bu da daha iyi yazılım yapılarına ve nihayetinde daha güvenilir, kararlı bir uygulamaya yol açar.
#2. Artırılmış test kapsamı
Yazılım testlerinde BVA çok kullanışlıdır çünkü kapsamlı test kapsamı için gereken test senaryosu sayısını azaltmaya yardımcı olur. Sınır değer analizi, önemli değerlerin ve her bir değerin daha kapsamlı bir şekilde test edilebilmesini sağlar.
#3. Erken kusur tespiti
Sınır değer testi, erken hata tespitine öncelik veren bir yaklaşımın parçasıdır. Hataları sürecin erken aşamalarında yakalamak, geliştirme ekiplerinin zamandan ve paradan tasarruf edebilecekleri anlamına gelir ve hataları geliştirmenin erken aşamalarında gidermenin çok daha kolay olduğu gerçeğinden bahsetmeye bile gerek yoktur.
#4. Verimlilik
Sınır değer testi çok verimlidir çünkü çok sayıda test senaryosuna olan gereksinimi azaltır. Gerçekten de, girdileri sorun yaratma olasılığı en yüksek olanlara kadar azaltmak, test ekiplerine hem test senaryolarını yazarken hem de yürütürken önemli ölçüde zaman kazandırabilir.
Testlerde sınır değer analizinin dezavantajları
Elbette hiçbir yazılım testi tekniği mükemmel değildir veya sınırlamaları yoktur. Sınır değer analizinin birçok faydası olsa da, bu fonksiyonel test tekniği ile çalışmanın bazı kısıtlamaları vardır.
#1. Dar kapsam
BVA, geçerli veri girişlerinin sınırları veya kenarları üzerinde çalışır. Genel olarak, kenarlardaki geçerli girişler iyiyse bunların da iyi olacağını düşünerek orta girişleri göz ardı eder. Ancak, test edilmemiş bu değerlerden bazılarının sorun yaratabileceği de göz ardı edilmemelidir.
#2. Aşırı basitleştirici
Sınır analizi işleri basitleştirmekle ilgilidir. Bu, test senaryolarını azaltmak için işe yarasa da, yaklaşım birden fazla sınır, etkileşim veya bağımlılığa sahip oldukça karmaşık alanlar için daha az uygundur. Aslında, karmaşık senaryoların üstesinden gelmekte zorlanabilir, bu da yeterli kapsam için diğer teknikleri keşfetmeniz gerektiği anlamına gelir.
#3. Varsayımlar
Verimliliği artırmaya çalışan her süreç, belirli hataları gözden kaçırma riski taşır. BVA, bir aralığın kenarındaki sınırlara odaklanır. Bunu yaparken, sınır değerlerin her iki tarafına düşen diğer girdiler hakkında varsayımlarda bulunmalıdır. Test uzmanları verimlilik ve kapsam arasında bir denge kurmalıdır, bu da sınır testi tek başına kullanıldığında küçük bir risk oluşturur.
#4. Doğru spesifikasyonlara ve gereksinimlere güvenme
Etkili BVA, şartnamelerin ve gereksinim belgelerinin kalitesine ve doğruluğuna bağlıdır. Bu belgelerdeki kontrol edilmemiş hatalar sınır değer testine yansıyabilir ve belirli hataların kontrol edilmemesine ve geliştirmenin kritik geç aşamalarına kadar keşfedilmemesine yol açabilir.
#5. Eşdeğerlik sınıflarına güven
Kapsamlı bir BVA gerçekleştirmek, denklik sınıfları hakkında güçlü bir çalışma bilgisi gerektirir. Bu sınıfları doğru bir şekilde ayarlamak, deneyim ve uygulama hakkında bazı arka plan bilgileri gerektirir.
Sınır değer analizinin zorlukları
yazılım testlerinde
Şimdiye kadar, sınır testinin artıları ve eksileri hakkında oldukça net olmalısınız. Ancak, bu yaklaşımı kendi yazılım testlerinize uygulamak istiyorsanız, üstesinden gelmeniz gereken çeşitli zorlukların da farkında olmalısınız.
Yazılım testinde sınır değer testini uygulamanın zorluklarından bazıları şunlardır.
#1. Sınırların çizilmesi
Basit sistemlerde sınırların belirlenmesi, yetkin test uzmanları için çok az zorluk teşkil eder. Ancak, aşağıdaki gibi daha karmaşık durumlar da söz konusudur:
- Çeşitli girdi değişkenleri veya karmaşık ilişkiler içeren karmaşık girdi alanları
- Spesifikasyon belgelerinde açıkça belirtilmemiş belgelenmemiş sınırlar
- Kullanıcı eylemlerine veya diğer koşullara bağlı olarak değişen dinamik sınırlar
#2. Belirsiz gereksinimler
Kötü yazılmış veya net olmayan gereksinim belgeleri sınır değerlerin belirlenmesini engelleyebilir. Açıklık, bütünlük ve kapsamlı spesifikasyon belgelerine bağlılık zaman alır, ancak sonunda karşılığını verir.
#3. Uzmanlık
Sınır değer analizi aldatıcı bir şekilde karmaşık olabilir. Gerçekten de test ekipleri, tekniğin ince nüanslarını anlamak için bu alanda deneyim ve bilgi sahibi personele ihtiyaç duyar. Dahası, test uzmanlarının yazılım hakkında bilgi sahibi olmaları ya da en azından güvenilir şartname belgelerine sahip olmaları gerekir.
#4. Hatalar
Sınır analizi, geçerli ve geçersiz girdileri doğrulamak için gereken test senaryolarının sayısını azaltmayı amaçlar. Ancak, test aralığının dışında kalan kusurlar kolayca fark edilmeyebilir. Ayrıca, “off-by-one” hataları, sınırlarda veya sınırlara yakın yerlerde meydana gelebilen yaygın kodlama hatalarıdır. Test uzmanları bu senaryoların bilincinde olmalı ve test için gerekli hazırlıkları yapmalıdır.
#5. Test senaryosu patlaması
Birden fazla girdi sınırı söz konusu olduğunda, test senaryoları kısa sürede karmaşık hale gelebilir ve kontrolden çıkabilir. Bu durumlarda, sınır testi ile tasarruf edebileceğiniz zaman ve para kaybedilir ve çözümün faydaları baltalanır. Çok sayıda kombinasyon veya permütasyon içeren karmaşık yazılım yapıları da benzer bir etkiye sahip olabilir.
#6. Analiz aracı sınırlamaları
Yazılım testi otomasyon araçları, ekiplerin yeterli sınır değer analizi yapmasına yardımcı olabilir. Bununla birlikte, en iyi durumlarda bile, bu araçlar hem test hem de test oluşturma için bazı manuel müdahaleler gerektirir. Bu durum, çok değişkenli etkileşimlere sahip karmaşık yapılar için daha da kötüleşebilir.
Farklı sınır değer türleri
yazılım testinde test
Yazılım Testi kitabında: A Craftsman’s Approach adlı kitapta yazarlar Paul C. Jorgensen ve Byron DeVries dört farklı sınır değer testi türü tanımlamaktadır:
1. Normal Sınır Değer Testi (NBVT)
- Giriş etki alanının kenarlarında geçerli giriş değerlerini test eder
- Sınırın hemen üzerindeki ve altındaki girdilerin yanı sıra minimum ve maksimum değerleri araştırır
- Bu, klasik sınır değer analizi türüdür
2. Sağlam Sınır Değer Testi (RBVT)
- Yukarıdaki NBVT’ye benzer, ancak geçersiz girdileri de içerir
- Sınırlarda ve sınırların hemen ötesinde testler yapar, ancak geçersiz girdileri de hesaba katar
- Aşırı veya beklenmedik çıktılardan kaynaklanan hataları bulmaya odaklanır
3. En Kötü Durum Sınır Değer Testi (WBVT)
- Aşırı geçerli ve geçersiz değerleri kullanarak yazılım davranışını doğrular
- Girdi alanlarının kenarındaki değerleri ve bu sınırların ötesindeki değerleri araştırır
- Daha uç koşullar altında yazılım davranışını anlamaya çalışır
4. Sağlam En Kötü Durum Sınır Değer Testi (RWBVT)
- En kapsamlı sınır değer testi için RBVT ve WBVT’nin bir karışımını kullanır
- Geçerli ve geçersiz giriş değerlerini hem tipik hem de uç sınırlarda test eder
- Sınırla ilgili kusurları bulmak için en iyi fırsatı sunar
Bu yaklaşımlar kapsamlılık açısından farklılık göstermekte olup, RWBVT en kapsamlı olanıdır. Ancak test uzmanları, bu ek hata bulma seviyesinin kilidini açmak için gereken hem zaman hem de çaba açısından ekstra yatırımı kabul etmelidir.
Eşdeğerlik bölümlemesi ve sınır değer
anali̇z: benzerli̇kler ve farkliliklar
Eşdeğerlik bölümlemesi ve sınır değer analizi genellikle birbiriyle bağlantılı olarak kullanılır. Aslında bu iki teknik birbirini tamamlayıcı niteliktedir. Bununla birlikte, veri girişini doğrulamak için farklı yaklaşımlar tanımlamaktadırlar. İşte ikisi arasındaki benzerlik ve farklılıklara bir bakış.
1. Benzerlikler
Eşdeğerlik bölümlemesi ve sınır değer analizi harika bir ikili oluşturur. İşte her iki teknik arasındaki bazı benzerlikler.
- Her ikisi de kara kutu test teknikleridir, yani uygulamanın kaynak kodu hakkında önsel bilgi olmadan test edilebilen girdi ve çıktılara odaklanırlar.
- Her ikisi de girdileri test etmeye yönelik kapsamlı bir yaklaşımın parçasıdır
- Her ikisi de test uzmanlarının aşırı miktarda test senaryosu yazmadan kapsamlı test kapsamı arasında bir denge kurmasına yardımcı olur.
2. Farklılıklar
Denklik bölümlemesi ve sınır değer analizi arasındaki farkları keşfetmek için her birine ayrı ayrı bakmamız gerekir.
Eşdeğerlik bölümlemesi
- Girdi verilerini benzer sistem çıktıları ile sonuçlanması gereken eşdeğerlik sınıflarına ayırır
- Her sınıftan tek bir temsili değer kullanır ve sistemi bu değerle test eder
- Geçerli ve geçersiz denklik sınıflarının belirlenmesi ile ilgilidir
Sınır değer analizi
- Denklik sınıflarının sınırlarındaki veya kenarlarındaki değerleri test eder
- Minimum, maksimum ve sınırın her iki tarafındaki değerler dahil olmak üzere bir dizi değeri test edin
- Sınırların kenarında bulunan hataları arar
Eşdeğerlik bölümleme ve sınır değer analizi örnekleri
Eşdeğerlik bölümleme ve sınır değer analizini anlamanıza yardımcı olmak için bazı örnekler aşağıda verilmiştir.
Eşdeğerlik bölümleme örneği:
Diyelim ki araba kayıtları için bir giriş kutunuz var. Tipik olarak, ABD araç tescil plakalarında 6 ila yedi karakter bulunur. Basitlik adına, özel plakaları dikkate almayacağız.
Geçerli veri = Plakalar 6 veya 7 karakter
Geçersiz veri = >6 veya >7 karakterli plakalar.
Sınır değer analizi örneği:
Yukarıdaki gibi aynı plaka örneğini kullanarak, sınır analizi şunları test edecektir
Geçerli veri = 6 veya 7 karakterli plakalar
Geçersiz veri = 5 veya 8 karakterli ve bazı senaryolarda 4 ve 9 karakterli plakalar
Sınır değer analizi örneği
Belki de kavramı tam olarak anlamanın en iyi yolu, başka bir veya iki sınır değer analizi örneğine bakmaktır.
Sınır değer testi örneği #1
Sınır değer testini daha detaylı incelemek için bir yaş doğrulama alanı örneğine bakalım.
Kullanıcının yaşını girebileceği bir kutumuz var.
Sınır değerler şunlardır:
- Minimum yaş = 18
- Maksimum yaş = 120
Sınır test durumları örneği:
Toplam altı test durumu vardır:
- 17, 18 ve 19, sırasıyla minimumun altında, minimumda ve minimumun üzerindedir
- 119, 18 ve 19, sırasıyla maksimumun altında, maksimumda ve maksimumun üzerindedir
Sınır değer testi örneği #2.
Bir sonraki sınır testi örneğimizde, 100 $ ve üzeri siparişlerde %20 minimum değer satın alma indirimi uygulayan bir web sitesini inceleyeceğiz.
Bu örnekte, 600 $ üzerindeki bir satın alma işlemi %25 indirim sağlamaktadır. Sınır değer testi 100 ila 600 $ arasındaki girdilerle ilgilenecektir.
Sınır değerler şunlardır:
Minimum hak kazanma indirimi = 100 $
Maksimum hak kazanma indirimi = 600 $
Sınır test durumları örneği:
Yine, toplam altı test durumu oluşturuyoruz, bunlar:
- 99,99 $, 100 $ ve 100,01 $, sırasıyla minimumun altında, minimumda ve minimumun üzerindedir
- 599,99 $, 600 $ ve 600,01 $, sırasıyla maksimumun altında, maksimumda ve maksimumun üzerindedir
Yazılım testinde sınır testi doğru mudur?
Denklik Bölümleme ve Sınır Değer Analizi Yöntemleriyle Kara Kutu Testi başlıklı araştırma makalesinde yazarlar, Endonezya’daki Mataram Üniversitesi için akademik bir bilgi sistemini test etmek amacıyla denklik bölümleme ve sınır değer analizini kullanmayı araştırmaktadır.
Yazarlar testler için popüler açık kaynak test aracı Selenium’u kullandılar ve toplam 322 test senaryosu çalıştırdılar. Eşdeğerlik testi ve sınır değer analizi yaklaşık 80 başarısız vakayı ortaya çıkarmış, bu da geçerli test puanlarının geçersiz test puanlarına oranının kabaca 75:25 olmasına yol açmıştır. Genel olarak, yazılım testinde eşdeğerlik bölümleme ve BVA’nın bir arada kullanılması, yazılım için kapsamlı ve yararlı testler yapılmasını sağlamıştır.
En iyi sınır değer test araçları
Özel sınır testi yazılım araçları nadir olsa da, bu işi yapabilen birçok kayda değer test aracı vardır.
#3. TestCaseLab
TestCaseLab, BVA testlerine yardımcı olabilecek bulut tabanlı bir test yönetim aracıdır. Yazılım, ekiplerin sezgisel ve çekici görünümlü kullanıcı arayüzünden test senaryoları oluşturmasına ve yönetmesine olanak tanır. TestCaseLab esnek ve özelliklerle doludur, ancak sınırlı raporlama ve özelleştirme seçenekleri gibi kısıtlamaları vardır.
#2. Micro Focus UFT One
Micro Focus UFT One, fonksiyonel ve regresyon testlerine odaklanan bir yazılım test aracıdır. Farklı platformları, cihazları ve API testlerini destekler ve güçlü entegrasyon seçenekleri sunar. Hem kodsuz hem de anahtar kelime odaklı test oluşturma imkanı sunar ve ekiplerin sınır değer analizi test senaryolarını kolaylıkla oluşturmasına yardımcı olabilir. Dik bir öğrenme eğrisi ve ZAPTEST gibi araçlarla karşılaştırıldığında güç eksikliği gibi göz önünde bulundurmanız gereken bazı sınırlamalar vardır.
#1. ZAPTEST
ZAPTEST, gelişmiş RPA yeteneklerine sahip kapsamlı bir yazılım otomasyon test aracıdır. Test uzmanlarına, yazılım testinde BVA da dahil olmak üzere çeşitli şekillerde yazılımı doğrulamaya yardımcı olabilecek kullanıcı dostu ve sağlam bir test otomasyon araçları paketi sağlamak için oluşturulmuştur.
ZAPTEST’in sınır değer analizine yardımcı olması için en cazip kullanım durumlarından bazıları test senaryosu oluşturma, test verilerini işleme, test yürütme ve raporlama ve analizdir. Bir dizi şablon ve yüksek düzeyde özelleştirme ile birlikte kodsuz test senaryosu oluşturma özelliği sayesinde ZAPTEST kullanıcıları, her türlü sınır analizi için sağlam test senaryolarını hızlı ve kolay bir şekilde oluşturabilir ve yönetebilir.
Test senaryosu oluşturma ve yönetiminin yanı sıra, ZAPTEST’in RPA yetenekleri, test ekiplerine sınır değer analizi testlerinde başka şekillerde de yardımcı olabilir. Örneğin, test senaryosu yürütmeyi otomatikleştirebilir, test verileri oluşturabilir ve diğer test araçlarıyla güçlü entegrasyonlar oluşturabilirsiniz.
Sınır değer testi için ipuçları
- Test senaryolarınızın çeşitli girdi senaryolarını kapsamasını sağlamak için sınır değer analizini eşdeğerlik bölümlemesi ile birleştirin
- Yazılımın hataları ve beklenmedik girdileri nasıl ele aldığını doğruladığınızdan emin olmak için geçersiz girdi senaryoları (yani negatif test) kullanın
- Metin, sayı, Boolean vb. gibi farklı veri türleri için sınır değerleri belirlemeye zaman ayırın.
- Kritik işlevler veya hataların meydana gelme olasılığının daha yüksek olduğu alanlar için sınır değer testine öncelik verin
- Kullanıcılarınızın etki alanlarınıza gireceği veri türünü temsil eden gerçekçi veriler kullanın.
Son düşünceler
Sınır değer analizi faydalı bir işlevsel test yaklaşımıdır. Bir giriş alanınız olduğunda, geçerli verileri kabul edip etmediğini ve geçersiz verileri aldığında hata mesajları gönderip göndermediğini kontrol etmeniz gerekir. Sınır analizi testi, yalnızca kapsamlı test için gereken test senaryolarını oluşturarak bu işlevselliği verimli bir şekilde doğrulamaya yardımcı olur.
Sınır testi, kabul edilebilir aralıktaki veya çevresindeki değerlere bakar ve sistemin bu girdilere nasıl yanıt verdiğini doğrular. Sonuç olarak, gereksiz test senaryoları oluşturmanıza gerek kalmadığı için zamandan tasarruf edersiniz ve daha az çaba harcarsınız. Son teslim tarihlerinin hızla yaklaştığı hızlı yazılım geliştirme dünyasında, test ekiplerinin alabilecekleri her türlü yardıma ihtiyaçları vardır.