software development life cycle yazılım geliştirme yaşam döngüsü

18
SDLC Software Development Life Cycle

Upload: mesut-guenes

Post on 15-Dec-2014

1.006 views

Category:

Documents


4 download

DESCRIPTION

Yazılım geliştirme yaşam döngüsü hakkında kalite ve test bakışı açısından kısa bir sunum.

TRANSCRIPT

Page 1: Software development life cycle   yazılım geliştirme yaşam döngüsü

SDLCSoftware Development Life Cycle

Page 2: Software development life cycle   yazılım geliştirme yaşam döngüsü

Geliştirme Boyunca Test

SDLC Nedir?

Test Nedir?

Test Türleri

Yazılım Geliştirme Modelleri

Page 3: Software development life cycle   yazılım geliştirme yaşam döngüsü

1. SDLC Nedir?

SDLC Software Development Life Cycle – Yazılım Geliştirme Yaşam

Döngüsü Yazılım isteğinin doğmasından kullanıcılara sunulmasına kadar geçen

süreç Çeşitli ‘Yazılım Uzmanlığı’ roller vardır

Page 4: Software development life cycle   yazılım geliştirme yaşam döngüsü

1. SDLC Nedir?

SDLC - Aşamaları İstek, Kanun Değişikliği, vb. ortaya çıkması Kullanıcı Gereksinimlerinin Belirlenmesi Sistem Gereksinimlerinin Belirlenmesi Üst Düzey Tasarım Çıktıları Detay Tasarım Çıktıları Yazılım Geliştirme Aşaması Test Süreçleri Yayınlama

Page 5: Software development life cycle   yazılım geliştirme yaşam döngüsü

2. Test Nedir?

Sürücü Testi Test süreçlerini anlamak için kulllanılır Nedir?

Eğer sürücü çeşitli yolları deneyerek bir rotayı takip eder ve çeşitli manevralar yaparak rotasını güvenli bir şekilde tamamlar ise sürücü testi başarılıdır denir.

Sürüş sırasında rotanın tamamlanmasına engel olabilecek tek bir ciddi hata tüm sürüşün başarısız olmasına sebep olur fakat sürüş sırasında birçok küçük hata şürüşün başarılı sayılmasına engel değildir.

Page 6: Software development life cycle   yazılım geliştirme yaşam döngüsü

2. Test Nedir?

ISTQB’ye Göre Test: ISEB - IEEE Sürücü analojisinden yola çıkarak testin açıklamasını şu parçalara

bölmek gerekir: Proses (process) SLDC boyunca Test Yapılır Statik (static) ve Dinamik (dynamic) testler vardır Plan (planning) Hazırlanma (preparation) Değerlendirme (eveluation)

Page 7: Software development life cycle   yazılım geliştirme yaşam döngüsü

2. Test Nedir?

James Bach ve Michael Bolton: Test ile Kontrolün Fakı Testing is the process of evaluating a product by learning about it

through experimentation, which includes to some degree: questioning, study, modeling, observation and inference. Süreç, öğrenme, sorgulama, modelleme, gözlem, çıkarım

Checking is the process of making evaluations by applying algorithmic decision rules to specific observations of a product Süreç, kural, gözlem

Page 8: Software development life cycle   yazılım geliştirme yaşam döngüsü

3. Test Türleri

Neler test edilir? Yazılımdan istenilenler yerinde ve yapılmış mı? Yazılım istenilen işlevleri yerine getiriyor mu? Yazılım işlevleri yaparken hata veriyor mu? Yazılım istenilen hızda yapıyor mu? Yazılım istenilen kadar işlev yapabiliyor mu? Yazılım istenilen işlevleri en çok ne kadar yapıyor? Yazılım istenileni kolay yapıyor mu? Yazılım istenilen işlevleri güvenli yapıyor mu? Yazılım işlevleri her zaman yapabiliyor mu? …

validation

verificaion

reliability

performance

load

stress

usability

security

compatibilty

İnter-operatability maintainability availability accessibility

Page 9: Software development life cycle   yazılım geliştirme yaşam döngüsü

Test Design Technics

Static

Review

İnspection

Walkthroughs

Desk Checking

Static Analysis

Dynamic

Structural (White Box)

Data Flow

