BIL 304 YAZILIM MÜHENDİSLİĞİ - EEMB DERSLER...BIL 304 YAZILIM MÜHENDİSLİĞİ Süratli...

10
BIL 304 YAZILIM MÜHENDİSLİĞİ Süratli Yazılım Geliştirme Yrd Doç. Dr. Turgay İBRİKÇİ Uç (Extreme) programlama Bir çevik geliştirme metodolojisi 1990'ların ortalarında Kent Beck tarafından düzenlendi. Onların "aşırı" için alınan 12 anahtar uygulama kümesi Geliştiriciler ve müşteriler için bir hızlı yazılım üretme zihniyeti 12 XP Pratiği: - Planlama Oyunu - Küçük ve kısa aralıklı sürümler - Sistem metaforu - Basit tasarım - Test - Yeniden tasarım - Eşle Programlama - Ortak Kod Sahipliği - Sürekli Tümleştirme - 40 saat/hafta - Müşteride geliştirme - Kodlama Standartları Uç (Extreme) programlama Muhtemelen en çok bilinen ve en geniş kullanıma sahip çevik metottur Uç programlama (XP) tekrarlanan geliştirmeye bir ‘uç’ yaklaşımdır. Yeni versiyonlar bir günde birkaç kere inşa edilebilir; Artışlar müşteriye her iki haftada teslim edilir. Bütün testler her inşa için çalıştırılmak zorundadır ve inşa sadece testler başarılı bir şekilde çalıştığında kabul edilmelidir. XP sürüm(release) döngüsü Uç programlama örneği 1 Incremental planning Requirements are recorded on Story Cards and the Stories to be included in a release are determined by the time available and their relative priority. The developers break these Stories into development Tasks. Small Releases The minimal useful set of functionality that provides business value is developed first. Releases of the system are frequent and incrementally add functionality to the first release. Simple Design Enough de sign is carried out to meet the current requirements and no more. Test first development An automated unit test framework is used to write tests for a new piece of functionality before that functionality itself is implemented. Refactoring All developers are expected to refactor the code con tinuously as soon as possible code improvements are found. This keeps the code simple and maintainable.

Transcript of BIL 304 YAZILIM MÜHENDİSLİĞİ - EEMB DERSLER...BIL 304 YAZILIM MÜHENDİSLİĞİ Süratli...

Page 1: BIL 304 YAZILIM MÜHENDİSLİĞİ - EEMB DERSLER...BIL 304 YAZILIM MÜHENDİSLİĞİ Süratli Yazılım Gelitirme Yrd Doç. Dr. Turgay İBRİKÇİ Uç (Extreme) programlama •Bir

BIL 304 YAZILIM MÜHENDİSLİĞİ

Süratli Yazılım Geliştirme

Yrd Doç. Dr. Turgay İBRİKÇİ

Uç (Extreme) programlama

• Bir çevik geliştirme metodolojisi 1990'ların ortalarında Kent Beck tarafından düzenlendi.

• Onların "aşırı" için alınan 12 anahtar uygulama kümesi

• Geliştiriciler ve müşteriler için bir hızlı yazılım üretme zihniyeti

12 XP Pratiği: - Planlama Oyunu

- Küçük ve kısa aralıklı sürümler

- Sistem metaforu

- Basit tasarım

- Test

- Yeniden tasarım

- Eşle Programlama

- Ortak Kod Sahipliği

- Sürekli Tümleştirme

- 40 saat/hafta

- Müşteride geliştirme

- Kodlama Standartları

Uç (Extreme) programlama

• Muhtemelen en çok bilinen ve en geniş kullanıma sahip çevik metottur

• Uç programlama (XP) tekrarlanan geliştirmeye bir ‘uç’ yaklaşımdır. – Yeni versiyonlar bir günde birkaç kere

inşa edilebilir; – Artışlar müşteriye her iki haftada teslim

edilir. – Bütün testler her inşa için çalıştırılmak

zorundadır ve inşa sadece testler başarılı bir şekilde çalıştığında kabul edilmelidir.

XP sürüm(release) döngüsü

Uç programlama örneği 1

Incremental planning Requirements are recorded on Story Cards and the Stories to be

included in a release are determined by the time available and

