Mutasyon Testi Nedir? (Örnek)

Mutasyon Testi Nedir?

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

Mutant programında yapılan değişiklikler programın genel amacını etkilemeyecek kadar küçük tutulmalıdır. Mutasyon Testi, programda bir hata oluşturmayı içerdiğinden Hataya dayalı test stratejisi olarak da adlandırılır ve bir tür mutasyon testidir. Beyaz Box Test yapmak esas olarak şunun için kullanılır: Birim Testi.

Mutasyon ilk olarak 1971'de önerildi, ancak yüksek maliyetler nedeniyle heyecanı azaldı. Şimdi yeniden hız kazandı ve aşağıdaki gibi diller için yaygın olarak kullanılıyor: Java ve XML.

Mutasyon Testi nasıl yapılır?

Mutasyon Testini Yürütün

Mutasyon testi (mutasyon analizi) yapmanın adımları şunlardır:

1. Adım: Mutant adı verilen birçok sürüm oluşturularak programın kaynak koduna hatalar eklenir. Her mutant tek bir hata içermelidir ve amaç, mutant versiyonunun başarısız olmasına neden olmaktır, bu da test senaryolarının etkinliğini gösterir.

2. Adım: Test senaryoları orijinal programa ve ayrıca mutant programa uygulanır. A Test Durumu yeterli olmalı ve bir programdaki hataları tespit edecek şekilde ayarlanmalıdır.

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

4. Adım: Orijinal program ve mutant programlar farklı çıktılar üretirse, o zaman mutant test senaryosu tarafından öldürülür. Dolayısıyla test senaryosu, orijinal program ile mutant program arasındaki değişikliği tespit edecek kadar iyidir.

5. Adım: Orijinal program ve mutant program aynı çıktıyı üretirse Mutant hayatta kalır. Bu gibi durumlarda tüm mutantları öldüren daha etkili test senaryolarının oluşturulması gerekiyor.

Mutant Programlar Nasıl Oluşturulur?

Mutant Programlar Oluşturun

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

Orijinal Program Mutant Programı
Eğer (x>y)

“Merhaba” yazdır

başka

“Merhaba” yazdır

Eğer(x<y)

“Merhaba” yazdır

başka

“Merhaba” yazdır

Mutant Programında Neler Değiştirilmeli?

Mutant programlar oluşturmak için kullanılabilecek çeşitli teknikler vardır. Hadi onlara bakalım

Operave yedek operatörler İfade Değişikliği Operaları Açıklama değişikliği Operaları
İşleneni başka bir işlenenle (x ile y veya y ile x) veya sabit değerle değiştirin. Bir işleci değiştirin veya bir program ifadesine yeni işleçler ekleyin. Programatik ifadeler mutant programlar oluşturmak için değiştirilir.
Örnek-

If(x>y) x ve y değerlerini değiştirin

If(5>y) x'i sabit 5 ile değiştirin

Örnek-

Eğer(x==y)

== yerine >= koyabiliriz ve mutant programı şu şekilde kullanabiliriz:

If(x>=y) ve ifadeye ++ eklemek

Eğer(x==++y)

Örnek-

if-else ifadesindeki else kısmını silin

Bir programın nasıl davrandığını kontrol etmek için if-else ifadesinin tamamını silin

Örnek mutasyon operatörlerinden bazıları:

  • GOTO etiketinin değiştirilmesi
  • İade ekstresinin değiştirilmesi
  • Ekstre silme
  • Tekli operatör ekleme (Like – ve ++)
  • Mantıksal konnektörün değiştirilmesi
  • Karşılaştırılabilir dizi adı değiştirme
  • if-else deyimindeki else kısmını kaldırmak
  • Operatörlerin eklenmesi veya değiştirilmesi
  • Verileri değiştirerek ifade değiştirme
  • Değişkenler için Veri Değişikliği
  • Programdaki veri türlerinin değiştirilmesi

Mutasyon Testinin Otomasyonu

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

Mevcut araçların listesi-

Mutasyon Testi Türleri

In Yazılım MühendisliğiMutasyon testi temel olarak 3 türe ayrılabilir: 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ştirildi
  3. Karar Mutasyonu– kontrol ifadeleri değiştirilecek

Mutasyon Puanı

Mutasyon puanı, öldürülen mutantların toplam mutant sayısına oranı olarak tanımlanır.

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

Mutasyon Puanı

Puan %100 ise test senaryoları mutasyona uygundur. Deneysel sonuçlar, mutasyon testinin test senaryolarının yeterliliğini ölçmek için etkili bir yaklaşım olduğunu göstermiştir. Ancak asıl dezavantaj, mutantları üretmenin ve her test senaryosunu o mutant programa karşı yürütmenin yüksek maliyetidir.

Mutasyon Testinin Avantajları

Mutasyon Testinin avantajları şunlardır:

  • Kaynak programın yüksek kapsamına ulaşmak için güçlü bir yaklaşımdır.
  • Bu test, mutant programı kapsamlı bir şekilde test etme yeteneğine sahiptir.
  • 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 bu testten en güvenilir ve istikrarlı bir sistem elde ederek faydalanırlar.

Mutasyon Testinin Dezavantajları

Diğer yandan Mutant testinin dezavantajları şunlardır:

  • Mutasyon testi, oluşturulması gereken çok sayıda 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 yanlış olmaz.
  • Her mutasyon, orijinal programdakiyle 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 kod değişiklikleri içerdiğinden hiçbir şekilde uygulanamaz. Siyah Box Test yapmak.

Sonuç

Uygulamanızın kapsamlı testini mi istiyorsunuz? Cevap Mutasyon testidir. Bir programı test etmek için kullanılan en kapsamlı tekniktir. Sistemdeki arızaları veya hataları tespit etmek için bir test programının etkinliğini ve doğruluğunu kontrol eden yöntemdir.