Yazılım Testinde Mutasyon Testi: Mutant Skoru & Analiz Örneği

İçindekiler:

Anonim

Mutasyon Testi

Mutasyon Testi , test senaryolarının kaynak kodda hataları bulup bulamadığını kontrol etmek için kaynak kodun belirli ifadelerinin değiştirildiği / mutasyona uğradığı bir yazılım testi türüdür. Mutasyon Testinin amacı, mutasyona uğramış kaynak kodunda başarısız olması gereken sağlamlık açısından test senaryolarının kalitesini sağlamaktır.

Mutant programda yapılan değişiklikler, programın genel amacını etkilemeyecek kadar çok küçük tutulmalıdır. Mutasyon Testi, programda bir hata oluşturmayı içerdiği için Hata temelli test stratejisi olarak da adlandırılır ve esas olarak Birim Testi için kullanılan bir Beyaz Kutu Testi türüdür.

Mutasyon ilk olarak 1971'de önerildi, ancak içerdiği yüksek maliyetler nedeniyle şevkini kaybetti. Şimdi, yine buharı seçti ve Java ve XML gibi diller için yaygın olarak kullanılıyor.

Bu eğitimde öğreneceksiniz-

  • Mutasyon Testi nedir?
  • Mutasyon Testi nasıl yapılır?
  • Mutant Programları Nasıl Oluşturulur?
  • Mutant Programında ne değişmeli?
  • Mutasyon Testi Türleri
  • Mutasyon Puanı:
  • Mutasyon Testinin Avantajları:
  • Mutasyon Testinin Dezavantajları:

Mutasyon Testi nasıl yapılır?

Aşağıda, mutasyon testini (mutasyon analizi) yürütme adımları verilmiştir:

Adım 1 : Hatalar, mutant adı verilen birçok sürüm oluşturularak programın kaynak koduna dahil edilir. Her mutant tek bir hata içermelidir ve amaç, test durumlarının etkinliğini gösteren mutant versiyonun başarısız olmasına neden olmaktır.

Adım 2 : Test senaryoları orijinal programa ve ayrıca mutant programa uygulanır. Bir Test Vakası yeterli olmalıdır ve bir programdaki hataları tespit etmek için ince ayar yapılmalıdır.

Adım 3 : Orijinal ve mutant bir programın sonuçlarını karşılaştırın.

Adım 4 : Orijinal program ve mutant programları farklı çıktı üretirse, mutant test senaryosu tarafından öldürülür. Bu nedenle, test senaryosu, orijinal ve mutant program arasındaki değişikliği tespit etmek için yeterince iyidir.

Adım 5 : Orijinal program ve mutant program aynı çıktıyı üretirse, Mutant canlı tutulur. Bu gibi durumlarda, tüm mutantları öldüren daha etkili test senaryolarının yaratılması gerekir.

Mutant Programları Nasıl Oluşturulur?

Bir mutasyon, program deyiminde yapılan tek bir sözdizimsel değişiklikten başka bir şey değildir. Her bir mutant program, orijinal programdan bir mutasyon kadar farklı olmalıdır.

Orijinal Program Mutant Programı
Eğer (x> y)
"Merhaba"
Baska
"Merhaba" Yazdır
Eğer ( x )"Merhaba"
Baska
"Merhaba" Yazdır

Mutant Programında ne değişmeli?

Mutant programları oluşturmak için kullanılabilecek birkaç teknik vardır. Bakalım onlara

