Negatif Test Nedir? Örnekli Test Durumları

⚡ Akıllı Özet

Negatif test, bir yazılım uygulamasının beklenmedik giriş verileri veya çalışma koşulları aldığında nasıl davrandığını kontrol eder; böylece ürün çökmek, veri bozulması veya güvenlik açığı ortaya çıkarmak yerine sorunsuz bir şekilde çalışmaya devam eder.

  • ???? Amaç: Uygulamanın geçersiz verileri hata vermeden veya çökmeden düzgün bir şekilde reddettiğini doğrulayın.
  • 🇧🇷 Kontrast: Pozitif test sonucu olumlu gidişatı kanıtlar; negatif test sonucu ise bu gidişatın dışındaki her şeyi araştırır.
  • 🛗 Analoji: Asansör sadece normal yolcu seferlerine değil, aşırı yüklenmeye, yangına ve elektrik kesintisine de dayanmalıdır.
  • 🔒 Güvenlik: Geçersiz yüklemeler ve SQL enjeksiyon girişimleri, klasik olumsuz test senaryolarıdır.
  • 🧪 Tasarım: Sınır değerleri, eşdeğerlik sınıfları, hata tahmini ve bulanıklaştırma, durumları oluşturur.
  • 📊 Öncelik: Geçersiz girdileri etki sırasına göre sıralayın, çünkü kapsamlı olumsuz kapsama alanı maliyet açısından yetersizdir.
  • ⚠️ Değiş tokuş: Aşırı sayıda negatif test yapılması, pozitif testlerin kapsamının daha fazla olması gerekebilecek bütçeyi tüketir.

Geçersiz girdi örnekleriyle yazılım testinde negatif test

Negatif Test

Negatif Test Negatif test, bir yazılım uygulamasının beklenmedik giriş verilerine ve koşullarına karşı test edilmesi için kullanılan bir yazılım test türüdür. Beklenmeyen veriler veya koşullar, basit bir form alanındaki yanlış veri türünden kasıtlı bir siber saldırıya kadar değişebilir. Negatif testin amacı, uygulamanın geçersiz girişlerde çökmesini önlemek ve ürünün kalitesini ve istikrarını iyileştirmektir.

Tek başına pozitif test, sistemin yalnızca normal koşullar altında çalıştığını kanıtlar. Negatif test ise aynı sistemin anormal koşulları da idare edebildiğini doğrular; bu da hataya dayanıklı bir ürünün gerektirdiği şeydir.

Negatif Test Örneği

Asansör, negatif testlerin açıklanmasında en sık kullanılan örnektir, çünkü hem normal davranışı hem de arıza davranışı kolayca gözümüzde canlandırılabilir.

Asansörün çalışma prensipleri tanıdıktır: Kat numarasını tuşlamak asansörü o kata gönderir ve asansör belirtilen kata ulaştığında kapı otomatik olarak açılır.

Aynı asansör için bazı olumsuz senaryolar, pozitif test sonucunun yaptığı varsayımın yanında aşağıda listelenmiştir.

Negatif Test Pozitif Test
Kişi sayısı (ağırlık) belirlenen sınırı aşarsa ne olur? Asansöre yalnızca belirtilen sayıda kişinin gireceği varsayılır.
Asansörün içinde sigara içilirse veya yangın çıkarsa ne olur? Asansörün içinde duman veya yangın olmayacağı varsayılmaktadır.
Çalışma sırasında elektrik kesintisi olursa ne olur? Asansör çalışırken elektrik kesintisi olmayacağı varsayılmaktadır.

Bu vakaların tamamı negatif test sonuçları kapsamına giriyor. Hiçbirinin asla gerçekleşmeyeceği garanti edilemez, bu nedenle her birinin kontrol altına alınması gerekiyor.

Diyelim ki aşırı yük durumu hiç kontrol edilmiyor ve asansör aşırı yüklendiğinde anormal davranıyor. Bu tek bir eksiklik, sistemin güvenilirliğine zarar verir ve hatta can güvenliğini tehlikeye atabilir. İşte olumsuz testin pratikteki anlamı ve önemi budur.

Yazılım da aynı şekilde davranır. Olumsuz bir test, normal çalışma prosedüründen kasıtlı olarak sapmayı ifade eder. Bir kayıt formunu ele alalım.

Negatif Test Pozitif Test
E-posta alanına geçersiz bir e-posta adresi girin. E-posta alanına yalnızca geçerli e-posta adresleri girilir.
Telefon numarası alanına geçersiz bir telefon numarası girin (örneğin, karakterler). Sayı alanına yalnızca rakamlar girilir.
Belirtilen sınırların dışında bir boyutta resim yükleyin. Yalnızca belirtilen boyut sınırları içindeki görseller yüklenir.
Geçersiz dosyaları yükle, örneğin XML or SQL resim yükleme alanındaki dosyalar Yalnızca .jpg veya .png gibi geçerli resim formatları yüklenebilir.