their relative priority. The developers break these Stories into

development ‘Tasks’.

Small Releases The minimal useful set of functionality that provides business

value is developed first. Releases of the system are frequen t and

incrementally add functionality to the first release.

Simple Design Enough de sign is carried out to meet the cu rrent requirements

and no more.

Test first development An automated unit test framework is used to write tests for a new

piece of functionality before that functionality itself is

implemented.

Refactoring All developers are expected to refactor the code con tinuously as

soon as possible code improvements are found. This keeps the

code simple and maintainable.

Page 2: BIL 304 YAZILIM MÜHENDİSLİĞİ - EEMB DERSLER...BIL 304 YAZILIM MÜHENDİSLİĞİ Süratli Yazılım Gelitirme Yrd Doç. Dr. Turgay İBRİKÇİ Uç (Extreme) programlama •Bir

Uç programlama örneği 2

Pair Progra mming Developers work in pairs, checking ea ch other’s work and

providing the support to always do a good job.

Collective Ownership The pairs of developers work on all areas of the system, so that

no islands of expertise develop and all the developers own all the

code. Anyone can change anything.

Continuous Integration As soon as work on a task is complete it is integrated into the

whole system. After any such integration, all the unit tests in the

system must pass.

Sustainable pace Large amounts of over-time are not considered acceptable as the

net effect is often to reduce code qua lity and medium term

productivity

On-site Customer A representative of the end-user of the system (the Customer)

should be available full time for the use of the XP team. In an

extreme programming p rocess, the customer is a member of the

development team and is responsible for bringing system

requirements to the team for implementation.

XP ve çevik yöntemler • Artışlı geliştirme küçük, yaygın sistemleri

piyasaya çıkarırken desteklenir.

• Müşteri dahil etmenin manası müşterinin takım ile tam zamanlı meşguliyetidir.

• İnsanlar çift programlama, ortak mülkiyet ve uzun mesai saatlerinden kaçınan süreçleri devam ettirmiyorlar.

• Değişim düzenli sistem sürümlerince desteklenir.

• Kodun sabit yeniden üretimi (constant refactoring) sırasında sadeliğinin korunması.

Gereksinim senaryoları • XP de, kullanıcı gereksinimleri senaryolar veya

kullanıcı hikayeleri olarak ifade edilir.

• Bunlar kartlar üzerine yazılır ve geliştirme takımı bunları gerçekleme görevlerine parçalar. Bu görevler plan ve maliyet hesaplamasının temelini oluştururlar.

• Müşteri öncelik ve plan değerlendirmelerine göre sonraki sürüme dahil edilecek öyküleri(stories) seçer.

Doküman yükleme için hikaye kartı(story card)

Downloading and printing an article

First, you select the article that you want from a displayed list. Youthen have to tell the system how you will pay for it - this can eitherbe through a subscription, through a company account or by creditcard.

After this, you get a copyright form from the system to fill in and,when you have submitted this, the article you want is downloadedonto your computer.

You then choose a printer and a copy of the article is printed. Youtell the system if printing has been successful.

If the article is a print-only article, you can’t keep the PDF versionso it is automatically deleted from your computer.

Uç Programlama (XP) ve değişim

• Yazılım mühendisliğinde, değişimlere göre tasarım yapmak kabul görmektedir. Yazılım sürecindeki masrafları azalttığı için beklenen değişiklikler üzerinde çaba sarf etmek ve zaman harcamak önemlidir.

• Ancak XP, değişimler güvenilir bir şekilde tahmin edilemediği sürece bunun harcanan emeğe değmeyeceğini savunur.

• Daha çok, yazılan bir kodda gerçekleştirilecek büyük değişiklikleri toplu olarak başka bir kod yardımı ile yapmayı önerir (Refactoring).

Uç Programlamada Test

• Test öncelikli geliştirme

• Senaryolardan artırımsal test geliştirme

• Test geliştirme ve onaylamaya kullanıcının dahil edilmesi.

• Her yeni sürüm yapıldığında tüm bileşen testlerinin çalıştırılması için otomatikleştirilmiş test donanımları kullanılmaktadır.

