Yazılımda Yıkıcı Test Nedir?

⚡ Akıllı Özet

Yıkıcı test, bir yazılım uygulamasını kasıtlı olarak başarısız olana kadar zorlar ve bu sayede normal işlevsel kontrollerin asla ulaşamayacağı, hatalı kullanım, geçersiz girdi ve öngörülemeyen davranışlar altında sağlamlığın kırıldığı noktaları ortaya çıkarır.

  • 💥 Temel fikir: Uygulama kasıtlı olarak başarısız olacak şekilde tasarlanmıştır, böylece başarısızlık noktaları görünür ve ölçülebilir hale gelir.
  • 🔎 Herhangi bir ön koşul gerekmiyor: Teknik şartnameye ilişkin ön bilgi sahibi olmak isteğe bağlıdır, ancak bu bilgi test stratejisini daha etkili hale getirir.
  • 🇧🇷 Zıt çift: Tahribatsız testler sorunsuz yolu izlerken, tahrip edici testler her türlü yanlış açıdan saldırır.
  • 🧰 Yaklaşımlar: Hata noktası analizi, test uzmanı akran değerlendirmesi, iş incelemesi ve çalışma çizelgeleriyle yapılan keşifsel çalıştırmalar.
  • 🧪 Tekrar kullanılan yöntemler: Regresyon, arayüz, eşdeğerlik bölümleme, döngü ve kabul testi gibi testlerin tümü yıkıcı amaçlara hizmet eder.
  • 📉 Dürüst sınırlar: Kapsamın garanti edilmesi zordur, çaba yüksektir ve bulguların tekrarlanması güç olabilir.

Yazılımda yıkıcı test nedir ve hangi yöntem ve teknikler kullanılır?

Tahribatlı Test Nedir?

Yıkım testi Yıkıcı test, bir yazılım programındaki hata noktalarını bulmak için kullanılan bir yazılım test yöntemidir. Bu teknikte, uygulamanın sağlamlığı kontrol edilebilmesi ve hata noktalarının belirlenebilmesi için kasıtlı olarak başarısız olması sağlanır. Uygulamanın ne yapması gerektiğini doğrulayan test yöntemlerinin aksine, yıkıcı test, uygulama içindeki öngörülemeyen kullanıcı davranışlarını inceler.

Tahribatlı testler için orijinal gereksinimler hakkında bilgi sahibi olmak gerekli değildir. Ancak, geliştirme aşamasında bazı bilgiler faydalı olur.ping İyi bir test stratejisi.

Aşağıdaki çizim bu fikri özetliyor: Test eden kişi ürünle birlikte değil, ürüne karşı çalışıyor.

Yıkıcı test kavramı: Bir uygulamanın kasıtlı olarak arıza noktasına kadar zorlanması.

Tahribatlı Testler Neden Yapılır?

  • Yazılımın yanlış kullanım koşullarında sergileyeceği öngörülebilir davranışları anlamak faydalıdır.
  • Bir yazılım ürününün sağlamlığının kontrol edilmesine yardımcı olur.
  • Bu özellik, sıradan kullanıcıların asla tetiklemediği ancak üretim sürecinin ilerleyen aşamalarında ortaya çıkan nadir hataları gün yüzüne çıkarır.

Tahribatlı Test ve Tahribatsız Test Arasındaki Fark

Bu iki yaklaşım birbirini tamamlıyor, rakip değil. Tahribatsız test — pozitif veya başarılı test olarak da adlandırılan — test, yazılımla doğru şekilde etkileşime girer ve yapıyı olduğu gibi bırakır. Yıkıcı test ise bunun tam tersini yapar: bir şey bozulana kadar geçersiz veriler ve yanlış sıralamalar gönderir.