Bu olumsuz durumların her birinde sistemin çalışmaya devam etmesi gerekir. Bir sayı alanına karakter yazılırsa, uygulama hiç beklemediği beklenmedik verileri işleyemez ve çökebilir. Daha da kötüsü, SQL enjeksiyonu Aynı alana girilen bir dize, veritabanının içeriğini silebilir. Bu tür kayıplar, negatif testlerin var olma nedenidir.

Neden Negatif Test Yapılır?

Testler zaman ve para tüketir, bu nedenle neyin, nasıl ve ne kadar test edileceğine karar vermek önemlidir. Bütçenin bir kısmını olumsuz testlere harcama gerekçesi, projenin iki tarafı açısından farklılık gösterir.

Organizasyon perspektifi

Müşteriye kaliteli bir ürün sunmak kuruluşun sorumluluğundadır ve olumsuz testler bu yükümlülüğün bir parçasıdır. Ayrıca, hiçbir sistem tamamen hatasız olmasa da, kuruluşun bir arızayı önlemek için makul olan her şeyi yaptığının kanıtıdır.

Etki belirleyici faktördür. Bir e-ticaret sitesi tüm olumlu testlerden geçebilir ancak yine de bir saldırganın SQL enjeksiyonu çalıştırmasına ve arkasındaki verileri silmesine olanak tanıyan bir güvenlik açığı içerebilir. Bu ciddi bir güvenlik ihlalidir ve yalnızca olumsuz testler bunu arar.

Özellikle web siteleri gibi halka açık uygulamalar, ziyaretçilerin bunları nasıl kullandığı konusunda neredeyse hiç kontrol imkanı sunmaz; bu nedenle, olağandışı kullanımın kapsandığını ve kontrol altına alındığını doğrulamak için tek yol olumsuz testlerdir. Aynı durum kötü niyetli kullanıcılar için de geçerlidir: Saldırganlar aktif olarak bir sistemi kırma fırsatı ararlar ve siber saldırı senaryoları kesinlikle olumsuz test kapsamına girer.

Müşteri perspektifi

Müşteriler sıfır güvenlik açığına sahip bir ürün bekler ve olumsuz testler bu beklentiyi destekler. E-ticaret veya çevrimiçi hisse senedi ticareti gibi hassas ürünler için, güvenlik testi Negatif test sonuçları ise isteğe bağlı değil, zorunludur.

Müşterinin tek gerçek endişesi maliyettir. Bir arızanın etkisi analiz edildikten sonra, müşteri olumsuz test çalışmalarının ne kadar ileriye götürülmesi gerektiğine karar verebilir.

Negatif Test nasıl yapılır?

Negatif test, uygulamanın alması gereken girdilerle sınırlı kalmayıp, fiziksel olarak alabileceği her girdiyi dikkate alarak başlar. Bu girdilerin her biri bir kategoriye aittir. Test Durumu Bu özelliğin kullanımının açıkça yanlış olduğu durumlarda bile. Bir e-posta alanı, geçerli bir e-posta adresi olmayan her şeyle test edilir ve bir resim yükleme denetimi, resim olmayan her dosya türüyle test edilir.

Geçersiz girdilerin olası listesi neredeyse sonsuzdur, bu nedenle olumsuz test durumlarına öncelik verilmelidir. Yalnızca .png dosyalarını kabul eden bir resim alanı için aday yüklemeler arasında .jpeg, .xml, .xls ve daha birçok dosya türü bulunur. Bir XML veya SQL dosyasının .jpeg dosyasına göre çok daha büyük bir potansiyel etkisi vardır, bu nedenle bu durumlar önce yürütülür. Yürütmeden önce durumları etkiye göre sıralamak, olumsuz testlerin uygun maliyetli olmasını sağlar.

Olumsuz test vakalarının çoğu, doğaçlamadan ziyade, yerleşik tasarım tekniklerinden oluşan küçük bir gruptan kaynaklanmaktadır:

  • Sınır değerleri: Geçerli bir aralığın hemen dışındaki değerleri kullanın; örneğin, 1 ile 100 arasında değer kabul eden bir alan için 0 ve 101 gibi.
  • Geçersiz eşdeğerlik sınıfları: Reddedilen girdilerin her sınıfından bir temsilci seçin; örneğin, sayısal bir alandaki harfler.
  • Tahmin hatası: Geçmişteki hatalardan edinilen deneyimlerden yararlanarak, bu tür bir özelliğin bozulmasına en çok yol açabilecek girdileri hedefleyin.
  • Bozuk ve düşmanca veriler: Doğrulama ve güvenlik işlemlerini test eden komut dosyası etiketleri, SQL parçaları ve aşırı büyük veri paketleri.
  • tüy testi: Kontrolsüz çökmeleri bulmak için otomatik olarak büyük miktarda rastgele veya mutasyona uğramış girdi üretir.
  • Kesintiye uğramış akışlar: İşlem yarıda kesilirse, işlem yenilenirse, zaman aşımı olursa veya bağlantı kesilirse sorun yaşanabilir.

