Dinamik Test Nedir? Türler, Teknikler ve Örnekler

⚡ Akıllı Özet

Dinamik test, uygulamayı çalıştırır ve çalışan kodun gerçek girdilerle nasıl davrandığını gözlemler; böylece test uzmanları, hiçbir doküman incelemesinin ortaya çıkaramayacağı işlevselliği, performansı ve kararlılığı doğrulayabilirler.

  • 🎯 Amaç: Gerçek çalışma zamanı davranışını doğrulayın, onu tanımlayan belgeleri değil.
  • 🔀 İki şube: Beyaz kutu kodu inceler, kara kutu ise davranışı inceler.
  • 🧱 Dört seviye: Birim testi, entegrasyon testi, sistem testi ve kabul testi, kod çalıştırmayı içerir.
  • ⚙️ İşlevsel olmayan: Performans, kurtarma, uyumluluk, güvenlik ve kullanılabilirlik kontrolleri burada yapılır.
  • 🔄 Proses: Strateji, test tasarımı, ortam kurulumu, uygulama ve hata raporlaması.
  • ???? Değiş tokuş: Zaman, ortam ve maliyetten ödün vererek daha derinlemesine hata tespiti.

Dinamik Test Türleri, Teknikleri ve Örnekleri

Dinamik Test Nedir?

Dinamik Test Dinamik test, yazılım kodunun dinamik davranışını test etmek için kullanılan bir yazılım test yöntemidir. Dinamik testin temel amacı, sabit olmayan değişkenler olan dinamik değişkenlerle yazılım davranışını incelemek ve yazılım çalışma ortamındaki zayıf noktaları bulmaktır. Dinamik davranışı test etmek için kodun çalıştırılması gerekir.

Test şu şekildedir: doğrulama ve onaylamaTest işleminin tamamlanması için her iki doğrulama (V) da gereklidir. Doğrulama, gereksinimleri, tasarım belgelerini ve kodu çalıştırmadan inceleyen statik testlerle yapılır. Geçerlilik ise, derlemeyi çalıştıran ve uygulamanın gerçekte ne yaptığını, yapması gerekenle karşılaştıran dinamik testlerle yapılır.

Aşağıdaki tablo, ikisi arasındaki farkı bir bakışta ortaya koymaktadır.

Görünüş Statik test (doğrulama) Dinamik test (doğrulama)
Code infaz Yok hayır Evet
Tipik aktiviteler Revincelemeler, detaylı incelemeler, denetimler, statik analiz Tüm test seviyelerinde test senaryosu yürütülmesi
Soru cevap Ürünü doğru mu üretiyoruz? Doğru ürünü mü üretiyoruz?
Bulunan hatalar Belirsiz gereksinimler, kodlama standardı ihlalleri, ölü kod Yanlış çıktı, bellek sızıntıları, zamanlama hataları, entegrasyon hataları
Başlangıç Bir eser var olur olmaz Çalıştırılabilir bir derleme oluşturulduktan sonra
Bir onarımın göreceli maliyeti Daha düşük, çünkü kusurlar daha erken tespit ediliyor. Daha yüksek, çünkü kusurlar daha sonra ortaya çıkıyor.

Dinamik Test Örneği

Kısa bir örnek olay incelemesi, dinamik testlerin pratikte nasıl işlediğini göstermektedir.

Bir giriş sayfasının test edildiğini varsayalım. Bu sayfada Kullanıcı Adı ve Şifre olmak üzere iki alan bulunuyor ve Kullanıcı Adı alanı yalnızca alfanümerik karakterlerle sınırlandırılmış durumda.

Kullanıcı Kullanıcı Adı olarak “ girdiğindeGuru"99" girdiğinde sistem bunu kabul eder. Kullanıcı "Guru"99@123" ifadesinde uygulama bir hata mesajı veriyor. Bu sonuç, kodun kullanıcı girdisine göre dinamik olarak hareket ettiğini gösteriyor.

Dolayısıyla dinamik test, gerçek sistemle çalışmak, bir girdi sağlamak ve uygulamanın gerçek davranışını beklenen davranışla karşılaştırmak anlamına gelir; başka bir deyişle, hataları bulma amacıyla sistemle çalışmaktır.

