Aşağıdaki makale size yardımcı olacaktır: Gri Kutu Testi nedir? Teknikler ve Örnekler
Test kapsamını artırmak için herhangi bir karmaşık yazılım sisteminin tüm katmanlarına odaklanır. Sunum katmanının ve dahili kodlama yapısının test edilmesini sağlar. Daha çok entegrasyon ve penetrasyon testlerinde kullanılır.
Bu Blog’da Gri Kutu Testinden geçiyoruz.
İçindekiler:
Siber Güvenlik ile ilgileniyorsanız, işte size bir video
Nedir Gri Kutu Testi?
Gri kutu testi veya gri kutu testi, test uzmanlarının eksiksiz ürün bilgisine sahip olmadığı ve dahili işlevsellik ve kod hakkında yalnızca sınırlı bilgiye sahip olduğu bir yazılım test tekniğidir. Gereksinim hakkındaki bilgilerin yanı sıra ayrıntılı tasarım belgelerine de erişebilirler.
Bu test yöntemi, kara kutu ve beyaz kutu testinin bir karışımıdır.
Test cihazının kara kutu testi sırasında kod hakkında bilgisi yoktur. Verilen girdi için çıktının ne olacağını bilirler. Test cihazı, beyaz kutu testi sırasında kod hakkında tam bilgiye sahiptir.
Gri kutu testi en çok web uygulamalarını değerlendirmede, entegrasyon testi gerçekleştirmede, dağıtılmış ortamları test etmede, iş etki alanlarını test etmede ve güvenlik değerlendirmeleri gerçekleştirmede yardımcı olur. Bu testi yürütürken, test sonuçlarının dahili bilgiden etkilenmemesini sağlamak için test edenler ve geliştiriciler arasında net ayrımlar yapın.
Neden Gri Kutu Testi?
Gri Kutu Testi aşağıdaki nedenlerle yapılır:
- Hem kara kutu hem de beyaz kutu testinin avantajlarını birleştirir
- Geliştirici ve test kullanıcısı girdilerini birleştirir ve genel ürün kalitesini iyileştirir
- İşlevsel ve işlevsel olmayan türleri test etmenin uzun süreciyle ilişkili ek yükü azaltır.
- Bir geliştiricinin hataları düzeltmesi için yeterli zaman sağlar
- Test, tasarımcıdan çok kullanıcının bakış açısından yapılır.
Gri Kutu Testinin Amacı
Gri kutu testinin amacı, işlevsel ve işlevsel olmayan testleri birleştirerek ürün kalitesini iyileştirmektir, bu da zamandan ve uzun uygulama test etme sürecinden tasarruf sağlar.
Diğer bir amaç ise, uygulamayı tasarımcıdan çok kullanıcının bakış açısıyla test ettirmek ve geliştiricilere hataları düzeltmeleri için yeterli zamanı vermektir.
Gri Kutu Testi Süreci:
Test cihazının Gri kutu testinde test senaryoları tasarlaması gerekmez. Test senaryoları bunun yerine dahili durumları, program davranışını ve uygulama mimarisi bilgisini değerlendiren algoritmalar kullanılarak oluşturulur. Test cihazı daha sonra testleri çalıştırır ve sonuçları yorumlar.
Gri kutu testi yaparken aşağıdakileri yapmalısınız:
- Beyaz ve kara kutu test yöntemlerinden girdileri belirleyin ve seçin.
- Bu girdilerden en olası sonuçları belirleyin.
- Test aşaması için kritik yolları belirleyin.
- Derinlemesine test için alt işlevleri belirleyin.
- Alt fonksiyonlar için girdileri belirleyin.
- Alt fonksiyonların olası çıktılarını belirleyin.
- Alt işlev test durumlarını gerçekleştirin.
- Sonuçlar değerlendirilmeli ve doğrulanmalıdır.
- Adım 4-8 tekrarlanmalıdır.
- 7. ve 8. adımlar tekrarlanmalıdır.
Gri kutu testi test durumları, GUI ile ilgili, güvenlikle ilgili, veritabanıyla ilgili, tarayıcıyla ilgili, operasyonel sistemle ilgili vb. içerebilir.
Gri Kutu Sızma Testi Nedir?
Etik (beyaz şapkalı) bilgisayar korsanları olarak, keşif yaparak, güvenlik açıklarını belirleyerek ve benzer teknikler kullanarak sistemlerinize girerek bir saldırganı kopyalarlar. Bir saldırganın aksine, hassas verileri ifşa etmeden veya ortamınıza zarar vermeden önce testimizi durdururuz. Gri Kutu Sızma Testi, bize bir sistem hakkında “kullanıcı” bilgisi ve sisteme erişim sağlar. İçeriden gelen bir tehdidi veya birden çok kullanıcıyı destekleyen bir uygulamayı test ederken, genellikle bir Gri Kutu Sızma Testi kullanılır. İçeriden gelen tehdit, bir kullanıcının (yönetici olmayan) ortamınıza neden olabileceği olası zararı belirlemek için değerlendirilir. Uygulama testi, bir uygulamadaki bir kullanıcının başka bir kullanıcının verilerine erişememesini veya ayrıcalıklarını yükseltememesini sağlamak için kullanılır.
Bir Gri Kutu Sızma Testi, aşağıda listelenen iki senaryoda yaygın olarak kullanılır:
Uygulama Testi:
Uygulama Testi senaryosunda, genellikle bir uygulamayı, örneğin bir web uygulaması veya özel olarak oluşturulmuş bir uygulama gibi, kimliği doğrulanmış bir kullanıcı olarak test ederiz.
İçeriden Tehditler:
İçeriden Öğrenenlerin Tehdidi senaryosu için bize sık sık bir Kurumsal Windows Etki Alanına kullanıcı düzeyinde erişim verilir. Bu doğrulanmış, kullanıcı düzeyinde erişim, kullanıcı haklarını, izinlerini ve erişimi doğrulamak ve test etmek için kullanılır. Kullanıcılara yalnızca işlerini yapmaları için ihtiyaç duydukları bilgiler verilmelidir. Birçok kuruluş, bir “kullanıcının” sahip olabileceği tüm erişimi tam olarak anlamaz veya belgelemez.
Gri Kutu Testi Araçları:
Otomatikleştirilmiş test araçları, belirli amaçlar için test uygulamalarında kullanılmak üzere tasarlanmıştır. Örneğin, selenyum web uygulamalarını yalnızca tarayıcılarda test etmek için kullanılırken, appium mobil uygulama testini otomatikleştirmek için kullanılır. Dolayısıyla, çeşitli otomasyon test araçları aşağıdaki gibidir:
- Selenyum
- DBUnit
- Appium
- Emin olabilirsiniz
- Salatalık
- NUnit
- postacı
- Geğirme Süiti
- JUnit
- Chrome Geliştirme Araçları
Gri Kutu Testi Teknikleri:
Gri kutu test teknikleri, uygulamalarınızın penetrasyon testini etkinleştirmeyi amaçlar. Bu teknikler, hem içeriden gelen tehditleri (uygulamaları manipüle etmeye çalışan çalışanlar) hem de harici kullanıcıları (güvenlik açıklarından yararlanmaya çalışan saldırganlar) test etmenize olanak tanır.
Gri kutu testi, uygulamaların kimliği doğrulanmış kullanıcılar için beklendiği gibi çalışmasını sağlar. Kötü niyetli kullanıcıların, sahip olmalarını istemediğiniz verilere veya işlevlere erişmemesini de sağlayabilirsiniz.
Gri kutu testi yapılırken kullanılabilecek çeşitli teknikler vardır. Test aşamasına ve uygulamanın işlevselliğine bağlı olarak, olası tüm sorunların tanımlandığından emin olmak için birden çok tekniği birleştirmek isteyebilirsiniz.
Gri Kutu Testinin bazı teknikleri şunlardır:
Matris Testi:
Matris testi, bir programdaki tüm değişkenleri analiz etmek için kullanılan bir tekniktir. Geliştiriciler bu teknikte teknik ve ticari riskleri tanımlar ve tüm uygulama değişkenlerinin bir listesi sağlanır. Her değişken daha sonra ortaya koyduğu risklere göre değerlendirilir. Bu teknik, kullanılmayan veya kullanılmayan değişkenleri belirlemek için kullanılabilir.
Gerileme testi:
uygulama değişikliklerinin veya hata düzeltmelerinin mevcut bileşenlerde hatalarla sonuçlanıp sonuçlanmadığı. Uygulamanızdaki değişikliklerin hataları yeniden konumlandırmak yerine yalnızca ürünü iyileştirmesini sağlamak için kullanılabilir. Girdiler, çıktılar ve bağımlılıklar değişmiş olabileceğinden, regresyon testi yaparken testlerinizi yeniden oluşturmanız gerekir.
Desen Testi:
Örüntü testi, önceki kusurları değerlendirerek kusurlara yol açan kalıpları belirlemek için kullanılan bir tekniktir. Bu değerlendirmeler ideal olarak kusurlara hangi detayların katkıda bulunduğunu, kusurların nasıl keşfedildiğini ve düzeltmelerin ne kadar etkili olduğunu vurgulamalıdır. Bu bilgiler daha sonra bir uygulamanın yeni sürümlerinde veya benzer yapılara sahip yeni uygulamalarda benzer kusurları belirlemek ve önlemek için kullanılabilir.
Kara Kutu ve Gri Kutu arasındaki fark
|Siyah kutu||Gri Kutu|
|Test eden kişinin uygulamanın iç yapısından habersiz olduğu bir yazılım test tekniğidir.||Test eden kişinin, test edilen uygulamanın iç yapısını yalnızca kısmen anladığı bir yazılım test tekniğidir.|
|Kapalı kutu testi olarak adlandırılır.||Yarı saydam test olarak adlandırılır|
|Uygulama için bilgi şartı yoktur.||Uygulama bilgisi gereklidir, ancak uzman olmak gerekli değildir.|
|Yazılımın dış beklentilerine ve davranışına dayanır.||Bir veritabanı ve veri akış şemaları üzerine kuruludur.|
|Yazılımın bazı özelliklerini geliştirir.||Yazılımın genel kalitesini artırır.|
Gri Kutu Testinin Avantajları ve Dezavantajları
Gri kutu testinin kullanılıp kullanılmayacağına karar verirken aşağıdaki avantaj ve dezavantajları göz önünde bulundurun. Bunlar, gri kutu testinin sizin test durumunuz için uygun olup olmadığını ve ne kadar değer sağlayabileceğini belirlemenize yardımcı olabilir:
Gri Kutu Testinin Avantajları:
- Test, kullanıcının bakış açısını dikkate alır ve böylece genel olarak ürün kalitesini iyileştirir
- Net test hedefleri belirlenir, bu da test uzmanlarının ve geliştiricilerin birlikte çalışmasını kolaylaştırır
- Test yöntemleri, geliştiricilere hataları düzeltmeleri için daha fazla zaman verir
- Geliştiriciler ve test edenler arasındaki çatışmaları ortadan kaldırma potansiyeline sahiptir.
- Test kullanıcılarının programcı olması gerekmez
- Entegrasyon testinden daha ucuzdur
Gri Kutu Testinin Dezavantajları:
- Dağıtılmış sistemlerde, kusurları temel nedenlere bağlamak zor olabilir.
- Dahili uygulama yapısına kısıtlı erişim nedeniyle, kod yolu geçişleri sınırlıdır
- Algoritmaları test etmek için kullanılamaz
- Test senaryoları tasarlamak zor olabilir
Gri Kutu Testi Örnekleri
- Gri kutu test uzmanları, her bir hata kodunun nedenini içeren hata kodu tablosu hakkında bilgiye sahiplerse ve bu tabloya erişimleri varsa, hata kodlarını analiz edebilir ve nedeni derinlemesine araştırabilir. Web sayfasının “Dahili sunucu hatası 500” hata kodunu aldığını ve bu hatanın nedeninin tabloda bir sunucu hatası olarak gösterildiğini varsayalım.
Bir test uzmanı bu bilgileri kullanarak sorunu daha ayrıntılı olarak araştırabilir ve geliştiriciye yalnızca açıklamak yerine ayrıntıları sağlayabilir.
- Bir web sitesini test ederken, test eden kişi bir bağlantıya tıklar ve bir hata mesajı alırsa, Gri kutu test eden kişi hatayı doğrulamak için HTML kodunda değişiklikler yapabilir.
Bu senaryoda, kod değiştirilerek beyaz kutu testi gerçekleştirilir ve test cihazı değişiklikleri ön uçta test ederken kara kutu testi eşzamanlı olarak gerçekleştirilir. Gri kutu testi, Beyaz kutu ile Kara kutunun birleştirilmesiyle üretilir.
Çözüm:
Gri kutu testi, hem kara kutu hem de beyaz kutu test tekniklerini birleştirdiği için çok kullanışlıdır. Bu test yöntemi, web tabanlı uygulamalar, işlevsel test ve etki alanı testi için daha uygundur. Gri kutu testi için test durumlarının oluşturulması, güvenlik, veritabanı, tarayıcı, GUI vb. tüm hususları içerir.
Bu test tekniği, karmaşık senaryolara diğerlerinden daha duyarlıdır. Kaynak kodu veya ikili dosyalar yerine işlevsel belirtimler üzerine kuruludur.