Yazılım Testine Giriş

Benzer belgeler
9.DERS Yazılım Geliştirme Modelleri

SİSTEM VE YAZILIM. o Bilgisayar sistemleri donanım, yazılım ve bunları işletmek üzere gerekli işlemlerden oluşur.

Sistem ve Yazılım Nedir?

YAZILIM GÜVENLİK TESTLERİ. H A L D U N T E R A M A N h a l d u n t e r a m a g m a i l. c o m

Bilgisayar Sistemleri; donanım, yazılım ve kullanıcılardan oluşur. Yazılım sadece belirli bir işlemi yapan bir program değildir. Yazılım belirli bir

Yazılım Mühendisliği Bölüm - 2 Yazılım Geliştirme Yaşam Döngüsü. Cengiz GÖK

SİSTEM ANALİZİ VE TASARIMI

Yazılım Mühendisliği 1

Yazılım Testine Bakış. Defne Şarlıoğlu

YAŞAR ÜNİVERSİTESİ YAZILIM MÜHENDİSLİĞİ BÖLÜMÜ

1.Yazılım Geliştirme Metotları 1

YMT 505-Yazılım Proje Yönetimi Giriş- Temel Kavramlar

YMT 312-Yazılım Tasarım ve Mimarisi Yazılım Mühendisliği ne Giriş

YAZILIM MÜHENDİSLİĞİNİN TEMELLERİ 8.Hafta. Yazılım Doğrulama ve Geçerleme

BİLİŞİM SİSTEMLERİNİN PRENSİPLERİ

Bilişim Teknolojileri Test ve Belgelendirme Hizmetleri. Mustafa YILMAZ

Yaz.Müh.Ders Notları #6 1

BİLİŞİM SİSTEMLERİ GÜVENLİĞİNDE YENİ EĞİLİMLER

Yazılım Nedir? Yazılım Mühendisi. Yazılım Mühendisliği. ACM/IEEE Etik Kodu. Etik Kural için Önsöz BIL 304 YAZILIM MÜHENDİSLİĞİ

T. C. KAMU İHALE KURUMU

YAZILIM MÜHENDİSLİĞİNİN TEMELLERİ 9.Hafta. Bakım

TS EN ISO/IEC Kullanılabilir Arayüz Sertifikası Verilmesi Süreci

WEB PROJESİ YÖNETİMİ. Belli bir süre içerisinde, belli bir bütçe ile belirlenen hedeflere ulaşmak için uygulanan metodolojik süreçtir.

YAZILIM SINAMA TEKNİKLERİ GENEL BİLGİLER

MARMARA ÜNİVERİSTESİ TEKNİK EĞİTİM FAKÜLTESİ ISO 9001:2000 KALİTE EL KİTABI

aselsan Açık Pozisyonlar Bilgi Teknolojileri (BT) Denetçisi İç Denetçi

Sistem Analizi ve Tasarımı DERS2

İç Kontrol Uzmanı Pozisyonu İçin Doğru Kriterlere Sahip Olduğunuzdan Emin misiniz?

IBM CLM Çözümleriyle Çevik Yazılım Süreçleri. Canberk Akduygu & Koray Okşar

4. ÜRÜN GELİSTİRME İŞLEMİ

AKIŞ ŞEMASI AKIŞ ŞEMASI AKIŞ ŞEMASI ŞEKİLLERİ GİRİŞ

5.DERS PROJEDE YÜRÜTMENİN PLANLANMASI

(2. AŞAMA) SAHA TETKİKİ PROSEDÜRÜ

1. AŞAMA TETKİK PROSEDÜRÜ

Chapter 8 Yazılım Testi. Lecture 1. Chapter 8 Software testing

Yazılım profesyonelleri için önemli olan yetkinlikler anketi Survey

Sistem Analizi ve Planlama