Dolayısıyla dinamik test, doğru yazılımı oluşturmak için bir yazılım uygulamasını farklı ortamlarda, son kullanıcının bakış açısıyla doğrulamak sürecidir.

Dinamik test ne işe yarar?

Dinamik testlerin temel amacı, yazılımın kurulum sırasında ve sonrasında düzgün çalışmasını sağlayarak, büyük kusurlar içermeyen istikrarlı bir uygulama sunmaktır. Hiçbir yazılım tamamen hatasız değildir ve testler kusurların varlığını gösterebilir, ancak yokluğunu asla gösteremez.

Dinamik testler, bu örnekte de görüldüğü gibi, yazılım genelinde tutarlılığı da sağlar.

Bir bankacılık uygulamasında, Hesaplarım, Para Transferi gibi çeşitli ekranlar bulunur. Bill Ödeme yapın. Hepsinin bir tutar alanı var.

Diyelim ki "Hesaplarım" alanında tutar 25,000 olarak, "Para Transferi" alanında da 25,000 dolar olarak gösteriliyor ve Bill Ödeme ekranında 25000 dolar görünüyor. Miktar aynı, ancak görüntülenme şekli farklı, bu da yazılımı tutarsız hale getiriyor.

Tutarlılık yalnızca işlevsellikle sınırlı değildir. Performans, kullanılabilirlik ve uyumluluk gibi standartları da kapsar; bu nedenle dinamik testler çok önemlidir.

Dinamik Test Türleri

Dinamik testler iki kategoriye ayrılır.

  • Beyaz Box Test yapmak
  • Siyah Box Test yapmak

Aşağıdaki diyagram, iki kategoriyi, altlarında yer alan test seviyeleriyle eşleştirmektedir.

Dinamik testler, işlevsel ve işlevsel olmayan seviyelerle beyaz kutu ve kara kutu olarak ikiye ayrılır.

Her tür ve kullanım amacı aşağıda açıklanmıştır.

Beyaz Box Test yapmak — İç yapısı ve tasarımı test uzmanı tarafından bilinen bir yazılım test yöntemidir. Temel amacı, sistemin koda göre nasıl performans gösterdiğini kontrol etmektir. Genellikle geliştiriciler veya programlama bilgisine sahip beyaz kutu test uzmanları tarafından uygulanır.

Siyah Box Test yapmak — İç yapısı, kodu ve tasarımı test edenin bilmediği bir test yöntemidir. Temel amacı, test edilen sistemin işlevselliğini doğrulamaktır. Bu test türü, tüm test paketinin çalıştırılmasını gerektirir, çoğunlukla test uzmanları tarafından yapılır ve programlama bilgisi gerektirmez.

Kara kutu testleri de yine iki türe ayrılır.

  • Fonksiyonel Testler
  • İşlevsel Olmayan Testler

Fonksiyonel Testler

Fonksiyonel test Geliştirilen tüm özelliklerin işlevsel özelliklere uygun olup olmadığını doğrulamak için gerçekleştirilir. Bu işlem, işlevsel kodun çalıştırılmasıyla yapılır. test senaryoları Kalite kontrol ekibi tarafından yazılmıştır. Bu aşamada, sisteme girdi verilerek, çıktı doğrulanarak ve gerçek sonuçlar beklenen sonuçlarla karşılaştırılarak sistem test edilir.

Fonksiyonel testlerin farklı seviyeleri vardır ve bunların en önemlileri aşağıda belirtilen dört seviyedir.

  • Birim Testi — Birim, test edilebilir küçük bir kod parçasıdır. Birim testi, yazılımın tek bir birimi üzerinde geliştiriciler tarafından gerçekleştirilir.
  • Entegrasyon Testi — Birim testlerinden sonra, test edilebilir ayrı birimlerin birleştirilmesiyle gerçekleştirilir. Geliştiriciler veya test uzmanları tarafından yapılabilir.
  • Sistem Testi — Sistemin gereksinimlere uygun şekilde davrandığından emin olmak için gerçekleştirilir. Genellikle, sistemin tamamı hazır olduğunda, test uzmanları tarafından, sürüm QA ekibine teslim edildikten sonra yapılır.
  • Kabul testleri — Sistemin iş gereksinimlerini karşılayıp karşılamadığını ve kullanıma veya devreye almaya hazır olup olmadığını doğrulamak için gerçekleştirilir. Genellikle son kullanıcılar tarafından yapılır.

