Gri Kutu (Grey-box) Test

gri-kutu-grey-box-test (büyük resim için tıklayın)

Gri Kutu Testi Nedir?

Gri kutu testi (Grey-box Testing), yazılım test süreçlerinde kullanılan bir yöntemdir ve kara kutu testi ile beyaz kutu testi arasında bir yerde konumlanır. Bu yöntemde, test yapan kişi sistemin bazı iç detaylarına sahiptir, ancak tüm kodun işleyişine tamamen hâkim değildir. Hem dışarıdan kullanıcı perspektifini hem de içeriden teknik detayları test eder.

Gri Kutu Testi Nasıl Yapılır?

Gri kutu testi, sistemin hem işlevsel hem de yapısal yönlerini test eder ve şu adımları içerir:

1. Sistemin Kısmi Yapısını Anlama

  • Test yapan kişi, sistemin tasarımı veya veritabanı mantığı gibi teknik bilgilere sahip olabilir.
  • Ancak, tam kod erişimi genellikle gerekmez.

2. Test Senaryolarının Hazırlanması

  • Hem işlevsel (girdilere karşı beklenen çıktılar) hem de yapısal (arka uç işleyişi) detaylar dikkate alınarak test senaryoları oluşturulur.

3. Testlerin Çalıştırılması

  • Test, bir modül veya sistem bileşeninin nasıl çalıştığını analiz ederken, aynı zamanda dışarıdan kullanıcı girdilerini de değerlendirir.

4. Sonuçların Değerlendirilmesi

  • Test edilen modülün, sistemin geri kalanıyla doğru şekilde çalışıp çalışmadığı kontrol edilir.

Gri Kutu Testine Örnek

Senaryo:

Bir kullanıcı girişi (login) modülü testi.

Adımlar:

İşlevsel Test (Kara Kutu Yaklaşımı):

  • Kullanıcı adı ve şifre girişlerini test edin:
    • Geçerli giriş: user123, Password123 → Giriş başarılı.
    • Geçersiz giriş: user123, wrongpass → Hata mesajı.

Teknik Yapıyı İnceleme (Beyaz Kutu Yaklaşımı):

  • Giriş formunun, şifreyi arka uçta nasıl doğruladığını kontrol edin.
  • Şifre, veri tabanına şifrelenmiş olarak gönderiliyor mu?

Veri Akışını Test Etme:

  • Giriş doğrulaması sırasında veri tabanındaki sorguların doğru çalıştığından emin olun:
    • SQL enjeksiyon girişimleriyle güvenlik açıklarını kontrol edin.

Test Senaryoları:

Kullanıcı AdıŞifreBeklenen ÇıktıVeri Tabanı Doğrulama
user123Password123Giriş başarılıŞifre eşleşti
user123wrongpassGiriş başarısızŞifre eşleşmedi
' OR 1=1 --Password123Giriş başarısızSQL enjeksiyon reddedildi

Gri Kutu Testinin Avantajları

  1. Kapsamlı Test: Hem dışarıdan hem de içeriden test yapılarak sistemin daha geniş bir şekilde incelenmesi sağlanır.
  2. Daha Fazla Hata Yakalama: Hem işlevsel hem de yapısal hataları tespit eder.
  3. Güvenlik ve Performans Analizi: Arka uç veri akışı ve sorgular gibi güvenlik açıklarını tespit etmeye yardımcı olur.

Gri Kutu Testinin Dezavantajları

  1. Orta Düzey Teknik Bilgi Gerekir: Test yapan kişi hem işlevsel hem de yapısal testlere dair bilgiye sahip olmalıdır.
  2. Kapsamın Belirlenmesi Zor Olabilir: Tüm detaylara erişim olmadığı için sınırları net çizmek zor olabilir.

Tekniklerin Karşılaştırması

