yzm 320 - yazılım doğrulama ve geçerlileme

30
Hazırlayan:Emin BORANDAĞ

Upload: thuy

Post on 14-Jan-2016

73 views

Category:

Documents


0 download

DESCRIPTION

YZM 320 - Yazılım Doğrulama ve Geçerlileme. Hazırlayan:Emin BORANDAĞ. 3. BÖLÜM: Yazılım Test Modellileri ve Yazılım Geliştirme Modelleri. Yazılım geliştirme modelleri her zaman kullanılır mı?İdeal midir?. Yazılımların çoğu yazılım geliştirmek için bir yazılım geliştirme modeli izlemez.Neden? - PowerPoint PPT Presentation

TRANSCRIPT

Hazırlayan:Emin BORANDAĞ

3. BÖLÜM: Yazılım Test Modellileri ve Yazılım Geliştirme Modelleri

Yazılım geliştirme modelleri her zaman kullanılır mı?İdeal midir?Yazılımların çoğu yazılım geliştirmek için bir

yazılım geliştirme modeli izlemez.Neden?Müşterinin ihtiyaçları hiçbir zaman tam olarak

tanımlanamaz!İkinci neden ise; bütün durumların

gerçekleştirilmesi için yeterli zaman ve kaynak yoktur.

Ne olursa olsun yazılım geliştirmede bir yazılım geliştirme modeli kullanılmalıdır.

Plato’nun “ideal” ile ilgili ilginç benzetmeleriFiziksel nesneler ve fiziksel olaylar, ideal

veya mükemmel formların gölgeleridir.Onlar ölçeğine yaklaşabildiği kadar

mükemmeldirler.Waterfall modeli mükemmelidir?

Yazılım Testine İlişkin…Yazılım test karmaşıklığı kesin olarak bilinemez!Yazılımın testi yazılım risk temelli olarak

yapılmalıdır.Yazılımın testi yazılımda hata olmadığını gösterir.Daha fazla hata bulduğunda daha fazla test

yapmalısın.Bulunan bütün hataların düzeltildiği söylenemez.Tanımlamalar nihaiyi değildir.Yazılım geliştiriciler arasında Yazılım testleri

popüler değildir.Yazılım testi bir disiplindir ve yazılım projeleri

içerisinde profesyonelce incelenmelidir.

Yazılım Testi ile ilgili belirtiler ve zorluklar-1,2.Yazılımı tam olarak test etmek imkansızdır.

Kaç tane test case oluşturulmalı.Tek yol, yazılımın mevcut olan bütün girişlerinin

doğru olarak alındığından emin olup. Bütün girişleri ve çıkışları kontrol etmek.

Tanımlamaların doğru olduğu bilinmeli.Yazılım üretiminin ilk safhasında oluşan isterler

yorumlamaya açık.Yazılım içerisine alınan giriş sayıları çok fazla.Yazılımda oluşturulan çıkış sayıları çok fazla.Yazılım içerisinde oluşan yol (path) sayısı çok fazla.

Yazılım Testi ile ilgili belirtiler ve zorluklar-3Eğer yazılım içerisindeki bütün girişleri test

edemez ise yazılım içerisinde risk almış olursun!Bütün durumları test etmediğin için yazılımın

düzgün çalıştığı umarsın.Girişleri test etmedin ve bir hata ile karşılaştın ne

olur?Risk:Güven kaybı,para,zaman,etcBu yüzden testi yapan kişi üzerinde baskı kodlayan

kişiye göre daha fazladır.Bu dersin temel amaçlarından biride bu riski

azalatmaya çalışmak.

Test maliyetiKaçırılan hata sayısı

Daha Fazla Test

Test Sayısı

AzTest

OptimumTest

Kalite

“Software testing is a risk-based exercise”

•Eğer çok fazla test yaparsan yazılımın maliyeti artar.•Eğer az test yaparsan yazılım içerisindeki kaçırılan hata sayısı artar.

Kullanıcıdan alınacak giriş sayısı Örnek=5Adım sayısı Örnek=3Bulunacak değerlerÖrnek = 2,4

Ödev=2 Roma Problemi

Ödev=3 Proje Şartnamesini oluştur!“If you don't know where you're going any road will take you there”

Müşteriden alınan bilgiler, yapılan toplantıdan çıkarılan sonuçlara göre toparlanır. Bu aşama sonucunda

Yazılım özellikleri neler olacak? Formal mi yoksa informal mi olmalı???

Şartname???Tanımlı istekler belirlenmeli.

