11.DERS Yazılım Testi 1
Yazılım Testi Bir programda hata bulma amacıyla icra edilen bir süreçtir. İyi bir test koşulu henüz ortaya çıkarılmamış bir hatayı tespit eden test koşuludur. Yazılım testinin önemi o kadar büyüktür ki, yazılım projeleri için gerekli öz kaynakların genellikle üçte birinden daha fazlası test aşaması için ayırmak yaygın hale gelmiştir. 2
Test Bilgi akışı 3
Yazılım Girdileri : Yazılım isterleri, Tasarım anlatımı, Kaynak kodu. Test Girdileri : Test planı, Test koşulları Beklenen sonuçlar. Yazılım Güvenilirliği : Bir yazılımın belirlenmiş bir ortam ve zamanda hatasız çalışma olasılığı olarak ifade edilir. 4
Bazı test uygulamaları işlevsel olmayan ve kalite ile ilgili özelliklerin kontrolü içinde kullanılır. Örneğin; Bir modülün çalışma hızının kontrolü ve yapması gereken işleri bitirip, cevap verme süresinin kabul edilebilir sınırlar içinde olup olmadığı, Komutların yerine getirilme hızlarının arzu edilen sürede olması, Test sırasında ortaya çıkan aksaklıklarla ilgili verilerin yazılım güvenilirliğini tespit amacıyla saklanması, Test koşullarını kullanıcılarla birlikte çalıştırıp ortaya çıkan hataların kayıtlarını tutarak, yazılımın kullanabilirdik oranının tespiti. 5
Test ve Kalite Güvencesi Kalite kılavuzunda yer alan test yöntemlerinin proje için yapılan test planları ile uyumlu olup olmadıkları kontrol edilmelidir. Test yöntemleri, test başlamadan önce onaylanmalıdır. Testin uygulanacağı ve test için kullanılacak donanım ve yazılımlar testin amacı için uygun olmalıdır. 6
Bütün testler önceden kabul edilmiş test yöntemlerine uygun olarak gerçekleştirilmelidir. Test sırasında tespit edilen bütün yazılım ve test hatalarının kayıtları tutulmalıdır. Hatalar düzeltildikten sonra yazılım en kısa zamanda yeniden test edilmelidir. Bütün test verileri ve test sonuçları kaydedilmelidir. 7
Bütün test dokümanları saklanmalı ve gerektiğinde testlerin tekrarında bu dokümanlardan faydalanmalıdır. Test raporları, test amaçlarının gerçekleştiğinin bir ispatı niteliğinde olmalıdır. Bir sonraki test aşamasından veya yazılımın tesliminden önce bütün testler yapılmalı ve bulunan hatalar düzeltilmelidir. 8
Test sırasında tespit edilen hatalarla ve düzeltmelerle ilgili olan bütün dokümanlar güncelleştirilmelidir. Bütün test yordamları, koşulları, verileri, çıktıları için kalite onayı alınmalıdır. Ayrıca test raporları tutulduktan sonra testin amacına ulaşıldığı da kalite sorumlusu tarafından onaylanmalıdır. 9
SAYDAM KUTU TESTİ KARA KUTU TESTİ 10
SAYDAM KUTU TESTİ : Programın iç yapısının bilinmesi üzerine kurulur, modül düzeyinde uygulanır ve programın iç yapısını denetler. Bu test tekniği programlama ayrıntılarına sıkı sıkıya bağlıdır. Programlama sitili, dili, kodlama ayrıntıları gibi hususlar önde gelen unsurlardır. 11
12
KARA KUTU TESTİ : Programın iç yapısının bilinmesi gerekmez. Programın işlevlerini yerine getirip getirmediğini denetler. Kara kutu testi ile; Hatalı ve eksik fonksiyonlar, Arabirim hataları, Veri yapısı hataları ve veri tabanına hatalı erişimler, Başarım hataları, Hatalı başlama ve bitiş durumları. 13
14
Test Stratejileri: Test önceden planlanabilen ve sistematik biçimde yürütülen bir faaliyetler dizidir. Çok büyük projelerde bağımsız bir test ekibi gerekir. Test aşaması en küçük yazılım birimi olan modül seviyesinden başlar ve bütün sistemin entegrasyonuna doğru uzanır. Birim Testi, Entegrasyon Testi, Sistem Testi, Onaylama Testi 15
BİRİM TESTİ : İki aşamadan oluşur. 1. Aşamada modüller derlenir ve derleyicinin tespit ettiği hatalar düzeltilir. 2. Aşama da ise mantıksal hataları bulmaya yönelik olarak mantıksal yolların hepsini çalıştırmaktır. 16
Testin tamamlandığı; Modülü oluşturan satırların hepsinin en az bir kez çalıştırılması, Bütün denklemlerin ve eşitliklerin belirtilen sınırlar içindeki değerler ve sınırlar dışındaki değerler ile test edilmiş olması, Tüm programlama ve tasarım hatalarının düzeltilmesiyle, Tasarım değişikliği gerekiyorsa, bu değişikliklerin düzgün olarak kaydedilmesi ve gerekli işlemlerin kalite planında belirtildiği üzere başlatılmamasıyla belli olur. 17
ENTEGRASYON TESTİ : Birbirinden bağımsız olmayan modülleri birbirine ilave ederek oluşturulan sistemin veya alt sistemin tasarım dokümanında belirtilen özelliklere sahip olduğunu göstermek için yapılan testtir. Modüllerin birer birer ve grup olarak ilave edilmesinden sonra uygulanır. 18
Amacı: Program birimlerinin birbirleriyle ayrıntılı tasarım dokümanında belirtildiği şekilde doğru olarak bütünleştiğini göstermek, Modüller arası geçişin doğru olduğunu göstermek, Modüllerin entegrasyonu sonucu oluşan alt sistemin, sistemin tasarımında belirtildiği şekilde doğru çalıştığını göstermek, 19
Her modülün diğer modüller tarafından çalıştırıldığında gereken ara yüzün oluştuğunu ve parametrelerin doğru olarak geçirildiğini göstermek, Modüllerin birlikte çalışması ile hata toleranslarının kabul edilebilirlik sınırlarını aşıp aşmadığı bu test sırasında gözlemlemek. 20
SİSTEM TESTİ : Sistem testi bir dizi birbirinden farklı testlerden oluşmaktadır. Her birinin amacı farklı olmakla beraber, hepsinin ortak amacı sistem elemanlarının uygun bir şekilde bütünleştirildiğini ve kendilerine tahsis edilen işlevleri yerine getirdiklerini kanıtlamaktır. Bilgisayar tabanlı sistemlerin kullanımına başlamadan donanım ve yazılım testlerine ek olarak, sistem düzeyinde çeşitli testler yapılmalıdır 21
Düzeltme Testi: Donanım ve yazılımın hatalı bir şekilde işletilmesinden dolayı oluşacak sakıncaların doğuracağı bozukluklardan sistemin kendi çalışmasını veri kaybetmeden düzeltebileceğinin gösterilmesidir. Zorlama Testi: Sistemi zorlayarak sistemi bozma denemelerinin sonucunu gösterir. Yük ve Başarım Testi: Başarım hedeflerinin yerine getirildiğini ispatlar. Güvenlik Testi: Sistemin güvenlik mekanizmasının istenmeyen kullanıcılar tarafından delinemeyeceğinin ispatı için yapılır. 22
Onaylama Testi: Yazılımın kalite faktörlerini yerine getirdiğini ve doğru olarak çalıştığını kullanıcıya göstermek üzere yapılır. Onaylama testi sırasında, sistem testlerinin çoğu yazılımın çalışma ortamında, test ortamındaki gibi çalıştığını göstermek üzere tekrar edilir. Bu testler sırasında kullanıcı da bulunur. Yazılımcı ve kullanıcının uyuşacağı bir dizi test, nihai çalışma ortamında uygulanır. Onaylama testi bitip raporu yazıldıktan sonra yazılım onaylama toplantısı yapılır. 23
Eğer bütün koşullar test planındaki onaylama koşullarını sağlıyorsa yazılım kabul edilir. Kullanıcı test sonuçlarını imzalayarak kabul eder. Kabul edilen yazılım için kullanım kılavuzu, versiyon belgesi gibi dokümanlarda yazılım tesliminden önce hazırlanmalıdır. 24
Test süreci kontrol listesi Test yaklaşımı ve uygulanan metodlar, Test programını uygulamak için gerekli personel, eğitim ve tecrübeleri, Gerekli donanım/yazılımlar, Test için gerekli destekleyici yazılımlar, Test zamanlaması, yeri ve denetimi, 25
Yazılım isterleri ve tasarımın testlere korelasyonu, Test planına bağlı olarak performans, ara yüz, ve test gereksinimleri, Her yazılan modüle karşılık gelen testler, sistem isterlerinin karşılandığını gösteren testlerin test planında mevcut olduğu, Uygulanan bütün testlerin tarifi, girdileri ve beklenen sonuçları. Sonuçlar için kabul edilebilecek hata payları ve kabul kriterleri, Her test için sonuçları gösterir raporların varlığı. 26