Görünüş Yıkım testi Tahribatsız test
Niyet Başvurunun başarısız olmasına zorla Uygulamanın belirtildiği gibi çalıştığını doğrulayın.
Kullanılan giriş Geçersiz, biçimsiz, aralık dışı, sıra dışı Beklenen aralıkta geçerli veriler.
Soru cevap Nerede ve nasıl kırılıyor? Olması gerekeni yapıyor mu?
Gereksinim bilgisi İsteğe bağlı Vazgeçilmez düzeyde gerekli
tipik maliyet Yükseköğretim — keşifsel ve açık uçlu Alt kısım — senaryolu ve tekrarlanabilir
Sonuç Arıza noktaları, aralık sınırları, kurtarma davranışı Belirtilen şartlara uygun olup olmadığı.

Tahribatlı Testlerde Neleri Kontrol Edersiniz?

Yıkıcı testler, davranış sınırının her iki tarafını da inceler:

  • Yazılımın doğru davranışı
  • Yazılımın hatalı davranışı
  • Yanlış kullanım
  • Uygunsuz giriş verileri
  • Uygun çıktı verileri

Tatbikat boyunca iki koşulun geçerli olması gerekir:

  • Yazılım hiçbir zaman geçersiz giriş verilerini işlemeyecek veya kabul etmeyecektir.
  • Girdi verilerinin geçerliliği veya doğruluğundan bağımsız olarak, yazılım her zaman doğru çıktı verileri üretmelidir.

Tahribatlı Test nasıl yapılır?

Yıkıcı test, test senaryoları tasarlama, bu senaryoları çalıştırma, hataları tespit etme, hataları kapatma ve yinelemenin sonunda paydaşlara geçme veya kalma ölçütlerini sağlama gibi birçok faaliyeti içerir.

Bunu çalıştırmanın birçok yolu var. İşte bazı örnekler.

  • Arıza noktası analiz yöntemi: Sistemin çeşitli noktalarında nelerin ters gidebileceğini değerlendiren bir sistem incelemesi. Birinden yardım alın. iş analisti Bu strateji için önlemler alınabilir.
  • Test uzmanı akran değerlendirmesi: al test senaryoları Sistem veya işlev konusunda daha az bilgi sahibi olan bir başka test uzmanı tarafından analiz edilmiş veya incelenmiştir.
  • Test senaryolarının iş açısından değerlendirilmesi: Son kullanıcılar veya uzmanlar, test uzmanlarının gözden kaçırdığı geçerli senaryoları sıklıkla düşünürler; çünkü test uzmanının odağı yalnızca belirtilen gereksinimlerdedir.
  • Çalışma çizelgelerini kullanarak keşifsel testler gerçekleştirin: keşifsel test Çalışma çizelgeleri, hangi testlerin yapıldığını kaydeder, testlerin tekrarlanmasına olanak tanır ve test kapsamını kontrol altında tutar.
  • Başka bir kaynak kullanın: Başka birinden yazılım ürününü bozmasını ve buldukları senaryoları analiz etmesini isteyin.

Tahribatlı Test Örneği

Bir bankacılık uygulamasının giriş ve profil ekranlarını düşünün. Yıkıcı bir şifre, aşağıdaki gibi durumlarda işe yarayabilir:

  • 50 karakterle sınırlı bir alana 5,000 karakterlik bir metin yapıştırın ve alanın sessizce kırpmak yerine metni reddettiğini doğrulayın.
  • Harfleri, sembolleri ve negatif değerleri sayısal tutar alanına girin.
  • Beklenen sırayı bozun — önceki adımı tamamlamadan doğrudan ödeme onay sayfasına gidin.
  • Tekrarlanan ve hızlı bir şekilde "Gönder" düğmesine basarak yinelenen kayıtların oluşturulup oluşturulmadığını kontrol edin.
  • İşlem sırasında ağ bağlantısını kesin ve uygulamanın sorunsuz bir şekilde kurtulup kurtulmadığını veya kısmi bir kayıt bırakıp bırakmadığını kontrol edin.

Her bir durumun tanımlanmış bir beklentisi vardır: net bir doğrulama mesajı, veri bozulmasının olmaması ve ele alınmamış istisna olmaması. Bunun dışındaki her şey, bir hata olarak bildirilmesi gereken bir başarısızlık noktasıdır.

Tahribatlı Muayene Yöntemleri

