Yazlm Mhendislii Ders 7 Yazlm Dorulama ve Geerleme
- Slides: 43
Yazılım Mühendisliği Ders 7: Yazılım Doğrulama ve Geçerleme Yazılım Mühendisliği 1
Genel Bakış �Giriş �Sınama Kavramları �Doğrulama ve Geçerleme Yaşam Döngüsü �Sınama Yöntemleri �Sınama ve Bütünleştirme Stratejileri �Yaşam Döngüsü Boyunca Sınama Etkinlikleri Yazılım Mühendisliği 2
Hedef ? Yazılım üretimi boyunca, "Doğru Yazılımı mı üretiyoruz? " ve "Yazılımı doğru olarak üretiyor muyuz? " sorularının yanıtlarını araştıran doğrulama ve geçerleme yöntemleri bu bölümde açıklanmaktadır. Özellikle gerçekleştirim aşamasında kullanılan program sınama yöntem (beyaz kutu sınaması, kara kutu sınama vb. ) ve modelleri (yukarıdan aşağıya bütünleştirme, aşağıdan yukarıya bütünleştirme vb. ) bu bölümün temel hedefleri arasındadır. Yazılım Mühendisliği 3
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. Yazılım Mühendisliği 4
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. Yazılım Mühendisliği 5
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ı Yazılım Mühendisliği 6
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. Yazılım Mühendisliği 7
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. Yazılım Mühendisliği 8
Sistem Sınaması �Üst düzeyde, bileşenlerin sistem ile olan etkileşiminde çıkacak hatalar aranmaktadır. �Ayrıca, belirtilen ihtiyaçların yorumlandıkları da sınanmalıdır. Yazılım Mühendisliği doğru 9
Yansı - 10 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 da bilinir. Yazılım Mühendisliği
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. Yazılım Mühendisliği 11
Sınama �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. Yazılım Mühendisliği 12
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. Yazılım Mühendisliği 13
Yazılımın Sınanması Fonksiyonel Sınama Performansın Sınanması Dayanıklılık Testi Yapısal Denetim Yazılım Mühendisliği 14
Yazılımın Sınanması Fonksiyonel Sınama Performansın Sınanması Dayanıklılık Testi Yapısal Denetim Yazılım Mühendisliği 15
Yazılım Sınama Yöntemleri Sistem üzerinde sırasıyla fonksiyonel, performans ve dayanıklılık testleri uygulanmakta ve bunları tamamlamak üzere de yapısal test gerçekleştirilmektedir. Yapısal testin tasarımı, sistem geliştirildikten sonra ve önceden hazırlanan test planına göre düzenlenmektedir. Fonksiyonel, performans ve dayanıklılık testlerine; sistemin dış gereksinimlerine dayandırıldığı için, kara kutu testi (black box testing) adı verilmektedir. Buna karşılık, yapısal denetimde modül düzeyinde programın deyimleri ya da dalları sınanarak iç yapısı incelenmektedir. Bu şekilde uygulanan Yazılım Mühendisliği sınama yöntemine de saydam kutu 16
Yazılım Sınama Teknikleri Yazılım Mühendisliği 17
Saydam Kutu Testi ü Saydam kutu testi, modül düzeyinde uygulanmakta ve programın iç yapısını denetlenmektedir (ünite testi). ü Test programı ile yazılımdaki koşul ve döngü durumları çalıştırılarak, mantıksal yollar sınanmaktadır. ü Programın tasarlandığı ve beklendiği yapıda olup olmadığını sınamak için, değişik noktalarında inceleme yapılmaktadır. ü Fakat bu yöntemde, programın tamamını sınamak olanaksızdır. ü Sadece sınırlı sayıdaki çok önemli mantıksal yollar seçilmekte ve bu yolların sınanması ile yetinilmektedir. Yazılım Mühendisliği 18
Saydam Kutu Testi Saydam kutu testinde, işlemsel (procedural) tasarımın kontrol yapısı kullanılmaktadır. Bu test ile ü Bir modüldeki bütün bağımsız yolların en az bir kez çalışacağı garanti edilmekte, ü Bütün mantıksal kararların "doğru" ve "yanlış" durumları denenmiş olmakta, ü Bütün döngülerin kendi içinde ve çevresinde işlerliği sağlanmakta, ü İç veri yapıları denenerek, geçerliliği güvence altına alınmaktadır. ü Saydam kutu testinin uygulanmasında, temel yol testi ve döngü testi teknikleri kullanılmaktadır. Yazılım Mühendisliği 19
Temel Yollar Testi Temel yollar testi, işlemsel tasarımın mantıksal karmaşıklığını ölçmek ve bu ölçüye göre uygulama yolları için bir temel grup oluşturmak esasına dayanmaktadır. Bu grubu denemek için bir test programı düzenlemektedir. Test programları, test sırasında programdaki her deyimi en az bir kez uygulayarak denemektedir. Grup yolu testi, ayrıntılı işlemsel tasarım ya da kaynak program üzerinde uygulanmaktadır. Uygulama basamakları: • Ayrıntılı tasarım veya kaynak programa dayanarak, bir akış grafı çizmek , • Akış grafı üzerinde döngüsel karmaşıklık (Mc. CABE) ölçüsünü saptamak, • Doğrusal bağımsız yolların temel grubunu ve düğümleri belirlemek, • Temel grubun içerdiği her yolun denenmesi için birer test programı düzenlemek, • Her test programını uygulamak ve beklenen sonuç ile karşılaştırmak Yazılım Mühendisliği 20
Ortalama Alma Yöntemi Temel yollar test programları ve graf matrisin oluşturulması işlemi, program tasarım dilinde hazırlanmış olan "ortalama alma" yöntemi üzerinde açıklanmıştır. Bu yöntem, 100'den az sayıdaki değerlerin ortalamasını hesaplamaktadır; ayrıca girdi ve değer toplamlarını da vermektedir. Yazılım Mühendisliği 21
Ortalama Alma Yöntemi-1. Adım Yazılım Mühendisliği 22
Ortalama Alma Yöntemi-2. Adım Yazılım Mühendisliği 23
Ortalama Alma Yöntemi-3. Adım Test programlarının düzenlenmesine de yardımcı olacak karar düğümleri ise 2, 3, 5, 6 ve 10 numaralı yol ayrımlı düğümler olarak saptanmaktadır. Yazılım Mühendisliği 24
Ortalama Alma Yöntemi-4. Adım Yazılım Mühendisliği 25
Ortalama Alma Yöntemi-5. Adım Graf matris, her düğümün bağlandığı diğer düğümleri gösteren bir kare tablodur. Bağlantı, okları simgeleyen harflerle ya da bağlantının ağırlık katsayısı ile gösterilmektedir. İkinci haldeki kare tabloya, ilişki matrisi adı verilmektedir. İlişki matrisi üzerinden, karmaşıklık ölçüsü de hesaplanabilmektedir. Yazılım Mühendisliği 26
Döngü Testi Döngü testinin amacı; döngü içerisindeki başlama hatalarının, indeksleme ve artırma hatalarının, döngüyü sınırlama hatalarının bulunmasıdır. Test sonunda, döngü yapısının geçerliği onaylanmış olmaktadır. Döngüler; basit, iç içe yuvalanmış, birbirine bağlı, yapısal olmayan, olarak dört ayrı biçimde olabilmektedir. Yazılım Mühendisliği 27
Kara Kutu Testi Kara kutu testi yöntemleri, yazılımın işlevsel gereksinimlerinin denenmesine yöneliktir. Programın bütün işlevsel gereksinimlerini denemek üzere, bir dizi girdi durumları oluşturulmaktadır. Bu test, saydam kutu testinin alternatifi olmayıp, tamamlayıcı niteliktedir. Böylece, değişik karakterdeki hatalar bulunabilmektedir. Kara kutu testi ile Ø Ø Ø Hatalı ve eksik olan işlevler, Arabirim hataları, Veri yapılarında ve veri tabanı erişimindeki hatalar, Performans hataları, Başlama ve bitirme hataları bulunabilmektedir. Yazılım Mühendisliği 28
Kara Kutu Testi Giriş Test Verisi Anormal davranışa sebep olan girişler SİSTEM Çıkış Test Sonucu Bozukluk olduğunu belirten çıkışlar Yazılım Mühendisliği 29
Yazılım Sınama Basamakları Yazılım Mühendisliği 30
Ünite Testi Ünite (birim) testi, yazılım tasarımının en küçük birimi olan modül üzerinde uygulanmaktadır. Ayrıntılı tasarım tanımlarına dayanılarak, modül içerisindeki hataları bulmak üzere, önemli kontrol yolları sınanmaktadır. Saydam kutu testi olarak uygulanan bu işlem, çok sayıdaki modül üzerinde, paralel olarak yürütülmektedir. Ünite testinde; modülün arabirimi, veri yapısı, kontrol yapıları arasındaki ana yollar, hata arama yolları ve modül sınırları sınanmaktadır. Modül arabirim testinde, verinin giriş ve çıkışının uygunluğu denetlenmektedir. Burada; parametre sayısının argümanlara (işlem yapılan veri maddelerine) eşitliği ve denkliği, modül çağırma argümanlarının niteliklerinin ve OPEN (aç) deyimlerinin doğruluğu, format tanımlarının girdi/çıktı deyimlerine uygunluğu, ara bellek büyüklüğünün kayıt büyüklüğüne denkliği, dosyaların açılıp kapanması işlemleri, çıktı metninin doğruluğu da denetlenmektedir. Yazılım Mühendisliği 31
Ünite Testi- Test Programı Yazılım Mühendisliği 32
Ünite Testi- Test Sürücü Test sürücü (test driver); test programı verisini alarak test edilecek modüle ileten ve test sonucunu yazan bir ara programdır. Koçan (stub); bir kukla (dummy) alt program olup, test edilen modülün altprogramını temsil etmektedir. Koçan program, alt düzey modülünün özet bir versiyonu olup, bu modülün arabirimi olarak kullanılmaktadır. Çok az bir veri ile çalıştırılmakta ve girdi onayını yazarak geri dönmektedir. Test sürücülere ve koçanlara, modül programın başlığında yer verilmelidir. Bu basamağa yerleştirilememesi halinde, tekrar kullanılacağı bütünleme testinde derlenmelidir. İç bağlılığı kuvvetli ve dış ilişkisi az olan modüllerin ünite testi basit ve kolaydır. Bir tek işlevi olan modülde, test programı sayısı az olup, hatalar da daha kolay kestirilip bulunabilmektedir. Yazılım Mühendisliği 33
Bütünleme Testi Modüller bağımsız olmayıp, birbirlerine ya da bir donanım öğesine veya işlemciye bağlı olmalıdır. Bu bağlantı, "yazılım arabirimi" (software interface) ile sağlanmaktadır. Modüllerin birleştirilmesi sırasında veri kaybı, dikkatsizlik nedeni ile birbirini ters etkileme, alt fonksiyonların birleştirilmesiyle beklenilen ana fonksiyonun gerçekleşmemesi, her birinde göze alınabilen hata toleranslarının eklenerek büyümesi, genel veri yapılarının sorun yaratması söz konusudur. Bu hata ve sorunları bulup gidermek için, modüllerin birleştirilerek ana programın oluşturulmasında bütünleme testi uygulanmalıdır. Bütün olarak (bing bang) sınama ve arttırmalı sınama olarak iki ayrı biçimde yapılmaktadır. Arttırmalı sınama yukarıdan aşağı ve aşağıdan yukarı olarak iki ayrı şekilde uygulanmaktadır. Yazılım Mühendisliği 34
Yukarıdan Aşağı Bütünleme Yukarıdan-aşağı bütünlemede, modüller, ana kontrol modülünden başlayarak, aşağıya doğru hiyerarşik kontrol yapılarak birleştirilmektedir. Alt basamaklara iniş, bir ana kontrol yolu üzerinde derinliğine (depth-first) veya her alt düzeyde yanlara (breadth-first) doğru yürütülmektedir. Yazılım Mühendisliği 35
Yukarıdan Aşağıya Bütünleştirme Yazılım Mühendisliği 36
Aşağıdan Yukarıya Bütünleme Aşağıdan-yukarı bütünlemede, en alt düzeydeki modüllerden (atomic modules) başlayarak, yukarı doğru birleştirilmekte ve sınanmaktadır. Bu yöntemde, alt düzey modül bağlantıları denetlenmiş olduğu için, ayrıca "koçan" oluşturmaya gerek bulunmamaktadır. Yazılım Mühendisliği 37
Aşağıdan Yukarıya Bütünleştirme Yazılım Mühendisliği 38
Onaylama Testi Yazılım Mühendisliği 39
Sistem Testi Düzeltme Testi • Yazılımı çeşitli yollarla hata yapmaya zorlamak ve bu hataların düzeltilebildiğini göstermektir. Düzeltme otomatik olarak veya işletmeci tarafından yapılır. Güvenlik Testi • Sistemin zararlı dış müdahalelerden ve bilgi hırsızlığından korunduğunun ispatıdır. Dayanıklılık Testi • Sistemin miktar veya hacim bakımından anormal biçimde yüklenmesi testidir. Performans Testi • Gerçek zamanlı veya gömülü sistemlerde yazılım işlem süresinin bilgisayara dayalı sistem ile uyarlılığını sınama işlemidir. Yazılım Mühendisliği 40
Hata ve Eksikliklerin Giderilmesi Sınama sonucu saptanan hata ve eksiklerin nedenlerinin bulunup, düzeltilmesi gerekmektedir. Hataları giderme (debugging) adı verilen bu işlemde, belirtiler ile nedenlerinin karşılaştırılması, daha sonra da hataların düzeltilmesi yoluna gidilmektedir. Nedeni bilinen hatalar düzeltilerek, giderilebilmektedir. Fakat, bazı hataların nedeni bulunamamaktadır. Yazılım Mühendisliği 41
Yaşam Döngüsü Boyunca Sınama Sistem Sınam a Planı P • Modül Sınama Planı • Sınama Belirtimleri • Sınama Eğitim Klavuzu Altsistem Sınama planları Ç T P: Planlama Ç: Çözümleme • Modül Sınama • Bütünleştirici Sınama • Sınayıcı Eğitim • Kullanıcı Sınaması • Sınama Raporları K G T: Tasarım G: Gerçekleştirim K: Kurulum Yazılım Mühendisliği 42
Çalışma Soruları 1. Doğrulama ile Geçerleme arasındaki farklılıkları belirtiniz. Birer örnekle açıklayınız. 2. Sınama Yöntemlerini açıklayınız. 3. "Beyaz Kutu" sınama ile "Temel Yollar Sınama" yöntemleri arasındaki farlılıkları belirtiniz. 4. Sınama Yöntemleri ile sınama belirtimleri arasındaki farkı belirtiniz. 5. Yukarıdan aşağıya doğru bütünleştirme ve aşağıdan yukarıya bütünleştirme yöntemlerinin zorluklarını ve kolaylıklarını belirtiniz. 6. Sınama belirtimlerinin önemi nedir. 7. Kullanıcı sınaması sırasında yaşanabilecek sorunları belirtiniz. Yazılım Mühendisliği 43
- Iyep modülleri kaç saat
- Sosyal güvenlik teorisi ders notları
- Selçuk üniversitesi geçme notu
- Ders çalışma hırsı nasıl kazanılır
- Uzlaşma edimi yerine getirilmezse
- Slidetodoc.com
- Ders kitaplarındaki forma sayısı nedir
- Ikmep ders modülleri
- Fiziksel uygunluk ders notları
- Pedagojik formasyon ders notları
- Organik kimya solomon ders notları
- Işitsel zeka nasıl ders çalışmalı
- Ders çalışırken dikkat edilmesi gerekenler
- Ders çalışma çizelgesi
- Genel zootekni ders notları
- Malzeme bilimi (ders notlari dokuz eylül)
- Kaynakça nasıl yazılır
- Argümantasyon nedir
- Excel mantıksal işlemler
- Spektral
- Eş zamanlilik çok boyutluluk
- Kompasite
- Inşaat mühendisliği hidroloji ders notları
- Gymnospermae ders notları
- Matlab
- Wordde sunum hazırlama
- Smmm denetim ders notları
- Harvard müzakere modeli
- Işletme iktisadı ders notları
- Html
- Emisyon kontrol sistemleri ders notları
- Cember
- Sorgunmehmetakifersoyoo
- Hayvancılık ekonomisi ders notları
- Dil edinimi ders notları
- Thk ceng
- Hayvan ıslahı ders notları
- Destek eğitim odası yönetmeliği
- Robotie
- Ekonomi ve girişimcilik ders notları
- Eğitim ekonomisi ders notları
- Bloom taksonomisi basamakları
- Röportaj teknikleri ders notları
- Ders gözlem formu doldurulmuş örneği