T.C. ANKARA SOSYAL BİLİMLER ÜNİVERSİTESİ İÇ DENETİM BİRİMİ KALİTE GÜVENCE VE GELİŞTİRME PROGRAMI

CMMI. CMMI ve Çevik Yöntemler. Orhan KALAYCI Haziran Yazılım Süreç Kalitesi ve Yönetim Danışmanlığı.

Yazılım Mühendisliği Bölüm - 3 Planlama

Bir yazılım geliştirme metodolojisi aşağıdaki adımlardan meydana gelir; Yazılım geliştirme sürecine destek verecek araçlar, modeller ve yöntemler.

13.DERS Konfigürasyon Yönetimi

Yazılım Mühendisliği Temelleri

Yazılım Mühendisliği Bölüm - 3 Planlama. Cengiz GÖK

çalışmalara proje denilmektedir.

BÖLÜM 2. Bilişim Sistemleri, İş Süreçleri ve İşbirliği. Doç. Dr. Serkan ADA

BMH-405 YAZILIM MÜHENDİSLİĞİ

Notice Belgelendirme Muayene ve Denetim Hiz. A.Ş Onaylanmış Kuruluş 2764

Sistem Geliştirme Yaşam Döngüsü (The Systems Development Life Cycle) (SDLC)

APQP/PPAP. Prof. Dr. Ali ŞEN

BİÇİMSEL YÖNTEMLER (FORMAL METHODS) Betül AKTAŞ Suna AKMELEZ

UE.18 Rev.Tar/No: /03 SAYFA 1 / 5

BLG Sistem Analizi ve Tasarımı. Öğr. Grv. Aybike ŞİMŞEK

PMP Sınavına Hazırlık Proje Yönetimi

ISO 13485:2016 TIBBİ CİHAZLAR KALİTE YÖNETİM SİSTEMİ GEÇİŞ KILAVUZU

Öğretim planındaki AKTS Ulusal Kredi

PRINCE2 Foundation Proje Yönetimi Eğitimi

Mühendislik ve Bilgisayar Bilimleri Fakültesi Yazýlým Mühendisliði

Bilişim Sistemleri. Modelleme, Analiz ve Tasarım. Yrd. Doç. Dr. Alper GÖKSU

YAZILIM MÜHENDİSLİĞİ TEKNOLOJİ FAKÜLTESİ / BİLGİSAYAR MÜHENDİSLİĞİ

Sistem Analizi ve. Tasarımı. Mustafa COŞAR

SÜREÇ YÖNETİMİ UZMANLIK PROGRAMI

BMH-405 YAZILIM MÜHENDİSLİĞİ

International Project Management Association (IPMA) Proje Yönetim Sertifika Sistemi

HASTA BAKIMININ ORGANİZASYONU. Öğr. Gör. Sultan TÜRKMEN KESKİN

BELGELENDİRME PROGRAMI

ERP Uygulama Öncesi Değerlendirme

İŞ SAĞLIĞI VE GÜVENLİĞİ TEMEL EĞİTİMİ. Eğitimin Amacı

11.DERS Yazılım Testi

Sedona. Nisan 2013 Eğitim Kataloğu

Konfigürasyon Yönetimi

BM208- Nesneye Dayalı Analiz ve Tasarım. Öğr. Grv. Aybike ŞİMŞEK

Dijitalleşme Yolunda ERP Dönüşümü

KARĐYER YÖNETĐMĐ. Geleceğe yönelik çalışan ihtiyaçlarını iç kaynaklardan sağlayarak çalışan motivasyonunu artırma.

ISO 9001:2015 KALİTE YÖNETİM SİSTEMİ GEÇİŞ KILAVUZU

10UY MAKİNE BAKIMCI SEVİYE 3 SINAV ŞARTNAMESİ

Başarılar Dilerim. SORULAR

Yazılım Mühendisliğine Giriş (SE 112) Ders Detayları

YMT 412-Yazılım Kalite Ve Güvencesi Test Stratejileri 1/57