Sybolic Execution

Definition Use

Control Flow

Statament

Branch Decision

Branch Condition

Branch Condition

Combination

LCSAJ

Arcs

Behavioural (Black Box)

Non-functional

Usability

Performance

Functional

Equavalence Partitioning

Boundary Value Analysis

Cause-effect Graphing

Random

State Transition

Gray-Box

Performance

Load

Stress

Endurance

Spike

API

Page 10: Software development life cycle   yazılım geliştirme yaşam döngüsü

4. Yazılım Geliştirme Modelleri?

Waterfall (Şelale) Modeli

İstek, Kanun Değişikliği, vb

Kullanıcı Gereksinimleri

Sistem Gereksinimleri

Üstdüzey Tasarım

Detay Tasarım

Kod Geliştirme

Test

Big-Bang

Page 11: Software development life cycle   yazılım geliştirme yaşam döngüsü

Test Neden Gerekli?

Hatanın MaliyetiSDLC

Gereksinim

Tasarım

Geliştirme

Test

Yayınlama

Kısaca iyi test Ciddi hataları erken bulmaktır!Özay Civelek, testurk.com

Page 12: Software development life cycle   yazılım geliştirme yaşam döngüsü

4. Yazılım Geliştirme Modelleri?

V-Modeliİstek, Kanun

Değişikliği, vb

Kullanıcı Gereksinimleri

Sistem Gereksinimleri

Üstdüzey Tasarım

Detay Tasarım

Kod Geliştirme

İstek, Kanun Değişikliği, vb

Kullanıcı Gereksinimleri

Sistem Gereksinimleri

Üstdüzey Tasarım

Detay Tasarım

Kod Geliştirme

Birim Testi

Birim Entegrasyon Testi

Sistem Testi

Sistem Entegrasyon Testi

Kullanıcı Kabul TestiVALIDATION

VERIFICATIO

N

Page 13: Software development life cycle   yazılım geliştirme yaşam döngüsü

4. Yazılım Geliştirme Modelleri?

V-Modeli: Geç Test (early testing)

İstek, Kanun Değişikliği, vb

Kullanıcı Gereksinimleri

Sistem Gereksinimleri

Üstdüzey Tasarım

Detay Tasarım

Kod Geliştirme

Birim Testi

Birim Entegrasyon Testi

Sistem Testi

Sistem Entegrasyon Testi

Kullanıcı Kabul Testi

TEST

TEST

TEST

TEST

TEST CASE

ÇALIŞTIRM

ATEST CASE TASARIMI

TEST

Page 14: Software development life cycle   yazılım geliştirme yaşam döngüsü

4. Yazılım Geliştirme Modelleri?

İteratif Yazılım Geliştirme Bir yaklaşımdır İşi fazlara bölmeye dayanır

Page 15: Software development life cycle   yazılım geliştirme yaşam döngüsü

4. Yazılım Geliştirme Modelleri?

Agile Yazılım Geliştirme Modeli Manifesto – 2001

http://agilemanifesto.org/ Daha fazla insan odaklı Dökümantasyon çok çalışan işe önem verir Müşteri odalılık Daha hızlı cevap verme Pratikleri

Rational Unified Process (RUP) Scrum Extrem Programming (XP)

Page 16: Software development life cycle   yazılım geliştirme yaşam döngüsü

4. Yazılım Geliştirme Modelleri?

Toyotist vs Fordist Taiichi Ohno

Toyota üretim sisteminin kurucusu “In the American system, a lathe operator is always a lathe operator

and a welder is always a welder to finish. In the Japanese system, an operator has a wide range of possibilities. You can work with a lathe, use a drill and operate a milling machine.) Who can say which system is better ” (Ohno, 1991, p. 41).

Page 17: Software development life cycle   yazılım geliştirme yaşam döngüsü

4. Yazılım Geliştirme Modelleri?

Hangi model daha uygun Agile

Küçük projeler Değişken gereksinimler Zaman kısa Deneyimli kadro

Waterfall Gereksinimler net ve değişmiyor Büyük proje

V-Model Değişken gereksinimler Büyük proje Aşamalarda onay isteniyorsa Risk fazla

Page 18: Software development life cycle   yazılım geliştirme yaşam döngüsü

Teşekkürler.