Page 3: BIL 304 YAZILIM MÜHENDİSLİĞİ - EEMB DERSLER...BIL 304 YAZILIM MÜHENDİSLİĞİ Süratli Yazılım Gelitirme Yrd Doç. Dr. Turgay İBRİKÇİ Uç (Extreme) programlama •Bir

Doküman indirmek için görev kartları

Görev 1: Ana iş akışını gerçekleştir

Görev 2: Makale kataloğunu ve seçimini gerçekleştir

Görev 3: Ödeme tahsilatını gerçekleştir

Ödeme üç farklı şekilde yapılabilir. Kullanıcı ödeme

yapmak istediği yolu seçer. Eğer kullanıcıların kütüphane

aboneliği varsa, sistem tarafından kontrol edilecek şifrelerini

girebilirler. Alternatif olarak, kurumsal bir hesap numarası

girebilirler. Eğer geçerliyse, makale ücretinin borcu bu

hesaba kaydedilir. Son olarak 16 basamaklı bir kredi kartı

numarası ve bitiş tarihi girebilirler. Bunlar geçerlilik için

kontrol edilmelidir ve geçerli ise bu kredi kartı hesabına

borç postalanır.

Test durumu tanımlaması

Test 4: Kredi kartı geçerliliğini test et

Girdi: Kredi kartı numarasını temsil eden bir string ve kredi kartının bittiği ayı ve yılı temsil eden iki integer Test: • Stringdeki tüm baytların rakam olduğunu kontrol et • “ay”ın 1 ve 12 arasında olduğunu ve “yıl”ın bu yıla eşit ya da bu yıldan büyük olduğunu kontrol et • Kredi kartı numarasının ilk 4 basamağını kullanarak, kredi kartı çıkaranlar listesine bakıp, kredi kartını çıkaranın geçerliği olduğunu kontrol et • Kredi kartını çıkarana kart numarasını ve bitiş tarihini beyan ederek kartın geçerliliğini kontrol et Çıktı: Hata mesajı veya kredi kartının geçerliliğini gösteren “Tamam” mesajı

Test öncelikli geliştirme • Kodun gerçekleştirilecek gereksinimleri açığa

çıkarmasından önce testlerin yazılmasıdır.

• Testler, otomatik olarak çalıştırılabilmeleri için tercihen veri olarak değil de program olarak yazılırlar. Test, doğru çalıştığının anlaşılması için bir denetim içerir.

• Yeni bir özellik eklendiğinde tüm eski ve yeni testler otomatik olarak çalışır. Böylece yeni özelliğin, hata ortaya çıkarıp çıkarmadığı denetlenir.

Eşli programlama (Pair programming)

• XP disiplininde, iki programcının aynı bilgisayar üzerinde kod geliştirmesidir.

• Bu, kodun ortak mülkiyette gelişmesini ve takım içerisinde bilgi yayılmasını sağlar.

• Yazılan her satır kodun birden fazla programcı tarafından izlenmesiyle, resmi olmayan bir gözden geçirme aşaması niteliği taşır.

• Yapılan değerlendirmelere göre eşli programlamanın sağladığı geliştirme verimliliği, iki programcının ayrı ayrı çalışmasıyla elde edilecek verim ile aynıdır.

Hızlı uygulama geliştirme (RAD)

• Çevik metotlar çok dikkat çekmiştir, fakat uzun yıllardır hızlı uygulama geliştirme üzerine diğer yaklaşımlar kullanılmaktadır.

• Bunlar, veri-yoğun işletme uygulamaları geliştirmek için tasarlanmıştır ve veritabanını kullanarak programlama ve enformasyon sunumuna dayanırlar.

RAD araçları

• Veritabanı programlama dili

• Ara yüz üreteci

• Ofis uygulamalarıyla bağlantı

• Rapor üreteçleri

Page 4: BIL 304 YAZILIM MÜHENDİSLİĞİ - EEMB DERSLER...BIL 304 YAZILIM MÜHENDİSLİĞİ Süratli Yazılım Gelitirme Yrd Doç. Dr. Turgay İBRİKÇİ Uç (Extreme) programlama •Bir

Bir RAD ortamı

Veri tabanı programla

dili

Ara yüz üreteci

Ofis sistemleri

Rapor üreteci