15UY0241-4/B1: Elektrik İç Tesisat Projesi Hazırlama 15UY0241-4/B2: Elektrik İç Tesisat Uygulaması. Performansa Dayalı Sınavlar/Uygulama Sınavları

Kurumsal Uygulamalar ve Bilgi Teknolojileri Entegrasyonu

BANKALARDA OPERASYONEL RİSK DENETİMİ

Yaz.Müh.Ders Notları #3 1

Yaz.Müh.Ders Notları #6 1

UNIVERSAL BELGELENDİRME MESLEKİ YETERLİLİK VE PERİYODİK MUAYENE HİZMETLERİ SAN.VE TİC.A.Ş.

TÜRK STANDARDLARI ENSTİTÜSÜ

Doküman No:ITP 16.1 Revizyon No: 01 Tarih: Sayfa No: 1/5 KALİTE SİSTEM PROSEDÜRLERİ PROJE YÖNETİMİ PROSEDÜRÜ

BELGELENDİRME PROGRAMI

Sedona. Eğitim Kataloğu

Laboratuvar Akreditasyonu

C. Yönetim Sistemi İle İlgili Taraflar ve Bunların Şartları

Yazılım Gereksinimleri Mühendisliği (SE 221) Ders Detayları

HAYAT. KURTARICI.. PRENSIPLERIMIZ

FIRAT ÜNİVERSİTESİ TEKNOLOJİ FAKÜLTESİ Yazılım Mühendisliği Bölümü

KURULUŞ AMAÇ BAĞLAM KAPSAM. A. KURUM Profili. B. Yönetim Sistemi İle İlgili İç -Dış Hususlar İç Hususlar

İ.Ü. AÇIK VE UZAKTAN EĞİTİM FAKÜLTESİ Kullanıcı Deneyimi ve Kullanılabilirlik Değerlendirmesi Standardı

DEMİRYOLU EMNİYET YÖNETİM SİSTEMİ EMNİYET ÇALIŞTAYI 2016

DENETİM KOÇLUĞU EĞİTİM SERİSİ

Transkript:

YMT 412-Yazılım Kalite Ve Güvencesi Yazılım Testine Giriş F ı r a t Ü n i v e r s i t e s i Ya z ı l ı m M ü h e n d i s l i ğ i B ö l ü m ü 1/49

İçindekiler 1 7 Yazılım Testi.....3 2 3 4 5 6 Türkiye Yazılım Kalite Raporu....8 Testin Amaçları.....13 Doğrulama Ve Geçerleme.. 15 Yazılım Hataları.... 23 Testi Kim Yapar?... 32 Yazılım Geliştirme Metodolojilerinde Test....... 35 2/49

1. Yazılım Testi Yazılım testi, yazılımın daha önce tanımlanmış teknik ve işlevsel gereksinimleri karşılayıp karşılamadığının ve yazılımın beklendiği gibi çalışıp çalışmadığının kontrolüdür. Yazılım test süreci de temel olarak elde edilen ürünün beklenen kalitede olduğunu belirlemek, değilse istenilen kaliteye ulaştırılmasını sağlamayı amaçlayan bir süreçtir. 3/49

1. Yazılım Testi Bilgisayar sistemleri hatalar barındırır. Bu hatalar insan (geliştirici, analist vb.) ve donanım kaynaklı olabilir ve hatalar maddi ve/veya prestij kayıplarına neden olabilir. Yazılım test sürecinin proje döngüsüne katılmasıyla bu kayıplar en aza indirebilir. Burada unutulmaması gereken şey mükemmel yazılım olmadığı ve bir yazılımın asla %100 test edilemeyeceğidir. 4/49

