SlideShare a Scribd company logo
1 of 44
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

More Related Content

What's hot

Test Mühendisliğine Giriş Eğitimi - Bölüm 1
Test Mühendisliğine Giriş Eğitimi - Bölüm 1Test Mühendisliğine Giriş Eğitimi - Bölüm 1
Test Mühendisliğine Giriş Eğitimi - Bölüm 1Mesut Günes
 
YARA KURALLARI
YARA KURALLARIYARA KURALLARI
YARA KURALLARIFerdi Gul
 
Software development life cycle yazılım geliştirme yaşam döngüsü
Software development life cycle   yazılım geliştirme yaşam döngüsüSoftware development life cycle   yazılım geliştirme yaşam döngüsü
Software development life cycle yazılım geliştirme yaşam döngüsüMesut Günes
 
Basics of Software Testing
Basics of Software TestingBasics of Software Testing
Basics of Software TestingShakal Shukla
 
Understand regression testing
Understand regression testingUnderstand regression testing
Understand regression testinggaoliang641
 
Istqb 1-소프트웨어테스팅기초-2015
Istqb 1-소프트웨어테스팅기초-2015Istqb 1-소프트웨어테스팅기초-2015
Istqb 1-소프트웨어테스팅기초-2015Jongwon Lee
 
Penetrasyon Testlerinde Açık Kod Yazılımların Kullanımı
Penetrasyon Testlerinde Açık Kod Yazılımların KullanımıPenetrasyon Testlerinde Açık Kod Yazılımların Kullanımı
Penetrasyon Testlerinde Açık Kod Yazılımların KullanımıBGA Cyber Security
 
Problem Çözme Teknikleri
Problem Çözme TeknikleriProblem Çözme Teknikleri
Problem Çözme TeknikleriCaner Taban
 
테스트 계획할 때에 필요한 질문들 (The inquiry method for test planning)
테스트 계획할 때에 필요한 질문들 (The inquiry method for test planning)테스트 계획할 때에 필요한 질문들 (The inquiry method for test planning)
테스트 계획할 때에 필요한 질문들 (The inquiry method for test planning)Joseph Yonggoo Yeo
 
Bilgi Güvenliğinde Sızma Testleri
Bilgi Güvenliğinde Sızma TestleriBilgi Güvenliğinde Sızma Testleri
Bilgi Güvenliğinde Sızma TestleriBGA Cyber Security
 
Seven testing principles
Seven testing principlesSeven testing principles
Seven testing principlesVaibhav Dash
 
What is Regression Testing? | Edureka
What is Regression Testing? | EdurekaWhat is Regression Testing? | Edureka
What is Regression Testing? | EdurekaEdureka!
 
Mobil Pentest Eğitim Dökümanı
Mobil Pentest Eğitim DökümanıMobil Pentest Eğitim Dökümanı
Mobil Pentest Eğitim DökümanıAhmet Gürel
 

What's hot (20)

50 Soruda Yazılım Testi
50 Soruda Yazılım Testi50 Soruda Yazılım Testi
50 Soruda Yazılım Testi
 
Test Mühendisliğine Giriş Eğitimi - Bölüm 1
Test Mühendisliğine Giriş Eğitimi - Bölüm 1Test Mühendisliğine Giriş Eğitimi - Bölüm 1
Test Mühendisliğine Giriş Eğitimi - Bölüm 1
 
YARA KURALLARI
YARA KURALLARIYARA KURALLARI
YARA KURALLARI
 
İnferti̇li̇te
İnferti̇li̇teİnferti̇li̇te
İnferti̇li̇te
 
ISTQB PROJELERDE HATA YÖNETİMİ
ISTQB PROJELERDE HATA YÖNETİMİISTQB PROJELERDE HATA YÖNETİMİ
ISTQB PROJELERDE HATA YÖNETİMİ
 
Software development life cycle yazılım geliştirme yaşam döngüsü
Software development life cycle   yazılım geliştirme yaşam döngüsüSoftware development life cycle   yazılım geliştirme yaşam döngüsü
Software development life cycle yazılım geliştirme yaşam döngüsü
 
Eng.ª do Software - 10. Testes de software
Eng.ª do Software - 10. Testes de softwareEng.ª do Software - 10. Testes de software
Eng.ª do Software - 10. Testes de software
 
Basics of Software Testing
Basics of Software TestingBasics of Software Testing
Basics of Software Testing
 
7 testing principles
7 testing principles7 testing principles
7 testing principles
 
Understand regression testing
Understand regression testingUnderstand regression testing
Understand regression testing
 
Istqb 1-소프트웨어테스팅기초-2015
Istqb 1-소프트웨어테스팅기초-2015Istqb 1-소프트웨어테스팅기초-2015
Istqb 1-소프트웨어테스팅기초-2015
 
