Yazılım Projelerinde Test Süreci Necdet Terkeş (QA / ISTQB) necdet.terkes@gmail.com necdett.com twitter.com/necdet tr.linkedin.com/in/nterkes
Gündem Son 5 senede sektör… Test nedir? Test niçin yapılır? Testin ilkeleri Tester, Testçi, Test Uzmanı… Test Süreci Risk Analizi (FMEA) Test Seviyeleri Test Çeşitleri Test Sertifikaları Gelecek…
Son 5 senede sektör… Bilişim dünyasındaki (yazılım ve donanım) gelişmeler rekabeti arttırdı, İş odaklılığından müşteri odaklı bir sisteme geçildi, Rekabette öne geçmek isteyenler hizmet kalitesinde fark yaratmaya çalıştılar, Ürünlerin daha az hata ile müşterilere sunulması için teste verilen önem arttı, Test danışmanlığı ve dış kaynak kullanımı başladı, Şirketlerin test süreçleri oturmaya başladı ve test ekipleri kurulmaya başladı…
Test Nedir? Ürünün beklenilen seviyede olduğunu belirlemek, değilse de istenilen ölçüye gelmesini sağlamak için kullanılan bir süreç
Test Niçin Yapılır? Müşteriye sunulmadan önce ürün kalitesinden emin olmak, Yeniden çalışma (düzeltme) ve geliştirme masraflarını azaltmak, Geliştirme işleminin erken aşamalarında yanlışları saptayarak ileri aşamalara yayılmasını önlemek, böylece zaman ve maliyetten tasarruf sağlamak, Müşteri memnuniyetini arttırmak ve izleyen siparişler için zemin hazırlamak.
Test Niçin Yapılır?
Testin İlkeleri İlke 1: Test defectlerin varlığını gösterir; Test defectin varlığını gösterir ama defect olmadığını kanıtlayamaz. Test, yazılımdaki keşfedilmemiş defectlerin olasılığını azaltır, hiç defect bulunamamış olması yazılımın doğruluğunun kanıtı değildir. Kaynak: http://testgaraji.com
Testin İlkeleri İlke 2: Exhaustive (her şeyi kapsayan) test mümkün değildir; Her şeyi test etmek yapılabilir değildir. Her şeyin test edilmesi yerine, test çabalarının odaklanmasında risk analizi ve öncelikler kullanılmalıdır. Kaynak: http://testgaraji.com
Testin İlkeleri İlke 3: Erken test; Test faaliyetleri yazılım ve sistem geliştirme yaşam döngüsünde mümkün olduğunca erken başlamalı ve tanımlı hedeflere odaklanmalıdır. Kaynak: http://testgaraji.com
Testin İlkeleri İlke 4: Defect Kümelenmesi (Clustering); Az sayıdaki modül, sürüm öncesi testleri sırasında tespit edilen defectlerin büyük bölümünü içerir ya da operasyonel başarısızlıkların büyük bölümünden sorumludur. Kaynak: http://testgaraji.com
Testin İlkeleri İlke 5: Pesticide (tarım ilacı) paradoksu; Aynı testler üst üste tekrarlandığında, aynı test durumlarından oluşan testler artık yeni defect bulamazlar. Bu paradoksu aşmak için, test durumları düzenli olarak gözden geçirilmeli, düzeltilmeli, yazılımın ve sistemin farklı bölümlerindeki potansiyel defectler için yeni testler yazılmalıdır. Kaynak: http://testgaraji.com
Testin İlkeleri İlke 6: Test içerik bağımlıdır; Farklı bağlamlarda farklı test yapılmalıdır. Örneğin, güvenliği kritik bir yazılımın testi bir e-ticaret sitesinin testinden farklı gerçekleştirilmelidir. Kaynak: http://testgaraji.com
Testin İlkeleri İlke 7: Hata yokluğu yanılgısı (Absence of error fallacy); Sistem buildi kullanılabilir değilse, kullanıcının ihtiyaçlarını ve beklentilerini karşılamıyorsa, defect bulmanın ve defecti düzeltmenin bir yararı olmaz. Kaynak: http://testgaraji.com
Tester, testçi, test uzmanı... Google Images’a göre
Tester, testçi, test uzmanı...
Tester, testçi, test uzmanı...
Tester, testçi, test uzmanı...
Tester, testçi, test uzmanı...
Tester, testçi, test uzmanı...
Tester, testçi, test uzmanı... Süreci iyi bilmeli, Metodolojisi olmalı, Planlı olmalı, Her iki profili de kapsamalı, Net olmalı, Araçları olmalı, Test ortamı olmalı, Şüpheci olmalı...
Tester, testçi, test uzmanı... Hatayı bul, Erken bul, Çözüldüğünden emin ol. Hatayı çöz, İyi niyetle test et, Gereksinimler olmadan test et, Çok belirgin hataları raporlama, Hataları yüzünden başkaları ile alay et,
Test Süreci Yazılım Süreci Test Süreci Analiz Teknik Analiz Development Test UAT Production Yazılım Süreci Test Süreci
Test Süreci Analiz Teknik Analiz Geliştirilecek olan ürünü tanımak, müşteri isteğini anlamak, Eğer kullanılan ürün ise mevcut durumu saptamak, Risk analizi yapmak, Test zamanlarını belirlemek, Test planını oluşturmak, Use case ve senaryoları belirlemek.
Test Süreci Senaryoları risk durumlarına göre sınıflandırmak, Development Senaryoları risk durumlarına göre sınıflandırmak, Senaryoları test case leri ile detaylandırmak, Birim (unit) testleri yapmak, Analiz’deki değişiklikleri takip etmek.
Test Süreci Smoke testleri yapmak, Test senaryolarını çalıştırmak (riskli olanlar öncelikli), Hataları raporlamak, Çözülen hataları tekrar test etmek (regression), Riskli olan senaryoları tekrar test etmek.
Test Süreci Uygulamadaki tüm fonksiyonaliteyi müşteriye test ettirmek, UAT Uygulamadaki tüm fonksiyonaliteyi müşteriye test ettirmek, Çıkan hataları raporlamak, Çözülen hataları test edip, müşteriden onay almak, Test raporu yayınlamak
Risk Analizi (FMEA) Testi planlamaya başlamadan önce risklerin belirlenmesi gerekir. Bu alanda FMEA (Failure Mode Effect Analysis) yöntemi kullanılır. FMEA risk analizi 3 adımdan oluşur; 1- Risklerin kategorize edilmesi 2- Risklerin ölçeklendirilmesi 3- Risklerin RPN (risk priority number) değerinin belirlenmesi
Risk Analizi (FMEA) Risk kategorileri; Fonksiyonelite: Sistemin işlevselliğini tam olarak yerine getirememesine neden olabilecek risklerdir, Yük & Kapasite: Maksimum sayıda kullanıcıyı sistemin destekleyebilmesini engelleyebilecek risklerdir, Güveninirlik: Sistemin çökmesine sebep olabilecek risklerdir, Sürdürülebilirlik: Operasyonların devamlılığını kesintiye uğratabilecek risklerdir.
Risk Analizi (FMEA) Veri kalitesi: Verilerin düzgün bir şekilde işlenmesi, saklanması ve çekilmesini engelleyebilecek risklerdir, Performans: Normal şartlar altında işlemlerin belirlenen sürede yapılmasını engelleyebilecek risklerdir, Dökümantasyon: Şirket personeli için hazırlana kullanım klavuzu riskleridir, Arayüz: Sistemin arayüzlerinde ortaya çıkabilecek risklerdir, Entegrasyon: Sistemin diğer sistemlerle olan etkileşimi sırasında ortaya çıkabilecek risklerdir.
Risk Analizi (FMEA) Risklerin ölçeklendirilmesi; A) Sistem Açısından Önemine Göre ( Severity) 1. Veri Kaybı 2. İşlevsellik Kaybı 3. Giderilebilir İşlevsellik Kaybı 4. Kısmi İşlevsellik Kaybı 5. Kozmetik Riskler
Risk Analizi (FMEA) Risklerin ölçeklendirilmesi; B) Müşteri Açısından Önemine Göre ( Priority) 1. Acil 2. Zorunlu 3. Önemli 4. Düzeltilmesi İyi Olacak 5. İsteğe Bağlı
Risk Analizi (FMEA) Risklerin ölçeklendirilmesi; C) Gerçekleşme Olasılığına Göre ( Likelihood) 1. Muhtemel 2. Mümkün 3. İhtimal Dahilinde Olmayan
Risk Analizi (FMEA) RPN hesaplama; RPN hesaplanırken risklerimiz için belirlediğimiz severity, priority ve likelihood ölçeklerinin katsayıları ile çarparız; Örneğin severity (1), priority (2), likelihood(2) olan bir riskin RPN değeri 4 tür. RPN değeri ne kadar az olursa riskin önemi o kadar artar.
Test Seviyeleri Test 4 temel aşamadan oluşur; Birim (unit) seviyesi Modül seviyesi Sistem seviyesi Kabul seviyesi
Test Seviyeleri Birim (unit) seviyesi Sistemi oluşturan ufak parçaların kendi içerindeki testlerdir. Kod testi olarak da bilinir. Genelde bu level daki testleri developer veya yazılım skilleri olan testçiler yapar.
Test Seviyeleri Modül seviyesi Ayrık parçaların birbirleri ile olan etkileşimlerinin testi.
Test Seviyeleri Sistem seviyesi Parçalar birleştikten sonra bütün yazılımın gereksinimlere uyumluluk testidir. Fonksiyonel ve görsel test olarak bilinir.
Test Seviyeleri Kabul seviyesi Üretilen yazılımın müşteri tarafından test edilmesidir.
Test Çeşitleri • Black box testing • White box testing • unit testing • integration testing • functional testing • end-to-end testing • sanity testing or smoke testing • regression testing • acceptance testing • load testing • stress testing • performance testing
Test Çeşitleri • usability testing • install/uninstall testing • security testing • compatability testing • exploratory testing • user acceptance testing • comparison testing • alpha testing • beta testing
Test Sertifikaları Uluslararası düzeydeki eğitim programları ve sertifikasyonlarını veren kurumlar; ISQTB - http://www.istqb.org/ CSTE - http://www.qaiglobal.com/ CSTP - http://www.testinginstitute.com/ CTM - http://www.testinginstitute.com/ctm.php CSQA - http://www.qaiindia.com/Certification/note.htm CSPM - http://www.qaiindia.com/Certification/note_cspm.htm CSPE - http://www.qaiasia.com/edistacertification/Certification.asp
Gelecek… Mobilitenin yayılması ile beraber platform bağımsız sistemler, Cloud computing Cloud testing (SOASTA, Gomez…)
Sorularınız... Necdet Terkeş necdet.terkes@gmail.com necdett.com (QA / ISTQB) necdet.terkes@gmail.com necdett.com twitter.com/necdet tr.linkedin.com/in/nterkes