Veri tabanı yönetim sistemi

Hızlı uygulama geliştirme ortamı

Ara yüz üretimi • Bir çok uygulamanın temelinde kompleks

formlar vardır ve bu formları manüel olarak geliştirmek çok zaman tüketen bir faaliyettir.

• RAD ortamları ara yüz üretimi için aşağıdaki gibi destekler içerir: – Sürükle – bırak teknikleri kullanarak etkileşimli

form tanımlamaları;

– Formların gösterim sırasının belirlendiği form birleştirilmesi;

– Form alanlarındaki izin verilen sahalarda form doğrulamasının tanımlanması.

Görsel programlama • Visual Basic gibi script dilleri,

standart nesnelerden kullanıcı ara yüzü oluşturulup bileşenlerin bu nesnelerle ilişkilendirilerek prototip geliştirilmesini destekler.

• Bu tür geliştirmeyi desteklemek için bileşenlerin büyük bir kütüphanesi yer alır.

• Bu kütüphaneler, spesifik uygulama gereksinimlerine uyarlanır.

Yeniden kullanımlı görsel programlama

File Edit Views Layout Options Help

General

Index

Menu componentDate component

Range checking

script

Tree display

component

Draw canvas

component

User prompt

component +

script

12th January 2 000

3.8 76

Görsel geliştirmedeki problemler

• Takıma dayalı geliştirmede koordinasyon zorluğu.

• Net bir sistem mimarisi yoktur.

• Program parçaları arasındaki kompleks bağımlılıklar bakım problemlerine yol açar.

Ticari olarak kullanıma hazır malzemelerin (COTS) yeniden

kullanımı • Hızlı geliştirmeye bir başka etkin yaklaşım da

ticari olarak kullanıma hazır sistemlerin yapılandırılması ve bağlanmasıdır.

• Örneğin, bir gereksinim yönetimi sistemi, – Gereksinimleri depolayan bir veri tabanı; – Gereksinimleri kaydetmek ve raporları

biçimlendirmek için bir kelime işlemci; – İzlenebilirlik yönetimi için bir çizelge programı

(Excel, Lotus, …); kullanılarak gerçekleştirilmelidir.

Page 5: BIL 304 YAZILIM MÜHENDİSLİĞİ - EEMB DERSLER...BIL 304 YAZILIM MÜHENDİSLİĞİ Süratli Yazılım Gelitirme Yrd Doç. Dr. Turgay İBRİKÇİ Uç (Extreme) programlama •Bir

Bileşik dokümanlar

• Bazı uygulamalarda bileşik dokümanlar geliştirilerek bir prototip oluşturulabilir.

• Bu, kullanıcının hesaplama yapmasına izin veren aktif elemanları içeren (çizelge programları gibi) bir dokümandır.

• Her aktif eleman, kendisi seçildiğinde çağırılan ilişkili bir uygulamaya sahiptir.

• Dokümanın kendisi farklı uygulamalar için toplayıcıdır (integrator).

Uygulamaların bağlanması

Yazılım prototiplendirme • Prototip, bir sistemde fikirlerin gösterildiği

ve tasarım seçeneklerinin denendiği başlangıç versiyonudur.

• Bir prototip; – Gereksinim mühendisliği sürecinde, gereksinimlerin

ortaya çıkması ve onaylanması;

– Tasarım sürecinde, seçeneklerin incelenmesi ve kullanıcı ara yüzü tasarımının geliştirilmesi;

– Test sürecinde, birbiri ardına gelen testlerin çalıştırılmasında

kullanılabilir.

Prototiplendirmenin yararları

• Sistem kulIanılabilirliğinin iyileştirilmesi.

• Kullanıcının gerçek ihtiyaçlarının daha iyi anlaşılabilmesi.

• Tasarım niteliklerinin iyileştirilmesi.

• Bakım kolaylığının iyileştirilmesi.

• Geliştirme harcamalarının azaltılması.

Arka arkaya test etme

Verinin test

edilmesi

Sonuçların

karşılaş -tırılması

Sistem

prototipi

Uygulama

Farkların

raporlanması

Prototiplendirme aşamaları

Prototip

amaçlarının tespit edilmesi

Prototip işlevselliğinin