Penetrasyon Testlerinde Açık Kod Yazılımların Kullanımı
Penetrasyon Testlerinde Açık Kod Yazılımların KullanımıPenetrasyon Testlerinde Açık Kod Yazılımların Kullanımı
Penetrasyon Testlerinde Açık Kod Yazılımların Kullanımı
 
Problem Çözme Teknikleri
Problem Çözme TeknikleriProblem Çözme Teknikleri
Problem Çözme Teknikleri
 
테스트 계획할 때에 필요한 질문들 (The inquiry method for test planning)
테스트 계획할 때에 필요한 질문들 (The inquiry method for test planning)테스트 계획할 때에 필요한 질문들 (The inquiry method for test planning)
테스트 계획할 때에 필요한 질문들 (The inquiry method for test planning)
 
Bilgi Güvenliğinde Sızma Testleri
Bilgi Güvenliğinde Sızma TestleriBilgi Güvenliğinde Sızma Testleri
Bilgi Güvenliğinde Sızma Testleri
 
Seven testing principles
Seven testing principlesSeven testing principles
Seven testing principles
 
Software testing
Software testingSoftware testing
Software testing
 
What is Regression Testing? | Edureka
What is Regression Testing? | EdurekaWhat is Regression Testing? | Edureka
What is Regression Testing? | Edureka
 
Hacking'in Mavi Tarafı -2
Hacking'in Mavi Tarafı -2Hacking'in Mavi Tarafı -2
Hacking'in Mavi Tarafı -2
 
Mobil Pentest Eğitim Dökümanı
Mobil Pentest Eğitim DökümanıMobil Pentest Eğitim Dökümanı
Mobil Pentest Eğitim Dökümanı
 

Similar to Test

Yazilim Projelerinde Test Sureci
Yazilim Projelerinde Test SureciYazilim Projelerinde Test Sureci
Yazilim Projelerinde Test SureciNecdet Terkes
 
Kod Kalitesinin Sürekli Denetimi: SonarQube
Kod Kalitesinin Sürekli Denetimi: SonarQubeKod Kalitesinin Sürekli Denetimi: SonarQube
Kod Kalitesinin Sürekli Denetimi: SonarQubeEmre Dündar
 
In Turkish: Yazılım Test-Kod Mühendisliği (YTKM): Kaliteli Test-Kodu Geliştir...
In Turkish: Yazılım Test-Kod Mühendisliği (YTKM): Kaliteli Test-Kodu Geliştir...In Turkish: Yazılım Test-Kod Mühendisliği (YTKM): Kaliteli Test-Kodu Geliştir...
In Turkish: Yazılım Test-Kod Mühendisliği (YTKM): Kaliteli Test-Kodu Geliştir...Vahid Garousi
 
Bilgi Güvenliğinde Sızma Testleri
Bilgi Güvenliğinde Sızma TestleriBilgi Güvenliğinde Sızma Testleri
Bilgi Güvenliğinde Sızma TestleriBGA Cyber Security
 
Test Güdümlü Geliştirme ve Birim Testler
Test Güdümlü Geliştirme ve Birim TestlerTest Güdümlü Geliştirme ve Birim Testler
Test Güdümlü Geliştirme ve Birim Testlerserhatlevent910
 
Yazilim mi̇mari̇leri̇(aoy)
Yazilim mi̇mari̇leri̇(aoy)Yazilim mi̇mari̇leri̇(aoy)
Yazilim mi̇mari̇leri̇(aoy)Ahmet Yanik
 
Kaynak Kod Analiz Süreci
Kaynak Kod Analiz SüreciKaynak Kod Analiz Süreci
Kaynak Kod Analiz SüreciPRISMA CSI
 
Sızma Testi (Penetrasyon Testi) Nedir? - Sparta Bilişim
Sızma Testi (Penetrasyon Testi) Nedir? - Sparta BilişimSızma Testi (Penetrasyon Testi) Nedir? - Sparta Bilişim
Sızma Testi (Penetrasyon Testi) Nedir? - Sparta BilişimSparta Bilişim
 
Mobil Uygulama Güvenliği (Mobile Security)
Mobil Uygulama Güvenliği (Mobile Security)Mobil Uygulama Güvenliği (Mobile Security)
Mobil Uygulama Güvenliği (Mobile Security)Cihan Özhan
 
Web Uygulamalarında Kayank Kod Analizi – II
Web Uygulamalarında Kayank Kod Analizi – IIWeb Uygulamalarında Kayank Kod Analizi – II
Web Uygulamalarında Kayank Kod Analizi – IIMehmet Ince
 

Similar to Test (20)

Teste bakıs v01
Teste bakıs v01Teste bakıs v01
Teste bakıs v01
 