Yazılım mühendisliğinde yıkıcı test amaçlarına hizmet etmek için aşağıdaki yöntemler kullanılır:

Tahribatlı Muayene Teknikleri

Aşağıdaki teknikler, bazı değişiklikler yapılarak kullanılabilir:

Sağlamlığın hedeflendiği durumlarda eklenmeye değer tamamlayıcı teknikler şunlardır: negatif test, stres testi, kurtarma testi hem de tüy testi.

Tahribatlı Testlerin Avantajları ve Dezavantajları

Bu tekniğin bir sürüme dahil edilmesi planlanmadan önce, ortaya çıkacak ödünleşmenin açıkça belirtilmesi önemlidir.

Avantajlar

  • RevSpesifikasyon odaklı testlerin asla ulaşamadığı hata noktalarını ortaya çıkarır.
  • Ürünün güvenle kullanılabilmesi için gerçek menzil sınırları belirler.
  • Ürün piyasaya sürüldükten çok sonra üretim aşamasında ortaya çıkan nadir kusurları ortaya çıkarır.
  • Kötüye kullanım koşullarında dayanıklılığı, kurtarılabilirliği ve hata yönetimini kontrol eder.

Dezavantajlar

  • Doğası gereği ucu açık olduğundan, kapsamı garanti edilemez veya kolayca ölçülemez.
  • Zaman alıcı ve test uzmanının deneyimine ve yaratıcılığına bağlı.
  • Kullanılan adımların dikkatli bir şekilde kaydedilmesi olmadan bulguları yeniden üretmek zor olabilir.
  • Kontrolsüz çalıştırmalar paylaşılan test verilerini bozabilir, bu nedenle izole bir ortam gereklidir.

SSS

Bunlar örtüşüyor ancak kapsamları farklı. Negatif test Tanımlanmış geçersiz girdileri beklenen hata işleme ile karşılaştırır. Yıkıcı test daha geniş ve ucu açık olup, uygulamanın başarısız olmasına neden olan herhangi bir durumu arar.

Genellikle deneyimli QA mühendisleri, modüle aşina olmayan meslektaşları ve iş kullanıcıları tarafından desteklenir. Dışarıdan bir gözün olması önemlidir, çünkü özelliği geliştiren kişiler onu tasarlandığı şekilde test etme eğilimindedir.

Fonksiyonel paket istikrarlı hale geldikten sonra, hatalar tamamlanmamış özelliklerden ziyade sağlamlığa işaret eder. Birçok ekip bunu sistem testleri sırasında planlar ve büyük sürümlerden önce tekrarlar. test yaşam döngüsü.

Modeller, hiçbir test cihazının eşleşemeyeceği bir hacimde hatalı yükler, sınır değerleri ve alışılmadık eylem dizileri üretir ve ardından hangi anormalliklerin üretildiğini sıralar. Geçmiş hata verileri üzerinde yapılan makine öğrenimi, hangi modüllerin en sert muameleyi hak ettiğini de tahmin eder.

GitHub Yardımcı Pilotu Giriş üreteçlerini, sınır durumlarını ve sonlandırma rutinlerini hızla taslak haline getirir. Test uzmanı yine de hangi hata modlarının önemli olduğuna ve gözlemlenen davranışın kabul edilebilir bir sonuç olarak sayılıp sayılmadığına karar verir.

Kullanılan tam girdi veya sıra, gözlemlenen hata, günlükler ve ekran görüntüleri, ortam ve etkinin ciddiyeti. Yineleme için geçme veya kalma ölçütleri, paydaşlara iletilir. kusur kayıtları.

Üretim ortamına asla temas etmemelidir. Geri yüklenebilir verilerle izole bir ortamda çalıştırın, çünkü kasıtlı olarak geçersiz girdiler ve zorla çökmeler, temizlenmesi maliyetli olan kısmi kayıtlar bırakabilir.

Oturum boyunca her eylemi ve girdiyi sırayla kaydeden bir çalışma sayfası tutun. Sayfayı temiz bir durumdan tekrar oynatın, ardından hatayı tetikleyen en kısa sıraya indirgeyin.

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