tanımlanması

Prototipin geliştirilmesi

Prototipin değerlen-

dirilmesi

Prototiplen- dirme planı

Ana hatların belirlenmesi

Çalıştırılabilir prototip

Değerlendirme

raporu

Page 6: BIL 304 YAZILIM MÜHENDİSLİĞİ - EEMB DERSLER...BIL 304 YAZILIM MÜHENDİSLİĞİ Süratli Yazılım Gelitirme Yrd Doç. Dr. Turgay İBRİKÇİ Uç (Extreme) programlama •Bir

Atılan prototipler • Prototipler üretildikten sonra eğer

üretim için iyi bir temel oluşturmuyorlarsa atılmalıdırlar: – Sistemi fonksiyonel olmayan gereksinimleri

karşılaması için ayarlamak mümkün olmayabilir;

– Prototipler normalde belgelendirilmezler;

– Prototip yapısı, hızlı değişimler boyunca genellikle indirgenir;

– Prototip muhtemelen kurumsal kalite standartlarını karşılamayacaktır.

Önemli Noktalar • Yazılım geliştirmeye iteratif bir yaklaşım

yazılımın daha hızlı dağıtılmasına öncülük eder.

• Çevik metotlar, geliştirme masraflarını azaltmayı böylece yazılımı daha hızlı üretmeyi amaçlayan iteratif geliştirme metotlarıdır.

• Uç programcılık; sistematik test etme, sürekli geliştirme ve müşterinin dahil edilmesi gibi pratikler içerir.

• XP de test etme, kod yazılmadan önce çalıştırılabilir testler geliştirildiği için kısmi bir güçtür.

Önemli Noktalar • Hızlı uygulama geliştirme ortamları;

veri tabanı programlama dilleri, form üretme araçları ve ofis uygulamalarına bağlantılar içerir.

• Atılan prototipler gerçekleştirilirken, en az anlaşılan gereksinimlerle başlanır; artırımsal geliştirmede ise en iyi anlaşılan gereksinimlerle başlanır.

Yazılım Doğrulama ve Geçerleme

Giriş • Geliştirilecek bilgi sistemi yazılımın

doğrulanması ve geçerlenmesi işlemi üretim süreci boyunca süren etkinliklerden oluşur. Bu etkinlikler;

– Her bir etkinlik sonunda alınan çıktıların tamam, doğru, açık ve tutarlı olduğunun doğrulanması.

– Her etkinlikte ürünün teknik yeterliliğinin değerlendirilmesi ve uygun çözüm elde edilene kadar aktivitelerin tekrarlanması.

– Geliştirilen belirtimlerin önceki belirtimlerle karşılaştırılması.

– Yazılım ürünlerinin tüm uygulanabilir gereklerinin sağlandığının gerçeklenmesi için sınamaların

Doğrulama vs Geçerleme

• Doğrulama: Doğru ürünü mü üretiyoruz?

• Geçerleme: Ürünü doğru mu üretiyoruz?

• Doğrulama ürünü kullanacak kişilerin isteklerinin karşılanıp karşılanmadığını test eden etkinliklerden,

• Geçerleme ise ürünün içsel niteliğine ilişkin izleme ve denetim etkinliklerinden oluşur.

Page 7: BIL 304 YAZILIM MÜHENDİSLİĞİ - EEMB DERSLER...BIL 304 YAZILIM MÜHENDİSLİĞİ Süratli Yazılım Gelitirme Yrd Doç. Dr. Turgay İBRİKÇİ Uç (Extreme) programlama •Bir

Sınama Kavramları

• Sınama ve Bütünleştirme işlemlerinin bir strateji içinde gerçekleştirilmesi, planlanması ve tekniklerinin seçilmesi gerekmektedir.

• Sınama işlemleri dört ana sınıfta incelenebilir:

• Birim sınama

• Alt-sistem sınama

• Sistem sınama

• Kabul sınaması

Birim Sınama

• Bağlı oldukları diğer sistem unsurlarından tümüyle soyutlanmış olarak birimlerin doğru çalışmalarının belirlenmesi amacıyla yapılır.

Alt-sistem Sınama

• Alt-sistemler modüllerin bütünleştirilmeleri ile ortaya çıkarlar.