Unit testing
Unit testingUnit testing
Unit testing
 
Sunum tdd
Sunum tddSunum tdd
Sunum tdd
 
Visual Studio Developer Tools
Visual Studio Developer ToolsVisual Studio Developer Tools
Visual Studio Developer Tools
 
Bilgi sis..
Bilgi sis..Bilgi sis..
Bilgi sis..
 
Yazilim Projelerinde Test Sureci
Yazilim Projelerinde Test SureciYazilim Projelerinde Test Sureci
Yazilim Projelerinde Test Sureci
 
Kod Kalitesinin Sürekli Denetimi: SonarQube
Kod Kalitesinin Sürekli Denetimi: SonarQubeKod Kalitesinin Sürekli Denetimi: SonarQube
Kod Kalitesinin Sürekli Denetimi: SonarQube
 
Atlassian Clover
Atlassian CloverAtlassian Clover
Atlassian Clover
 
In Turkish: Yazılım Test-Kod Mühendisliği (YTKM): Kaliteli Test-Kodu Geliştir...
In Turkish: Yazılım Test-Kod Mühendisliği (YTKM): Kaliteli Test-Kodu Geliştir...In Turkish: Yazılım Test-Kod Mühendisliği (YTKM): Kaliteli Test-Kodu Geliştir...
In Turkish: Yazılım Test-Kod Mühendisliği (YTKM): Kaliteli Test-Kodu Geliştir...
 
Software/Yazılım Test
Software/Yazılım TestSoftware/Yazılım Test
Software/Yazılım Test
 
Bilgi Güvenliğinde Sızma Testleri
Bilgi Güvenliğinde Sızma TestleriBilgi Güvenliğinde Sızma Testleri
Bilgi Güvenliğinde Sızma Testleri
 
Sezgisel ödev - fuzzing
Sezgisel ödev - fuzzingSezgisel ödev - fuzzing
Sezgisel ödev - fuzzing
 
Test Güdümlü Geliştirme ve Birim Testler
Test Güdümlü Geliştirme ve Birim TestlerTest Güdümlü Geliştirme ve Birim Testler
Test Güdümlü Geliştirme ve Birim Testler
 
Yazilim mi̇mari̇leri̇(aoy)
Yazilim mi̇mari̇leri̇(aoy)Yazilim mi̇mari̇leri̇(aoy)
Yazilim mi̇mari̇leri̇(aoy)
 
Kaynak Kod Analiz Süreci
Kaynak Kod Analiz SüreciKaynak Kod Analiz Süreci
Kaynak Kod Analiz Süreci
 
Sızma Testi (Penetrasyon Testi) Nedir? - Sparta Bilişim
Sızma Testi (Penetrasyon Testi) Nedir? - Sparta BilişimSızma Testi (Penetrasyon Testi) Nedir? - Sparta Bilişim
Sızma Testi (Penetrasyon Testi) Nedir? - Sparta Bilişim
 
BTRisk Zararlı Yazılım Analizi Eğitimi Sunumu - Bölüm 1
BTRisk Zararlı Yazılım Analizi Eğitimi Sunumu - Bölüm 1BTRisk Zararlı Yazılım Analizi Eğitimi Sunumu - Bölüm 1
BTRisk Zararlı Yazılım Analizi Eğitimi Sunumu - Bölüm 1
 
Mobil Uygulama Güvenliği (Mobile Security)
Mobil Uygulama Güvenliği (Mobile Security)Mobil Uygulama Güvenliği (Mobile Security)
Mobil Uygulama Güvenliği (Mobile Security)
 
Test Driven Development
Test Driven DevelopmentTest Driven Development
Test Driven Development
 
Web Uygulamalarında Kayank Kod Analizi – II
Web Uygulamalarında Kayank Kod Analizi – IIWeb Uygulamalarında Kayank Kod Analizi – II
Web Uygulamalarında Kayank Kod Analizi – II
 

Test

  • 1. 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. 2
  • 3. 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
  • 4. 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
  • 5. 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
  • 6. 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
  • 8. 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
  • 9. 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
  • 10. 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
  • 11. 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
  • 12. 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
  • 13. 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
  • 14. 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
  • 15. 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
  • 16. 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
  • 17. 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
  • 18. 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
  • 19. 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
  • 20. 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
  • 21. 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
  • 22. 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
  • 23. 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
  • 24. 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
  • 25. 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
  • 26. 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
  • 27. 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
  • 28. 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
  • 29. 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
  • 30. 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
  • 31. 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
  • 32. 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
  • 33.  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
  • 34. 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
  • 35. 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
  • 36. 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
  • 37. (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
  • 38. (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
  • 39. 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
  • 40. 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
  • 41. (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
  • 42. (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
  • 43. (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
  • 44. 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