Operand değiştirme operatörleri İfade Değiştirme Operatörleri İfade değiştirme Operatörleri
İşleneni başka bir işlenenle (x ile y ile veya y ile x ile) veya sabit değerle değiştirin. Bir program deyiminde bir işleci veya yeni işleçlerin eklenmesini değiştirin. Programatik ifadeler, mutant programlar oluşturmak için değiştirilir.
Örnek -
Eğer (x> y), x ve y değerlerini değiştirirse
Eğer (5> y) x'i sabit 5 ile değiştirir
Örnek-
If (x == y)
== 'u> = şeklinde değiştirebiliriz ve
If (x> = y) olarak mutant programımız olabilir ve
If (x == ++ y) ifadesine ++ ekleyebiliriz
Örnek-
if-else deyimindeki else bölümünü
silin Bir programın nasıl davrandığını kontrol etmek için if-else deyiminin tamamını silin
Örnek mutasyon operatörlerinden bazıları:
  • GOTO etiket değişimi
  • İade beyanı değişimi
  • Açıklama silme
  • Tekli operatör ekleme (Like - ve ++)
  • Mantıksal konektör değişimi
  • Karşılaştırılabilir dizi adı değişimi
  • İf-else deyimindeki else bölümünün kaldırılması
  • Operatör ekleme veya değiştirme
  • Verileri değiştirerek ifade değiştirme
  • Değişkenler için Veri Modifikasyonu
  • Programdaki veri türlerinin değiştirilmesi

Mutasyon Testinin Otomasyonu:

Mutasyon testi, son derece zaman alıcıdır ve manuel olarak yürütülmesi karmaşıktır. Süreci hızlandırmak için otomasyon araçlarına gitmeniz önerilir. Otomasyon araçları, test maliyetini de düşürür.

Mevcut aletlerin listesi -

  • Stryker
  • PIT Testi

Mutasyon Testi Türleri

Yazılım Mühendisliğinde, Mutasyon testi temel olarak 3 tipte kategorize edilebilir - ifade mutasyonu, karar mutasyonu ve değer mutasyonu.

  1. İfade Mutasyonu - geliştirici, sonucu bazı satırların kaldırılması olabilecek bir kodun bir bölümünü kesip yapıştırır
  2. Değer Mutasyonu - birincil parametrelerin değerleri değiştirilir
  3. Karar Mutasyonu - kontrol ifadeleri değiştirilecek

Mutasyon Puanı:

Mutasyon skoru, toplam mutant sayısı ile birlikte öldürülmüş mutantların yüzdesi olarak tanımlanır.

  • Mutasyon Puanı = (Öldürülmüş Mutantlar / Toplam Mutant sayısı) * 100

Skor% 100 ise test senaryoları mutasyon yeterlidir. Deneysel sonuçlar, mutasyon testinin test durumlarının yeterliliğini ölçmek için etkili bir yaklaşım olduğunu göstermiştir. Ancak, ana dezavantaj, mutantları oluşturmanın ve bu mutant programa karşı her bir test durumunu yürütmenin yüksek maliyetidir.

Mutasyon Testinin Avantajları:

Mutasyon Testinin avantajları şunlardır:

  • Kaynak programın geniş kapsamını sağlamak için güçlü bir yaklaşımdır.
  • Bu test, mutant programını kapsamlı bir şekilde test edebilir.
  • Mutasyon testi, yazılım geliştiricisine iyi düzeyde hata tespiti sağlar.
  • Bu yöntem, kaynak kodundaki belirsizlikleri ortaya çıkarır ve programdaki tüm hataları tespit etme kapasitesine sahiptir.
  • Müşteriler, en güvenilir ve istikrarlı bir sistem elde ederek bu testten yararlanırlar.

Mutasyon Testinin Dezavantajları:

Öte yandan, Mutant testinin dezavantajları şunlardır:

  • Mutasyon testi, üretilmesi gereken birçok mutant program olduğundan son derece maliyetli ve zaman alıcıdır.
  • Zaman alıcı olduğundan, bu testin bir otomasyon aracı olmadan yapılamayacağını söylemek doğrudur.
  • Her mutasyon, orijinal programla aynı sayıda test durumuna sahip olacaktır. Bu nedenle, çok sayıda mutant programın orijinal test paketine göre test edilmesi gerekebilir.
  • Bu yöntem kaynak kodu değişikliklerini içerdiğinden, Kara Kutu Testi için hiçbir şekilde geçerli değildir.

Sonuç:

Uygulamanızın kapsamlı bir şekilde test edilmesini mi istiyorsunuz? Cevap, Mutasyon testidir. Bir programı test etmek için en kapsamlı tekniktir. Bu, sistemdeki hataları veya hataları tespit etmek için bir test programının etkinliğini ve doğruluğunu kontrol eden yöntemdir.