Sunum (Test) - WordPress.com

Download Report

Transcript Sunum (Test) - WordPress.com

TEST-SINAMA
 Yazılım testleri yazılım kalite güvencesinin en temel
bileşenidir.
 Gerçekleştirilen testler ile hatadan arındırılmış, daha
kaliteli ve güvenilir yazılımlar üretilmesi hedeflenir.
1
2
Testin Amacı ve Kapsamı
 Testin amacı hata bulmaktır.
 Basarılı bir test süreci sadece beklenen senaryoları
degil, olagan dısı senaryoları da kapsamalıdır.
 Test süreci, gereksinimlerin belirlenmesi asamasında
baslar.
3
Test Türleri
 Yazılım testleri gerçekleştirilirken test edilecek
yazılıma bakış açısına göre üç temel test tekniği vardır.
Bunlar kara kutu, saydam kutu ve gri kutu test
teknikleridir.
4
Kara Kutu Testi
 Test edilecek olan yazılımın iç işleyişi düşünülmeden
gerçekleştirilen testlere "kara kutu" testleri denilir.
 Bu yaklaşımda test edilecek olan yazılımın, sonucu
bilinen bir davranışını doğrulamak için davranışın
gerektirdiği girdi/giriş değerleriyle çalıştırılarak
sınanır.
 Daha sonra yazılımın bu girdi karşısında elde edilen çıktısı
beklenen sonuçla karşılaştırılır. Bu yaklaşımın kara kutu
olarak adlandırılmasının nedeni "testçinin testi
uygularken yazılımı iç yapısı ile kesinlikle
ilgilenmemesidir".

5
Kara Kutu Testi
 Bu nedenle bu testler yazılım geliştiricilerden çok test




ekipleri tarafından uygulanır.
Kara kutu testinde bir yazılım parçası test ediliyor ise
test mühendisi bu yazılım parçasının girdisini ve
buna karşılık sistem çıktısını bilir
Fakat bu çıktıya nasıl ulaşıldığıyla ilgilenmez.
Çünkü kara kutu testlerinin amacı verilen girdiler ile
istenilen çıktının elde edilmesidir.
Bu nedenle yazılımın iç işleyişi ile ilgili diğer bilgilerle
ilgilenilmez
6
Kara Kutu Testi
7
Kara Kutu Testi
 Kara kutu test tekniği ile geliştirilen yazılım içerisinde






aşağıdaki hata türleri tespit edilmeye çalışılır
Dogru olmayan veya hiç olmayan işlevlerin tespiti
Arayüz hataları
Performans hataları
Veri tabanlarına ulaşma hataları veya veri
yapılarındaki hatalar
İlklendirme veya sonlandırma hataları
Sınır değer hataları.
8
Kara Kutu Testi(Olumlu Yönleri)
 Yazılımlarda hataların bulunması için etkin ve hızlı bir





tekniktir.
Gereksinimlerdeki tutarsızlıkların ve belirsizliklerin
belirlenmesini sağlar.
Testçilerin yazılımın ayrıntılarını bilmelerine gerek
yoktur.
Testçiler ve yazılımcılar birbirinden bağımsız olarak
çalışabilirler.
Testçiler gereksinimleri doğrulamak ve gereken testleri
gerçekleştirmek için yazılıma kullanıcı gözü ile bakarlar
Testleri gerçekleştirecek kişilerin sistem hakkında teknik
ayrıntı bilmesine gerek yoktur.
9
Kara Kutu Testi(Olumsuz Yönleri)
 Kara kutu testleri yazılımın belirli parçasını




hedeflemez.
Bu nedenle birçok hata tespit edilmeden kalabilir.
Sadece belirli sayıda girdi/giriş değeriyle testler
gerçekleştirilir.
Tüm girdileri ile testlerin gerçekleştirilmesi nerede ise
sonsuza kadar sürebilir.
Yazılım içerisinde bazı kod parçalarında birden fazla
test gerçekleşirilirken bazı kod parçaları hiç test
edilmeden kalabilir.
10
Kara Kutu Test Stratejisi
 Kara kutu testleri rasgele belirlenmiş girdilerle
gerçekleştirilmeli, testçiler sadece girdi aralığını
belirtmelidirler.
 Sınır değerler mutlaka test edilmeli, en yüksek ve
en düşük değerlerin beklenen çıktıyı verdiği mutlaka
doğrulanmalıdır.
11
Kara Kutu Test Stratejisi
 Sayısal girişlerde sıfir (0) mutlaka girdi olarak sınanmalıdır.
 Özellikle gerçek zamanlı sistemlerde stres testi




yapılmalıdır.
Programın aşırı yüklenme (en yüksek kapasite) altında
nasıl çalıştığı test edilmelidir.
Emniyet kritik, görev kritik gibi yazılımlar için yazılımın
hatası durumunda nasıl davrandığı test edilmelidir.
.
Kara kutu testlerinde diğer bir amaç gereksinimlerin
doğrulanması olduğundan her bir gereksinim için en az
bir test durumu yazılmalı ve bu şekilde gereksinim
kapsama gerçekleştirilmelidir.
12
Saydam Kutu Testi
 Saydam kutu testi diğer bir test tekniğidir.
 Saydam kutu testleri yazılım iç yapısı bilinerek
tasarlanır.
 Bu nedenle saydam kutu testlerini gerçekleştirenler
genellikle sistemin iç yapısını bilen yazılımcılardır.
13
Saydam Kutu Testi
 Saydam kutu testi ile programın iç yapısındaki
birimlerin içindeki hatalar araştırılır.
 Kaynak kod saydam kutu testlerinin en önemli girdisi
olduğundan koda ulaşım olmadan saydam kutu
testleri gerçekleştirilemez.
14
Saydam Kutu Testi
 Saydam kutu testleri veri, kontrol ve bilgi akışlarının,
kodlama standartlarının, hata yakalama ve ayıklama
yapısının analizlerini içerir.
 Saydam kutu test yaklaşımı kullanılarak
gerçekleştirilen test türleri bir sonraki sayfada
açıklanmaktadır.
15
Saydam Kutu Testleri
 Birim Testler :Saydam kutu testinin en iyi ve en
yaygın kullanımı birim testlerdir. Birim testler yazılım
geliştiricilerin belirli bir kod parçasının görevini
doğru bir şekilde yerine getirip getirmediğini anlamak
için gerçekleştirdikleri testlerdir.
 Statik ve Dinamik Analizler :Statik analiz kod
içerisindeki muhtemel hataları bulmak için
gerçekleştirilen kod üzerindeki incelemeleri içerir.
Dinamik analizler ise kodun çalıştırılmasını ve çıkan
sonucun analiz edilmesini içerir. Bu nedenle saydam
kutu testleri kaynak koda ulaşım hakkı gerektirir.
16
Saydam Kutu Testleri
 Deyim Kapsama (Statement Coverage ) Bu tür testte
kod çalıştırılarak kod içerisinde yer alan her deyimin en
az bir kez çalıştırılması hedeflenir. Böylece herbir
deyimin herhangi bir yan etki göstermeden çalıştığı
doğrulanır. Kod içerisinde çalıştırılmayan deyim olmağı da
doğrulanır.
 Dal Kapsama (Brunch Coverage): Hiçbir kod düz bir
akışla yazılmaz. Kod içerisinde karar noktaları bulunur
noktalardan kod yan dallara ayrılır. Dal kapsama ile
program içerisinde yer ala dalların kendilerinden
beklenildiği şekilde çalıştığı doğrulanır
17
Saydam Kutu Testleri
 Yol Kapsama (Path Coverage) :Kod içerisindeki tüm
yolların test edilmesidir. Bu amaçla herbir yol için en test
durumunun oluşturulması ve koşturulması gereklidir.
 Saydam kutu test tekniği tüm test teknikleri gibi yazılım
içerisindeki hatalar yanlışların bulunmasını hedefler.
 Saydam kutu testi ile bu hata ve yanlışlar erken safhada ve
en hızlı şekilde bulunur. Böylece entegrasyon ve sistem
testleri dalı, gerçekleştirilebilir ve bulunan hata sayısında
önemli bir azalma gözlemlenir.
18
Saydam Kutu Testleri (Olumlu Yönleri)
 Kod içerisinde gizli kalmış mantıksal hatalar bulunur.
 Saydam kutu testleri ile yazılan kodun optimizasyonuna
katkıda bulunulur.
 Kod içindeki fazla satırlar ayıklanarak ölü kod parçaları
bulunur.
 Yazılımın geliştirilmesi için belirlenmiş olan kodlama
rehberine uyumluluk, tasarım kararlarına kodlama
içerisinde uyulup uyulmadığı saydam kutu testleri olarak
görülür.
 Saydam kutu testleri ile yazılımcıların kod geliştirme
yetenekleri desteklenir ve sağlamlaştırılır.
19
Saydam Kutu Testleri (Olumsuz Yönleri)
 Eğer birim tümleştirme testleri test ekibi tarafından
yapılacaksa bu iş için kodun iç yapısını bilmesi gerekir.
Bu da maliyeti artırır.
 Saydam kutu testleri sadece modül ve birimlerin iç
işleyişleri test edilir tümleştirme sonra ortaya
çıkabilecek olan hatalar tespit edilemez.
20
Gri Kutu Testi
 Gri kutu testleri ise saydam kutu tekniği ile kara
kutu test tekniklerinin birlikte kullanılmasıdır
 Kara kutu testleri sistemin içyapısı bilinmeden
gereksinimler temel alınarak gerçekleştirilir; saydam
kutu testinde ise sistemin içyapısı tam olarak bilinir ve
testler bu içyapı üzerinden gerçekleştirilir.
 Gri kutu testinde ise gereksinimleri doğrulayacak test
durumları kodun içyapısı esas alınarak yazılır.
 Böylece gereksinimlerin gerçeklendiği doğrulandığı
gibi yazılımın iç yapısı sınanmış olur.
21
Gri Kutu Testi
 Gri kutu testlerinde test ekibi yazılımın iç yapısını
bildiğinden, yazılımın tasarımına ve kod yapısına karşı
şartlanma olabileceğinden bazı hataları ortaya
çıkartabilecek testler yapılmadan kalabilir.
22
Farklı Bir Bakış Açısı ile Test Türleri
Statik Test
 Yazılım çalıştırılmadan gerçekleştirilen test türüdür.
 Kod gözden geçirilerek incelenir.
 Bu testler kodun iç yapısı üzerinde gerçekleştirildiği
için saydam kutu testlerinin bir parçasıdır.
 Doğrulama geçerleme sürecinin bir faaliyetidir.
 Hataların erken safhada yakalanmasını sağlar.
 Mauel olarak yazılan kodların okunması ve yazılan
kodların yardımcı yazılımlar ile hatalara karşı analiz
edilmesi olarak iki farklı şekilde bu testler yapılabilir.
23
Statik Kod Analizleri
 Yazılım çalıştırılmadan yazılım içerisindeki hataları
ortaya çıkarmak amacıyla gerçekleştirilen statik kod
analizleri statik test tekniklerinden biridir .
 Yazılımın koşturulması sırasında fark edilemeyecek
veya geç fark edilecek bazı hatalar statik kod analizleri
ile bulunabilir.
 Statik kod analizleri yazılımın kalitesi, çalışma
performansı, işlevselliği, güvenirliliği açılarından
önemlidir.
 Statik kod analizlerinin temel mantığı kod
üzerinde sorgulamalar gerçekleştirmektir.
24
Statik Kod Analizleri
 Örneğin tanımlanan bir yazılım kodu içerisinde
tanımlanan k değişkeni ilklendirilmiş mi?
İlklendirilmeden kullanılan bir değişken var mı? Değer
atanmadan önce okunan bir değişken var mı? k
değişkenine atanan değer alabileceği en küçük ve en
büyük değer aralığında mı? gibi sorgulamalar statik
kod analizleri kapsamında gerçekleştirilir.
25
Statik kod analizlerinde kullanılan
yöntemler
 Duyarlı Fonksiyonlar arası Analiz (Context-Sensitive




Interprocedural Analysis) :Bu analiz ile
fonksiyon/prosedürler-arası ilişkiler ve veri akışları
sorgulamaları gerçekleştirilir.
Veri Akış Analizi (Data Flow Analysis)
Kodlama Standardı Analizi
İşaretçi Analizi (Pointer Analysis)
Yanlış Yol Budama Analizi (False Path Pruning): Çok
sayıda yolun bulunduğu durumlarda, bazı yollar hiç
çalıştırılmadan kalabilir. Yazılım içinde çalışması mümkün
olmayan yollar belirlenir. Gereksiz kodlar çıkartılır. Sınırlı
bellek alanı olan gömülü sistemler için bu konu önemlidir.
26
Statik kod analizlerinde kullanılan
yöntemler
 Fonksiyon Değer Analizi: Yazılımdaki fonksiyonların dönüş değerlerinin