1. Yazılım Testi Bir yazılımı %100 oranında test etmeye çalışmak hem maddi gerekçelerle hem de pratik olarak mümkün olmadığından, yazılımın beklendiği gibi çalıştığını gösterebilecek sınırlı sayıda ancak özenle seçilmiş bir test kümesinin belirlenmesi ve bu test kümesi üzerinden test yapılması daha mantıklıdır. Yazılım testi başka bir ifadeyle bir yazılımın doğrulanması ve geçerlenmesi süreci olarak da tanımlanabilir. 5/49

1.1. Yazılım Testinin Gelişimi Yazılım testi ilk ortaya çıktığı sıralarda yalnızca hata ayıklama amacıyla yapılmaktaydı. Sonra testler yazılımın doğru çalıştığını göstermek amacıyla yapılmaya başlandı. Daha sonraları testlerin yapıcı olmaktan çok, yıkıcı bir şekilde yapılmasının daha iyi sonuçlar verdiği görüldü. 1980 li yıllardan sonra daha kurallı geliştirme teknikleri kullanılmaya başlandığından tüm geliştirme sürecini içeren aşamalı testler kullanıldı. Günümüzde de bu yöntem yanında hataları önlemeye yönelik testler yapılmalıdır. 6/49

1.1. Yazılım Testinin Gelişimi 7/49

2. Türkiye Yazılım Kalite Raporu Veriler Türkiye Yazılım Kalite Raporu 2011-2012 den alınmıştır. 20 sorudan ve 4 başlıktan oluşan anketi 250 yazılım geliştirme firmalarının ilgili IT direktör, Kalite Müdür, İş analisti, Proje Yöneticisi gibi kişilerin cevaplanması istenmiştir. Cevaplar rapor halinde sunulmuştur. 8/49

International Software Testing Qualifications Board (ISTQB) Dünya çapında yazılım test sertifikası veren birkaç farklı kuruluşun içinde ISTQB (International Software Testing Qualification Board) en yaygın ve lider konumdadır. ISTQB (International Software Testing Qualifications Board) yazılım testine belirli standartlar koyup ortak bir dil oluşturan ve belirli sınavlar düzenleyerek sertifika veren gönüllü oluşturulmuş bir kurumdur. Türkiye de de bu sınavın bilinirliği ve sertifikanın geçerliliği gün geçtikçe artmaktadır. ISTQB de ilk olarak Foundation Level (temel seviye) sertifikası alınması gerekmektedir. Daha sonrasında Test Analist, Test Yönetimi ve Teknik test analsti olarak 3 kola ayrılmaktadır. Yazılım Test ve Kalite Derneği Türkiye de ISTQB Sertifikasyon sınavlarını gerçekleştirmektedir. Dünya da 100 ülkede 380.000 den fazla uzman ISTQB sertifikalarına sahiptir. 9/49

ISTQB Sertifikasyonları ISTQB Foundation Level Sertifikasyon Sınavları ISTQB Advanced Level Sertifikasyon Sınavları ise; ISTQB Advanced Level Test Analyst ISTQB Advanced Level Test Manager ISTQB Advanced Level Technical Test Analyst 10/49

