ETKİLİ TEST SENARYOSU OLUŞTURMA İÇİN MODEL BAZLI VE RİSK BAZLI TESTLERİN BİRLEŞTİRİLMESİ
Yazılım sistemlerinin artan boyutu ve karmaşıklığı nedeniyle, sınırlı kaynaklarla kapsamlı testler yapmak olanaksız hale gelmektedir. Örneğin TV platformları eski elektromekanik sistemlerden karmaşık yazılım sistemlerine hızlı bir dönüşüm içindedir. Yakın zamanda piyasaya sürülen Smart TV’ler, web’de gezinme, isteğe bağlı akış ve ev ağlarını TV setlerinin geleneksel/standart işlevleriyle birleştirir. YouGov pazar araştırma ajansının sağladığı istatistiklere göre Smart TV kullanıcılarının sayısı 2 milyar civarında olacak. Bu kullanıcılar, TV işlevselliğini bozan yazılım hatalarına karşı daha az toleranslı olma eğilimindedir. Bu nedenle, bu arızaları en kısa sürede tespit edebilecek test senaryoları oluşturmak önemlidir.
Model tabanlı test (MBT), sistem modellerine dayalı olarak otomatik olarak test senaryoları oluşturmak için kullanılır. Bu modellerin içeriği, oluşturulan test senaryolarının etkinliğini etkiler. Bu modellerde, test edilen sistemin tüm bileşenleri için, geçişler için ‘durumlar, girdiler, çıktılar ve olasılıklar’ belirlenmelidir. Durum, TV’nin mevcut durumunu temsil eder (ör. kapalı, açık, giriş seçimi vb.) Belirli bir olasılık dahilinde mevcut durumu bir sonraki duruma değiştirmek için bir geçiş kullanılır (ör. kapalı durumdan açık duruma).
Şekil 1 – Durumlar ve Geçişler
Risk tabanlı test, yazılımdaki özelliklerin ve modüllerin testlerine başarısızlık riskine göre öncelik veren bir tür etkili yazılım testidir.
Model Tabanlı Test (MBT), test edilen sistemin istenen davranışını temsil eden modellere dayalı olarak test senaryosu oluşturmayı sistemleştirir. Aşağıdaki yinelemeli yaklaşımda, risk tabanlı test ilkelerine dayalı olarak sistem modellerinin nasıl rafine edileceği açıklanmaktadır.
İlk olarak, sistem durumları arasındaki geçişlerin olasılık değerleriyle açıklandığı Markov Zincirli bir sistem modeli tanımlanır. Bu değerler genellikle işlevsel önem veya kullanım profiline göre atanır.
Şekil 2’de yaklaşım gösterilmektedir. Yaklaşımımızda, başlangıçta birbirlerine eşittirler. Model bir MBT aracına sağlanır. Araç, modelde geçiş olasılıklarına göre hareket eder ve bir dizi test senaryosu oluşturur (2). Bu test senaryoları yürütülür (3), bellek kullanım profili toplanırken (4). Toplanan profil, bellek sızıntılarına yol açan test yollarını ortaya çıkarır. Geçiş olasılıkları güncellenir (5) ve sistem modeline (6) yansıtılır, böylece bu test yolları bir sonraki yinelemede test senaryosu oluşturma sırasında daha sık kullanılır.
Şekil 2 – Yaklaşım
Şekil 4’te tespit edilen bellek sızıntılarına göre Şekil 3’teki sistem modellerini güncelleyerek yaklaşımı uygulamak için bir vaka çalışması gerçekleştirdik.
Şekil 3 – Kaydedilen Bellek Kullanımları
Şekil 4 – En Üst Düzey Test Modeli
Yaklaşımımızla 3 kritik arıza tespit edebildik. Test vakalarının sayısı ve test süresi azaltılsa da.
Kaynak: Gebizli, C.S., Metin, D., & Sözer, H. (2015). Etkili test senaryosu oluşturmak için model tabanlı ve risk tabanlı testleri birleştirir. Test üzerine 9. çalıştayın Bildiriler Kitabında: Akademik ve endüstriyel konferans—uygulama ve araştırma teknikleri (s. 1-4) (ICST Companion)