• Yine bağımsız olarak sınamaları yapılmalıdır.

• Bu aşamada en çok hata arayüzlerde bulunmaktadır. Bu yüzden arayüz hatalarına doğru yoğunlaşılmalıdır.

Sistem Sınaması

• Üst düzeyde, bileşenlerin sistem ile olan etkileşiminde çıkacak hatalar aranmaktadır.

• Ayrıca, belirtilen ihtiyaçların doğru yorumlandıkları da sınanmalıdır.

Kabul Sınaması

• Çalıştırılmadan önce sistemin son sınamasıdır.

• Artık, yapay veriler yerine gerçek veriler kullanılır.

• Bu sınama türü alfa sınaması veya beta sınaması olarak ta bilinir.

Alfa vs Beta Sınaması

• Alfa Sınamada; sistemin geliştirildiği yerde kullanıcıların gelerek katkıda bulunması sistemi test etmesi amaçlanmaktadır.

• Beta Sınamasında; kullanıcı, geliştirilen sistemi kendi yerleşkesinde, bir gözetmen eşliğinde yapar.

Page 8: BIL 304 YAZILIM MÜHENDİSLİĞİ - EEMB DERSLER...BIL 304 YAZILIM MÜHENDİSLİĞİ Süratli Yazılım Gelitirme Yrd Doç. Dr. Turgay İBRİKÇİ Uç (Extreme) programlama •Bir

Sınama (Devam) • Sınamalar, hatalardan kurtulmanın bir

güvencesi değildir. Hatalardan bütünüyle arınıldığı gibi bir kanı elde edilmemelidir.

• Ne kadar hata sıklığına erişildiğinde sınama işlemlerinin durdurulacağına, maliyet ve kalite arasında yapılacak bir en iyileme çalışması ile ulaşılır.

• Yazılımın kritiklik düzeyine göre sınamaya ayrılan süre ve çaba artar.

Doğrulama ve Geçerleme Yaşam Döngüsü

• Gerçekleştirim aşamasına kadar olan süreçlerde doğrulama ve geçerleme işlemlerinin planlaması yapılır.

• Planlama genellikle; • alt-sistem,

• bütünleştirme,

• sistem ve

• kabul sınamalarının

tasarımlarını içerir.

• Gerçekleştirim aşamasının sonunda ise söz konusu plan uygulanır.

Sınama Yöntemleri • Her yazılım Mühendisliği ürünü iki yoldan

sınanır:

– Kara kutu testi (Black-Box testing ): Sistemin tümüne yönelik işlevlerin doğru yürütüldüğünün testidir. Sistem şartnamesinin gerekleri incelenir.

– Beyaz Kutu Testi (White Box testing ): İç işlemlerin belirtimlere uygun olarak yürütüldüğünün bileşenler tabanında sınanmasıdır.

Kara Kutu Testi

I

e

Input test data

OeOutput test results

System

Inputs causinganomalousbehaviour

Outputs which revealthe presence ofdefects

Beyaz Kutu Testi

• Bütün bağımsız yolların en az bir kez sınanması gerekir.

• Bütün mantıksal karar noktalarında iki değişik karar için sınamalar yapılır.

• Bütün döngülerin sınır değerlerinde sınanması

• İç veri yapılarının denenmesi

Beyaz Kutu Testi (2)

Componentcode

Testoutputs

Test data

DerivesTests

Page 9: BIL 304 YAZILIM MÜHENDİSLİĞİ - EEMB DERSLER...BIL 304 YAZILIM MÜHENDİSLİĞİ Süratli Yazılım Gelitirme Yrd Doç. Dr. Turgay İBRİKÇİ Uç (Extreme) programlama •Bir