Hangi teknik sonucu üretirse üretsin, beklenen sonuç kontrollü, okunabilir bir hata olarak – bir doğrulama mesajı, reddedilen bir yükleme, sorunsuz bir geri alma – yazılmalı ve asla sadece "sistem çökmüyor" şeklinde ifade edilmemelidir.

Negatif Testin Artıları ve Eksileri

Diğer tüm test tekniklerinde olduğu gibi, negatif testin de nerede, ne zaman ve ne kadar uygulandığına bağlı olarak avantajları ve dezavantajları vardır.

Negatif Testin Avantajları

  • Bu, ürün kalitesini doğrudan korur, çünkü kaliteli bir ürün, istismar edilebilir güvenlik açıkları olmayan bir üründür.
  • Kapsamı genişletir. Geçersiz girdiler kasıtlı veya kaz accidentally canlı bir sisteme ulaşır, bu nedenle anlamlı bir kapsam için olumsuz durumların olumlu durumlarla birlikte çalışması gerekir.
  • Bu, bir sürüm yayına girmeden önce müşteri güvenini artırır.
  • Bu yöntem, pozitif testlerin yapısal olarak ulaşamadığı, ele alınmayan istisnalar ve zayıf girdi doğrulaması gibi kusurları ortaya çıkarır.

Negatif Testin Dezavantajları

  • Bazı durumlarda zaman ve enerji kaybıdır. Bir uygulama tek kullanıcı için geliştirilmişse, 100 eş zamanlı kullanıcının durumunu test etmenin bir anlamı yoktur; bu nedenle doğru koşulları seçmek önemlidir ve bazı sistemler neredeyse hiç olumsuz test gerektirmez.
  • Bu tür kılıfların tasarlanması için yetenekli ve deneyimli kişilere ihtiyaç duyulmaktadır.
  • Müşteri açısından bakıldığında, bu durum maliyeti artırır ve ürünün piyasaya sürülmesini geciktirebilir.
  • Çabalar arasında rekabet söz konusu. Negatif testlere çok para harcayan bir ekip, pozitif testlere yeterince yatırım yapmayabilir.

SSS

Pozitif test, geçerli verilerle çalışır ve beklenen sonucu doğrular. Negatif test ise geçersiz veriler, yanlış formatlar ve bozuk sıralamalarla çalışır ve uygulama, başarısız olmak yerine kontrollü bir mesajla bunları reddeder.

Boş kimlik bilgileri, yanlış parolaya sahip geçerli bir kullanıcı, kullanıcı adında SQL parçaları, çok uzun dizeler, baştaki veya sondaki boşluklar, devre dışı bırakılmış hesaplar ve kilitleme davranışının çalıştığını doğrulamak için tekrarlanan başarısız girişimler.

Hayır. Geçersiz veya düşmanca girdi söz konusu olduğunda örtüşürler, ancak güvenlik testi aynı zamanda kimlik doğrulama, yetkilendirme, şifreleme ve oturum yönetimini de kapsar. Negatif test, daha geniş bir girdi ve koşul tekniğidir.

Bu gereksinimler genellikle test uzmanları ve kalite güvence mühendisleri tarafından yazılır; çoğu zaman bir geliştirici hata yollarını inceler ve bir iş analisti, gereksinimlerin hangi geçersiz koşulları gerçekten yasakladığını onaylar.

Reddedilen her girdi sınıfını, her sınırı ve her yüksek etkili hata yolunu kapsayacak kadar yeterli. Bunun ötesinde, eklenen durumlar çok az değer getirir, bu nedenle risk ve etki durdurma noktasını belirler.ping öğe.

Evet. Geçersiz giriş durumları oldukça tekrarlanabilir olduğundan uygundurlar. otomasyon testi ve regresyon test paketleri. Fuzzing araçları rastgele girdi üretimini otomatikleştirirken, doğrulama işlemleri de doğrulama mesajlarının görünüp görünmediğini kontrol eder.

Modeller, gereksinimleri veya bir form şemasını okur ve bir test uzmanının manuel olarak listeleyemeyeceği geçersiz değerler, sınır koşulları ve olumsuz dizeler önerir. Yine de bir gözden geçiren, beklenen her sonucun spesifikasyona uygun olduğunu doğrular.

Evet, mevcut bir test dosyasından doğrulama kodunu, geçersiz veri örneklerini ve parametreli durumları oluşturur. Oluşturulan beklentilerin gözden geçirilmesi gerekir, çünkü mantıklı görünen bir doğrulama yanlış davranışı kodlayabilir.

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