ºÝºÝߣ

ºÝºÝߣShare a Scribd company logo
Yazılım Mühendisliği Bölüm - 7   Yazılım Doğrulama ve Geçerleme Yrd.Doç.Dr. Güray YILMAZ
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 hazırlanıp yürütülmesi.
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.
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.
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
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)
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 e lse {   if (elemArray [mid] < key) bottom = mid + 1 ;   else top = mid - 1 ; } } //while loop } // search   } //BinSearch
Beyaz Kutu Testi (4)
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)
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.
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)
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.  Örnek Şekil 7.7
Aşağıdan Yukarıya Bütünleştirme (2)
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: Planlama  Ç: Çözümleme  T: Tasarım  G: Gerçekleştirim  K:Kurulum P Ç T G K
Örnek Uygulama İncelemesi Konu 7.9

More Related Content

Yazılım geliştirme süreçleri2

  • 1. Yazılım MühendisliÄŸi Bölüm - 7 Yazılım DoÄŸrulama ve Geçerleme Yrd.Doç.Dr. Güray YILMAZ
  • 2. 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 hazırlanıp yürütülmesi.
  • 3. 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.
  • 4. 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ı
  • 5. 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.
  • 6. 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.
  • 7. 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.
  • 8. 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.
  • 9. 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.
  • 10. 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.
  • 11. 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.
  • 12. 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.
  • 14. 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
  • 16. 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 e lse { if (elemArray [mid] < key) bottom = mid + 1 ; else top = mid - 1 ; } } //while loop } // search } //BinSearch
  • 18. 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.
  • 20. 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.
  • 21. 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.
  • 22. 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
  • 24. 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. Örnek Åžekil 7.7
  • 26. 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: Planlama Ç: Çözümleme T: Tasarım G: GerçekleÅŸtirim K:Kurulum P Ç T G K