Turkish Testing Board TTB 2006 yılında yazılım test ve kalite alanında dünyanın en saygın gönüllü organizasyonu olan ISTQB a (International Software Testing Qualifications Board (www.istqb.org) bağlı olarak kurulmuştur. Bu tarihten itibaren, Türkiye deki bilişim profesyonellerinin yazılım testi alanında ISTQB standartlarında eğitilmesi ve sertifikalanması amacıyla çalışmalarına başlamıştır. Türkiye Bilişim Sektörünün uluslararası pazarlarda rekabet edebilmesi için sektörün yazılım testi ve kalitesi konusunda bilgilendirilmesi ISTQB sınavlarının yapılarak sınavı kazanan adayların sertifikasyonu Yazılım testi konusunda uluslararası kabul görmüş içeriğin Türkçeleştirilmesi 11/49

2. Türkiye Yazılım Kalite Raporu Firmanızda test işleminden kimler sorumludur? Soruya birden fazla cevap verebilme imkanı vardır. 12/49

2. Türkiye Yazılım Kalite Raporu İşletmenizde kaç adet test elemanı var? Hiç Yok <5 <10 <50 13% 6% 15% 41% 25% 13/49

2. Türkiye Yazılım Kalite Raporu En çok gerçekleştirdiğiniz test türleri nelerdir? 100,00% 80,00% 98,10% 83,0 60,00% 40,00% 43,40% 20,00% 0,00% Fonksiyonel Performans Kullanılabilirlik Soruya birden fazla cevap verebilme imkanı vardır. 14/49

2. Türkiye Yazılım Kalite Raporu Çalışanlarınızın test sertifikasına sahip olmaları ne kadar önemlidir? Çok önemli Önemli değil 28% Önemli Fikrim yok 18% 2% 52% 15/49

3. Testin Amaçları Müşteriye sunmadan önce ürün kalitesinden emin olmak, Yeniden çalışma ve geliştirme için masrafları azaltmak, Geliştirme işleminin erken aşamalarında hataları 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. 16/49

3.1. Yazılım testinde neler test edilmektedir? İş gereksinimleri İşlevsel tasarım gereksinimleri Teknik tasarım gereksinimleri Düzenleyici gereksinimler Yazılımın kaynak kodu Ortakların standartları Donanım yapılandırılması ve dil farklılıkları 17/49

4. Doğrulama Ve Geçerleme DOĞRULAMA Ürünü doğru mu üretiyoruz? Sistemin hatasız ve iyi bir mühendislik ürünü olup olmadığını ölçer. Geliştiriciler veya QA ekibi tarafından gerçekleştirilir. Doğrulama aşamasında bulunan hataların maliyeti daha azdır. GEÇERLEME Doğru ürünü mü üretiyoruz? Sistemin kullanıcı gereksinimlerine uygunluğu ölçer. Test ekibi tarafından gerçekleştirilir. Geçerleme aşamasında bulunan hataların maliyeti daha fazladır. 18/49

4.1. Doğrulama Süreci Sözleşme doğrulaması Süreç doğrulaması İsterler doğrulaması Tasarım doğrulaması Kod doğrulaması Belgelendirme doğrulaması 19/49

4.1. Doğrulama Süreci Sözleşme Doğrulaması: Geliştirici ile müşteri arasında yapılan sözleşme şu kıstaslara göre doğrulanmalıdır: Geliştirici tüm isterleri karşılayabileceği güvenini vermektedir. İsterler tutarlı olup kullanıcı gereksinimlerini kapsamaktadır. İsterlere yapılacak değişiklikleri ve ortaya çıkabilecek problemleri kontrol edebilmek üzere yordamlar öngörülmüştür. Taraflar arasında sahiplik, garanti, telif hakları ve gizlilik gibi konuları da içerecek şekilde işbirliği yapılmaktadır. İsterlerle birlikte kabul kıstasları ve yordamları öngörülmüştür. 20/49

4.1. Doğrulama Süreci Süreç Doğrulaması: Süreç aşağıda listelenen kıstaslara göre doğrulanmalıdır. Proje planlamaları yeterli ve takvime uygundur. Proje için seçilen süreçler yeterlidir, planlandığı şekilde yürütülmektedir. Proje süreçleri için seçilmiş standartlar, yordamlar ve ortamlar yeterlidir. Proje personeli sağlanmış ve sözleşme gereklerine göre eğitilmiştir. 21/49

4.1. Doğrulama Süreci İsterlerin Doğrulanması: İsterler şu kıstaslara göre doğrulanmalıdır: Sistem isterleri tutarlı, gerçekleştirilebilir ve test edilebilir durumdadırlar. Sistem isterleri tasarım ölçütlerine uygun şekilde donanım öğelerine, yazılım öğelerine atanmıştır. Yazılım isterler tutarlı, gerçekleştirilebilir ve test edilebilir durumda olup sistem isterlerine uymaktadır. Emniyet, güvenlik ve kritik durumlarla ilgili yazılım isterleri doğrudur. 22/49

4.1. Doğrulama Süreci Tasarım Doğrulaması: Tasarım aşağıdaki kriterlere göre doğrulanmalıdır: Seçilen tasarım isterlerden türetilebilmektedir. Tasarım isterlere göre tutarlıdır ve izlenebilir durumdadır. Tasarım, olayların, girdilerin, ara yüzlerin, mantık akışının uygun dizilişlerini, zaman ve büyüklük tahsislerini, hata tanımlarını, hataya dayanıklılığını gerçekleştirmektedir. Tasarım, emniyet, güvenlik ve diğer kritik durumlarla ilgili isterleri gerçekleştirmektedir. 23/49

4.1. Doğrulama Süreci Kod Doğrulaması Kod, tasarıma ve isterlere göre izlenebilir, türetilebilir ve test edilebilir. Kod doğru ve kodlama standartlarına uygun olmalıdır. Kod, olayların, girdilerin, ara yüzlerin, mantık akışının uygun dizilişlerini, zaman ve büyüklük tahsislerini, hata tanımlarını, hataya dayanıklılığı ve geri kazanmayı gerçekleştirmektedir. Kod, emniyet, güvenlik ve diğer kritik durumlarla ilgili isterleri gerçekleştirmektedir. Kod, yazan kişiden başkası tarafından rahatça okunabilir, anlaşılabilir ve bakım uygulanabilir. 24/49

4.1. Doğrulama Süreci Belgelendirme Doğrulaması: Belgelendirme şu kıstaslara göre doğrulanmalıdır. Belgelendirme yeterli, uygun, tam, anlaşılabilir ve tutarlıdır. Belgelendirme hazırlıkları takvime uygundur. Belgelerin sürüm, baskı ve dağıtım denetimi belirlenmiş yordamlara göre yapılmaktadır. Belgeler gizlilik derecelerine uygun olarak saklanmaktadır. 25/49

5. Yazılım Hataları Yazılım geliştirme süreci boyunca hatalardan kaçınmak imkansızdır. 26/49

5. Yazılım Hataları Yazılım kalitesi konusunu anlamanın anahtarı failure, fault ve error terimlerini anlamaktır. IEEE Standart 610.12 (IEEE,1990) bu terimleri şu şekilde tanımlamıştır: 27/49

5. Yazılım Hataları Error: Kodlayıcı kaynaklı, doğru olmayan bir sonuç elde edilmesi. Failure: Sistemin veya bir parçasının gerekli fonksiyonu yeterli performansta yerine getirememesi. Fault: Bir yazılım içerisindeki doğru olmayan adım, işlem veya veri tanımı. Buna göre, failure kullanıcı gereksinimlerini veya ürün özelliklerinin doğru olarak karşılanamaması, fault yazılımdan kaynaklanan hata ve problemler, error ise kodlayıcı kaynaklı problemlerin ortaya çıkması durumu olarak özetlenebilir. 28/49

5. Yazılım Hataları 29/49

5.1. Hata Ayıklama (Debugging) Hata ayıklama başarılı bir test sürecinin sonucudur. Şöyle ki, bir test sonucunda hatalar bulunduğu zaman hataların giderilme işlemine hata ayıklama(debugging) denir. 30/49

5. Hata Ayıklama 3 çeşit hata giderme stratejisi vardır. Brute force Backtracking Cause elimination 31/49

5.1.1. Brute Force Brute Force: Yürütme anındaki davranışlar izlenir, yazılım biriminin çeşitli noktalarına ekrana veya bir dosyaya o an akışın neresinde olduğunu, genel durumunu veya bir değişkenin değerini yazan deyimler eklenir. Bu bilgiler ışığında, hataya neden olan yazılım kusuru aranır. 32/49

5.1.2. Backtracking Backtracking: Kodun okunarak geri izlenmesi esasına dayanır. Hatanın oluştuğu yerden itibaren geriye doğru gidilerek kod incelenir; hata yaratan deyim yada kusurlu akış mantığı aranır. Küçük yazılımlarda yaygın olarak kullanılır. Yüksek satır ve modül sayısına sahip yazılımlarda, akış yolunun çok dallandığı noktalarda bunuyapmak oldukça zordur. 33/49

5.1.3. Cause Elimination Cause elimination: Tümevarım veya tümdengelim yöntemlerine dayanarak elde edilen verilere göre hatanın nedeni araştırılır. Ortaya konan varsayımları doğrulayıcı ya da çürütücü testler tasarlanır. İlk testler olumlu sonuç verirse, daha ayrıntılı verilerle testlere devam edilerek hatanın tam yerinin saptanmasına çalışılır. 34/49

6. Testi Kim Yapar? Testi kimin yapacağı, test işlemine ve projenin paydaşlarına bağlıdır. Bilişim Teknolojileri sektöründe, büyük şirketler geliştirilen yazılımın yeterliliğini ölçmekle sorumlu test ekiplerine sahiptir. Yazılım test ekibi, test edilecek uygulamanın büyüklüğüne ve karmaşıklığına göre oluşturulur. 35/49

6. Testi Kim Yapar? Çoğu durumda aşağıdaki çalışanlar sistemin test edilmesine kendi yaptıkları işle ilgili olarak dahil olurlar: Yazılım test ekibi Yazılım geliştirici Proje lideri Son kullanıcı 36/49

6. Testi Kim Yapar? Test Sürecinde mümkün olduğu kadar test ekibi daha etkin kullanılmalıdır ve diğer pozisyonların test sürecindeki etkinliği azaltılmalıdır. Test yapan kişilerin, Tedbirli, Meraklı, Eleştirmen İyi iletişim kurabilen kişilikte olmaları gerekir. 37/49

7. Yazılım Geliştirme Metodolojilerinde Test Ş e l a l e M o d e l i 38/49

7. Yazılım Geliştirme Metodolojilerinde Test Şelale Modeli: Yazılım süreci lineardir, bir sonraki safhaya geçebilmek için bir önceki safhada yer alan aktivitelerin tamamlanmış olması gerekir. Yani test aşamasına gelebilmek için diğer aşamalar tamamlanmalıdır. Hatalar sadece 5. aşamada giderilebildiğinden yazılımın maliyetini artırır ve başarısını azaltır. Kullanıcı katılımı başlangıç safhasında mümkündür. Kullanıcı isterleri bu safhada tespit edilir ve detaylandırılır. Daha sonra gelen tasarım ve kodlama safhalarında müşteri ve kullanıcılar ile diyaloğa girilmez. Bu yüzden kullanıcı testlerinde başarı yakalama oranları azdır. 39/49

7. Yazılım Geliştirme Metodolojilerinde Test Ç e v i k Y a z ı l ı m 40/49

7. Yazılım Geliştirme Metodolojilerinde Test Agile: Geleneksel yaklaşımın tersine, test profesyonelleri, yazılım geliştirme yaşam döngüsünün en başından itibaren sürece dahil olurlar. Kullanıcının geliştirici ve test sorumlusu ile aynı ortamı paylaşması prensibi, geliştirilen ürünün kullanıcının gerçekten istediği bir biçimde geliştirilmesi ve gerçekçi kullanım durumlarına göre test edilmesini sağlar. Test güdümlü geliştirme yöntemini( TDD) kullanır. TDD: Test Driven Development yöntemiyle kodlama yaparken genelde şu şekilde bir yol izlenmekdir. 1. Tek satır kod yazmadan kodun testini yaz. 2. Testi çalıştır ve testin geçemediğini gör. 3. Testi geçecek en basit kodu yaz ve testin geçtiğini gör. 4. Kodu düzenle 5. Başa dön 41/49

7. Yazılım Geliştirme Metodolojilerinde Test V M o d e l i 42/49

7. Yazılım Geliştirme Metodolojilerinde Test V modeli: Test işlemlerinin ne zaman yapılacağını ön plana çıkarır. Bir önceki şekle bakacak olursak, sol kanat üretim etkinliklerini, sağ kanat da test etkinliklerini gösterir. Bu modelde geliştirme ve test paralel şekilde yapılır. Her aşama sonunda test edilecek ürün, test grubu tarafından sınanır, onay verildikçe bir sonraki aşamaya geçilir. İsterlerin iyi tanımlandığı, belirsizliklerin az olduğu ve aşamalar halinde ilerlenmesi gereken projelerde «v» modeli iyi sonuç verir. 43/49

7. Yazılım Geliştirme Metodolojilerinde Test S p i r a l M o d e l Planlama Amaca, Alternatiflere ve Sınırlamalara karar verme onay ekseni Bir sonraki fazın planlanması ve kullanıcı değerlendirmesi Kullanıcı Değerlendirme Öninceleme Analizi Geliştirme Planı Birleştirme ve Test Planı Risk Analizi Risk Analizi Risk Analizi Risk Analizi Prototip 1 İşin Genel Kavramı Gereksinim onaylama Tasarımı test Etme ve onay Servis Prototip 2 Yazılım Gereksinimi Kabul testi Prototip 3 Ürün Tasarımı Alternatifleri değerlendirme ve risk analizi Kodlama İşin Prototipi Simulasyon ve Modelleme Detaylı Tasarım Risk Analizi Modül Testi Birleştirme testi Geliştirme ve bir sonraki ürünü onaylama Üretim 44/49

7. Yazılım Geliştirme Metodolojilerinde Test Spiral Model: Aynı safhalara geri dönülmesinin bir zorunluluk olduğunu vurgular. Proje çevrimlere ayrılır ve her bir çevrimin riskleri ayrı ayrı ele alınır. Bu modelin avantajları vardır. İlki üretim süreci boyunca ara ürün üretme ve üretilen ara ürünün kullanıcı tarafından sınanması temeline dayanır. Diğer bir avantajı gerek proje sahibi, gerekse yüklenici tarafındaki yöneticiler, çalışan yazılımlarla proje boyunca karşılaştıkları için daha kolay izleme planlaması yapılır. Avantajlarından biri de; yazılımın kodlanması ve testi daha erken başlar. 45/49

Çalışma Soruları 1. Yazılım hatalarını örnek vererek açıklayınız. 2. Hangi yazılım geliştirme metodolojisinde testin yeri en büyüktür? Açıklayınız. 3. Hata ayıklama nedir? Test ile farkını yazınız. 4. Hata ayıklamanın türlerini yazıp açıklayınız. 5. Doğrulama ve geçerleme arasındaki farkları yazınız. Birer örnekle açıklayınız. 6. Doğrulama süreci aşamalarını yazınız. 7. Testin amaçları nelerdir? Yazılım testinde neler test edilir? 8. Test güdümlü geliştirme nedir? Avantajları nelerdir? 46/49

Kaynaklar [1] Software Enginnering A Practitioner's Approach (7th Edition),Roger Pressman,2013 [2] Yazılım Mühendisliği(2. Baskı), M.Erhan Sarıdoğan,2008 [3] Yazılım Test Mühendisliği (1. Baskı), Rifat Çölkesen, 2010 [4] http://www.cihataltuntas.com/test-driven-development/ [5] www.kurumsaljava.com/download/10/ [6] http://www.turkishtestingboard.org/turkeysoftwarequalityreport.pdf [7] http://www.tutorialspoint.com/software_testing/ [8]http://www.computerworld.com.tr/wpcontent/uploads/2015/04/yazilim -testi.jpg 47/49