İşlevsel Olmayan Testler

İşlevsel olmayan testler İşlevsel yönlere odaklanmayan ve bunun yerine bellek sızıntıları, performans veya sağlamlık gibi sistemin işlevsel olmayan özelliklerine yoğunlaşan bir test tekniğidir. İşlevsel olmayan test, tüm test seviyelerinde gerçekleştirilir.

İşlevsel olmayan test tekniklerinin birçok çeşidi vardır ve bunların en önemlileri aşağıda belirtilen beş tanesidir.

  • Performans testi — Sistem yanıt süresinin, istenen ağ yükü altında, gereksinimlere uygun olarak normal olup olmadığını kontrol eder.
  • Kurtarma Testi — Sistem çökmelerinden ve donanım arızalarından ne kadar iyi kurtulduğunu doğrular.
  • Uyumluluk Testi — Sistemin farklı ortamlarda nasıl davrandığını doğrular.
  • Güvenlik Testi — Uygulamanın sağlamlığını doğrular ve yalnızca yetkili kullanıcıların ve rollerin sisteme erişebilmesini sağlar.
  • Kullanılabilirlik testi — Sistemin son kullanıcılar tarafından kullanılabilirliğini ve bu kullanıcıların sistemle ne kadar rahat olduklarını doğrular.

Dinamik Test Teknikleri

Türler belirlendiğine göre, bir sonraki soru dinamik bir test döngüsünün gerçekte nasıl yürütüleceğidir.

Dinamik test teknikleri STLC Dinamik test, testler için gereksinim analizi, test planlaması, test senaryosu tasarımı ve uygulaması, test ortamı kurulumu, test senaryosu yürütülmesi, hata raporlaması ve son olarak testin kapatılması gibi görevlerden oluşur. Dinamik testteki her görev, test sürecindeki bir önceki görevin tamamlanmasına bağlıdır.

STLC (Yazılım Test Yaşam Döngüsü) içerisinde, gerçek dinamik test süreci test senaryosu tasarımıyla başlar. Aşağıdaki diyagram, her biri daha sonra açıklanan faaliyetlerin sırasını göstermektedir.

Dinamik test süreci akışı; test tasarımından yürütmeye ve hata raporlamaya kadar uzanır.

Sürece başlamadan önce, dinamik test için izlenecek strateji üzerinde anlaşmaya varılmalıdır.

Bir test stratejisi öncelikle mevcut kaynaklara ve zaman dilimine odaklanmalıdır. Bu iki faktöre dayanarak, testin amacı, testin kapsamı, testin aşamaları veya döngüleri, ortam türü, karşılaşılabilecek varsayımlar veya zorluklar ve risklerin tümü belgelenmelidir.

Strateji belirlenip yönetim tarafından kabul edildikten sonra, asıl test senaryosu tasarım süreci başlar.

Test tasarımı ve uygulaması

Bu aşamada ekip aşağıdakileri belirler.

  • Test edilecek özellikler
  • Bu özelliklerden türetilen test koşulları
  • Test koşullarından türetilen kapsama maddeleri
  • Kapsama öğelerinden türetilen test senaryoları

Siyah kutu test tasarım teknikleri eşdeğerlik bölümlendirmesi, sınır değer analizi gibi karar tablosu testi hem de durum geçiş testi Bunlar, bir test koşulunu somut bir yürütülebilir durum kümesine dönüştüren unsurlardır.

Test ortamı kurulumu

MKS test ortamı Bu aşama her zaman üretim ortamına benzer olmalıdır. Bu aşamada, derleme işlemi tamamlanır ve test makineleri yönetilir ve yapılandırılır.

Test yürütme

Bu aşamada test senaryoları manuel olarak veya başka bir yolla fi fiilen yürütülür. otomasyonVe elde edilen sonuçlar, beklenen sonuçlarla karşılaştırılır.