ÖzellikKara Kutu (Black-box)Beyaz Kutu (White-box)Gri Kutu (Grey-box)
Bilgi Gereksinimiİç yapı bilinmez.İç yapı tamamen bilinir.Kısmi bilgi gereklidir.
KapsamGiriş ve çıkışlara odaklanır.Kodun tamamını kapsar.Hem işlevsel hem de yapısal.
Kim Yapar?Test mühendisleri, kullanıcılar.Geliştiriciler, test mühendisleri.Hem geliştiriciler hem de test mühendisleri.
Odak Noktasıİşlevsellik.Kodun mantığı ve yapısı.Hem işlevsellik hem yapı.
AvantajKullanıcı bakış açısı sağlar.Detaylı kod analizi yapar.Her iki yöntemin avantajını birleştirir.
DezavantajDerin nedenleri göremez.Teknik bilgi gerektirir.Karmaşık olabilir.

Sonuç

Yazılım test süreçlerinde kullanılan teknikler, yazılımın ihtiyaçlarına ve geliştiricinin uzmanlığına göre seçilir. Örneğin:

  • Kullanıcı odaklı testler için kara kutu testi uygundur.
  • Derinlemesine kod analizi gerektiğinde beyaz kutu testi tercih edilir.
  • Hem işlevsel hem de yapısal hatalar tespit edilmek istendiğinde gri kutu testi kullanılabilir.

Yazılımın karmaşıklığı ve kapsamı arttıkça bu tekniklerin bir kombinasyonu kullanılabilir.

*Gönderi ve görsel chatgpt ile oluşturulmuştur

omurs

Ö S, 30 Ağustos 2018 Perşembe 15:30 tarihinde kayıt oldu

Etiketler

Beğeni


Yıllara Göre Gönderiler








LombokLoglamaB2C (Business-to-Consumer)B2B (Business-to-Business)İçerik Yönetim Sistemi - CMS (Content Management System)Pagination (Sayfalama)Sanal Özel Ağ - VPN (Virtual Private Network)Cronjob (Zamanlanmış Görevler)Printer-YazıcıJava'daki İlkel Veri Tipleri ve Alabilecekleri DeğerlerBit & Byte ve Hafıza Boyutlarındaki Ölçüm BirimleriSanallaştırma (Virtualization)DNS KayıtlarıE-Fatura ve E-ArşivYazılım Lisans TürleriAudit (Denetim) Açık Kaynak (Open Source)Monitoring (İzleme)Sitemap & Robots.txtKilometretaşı (Milestone)BSMV (Banka ve Sigorta Muameleleri Vergisi)KKDF (Kaynak Kullanımı Destekleme Fonu)Siber Pazartesi (Cyber Monday)Black Friday (Kara Cuma)Hotlink.htaccessCryptoLockerMalwareTrojanWormDependency (Yazılım Geliştirme Sürecinde Paket Bağımlılığı)Configuration (Yazılım Geliştirme Sürecinde Yapılandırma)Yahoo ve Yahoo'nun Başarısızlık NedenleriArchiving (Yazılım Geliştirme Sürecinde Arşivleme)Görsel Dosya Türleri (Image Types)ReleaseVersioning & Tagging (Versiyonlama ve Etiketleme)BuildJob (Yazılım Geliştirme Sürecinde Görevler)SonarQubeCDATA (Character Data)Alan Adı Uzantıları (Domain Name Extensions)Regresyon Kara Kutu (Black-Box) TestBeyaz Kutu (White-box) TestGri Kutu (Grey-box) TestYazılım Geliştirme Sürecindeki Temel Test TürleriKod gözden geçirme (Code Review)Birim Testi (Unit Testing)Yazılım Sürecinde EntegrasyonJAR & WAREager & Lazy Fetch TypeMaskelemeKPI (Key Performance Indicator)KII (Key Impact Indicator)Projenin JAR Dosyasını Oluştur - JAR PathSunucu için Linux dağıtım SeçimiKonyteynerler (container technologies)Runtime & Compile Time (Çalışma ve Derleme Zamanı)@Anotasyonlar (@Annotations)