Yazılım Testi Nedir?
Yazılım testi temel olarak elde edilen ürünün beklenen kalitede olduğunu belirlemek , değilse istenilen kaliteye ulastirilmasini sağlamak icin kullanilan bir sürectir. Kalite düzeyi muşteri tarafindan maliyet analizi goz onune alinarak belirlenir. Bilgisayar sistemleri hatalar barindirir. Bu hatalar insan(developer, analist vb.) ve donanim kaynakli olabilir hatalar maddi ve/veya prestij kayiplara neden olabilir. Yazılım test surecinin proje dongusune katilmasiyla bu kayiplar en aza indirebilir. Burada unutulmamasi gereken sey mukemmel program olmadiği ve bir yazılımin asla 100% test edilemiyecegidir.Bunun disinda risk bulunmayan projelerde yazılım testine gerek olmayabilir. Bu karar maaliyet analizi goz onunde bulundurularak alinmalidir.Yazılım Test cesitleri nelerdir?
o Kara Kutu testi (Black box testing)
o Beyaz Kutu testi (White box testing)
o Birim testi (unit testing)
o Artan Entegrasyon/Bütünleşme testi (incremental integration testing)
o Entegrasyon/Bütünleşme testi (integration testing)
o Fonksiyon/I.şlevsel test (functional testing)
o Sistem testi (system testing)
o Baştan sona test (end-to-end testing)
o Yüzeysel test (sanity testing or smoke testing)
o Tekrar Testi ( regression testing)
o Kabul Etme / Onaylama Testi (acceptance testing)
o Yükleme testi ( load testing)
o Stres Testi (stress testing)
o Performans Testi ( performance testing)
o Kullanılabilirlik testi (usability testing)
o Kurma / Kaldirma testi (install/uninstall testing)
o Telafi/Düzelme Testi (recovery testing)
o failover testing
o security testing
o compatability testing
o exploratory testing
o ad-hoc testing
o context-driven testing
o user acceptance testing
o comparison testing
o alpha testing
o beta testing
o mutation testing
Yazılım Test Teknikleri
Kalite kontrol uzmanı veya kısaca testci ne iş yaparı Yazılım testleri nerede yapılırı Testler neye benzerı Bu soruların cevapları seçilen yazılım testi tekniğine gore değişir. Ana başlıklarıyla bazı yazılım testi teknikleri :1. Temelinde insan olan, testi kimin yapacağina bağlı teknikler
2. Kapsam bazlı, neyin test edileceğine bağlı teknikler
3. Problem temelli, yazılımın neden veya neye karsı test edildiğini bağlı teknikler
4. Aktivite tabanlı, yazılımın nasıl test eğildiğine bağlı teknikler
5. Değerlendirmeye bağli olan, testin geçer veya kalır not aldığını saplayan teknikler
Hangi tekniğin kullanılacak olması, tekniği kullanacak kişinin test hakkındaki düşüncesine bağlı olup aynı anda birçok teknik de beraberce kullanılabilinir.
Test safhasına gelindiğinde aşağıdaki 5 soru yardımıyla hangi tekniği kullanacağınızı saplayabilirsniz:
1. Testi kim uygulayacakı
2. Yazılımın hangi durumları test edilecekı
3. Ne tür sorunlar bulmayı umuyorsunuzı
4. Testci hangi aktiviteleri test etmekden sorumlu olacakı
5. Bir testin geçtiğini veya kaldığını nerden anlayacaksınızı
Size uygun tekniği seçmede ve müşterinize sıfır (0) hatalı yazılımlar sunmada iyi sanşlar.
Kalite Kontrol Analistlerinin Haklari
· Kalite ve proses (surec) ile ilgili sorunlardan bahsetmeye heran hakki vardir.· Musteri ve/veya programciya soru sormaya ve zamaninda cevap almaya hakki vardir.
· Proje takimindaki iclerinde programcilar, mudurler ve musterilerinde oldugu herhangi birisinden yardim isteye hakki vardir.
· Kalite kontrolu ilgilendiren zaman tahminlerinin yapilmasinda ve guncellestirmesi isleminde hakki vardir.
· Çalistiginda isini daha iyi yapabilecegine inandigi test araçlarinin zamaninda kendine saglanmasina hakki vardir.
· Sadece Kalite Kontrol Analizti'nin degil, butun proje takiminin yazılımin kalitesinden sorumlu oldugunu bilmesine hakki vardir.
Yazılım Testine Neden Ihtiyac Duyulur?
Yazılımlar neden test edilirıSirketler neden Yazılım testi icin eleman alir iseı
Yazılım testi sektorunde calisan herkeş bunlar ve/veya bunlara benzeyen sorularla devamli karsilasirlar. Size cok kisa bir sekilde cevap vermeye calisayim.
Sunumdan Sonra Ortaya Cikabilecek Hatalarin, Pahalli Tamir Maliyetlerini Dusurmek / Azaltmak Icin
Yazılım hatalarinin tamiri cok ucuz maliyetlerden cok pahalliya hatta bazi durumlarda can kaybina kadar gidebilir. Basit/Kucuk yazılım hatalarinin buyuk bilgisayar sistemlerinin yerle bir olmasina sebep oldugunu anlatan yuzlerce hikaye vardir. Bu sistemlerin çokmesinin bir cok nedeni olmasina ragmen, "yetersiz test" bu nedenlerin en basinda gelmektedir. Bu gercek hikayeler, gerektigi kadar test yapilmasi halinde sirketlerin çok buyuk tamir paralari harcamamalarina yardimci olmasi icin paylasilmaktadir. Asagida bunlardan ucunu okuyacaksiniz:
· Pepsi Cola'nin $42 Milyar Dolarlik Hatasi
· Cahoot, Abbey Ulusal Bankasi Website Hatasi
· Kimya Bankasi
Sonuc olarak, yukarida okudugunuz butun bu hatalari gerekli miktarda Yazılım testi yaparak onleyebilmek mumkundu. Demek ki yazılım testin amaci, pahalli tamir maliyetlerini onlemek veya en aza indirmeye calismak.
Test Dokumanlari Nelerdir?
Sirketden sirkete, kullanilan test methoduna hatta testi yoneten kisiye gore degisik isimli test dokumanlari karsiniza cikabilir. Bu dokumanlardan en fazla karsiniza cikabilecek olanlari:- Test Strateji Dokumani
- Test Plan Dokumani
- Test Kapanis Rapuru
- I.zlenebilirlik Matrisi (tracebility matrix) [ÖRNEK]
- Test Data Dokumani
IEEE 829-1998 , 829 Yazılım Testi Standartlari Dokumasyon kurallarina gore ise test dokumanlari 3 evreye ayrilir:
1. Test Planlama
- Test Plani
- Test Dizayn Detaylari
- Test Durum Detaylari
- Test Yontem Detaylari
2. Test Uygulama (infaz)
- Test Seyir Raporu
- Test Hadise/Durum Raporu
3. Test Raporlama
- Test Ozet Raporu
Yazılımlar Neden Hata Icerirlerı
Neden yazılımlar hata içerir ıo I.letişim eksikliği
o Programlama hataları
o I.htiyac değişikliği
o Zaman baskısı
o Dökümantasyon eksikliği
o Geliştirme araçları eksikliği
o Donanım hataları
Izlenebilirlik Matriksi Nedir?
Izlenebilirlik matriksinin üç önemli amaci var:1. Herbir müşteri isteginin, en azindan (min.) bir test senaryosu tarafindan kapsandiginin/test edilip edilmediginin takibini saglar.
2. Zamanla degişen veya gelişen müşteri isteklerinin takibine yardimci olur.
3. Regresyon senaryolarinin belirlenmesinde, olmazsa olmaz denilen müşteri beklentilerinin hangileri oldugunun saplanmasında etkin bir pay oynar.
Izlenebilirlik matriksleri çesitli müşteri istek yonetimi aracları, veritabanları, excel veya word dökümanları kullanılarak yaratınılabilirler. Bu araclardan en çok kullanılanlar:
* Rational RequisitePro
* Mercury QualityCenter
Yazlımcılar ile Uyumlu şekilde Çalışmanın Kilit Noktaları
Yazılımcılarla kuracağınız ilişkinin baslangıç noktası, çogu zaman buldugunuz ve rapor ettiginiz hata olacaktır.Bildiginiz gibi yazılımcı ve kalite kontrol elemanları arasında bu bulunan hatalara bağlı olarak yüksek tansiyon olusabilir. Bu tansiyonun yükselmemesi için karşılıklı saygıya dayali bir ilişki kurulması şarttır. Eger bu saygı ortamı oluşturulamazsa, birçok zaman yazılımcılar kalite kontrol elemanlarına kötü davranmayı secerler. Sonuçta kimse hatasını yüzene vuran/ gösteren insanı sevmez. Eger bu durum (kötü davranma) oluşursa, kalite kontrol uzmanı bu tavrı sineye çekmemeli ve gerektiği gibi karşı çıkmalıdır.
Yazılımcının kodunu resmi olarak eleştirirken, yani test ederken, aşağıdaki saygı kurallarına uymak şarttır:
- hassaslık / duyarlılık,
- beğenme / takdir,
- diploması.
Güzel bir kod gördügünüzde çığlık atıp, "mükemmel olmuş" demek zorunda değilsiniz ama yazılımcıya beğendiğinizi soyleyip kodunu takdir etmekle ilerde oluşabilecek bir sorunu daha baslamadan çözmüs olabilirsiniz. Diğer taraftanda eğer çok kötü bir kod uygulamasıda görürseniz, çok abartmadan, yazılımcıyı rencide etmeden bildirmenin yolunu secmelisiniz.
Aslında, yazılımcılarla iyi bir ilişki kurmanın en iyi, güzel, kolay ve doğru yolu her konuda acık ve doğrucu olmaktan geciyor.
Asağıdaki basit kuralları uygulayarak uyumlu bir ilişkiye ilk adımları atabilirsiniz:
1. Nasıl düşündügünü anlamaya calışın.
2. Doğru hataları, duyarlı bir şekilde bildirip güvenini kazanın
3. Yapabileceginiz birşey varsa, yardım teklif edin
4. Dürüstlüğunuz ve kabiliyetiniz size saygı duyulmasını sağlayacaktır
5. Kişiye (yazılımcıya) değil, işe odaklanın
6. Yazılımcılar kodları, yaptıkları işler hakkında konuşmaya bayılırlar. Onlara soru sormakdan kacınmayın.
Hadi daha ne bekliyor sunuzı Hemen gidip yazılımcılarla iyi bir ilişki kurmanın yollarını test edin… iyi sanşlar…
Kaynak: Lessons Learned in Software Testing by C.Kaner, J.Bach, B.Pettichord