Hata raporu yakalandı

Testin yürütülmesi sonucunda beklenen ve gerçekleşen sonuçlar aynı değilse, test senaryosu Başarısız olarak işaretlenmeli ve bir hata kaydı oluşturulmalıdır. kusur yönetimi proses.

Dinamik Testin Avantajları

  • Dinamik testler, tespit edilmesi çok zor veya karmaşık olarak kabul edilen ve statik analizin hiç kapsayamadığı kusurları ortaya çıkarır.
  • Yazılım uçtan uca çalıştırılır, bu da hem ürünün hem de projenin kalitesini artırır.
  • Dinamik test, çalışan bir sistemdeki güvenlik tehditlerini tespit etmenin temel bir yoludur.
  • Bellek sızıntıları, zamanlama sorunları ve entegrasyon hataları gibi yalnızca çalışma zamanında ortaya çıkan hatalar burada ve başka hiçbir yerde görülmez.

Dinamik Testin Dezavantajları

  • Dinamik testler zaman alıcıdır çünkü uygulamanın veya kodun çalıştırılması büyük miktarda kaynak gerektirir.
  • Bu durum projenin maliyetini artırır çünkü yazılım yaşam döngüsünün başlarında başlamaz ve daha sonraki aşamalarda düzeltilen sorunların onarımı daha pahalıya mal olur.
  • Üretim ortamına benzer bir ortam ve gerçekçi test verileri ön koşuldur ve bunların oluşturulması ve sürdürülmesi çaba gerektirir.

SSS

Geliştiriciler, birim ve bileşen kontrollerini gerçekleştirerek beyaz kutu tarafının sorumluluğunu üstlenirler. Kalite güvence test uzmanları ise sistem testlerinden başlayarak siyah kutu tarafının sorumluluğunu üstlenirler. Son kullanıcılar ise kabul testleriyle döngüyü tamamlarlar.

Modeller, gereksinimleri ve mevcut durumları okur, ardından insan eliyle yapılan iş listesinin genellikle atladığı sınır değerlerini, geçersiz girdileri ve durum dizilerini önerir. Test uzmanı, yürütmeden önce her beklenen sonucu yine de onaylar.

Evet. Doğrulama iskeleti, sayfa nesneleri ve fikstür kurulumu, bir asistanın iyi bir şekilde ele alabileceği tekrarlayan kodlardır. Doğru davranışın ne olduğuna karar vermek, gereksinimlere dayanan insan yargısına bağlıdır.

Birim çerçeveleri gibi JUnit, TestNG ve pytest'in yanı sıra, aşağıdakiler gibi kullanıcı arayüzü ve API çalıştırıcıları: Selenium, Cypress hem de PostmanŞu gibi araçları yükleyin: JMeter işlevsel olmayan yönünü ele almak otomasyon.

Beyaz kutu çalışma raporları, ölçümlenmiş çalıştırmalardan elde edilen veriye göre dallanma ve yol kapsamını gösterir. Kara kutu çalışma raporları ise gereksinim ve test koşulu kapsamını gösterir. Bu rakamlardan hiçbiri tek başına derlemenin yeterince test edildiğini kanıtlamaz.

Hayır. Dinamik test, kodu kim veya ne çalıştırırsa çalıştırsın, kodu yürütmeyi tanımlar. Senaryo tabanlı bir test ise... Manuel Çalıştırma ve otomatikleştirilmiş regresyon test paketi, her ikisi de dinamik testtir.

Evet. Dinamik Uygulama Güvenlik Testi, çalışan bir uygulamayı dışarıdan, tıpkı kara kutu yöntemiyle inceler. güvenlik testi Bu işlemi gerçekleştirir ve yalnızca çalışma zamanında ortaya çıkan güvenlik açıklarını raporlar.

Bu, bir sistemin omurgasıdır. Birim ve API paketleri her commit'i kontrol ederken, daha uzun süren süreçler de söz konusudur. gerileme Performans testleri, dağıtılmış bir sürüme karşı her gece yürütülür.

Bu yazıyı şu şekilde özetleyin: