white box testing complete guide with techniques
Beyaz Kutu Testi nedir?
Tanıma göre gidersek, “Beyaz kutu testi” (şeffaf, cam kutu veya yapısal test olarak da bilinir), bir programın kodunu ve iç yapısını değerlendiren bir test tekniğidir.
Beyaz kutu testi, kodun yapısına bakmayı içerir. Bir ürünün iç yapısını bildiğiniz zaman, iç işlemlerin spesifikasyona göre gerçekleştirildiğinden emin olmak için testler yapılabilir. Ve tüm dahili bileşenler yeterince uygulandı.
Ne öğreneceksin:
- Benim deneyimim
- Beyaz Kutu ve Kara Kutu Testi Arasındaki Fark
- WBT'yi Gerçekleştirme Adımları
- Beyaz Kutu Testi Türleri ve Teknikleri
- Beyaz Kutu Test Örneği
- Beyaz Kutu Test Araçları
- Sonuç
- Önerilen Kaynaklar
Benim deneyimim
Yazılım testi alanına girmemin üzerinden neredeyse on yıl geçti ve şu ana kadar test uzmanlarının tüm yazılım endüstrisinde en hevesli olduğunu fark ettim.
Bunun arkasındaki temel neden, test uzmanının her zaman kendi alanlarında öğrenecek bir şeyler olmasıdır. Alan, süreç veya teknoloji olsun, bir test uzmanı isterse tam bir gelişime sahip olabilir.
Ama dedikleri gibi 'Her zaman daha karanlık bir taraf vardır' .
Testçiler aynı zamanda çok karmaşık olduğunu düşündükleri bir test türünden ve geliştiricinin pastasından kaçınırlar. Evet, 'Beyaz Kutu Testi'.
Kapsam
Beyaz Kutu Testi, koddaki spesifikasyonun kapsamıdır:
1. Kod kapsamı
2. Segment kapsamı: Her kod ifadesinin bir kez çalıştırıldığından emin olun.
3. Şube Kapsamı veya Düğüm Testi: Her kod dalının kapsamı mümkün olan her şeydi.
4. Bileşik Durum Kapsamı: Birden çok koşul için, her koşulu birden çok yolla ve o koşula ulaşmak için farklı yol kombinasyonuyla test edin.
5. Temel Yol Testi: Koddaki her bağımsız yol test için alınır.
6. Veri Akışı Testi (DFT): Bu yaklaşımda, her olası hesaplamayla belirli değişkenleri izlersiniz, böylece kod aracılığıyla ara yollar kümesini tanımlarsınız. DFT bağımlılıkları yansıtma eğilimindedir, ancak esas olarak veri işleme dizileri yoluyla olur. Kısacası, her bir veri değişkeni izlenir ve kullanımı doğrulanır. Bu yaklaşım, kullanılan ancak başlatılmayan veya bildirilen ancak kullanılmayan değişkenler gibi hataları ortaya çıkarma eğilimindedir.
7. Yol Testi: Yol testi, kod üzerinden tüm olası yolların tanımlandığı ve kapsandığı yerdir. Zaman alan bir iştir.
8. Döngü Testi: Bu stratejiler, tek döngüleri, birleştirilmiş döngüleri ve iç içe döngüleri test etmekle ilgilidir. Bağımsız ve bağımlı kod döngüleri ve değerleri bu yaklaşımla test edilir.
Neden WBT yapıyoruz?
Emin olmak için:
- Bir modül içindeki tüm bağımsız yolların en az bir kez uygulandığını.
- Tüm mantıksal kararlar, doğru ve yanlış değerleri üzerinde doğrulandı.
- Tüm döngüler kendi sınırlarında ve operasyonel sınırları içinde iç veri yapılarının geçerliliğini sağlar.
Aşağıdaki böcek türlerini keşfetmek için:
- Program dışı işlevler, koşullar veya kontroller tasarladığımızda ve uyguladığımızda mantıksal hata işimize sızma eğilimindedir.
- Programın mantıksal akışı ile gerçek uygulama arasındaki farktan kaynaklanan tasarım hataları
- Yazım hataları ve sözdizimi denetimi
Bu test ayrıntılı programlama becerileri gerektiriyor mu?
Yazmamız gerek test durumları Program mantığının tam olarak kapsanmasını sağlayan.
Bunun için programı iyi bilmemiz gerekir, yani test edilecek spesifikasyonu ve kodu bilmeliyiz. Bu tür testler için programlama dilleri ve mantık bilgisi gereklidir.
Sınırlamalar
Programdaki döngülerin her bir yolunu test etmek mümkün değildir. Bu, büyük sistemler için kapsamlı testin imkansız olduğu anlamına gelir.
Bu, WBT'nin etkili olmadığı anlamına gelmez. Test için önemli mantıksal yolları ve veri yapısını seçmek pratik olarak mümkün ve etkilidir.
Beyaz Kutu ve Kara Kutu Testi Arasındaki Fark
Basitçe söylemek gerekirse:
Kara kutu testi altında, yazılımı kullanıcının bakış açısından test ederiz, ancak Beyaz kutuda gerçek kodu görüp test ederiz.
Kara kutu testinde, dahili sistem kodunu görmeden test gerçekleştiriyoruz, ancak WBT'de dahili kodu görüyor ve test ediyoruz.
Beyaz kutu test tekniği, hem geliştiriciler hem de testçiler tarafından kullanılır. Hangi kod satırının gerçekte çalıştırıldığını ve hangisinin yapılmadığını anlamalarına yardımcı olur. Bu, sonunda bazı olumsuz sonuçlara yol açabilecek eksik bir mantık veya bir yazım hatası olduğunu gösterebilir.
Önerilen okuma => Kara Kutu testi için eksiksiz bir kılavuz
WBT'yi Gerçekleştirme Adımları
Aşama 1 - Kaynak kodu aracılığıyla bir uygulamanın işlevselliğini anlayın. Bu da, bir test uzmanının programlama dili ve diğer araçlar ile yazılımı geliştirmek için kullanılan teknikler konusunda bilgili olması gerektiği anlamına gelir.
Adım 2 - Testleri oluşturun ve yürütün.
Test kavramını tartıştığımızda, ' kapsama ”En önemli faktör olarak kabul edilmektedir. Burada, Beyaz kutu testi bağlamından maksimum kapsamın nasıl elde edileceğini açıklayacağım.
Ayrıca oku=> Neden ve Etki Grafiği - Maksimum Kapsam İçin Dinamik Test Vakası Yazma Tekniği
Beyaz Kutu Testi Türleri ve Teknikleri
Her beyaz kutu test türü için birkaç tür ve farklı yöntem vardır.
Referans için aşağıdaki resme bakın.
Bugün, esas olarak 'Birim testi beyaz kutu tekniği' nin yürütme testi türleri.
3 Ana Beyaz Kutu Test Tekniği:
- Bildirim Kapsamı
- Şube Kapsamı
- Yol Kapsamı
İfade, dal veya yol kapsamının düzeltilmesi gereken herhangi bir hata veya kusuru tanımlamadığını unutmayın. Yalnızca ya hiç çalıştırılmayan ya da dokunulmadan kalan kod satırlarını tanımlar. Buna dayanarak daha fazla teste odaklanabilir.
Şimdi bu teknikleri basit bir örnekle tek tek anlayalım.
# 1) Bildirim kapsamı:
Bir programlama dilinde, bir ifade, bilgisayarın anlaması ve buna göre davranması için kod veya talimat satırından başka bir şey değildir. Bir ifade, derlendiğinde ve nesne koduna dönüştürüldüğünde çalıştırılabilir bir deyim haline gelir ve program çalışma modundayken eylemi gerçekleştirir.
Bu nedenle 'Bildirim Kapsamı' , adından da anlaşılacağı gibi, kodun her satırının en az bir kez çalıştırılıp çalıştırılmadığını doğrulama yöntemidir.
# 2) Şube Kapsamı:
Bir programlama dilinde 'Dal', 'IF deyimleri' gibidir. Bir IF ifadesinin iki dalı vardır: T rue ve False .
Dolayısıyla, Şube kapsamında (Karar kapsamı olarak da adlandırılır), her şubenin en az bir kez icra edilip edilmediğini doğrularız.
Bir 'IF ifadesi' olması durumunda, iki test koşulu olacaktır:
- Biri gerçek dalı doğrulayacak ve
- Diğer yanlış dalı doğrulamak için.
Bu nedenle, teorik olarak, Şube Kapsamı, yürütüldüğünde her bir karar noktasından her dalın yürütülmesini sağlayan bir test yöntemidir.
# 3) Yol Kapsamı
Yol kapsamı, programın tüm yollarını test eder. Bu, programın tüm yollarının en az bir kez geçilmesini sağlayan kapsamlı bir tekniktir. Yol Kapsamı, Şube kapsamından bile daha güçlüdür. Bu teknik, karmaşık programları test etmek için kullanışlıdır.
Tüm bu beyaz kutu test tekniklerini anlamak için basit bir örnek verelim.
internet güvenlik anahtarım nedir
Ayrıca kontrol edin=> Farklı test türleri
Beyaz Kutu Test Örneği
Aşağıdaki basit sözde kodu düşünün:
INPUT A & B C = A + B IF C>100 PRINT “ITS DONE”
İçin Bildirim Kapsamı - kodun tüm satırlarını kontrol etmek için yalnızca bir test durumuna ihtiyacımız var.
Bunun anlamı:
Eğer düşünürsem TestCase_01 (A = 40 ve B = 70), sonra tüm kod satırları çalıştırılacaktır.
Şimdi soru ortaya çıkıyor:
- Bu yeterli mi?
- Test durumumu A = 33 ve B = 45 olarak düşünürsem ne olur?
İfade kapsamı yalnızca gerçek tarafı kapsayacağından, sözde kod için yalnızca bir test durumu onu test etmek için yeterli OLMAYACAKTIR. Bir testçi olarak olumsuz durumları da dikkate almalıyız.
Bu nedenle, maksimum kapsama için dikkate almalıyız ' Şube Kapsamı ' 'YANLIŞ' koşulları değerlendirecek.
Gerçek dünyada, koşul başarısız olduğunda uygun ifadeler ekleyebilirsiniz.
Şimdi sözde kod şu hale gelir:
INPUT A & B C = A + B IF C>100 PRINT “ITS DONE” ELSE PRINT “ITS PENDING”
İfade kapsamı, sözde kodun tamamını test etmek için yeterli olmadığından, maksimum kapsamı sağlamak için Şube kapsamına ihtiyaç duyarız. .
Dolayısıyla, Şube kapsamı için, bu sözde kodun testini tamamlamak için iki test senaryosu gerekir.
TestCase_01 : A = 33, B = 45
TestCase_02 : A = 25, B = 30
Bununla, kodun her satırının en az bir kez çalıştırıldığını görebiliriz.
Şimdiye kadar elde edilen Sonuçlar şunlardır:
- Şube Kapsamı, Ekstre kapsamından daha fazla kapsam sağlar.
- Şube kapsamı Beyan kapsamından daha güçlüdür.
- % 100 Şube kapsamı,% 100 ekstre kapsamı anlamına gelir.
- Ancak% 100 beyan kapsamı,% 100 şube kapsamını garanti etmez.
Şimdi devam edelim Yol Kapsamı:
Daha önce belirtildiği gibi, Yol kapsamı, temelde döngü ifadelerini veya döngü ve karar ifadelerinin kombinasyonunu içeren karmaşık kod parçacıklarını test etmek için kullanılır.
Şu sözde kodu düşünün:
INPUT A & B C = A + B IF C>100 PRINT “ITS DONE” END IF IF A>50 PRINT “ITS PENDING” END IF
Şimdi maksimum kapsamı sağlamak için 4 test senaryosuna ihtiyacımız var.
Nasıl? Basitçe - 2 karar ifadesi vardır, bu nedenle her bir karar bildirimi için test etmek için iki dal gerekir. Biri doğru, diğeri yanlış durum için. Dolayısıyla, 2 karar ifadesi için, doğru tarafı test etmek için 2 test senaryosu ve yanlış tarafı test etmek için 2 test senaryosu gerekir, bu da toplam 4 test senaryosu oluşturur.
Bunları basitleştirmek için, sahip olduğumuz sözde kodun aşağıdaki akış şemasını ele alalım:
Tam kapsama sahip olmak için aşağıdaki test senaryolarına ihtiyacımız var:
TestCase_01: Bir = 50, B = 60
TestCase_02 : A = 55, B = 40
TestCase_03: Bir = 40, B = 65
TestCase_04: A = 30, B = 30
Yani kapsanan yol:
Kırmızı Çizgi - TestCase_01 = (A = 50, B = 60)
Mavi Çizgi = TestCase_02 = (A = 55, B = 40)
Turuncu Çizgi = TestCase_03 = (A = 40, B = 65)
Yeşil Çizgi = TestCase_04 = (A = 30, B = 30)
******************
= >> Bize Ulaşın listenizi burada önermek için
*****************
Beyaz Kutu Test Araçları
Aşağıda en iyi beyaz kutu test araçlarının bir listesi verilmiştir.
# 1) Veracode
ağ güvenlik anahtarı parola ile aynı mı
Veracode'un beyaz kutu test araçları, yazılım kusurlarını daha düşük bir maliyetle hızlı ve kolay bir şekilde tanımlamanıza ve çözmenize yardımcı olacaktır. .NET, C ++, JAVA vb. Gibi çeşitli uygulama dillerini destekler ve ayrıca masaüstü, web ve mobil uygulamaların güvenliğini test etmenizi sağlar. Yine de, Veracode aracının başka birçok avantajı vardır. Veracode White kutu test araçları hakkında ayrıntılı bilgi için lütfen aşağıdaki bağlantıyı kontrol edin.
Web Sitesi Bağlantısı: Veracode
# 2) EclEmma
EclEmma, başlangıçta Eclipse çalışma tezgahında test çalışmaları ve analiz için tasarlandı. Ücretsiz bir Java kodu kapsama aracı olarak kabul edilir ve aynı zamanda çeşitli özelliklere sahiptir. EclEmma'yı yüklemek veya hakkında daha fazla bilgi edinmek için lütfen aşağıdaki bağlantıya göz atın.
Web Sitesi Bağlantısı: EclEmma
# 3) RCUNIT
C programlarını test etmek için kullanılan bir çerçeve RCUNIT olarak bilinir. RCUNIT, MIT Lisansının koşullarına göre uygun şekilde kullanılabilir. Kullanımı ücretsizdir ve yüklemek veya hakkında daha fazla bilgi edinmek için lütfen aşağıdaki bağlantıyı kontrol edin.
Web Sitesi Bağlantısı: RCUNIT
# 4) cfix
cfix, yalnızca test takımları geliştirmeyi olabildiğince basit ve kolay hale getirmeyi amaçlayan C / C ++ için birim test çerçevelerinden biridir. Bu arada, cfix tipik olarak NT Kernel modu ve Win32 için özelleşmiştir. Cfix'i yüklemek ve hakkında daha fazla bilgi edinmek için lütfen aşağıdaki bağlantıya göz atın
Web Sitesi Bağlantısı: cfix
# 5) Google Testi
Googletest, Google'ın C ++ test çerçevesidir. Test Keşfi, Ölüm testleri, Değer parametreleştirilmiş testler, önemli ve önemli olmayan hatalar, XML test raporu oluşturma vb. GoogleTest'in birkaç özelliğidir, ancak başka birkaç özellik de vardır. Linux, Windows, Symbian, Mac OS X, GoogleTest'in kullanıldığı birkaç platformdur. Amacıylaİndirin, lütfen aşağıdaki bağlantıyı kontrol edin.
İndirme: {link: Google testi
# 6) EMMA
Emma, kullanımı kolay ücretsiz bir JAVA kod kapsama aracıdır. Çeşitli özellikler ve faydalar içerir. Emma hakkında daha fazla bilgi edinmek ve indirmek için lütfen aşağıdaki bağlantıyı kontrol edin.
İndirme: {link: EMMA
# 7) NUnit
NUnit, test sonuçlarını değerlendirmek için herhangi bir manuel müdahale gerektirmeyen, kullanımı kolay bir açık kaynak birim test çerçevesidir. Tüm .NET dillerini destekler. Ayrıca veriye dayalı testleri destekler ve testler NUnit altında paralel çalışır. NUnit'in önceki sürümleri NUnit lisansını kullanıyordu ancak NUnit 3, MIT lisansı altında yayınlandı. Ancak her iki lisans da herhangi bir kısıtlama olmaksızın ücretsiz kullanıma izin verir. NUnit hakkında daha fazlasını indirmek ve öğrenmek için lütfen aşağıdaki bağlantıya bakın.
İndirme: {link: NUnit
# 8) CppUnit
CppUnit, C ++ ile yazılmış bir birim test çerçevesidir ve JUnit'in bağlantı noktası olarak kabul edilir. CppUnit için test çıktısı XML veya metin biçiminde olabilir. Kendi sınıfı ile birim testleri oluşturur ve test takımlarında testler çalıştırır. LGPL altında lisanslanmıştır. CppUnit'i indirmek ve hakkında daha fazla bilgi edinmek için lütfen aşağıdaki bağlantıyı kontrol edin.
İndirme: {link: CppUnit
# 9) JUnit
JUnit, Java Programlama Dili'nde test otomasyonunu destekleyen sessiz ve basit bir birim test çerçevesidir. Temelde Test Driven Development'ı destekler ve aynı zamanda Test kapsamı raporu sağlar. Eclipse Public License altında lisanslanmıştır. Ücretsiz indirmek ve JUnit hakkında daha fazla bilgi edinmek için lütfen aşağıdaki bağlantıyı kontrol edin.
İndirme: {link: JUnit
# 10) JsUnit
JsUnit, JUnit'in javascript'e bağlantı noktası olarak kabul edilir. Ve İstemci taraflı Javascript'i desteklemek için açık kaynaklı bir birim test çerçevesidir. GNU Public License 2.0, GNU Lesser Public License 2.1 ve Mozilla Public License 1.1 altında lisanslanmıştır. JsUnit'i indirmek ve hakkında daha fazla bilgi edinmek için lütfen aşağıdaki bağlantıyı kontrol edin.
İndirme: {link: JsUnit
Ayrıca, altında listelediğimiz tüm araçları kontrol edin. Statik kod analizi İşte .
Beyaz kutu tekniği için kullandığınız daha basit veya gelişmiş araçları önermekten çekinmeyin.
Sonuç
Yalnızca kara kutu testine güvenmek, maksimum test kapsamı için yeterli değildir. Hem kara kutu hem de beyaz kutu test tekniklerinin bir kombinasyonuna ihtiyacımız var. maksimum kusurları kapsar .
Doğru yapılırsa, Beyaz kutu testi kesinlikle yazılım kalitesine katkıda bulunacaktır. Kod hakkında en 'tarafsız' görüşü sağlayabileceğinden, test uzmanlarının bu teste katılması da iyidir. :)
Bu makalede tartıştığımız yöntemlerle ilgili herhangi bir sorunuz varsa bize bildirin.
Önerilen Kaynaklar
- Kara Kutu Testi ile Beyaz Kutu Testi Arasındaki Temel Farklılıklar
- Kara Kutu Testi: Örnekler ve Tekniklerle Ayrıntılı Bir Eğitim
- Fonksiyonel Test ve Fonksiyonel Olmayan Test
- En İyi Yazılım Test Araçları 2021 (QA Test Otomasyon Araçları)
- Yazılımı Test Ederken Kutunun Dışında Düşünmek!
- Pratik Örneklerle Taşınabilirlik Testi Kılavuzu
- Alfa Testi ve Beta Testi (Tam Kılavuz)
- Yazılım Testi Türleri: Ayrıntılarla Birlikte Farklı Test Türleri