analizinin yapıldığı yöntemdir.
 STATİK KOD ANALİZ ARAÇLARI
 .NET (C#, VB.NET and all .NET compatible languages)
 FxCop — Free static analysis for Microsoft .NET programs
 Gendarme —
 StyleCop
Java
 Checkstyle — Besides some static code analysis, it can be used to show
violations of a configured coding standard.
 FindBugs — An open-source static bytecode analyzer for Java (based on
Jakarta BCEL) from the University of Maryland.
 Hammurapi — (Free for non-commercial use only) versatile code review
solution.
 PMD — A static ruleset based Java source code analyzer that identifies
potential problems.
27
Dinamik Testler
 Dinamik testler kapsamında sistemin değişen veriler
karşısında nasıl tepki verdiği gözlemlenir.
 Dinamik testlerin gerçekleştirilmesi için yazılan kod
derlenir ve koşturulur.
 Yazılımların üzerinde çalıştırılacağı platforma ve
yazılımın tipine göre dinamik testler farklılık gösterir.
28
Dinamik Testler
 Bir programın davranısını; beklenen davranısa




uymadıgı durumları bulma amacı ile, sonsuz bir
küme içinden sınırlı sayıda seçilen test vakalarını
kullanarak, dinamik yöntemlerle sınama islemidir.
Beklenen : Tanımlanmıs gereksinimlere uyan
Sınırlı : Yeterli sayıda
Seçilmis : Uygun test vakaları
Dinamik : Kod çalıstırılarak
29
Dinamik Testler
 Performans Testleri:
 Geliştirilen yazılımın performansını ölçmek veya
belirlenen performans hedeflerine ulaşılıp
ulaşılmadığını göstermek amacı ile gerçekleştirilen
testlerdir.
 Bu testler ile uygulamanın aşırı yüklenmeler altında
nasıl davrandığı gözlemlenir. Performans testleri
genellikle bu testleri otomatik olarak gerçekleştiren
test yazılımları tarafından gerçekleştirilir.
30
Dinamik Testler
 Uyumluluk Testleri: Bir yazılımın farklı tarayıcılarda,
işletim sistemlerinde veya donanım üstünde beklenen
şekilde çalışıp çalışmadığını göstermek üzere
gerçekleştirilen testlerdir.
 Uyumluluk testleri manuel veya otomatik olarak
gerçekleştirilebilir.
31
Dinamik Testler
 Zorlama (stres) Testleri: Yazılımın belirtilen limit
değer ve limit değer aşımlarında nasıl davrandığını ve
başarısızlığa gittiğini değerlendirmek amacı ile
yazılıma yüklenilerek gerçekleştirilen testlerdir.
 Bu testler altında sistemin ölümcül hatalara sebebiyet
vermeyen sonuçlar vermesi beklenir. Bazen zorlama
testleri performans testleri ile aynı süreç içerisinde
gerçekleştirilebilir.
32
 Uygunluk Testleri: Yazılımın kendi belirtimlerine
uygun geliştirildiğini doğrulamak üzere
gerçekleştirilen testlerdir. Geliştirilen yazılımın
taşınabilirlik, birlikte çalışabilirlik gibi kendisi ile
ilgili gereksinimleri sağladığının gösterilmesi bu
testlerin amacıdır.

33
Dinamik Testler
 Duman Testleri: Büyük bir planlama yapmadan hızlı
bir şekilde gerçekleştirilen testlerdir.
 Yazılımın ince ayrıntılarına bakılmadan genel
işlevleri yerine getirip getirmediğine bakılır.
 Bu test ile gelecek yazılımın, test edilebilir durumda
olup olmadığı anlaşılabilir. Bu amaçla yazılımın
temel akışlarından birkaç senaryo seçilip ve koşturulur.
 Senaryoların başarı oranına göre yazdın testine
başlanabilir ya da yazılım geliştirmesi
tamamlanmadığı belirtilerek ret edilebilir.
34
Dinamik Testler
 Sürüm Doğrulama Testleri: Yazılım yeni sürümü
çıktığında test için test grubuna teslim edilmesinden
hemen önce sürümün test edilebildiğinin
doğrulamasıdır.
 Bu testten kalan yazılım sürümü test amacı ile
testçilere teslim edilmez ve düzeltilmesi için
geliştiricilere geri gönderilir.
 Sürüm doğrulama testleri bazı organizasyonlarda
duman testi veya sürüm kabul testi olarak da
isimlendirilir.
35
Test Süreci
 Test planlama
 Test tasarımı
 Test ortamının ve verilerinin hazırlanması
 Testlerin yapılması
 Test sonuçlarının raporlanması
 Testlerin dogrulanması
36
(1) Test Planlama
 Test aktiviteleri için araç, personel ve yetkinlik
planlanır.
 Test ortamı gereksinimleri belirlenir ve bu ortamın
olusturulması sağlanır,
 Aktiviteleri planlanır.
 Test planı, proje yönetimi ve kalite güvence tarafından
gözden geçirilir.
37
(2) Test Tasarımı
 Seçilen test tekniklerinin uygulanmasına yönelik
çalısmalar yapılır.
 Testler nasıl yapılacak belirlenir ve tanımlanır.
 Prosedürler,
 Test senaryoları,
 Test verileri.
38
Test Tasarım Dokümanı: Örnek
 1. Test Tasarım Kimligi: Test Planında belirtilen kimlik
 2. Test Edilecek Alt Fonksiyonlar: Alt fonksiyonları sıralar ve





kısaltmaları belirler
3. Test Edilmeyecek Alt Fonksiyonlar: Alt fonksiyonları sıralar ve
neden test edilmeyeceklerini açıklar
4. Yaklasım: Test planında belirtilen yaklasımın açılımı veya degisik
bir yaklasım kullanılacaksa açıklaması.
5. Geçme/Kalma Kriterleri: Test planında belirtilen kriterlerin
açılımı veya degisik kriterler kullanılacaksa açıklaması.
6. Ortam Gereksinimleri: Asagıdaki testlere özel ortam (donanım,
araçlar, veriler, vb.) gereksinimleri
7. Test Senaryoları:
39
Test Senaryosu: Örnek














Test No : MO-LG-01
Senaryo : Geçerli kullanıcı ad ve sifre ile giris yap
Özellik No : 1.1.1
Önem : Yüksek (Yüksek, Orta, Düsük)
Kategori : Müsteri kabul (Teste kabul, Müsteri kabul, Baglanım,
Tümlestirme, ...)
Tahmini Süre : 5 Dakika (Tahmini testi kosturma süresi)
Bagımlılık : Yok (Bu testten evvel kosturulması gereken testleri sırala)
Kurulum : Netscape Web Browser’ını çalıstır (Prosedürden evvel yapılması
gerekenler)
Prosedür : 1. http://enstitu.hacettepe.edu.tr/akademik/ web sitesine git
2. Geçerli kullanıcı ad ve sifreyi gir
3. “Tamam” dügmesine bas
4. “HACETTEPE ÜNVERSTES - Lisansüstü Ögrenci sleri Sistemi” ana sayfasının
geldigini dogrula
Temizlik : Çıkıs linkine bas (Ortamı buldugun gibi bırakmak için
yapılacaklar)
40
(3) Test Ortamının ve Test Verilerinin
Hazırlanması
 Sistemin test edilecegi ortam ve test verileri, isletme
 ortamını yansıtacak sekilde hazırlanır.
 Test ortamı: Sunucu, ag, isletim sistemi, diger
sistemler ile baglantılar, vb.
 Test verileri: Müsteri veritabanları, ek tablolar, vb.
 Test verileri, isin gerçek boyutunu yansıtmalıdır.
41
(4,5) Testlerin Yapılması ve Sonuçların
Raporlanması
 Testler tanımlanan test senaryolarına göre gerçeklestirilir.
 Sistem testleri gelistirme ekibinden farklı kisiler
tarafından yapılır.
 Tasarlanan test durumları isletilir ve gözlemlenen hatalar,
istenmeyen durumlar kaydedilir. “Test log”
 “Test log”lardaki bilgiler, test stratejisi ve diger gözlemler,
test raporu olarak belgelendirilir.
 Kaç durum isletilebildi, ne kadar zaman harcandı,
kaç durumda hata olustu, kodun ne kadarı test
edilebildi, vb.
 Test raporu kalite güvence ekibine iletilir.
42
(6) Testlerin Dogrulanması
 Kalite güvence ekibi, test aktivitelerinin planlandıgı
sekilde yapıldıgını güvence altına alır.
 Kalite güvence sorumlusu tüm test kayıtlarını gözden
geçirir.
 Test kapsamı ve kullanılan teknikler test planı ile
uyumlu mu?
 Test ortamı ve verileri tanımlandıgı sekilde
olusturulmus mu?
 “Test log”ları düzenli tutulmus mu?
43
Kurulum
 Sınanmış yazılımların kullanıcı sahasına aktarılması ve






yazılımın gerçek yaşamda uygulamasının başlatılması
için yapılan işlemler kurulum işlemleri olarak
tanımlanmaktadır
Donanım kurulumu,
Sistem yazılımları kurulumu,
Veri tabanı kurulumu,
Uygulama yazılımları kurulumu,
Eğitim,
Yerinde destek.
44