Kayıt,Güncelleme,Raporlama,vbTanımlı olmayan istekler belirlenmeli.

Güzenlik,Sağlamlık,Kolay bir arayüz

TasarımKodlama öncesi,yazılım projeleriÜzerinde önce,tasarımdokümanları bir diziHazırlık planları oluşturulur.

Yazılım MimarisiVeri akış diyagramıDurum geçiş diyagramıAkış şeması

Gantt graf Bir  projeye ait zamanlama çizelgesini

gösteren çubuk graf

Yazılım testti risk temelli olarak incelenmelidir! Bununla ilişkili Murphy kanunları nedir?-4Eğer yazılım hatalı bir sonuç üretiyorsa

bundan yazılımı üreten kişiler sorumludur ve bu sorunu onlar halletmelidir!

Bu kural Edward Murphy tarafından yazılım geliştirimi ile ilgili bir ölçü geliştirmek için ortaya atılmıştır.

Test yazılımda hata olmadığını göstermez!-4“Program testti, ancak hataların varlığını

göstermek için kullanılır onların yokluğunda göstermek için değil!” Edsger Wybe Dijkstra

“Test ile hata bulabilirsin ama hala daha fazlası vardır”

Hatalar nerelerden kaynaklana bilir.Programcılar kötü günleri olabilir.Programcılar aynı hataları yapmak eğilimindedir.Bazı hatalar buzdağının sadece ucu gibidir.

Boris Beizer yaklaşımı: Daha fazla yazılım daha fazla testti beraberinde getirir “pestisit paradoksu”. Bu nedenle Boris Beizer bağışıklık testleri kavramını ortaya attı. Çözüm sürekli yazılımın farklı bölgelerinde yazılım kullanımı ile ve test kodu ile yazılımları test edin.

Bulunan bütün hatalar çözümlenemez!-5Neden Bulduğunuz bir hatayı onaramazsınız!Yeterli bilgi birikimi eksikliği!Bazen yeterli zaman yoktur!

Bazı son tarihler ertelenemez.Bazen çok riskli olabilir!

Murphy’nin koduna dokunmaBuna değer mi!

Bazı ek özellikle bekleyebilir!Neden bir sonraki sürüm için müşteriden ücret

almayalım ki?Kod ile ilgili bir hata olmaya bilir!

Tanımlama yanlışlığından olabilir

TanımlaMA ve İsterleri belirleME

Hatanın bir başka içerdiğini söylemek zordur-6.Eğer yazılım içerisinde bir hata bulmuş ve

diğerlerini keşfedemiyorsanız ne olur?Parody “Ormanda bir ağaç düşerse gerçekten

ses yapar mı?”Görülemeyen hata hatamıdır?Görülemeyen hatalara örtük(gizli) hata“latent

bugs”

Tanımlamalar nihaiyi değildir!Yazılım geliştirmede isterler oldukça sıra dışı

ve özgürdür.Rekabet çok fazladır.Yaşam döngüleri çok hızlıdır.Yazılımı değiştirme “kolaydır.”

Diğer mühendislik alanlarında durum nasıl?

Bir hikaye…Sayın mimar;Lütfen bana bir ev inşa ediniz.Ama tam

olarak ne istediğimden emin değilim.Bu nedenle kendi taktirinizi kullanınız.

Evimde 2 ila 45 adet yatak odası olsun. Yatak odalarını kolaylıkla ekleyip kaldırabileyim bir şekilde planlayınız. Siz bana planları getirin ben nihaiyi kararları ona göre vereyim. Ayrıca her bir plan için tek tek maliyet dökümlerini de getirmeyi unutmayınız.Böylelikle bende bana uygun olanı seçebilirim.

Bir hikaye devam…Şunu da aklınızda tutun ben sonuçta maliyeti

düşük olanı seçeceğim.Maliyeti şu anki evden daha düşük olmalı. Şu anda yaşadığım evde çeşitli aksilikler var(Mutfak ile ilgili sorunlarım var. Ben evde yürüdüğümde eşyalar sallanıyor ayrıca yalıtımda çok iyi değil.)

Ayrıca bu evi yıllık olarak tutmak istiyoruz yani önümüzdeki sene maliyeti daha düşük bir ev bulursak çıkarım haberiniz olsun. Tararımı yaparken de yıllık masrafları oldukça az tutun fazla paramız yok.

Bir hikaye devam…Lütfen en son malzemeleri kullanın ve en güzel

şekilde tasarlamaya çalışın.Eğer böyle yaparsanız ev gerçekten çok güzel olur. Aaa unutmadan, mutfakta benim 1952 model Gibson buz dolabını barındıracak şekilde olsun.