Beyaz Kutu Testi (3) class BinSearch { public static void search ( int key, int [] elemArray, Result r ) { int bottom = 0 ; int top = elemArray.length - 1 ; int mid ; r.found = false ; r.index = -1 ; while ( bottom <= top ) { mid = (top + bottom) / 2 ; if (elemArray [mid] == key) { r.index = mid ; r.found = true ; return ; } // if part else { if (elemArray [mid] < key) bottom = mid + 1 ; else top = mid - 1 ; } } //while loop } // search } //BinSearch

Beyaz Kutu Testi (4) 1

2

3

4

65

7

while bottom <= top

if (elemArray [mid] == key

(if (elemArray [mid]< key8

9

bottom > top

Beyaz Kutu Testi (5)

• 1, 2, 3, 8, 9

• 1, 2, 3, 4, 6, 7, 2

• 1, 2, 3, 4, 5, 7, 2

• 1, 2, 3, 4, 6, 7, 2, 8, 9

• Test değerleri bütün bu farklı path’lerin test edilmesini sağlayacak şekilde seçilmelidir.

Beyaz Kutu Testi (5) Input array (T) Key (Key) Output (Found, L)

17 17 true, 1

17 0 false, ??

17, 21, 23, 29 17 true, 1

9, 16, 18, 30, 31, 41, 45 45 true, 7

17, 18, 21, 23, 29, 38, 41 23 true, 4

17, 18, 21, 23, 29, 33, 38 21 true, 3

12, 18, 21, 23, 32 23 true, 4

21, 23, 29, 33, 38 25 false, ??

Sınama ve Bütünleştirme Stratejileri

• Genellikle Sınama Stratejisi,

bütünleştirme stratejisi ile birlikte değerlendirilir.

• Ancak bazı sınama stratejileri bütünleştirme dışındaki hataları hedefleyebilir.

• Örneğin, yukarıdan-aşağı ve aşağıdan-yukarıya stratejileri bütünleştirme yöntemine bağlıdır.

Yukarıdan Aşağıya Bütünleştirme

Yukarıdan-aşağıya bütünleştirmede önce sistemin üst düzeylerinin sınanması ve sonra aşağıya doğru olan düzeylere ilgili modülleri takılarak sınanması söz konusudur.

En üst noktadaki bileşen sınandıktan sonra alt düzeye geçilmelidir.

Alt bileşenler henüz hazırlanmamışlardır. Bu sebeple Koçanlar kullanılır. Koçan: Bir alt bileşenin, üst bileşen ile arayüzünü temin eden, fakat işlevsel olarak hiçbir şey yapmayan çerçeve programlardır.

Page 10: BIL 304 YAZILIM MÜHENDİSLİĞİ - EEMB DERSLER...BIL 304 YAZILIM MÜHENDİSLİĞİ Süratli Yazılım Gelitirme Yrd Doç. Dr. Turgay İBRİKÇİ Uç (Extreme) programlama •Bir

Yukarıdan Aşağıya Bütünleştirme (2)

• İki temel Yaklaşım vardır:

– Düzey Öncelikli Bütünleştirme: En üst düzeyden başlanır ve aynı düzeydeki birimler bütünleştirilir.

– Derinlik Öncelikli Bütünleştirme: En üst düzeyden başlanır ve her dal soldan sağa olmak üzere ele alınır.

Örnek Şekil 7.6

Yukarıdan Aşağıya Bütünleştirme (3)

Level 2Level 2Level 2Level 2

Level 1 Level 1Testing

sequence

Level 2stubs

Level 3stubs

. . .

Aşağıdan Yukarıya Bütünleştirme

• Önceki yöntemin tersine uygulama yapılır.

• Önce en alt düzeydeki işçi birimler sınanır ve bir üst düzey ile sınanması gerektiğinde bu düzey bir sürücü ile temsil edilir.

• Bu kez kodlama, bütünleştirme ve sınama, aşağı düzeylerden yukarı düzeylere doğru gelişir.

Aşağıdan Yukarıya Bütünleştirme (2)

Level NLevel NLevel NLevel NLevel N

Level N–1 Level N–1Level N–1

Testingsequence

Testdrivers

Testdrivers

Yaşam Döngüsü Boyunca Sınama

Sistem Sınama Planı

Altsistem Sınama planları

• Modül Sınama Planı • Sınama Belirtimleri • Sınama Eğitim Klavuzu

•Modül Sınama •Bütünleştirici Sınama •Sınayıcı Eğitim

•Kullanıcı Sınaması •Sınama Raporları

P Ç T G K

P: Planlama Ç: Çözümleme T: Tasarım G: Gerçekleştirim K:Kurulum