Evin güvenliği bizim için çok önemli; kanunlar karşısında belirlenmiş yönetmeliklere göre evi hazırlayın yoksa olmaz. Benim eşimin annesi yılda en az bir kere bizi ziyarete gelir geldiğinde ev ile ilgili tararım ve diğer konularda her hangi bir eksiklik bulmaya çalışacaktır aman dikkat edelim.

Bir hikaye devam…Eğer anneciğim her hangi bir yerini beğenmez

ise o kısım ile ilgili değiştirme hakkımı elimde tutmak isterim. Lütfen şu anda beni küçük tararım ayrıntıları ile rahatsız etmeyin. Bu tasarım sizin işiniz karışmak istemem. Büyük resmi düşünün ona göre tasarlayın. Bu arada eşim yeşil renkli halıları sever tasarım buna da aklınızda tutun.Ev ile ilgili kaynak sorununu düşünmeyin. Sizin ilk önceliğiniz detaylı bir ev planı ve tanımlamaları oluşturmak. Tabi şunu da beklerim, ben tasarımı seçtikten sonra 48 saat içinde çatının ilk şekli oluşmuş olsun.

Bir hikaye devam…Evi tasarlarken önce ve sonra olabilecek

isteklerimi göz önemde bulundurun. Bu evi satmak istiyorum o nedenle potansiyel alıcıları için cazip olmasını da dikkat edin.

Bizim yan komşularda evlerini geçen sene yenilediler onların evlerinin de çok güzel yönleri var. Onların ayrıca büyük bir yüzme havuzları var. İnanıyorum ki güzel bir tasarım ile maliyetleri yukarı çekmeden buna benzer bir yüzme havuzu yapabilirsiniz.

Bir hikaye devam…Tasarımları komple bir set olarak hazırlayın,

yeni nesil inşaatçılık yöntemleri kullanabilirsiniz, bakın sizin için ne büyük bir kolaylık bu günlerde böyle anlayışlı müşteri bulmak çok zor. Ama tasarımla ilgili konuları değiştirmeyin yoksa maliyet artar aman maliyetlere dikkat.

Böyle bir proje üzerinde çalışmaktan çok mutlu olduğunuzu düşünüyorum. Bunun gibi tasarımları çok özgür bir şekilde yapılacak olmak ve yeni inşaat yöntemleri kullanmak güzel olsa gerek.

Son notlar.Unutmadan bu arada karım biraz önce söyledi

evde olacak bu işlerden ötürü çok ses çıkmasın. Tabi mimar sissiniz nasıl olacağını da siz bizden daha iyi bilirsiniz.

Daha önceden inşaat yaptırma işine girdim ama olmadı umarım bu sefer olur.Eğer siz yapamazsanız başka bir mimar bulurum.

Belki de bu evi yenilemek yerine güzel bir tatil yapsam daha iyi olur neyse başladık bir kere beni bilgilendirin. Sizden haber bekliyorum.

Yazılım test uzmanları proje içerisinde en sevilen kişiler değillerdir-8.Yazılım Test mühendisinin amacı

Hataları bulmakHataları erken safhalarda oluşmadan bulmakHataların düzeltildiğinden emin olmak

Popülerlik için ipuçları Hataları erken bul.Ani sinirlenme.Kötü haberleri erkenden proje yöneticisine

ulaştırma

Yazılım mühendisliği teknik bir meslektir-9Yazılım kolay ve yönetilebilir

olduğunda(parçaları birbirinden ayrılmış) yazılımı test etmek daha kolaydır. Aksi durumlarda test işlemi daha zordur.

Günümüzdeki yazılımlar çok büyük ve karmaşık o nedenle test içinYöntemlerAraçlar

Biraz Terminoloji.Verification:

Biz ürünümü doğrumu yapıyoruz? Yazılım şartnamedeki özellikleri ve

tanımlamaları karşılanıyor mu?Validation:

Doğru ürünü mü yapıyoruz?Ürün kullanıcı ihtiyaçlarını karşılıyor mu?

Kalite GüvencesiYöntem ve standartlar uygulayarak; yazılım

sürecleri içinde meydana gelen hataları önle.

Bu derste….… Yazılım testinin 9 belirtisi nelerdir?… Kalite güvencesi ile test arasındaki ilişki

nasıldır?…Yazılım geçerlileme nedir?… Yazılım doğrulama nedir?… Yazılım kalitesi ve güvenirlilik arasındaki

ilişki nedir?Proje temellinin oluşturmak için

gerekenler