SlideShare une entreprise Scribd logo
1  sur  24
APPLICATION TEST
ddemirel/20171123
Test Nedir?
 Bir sistemin ya da birimin, belirli şartları yerine getirip
getirmediğini bulmak niyetiyle değerlendirilmesi
işlemidir.
 Bir uygulamada var olan özellikler ile olması gereken
özellikleri analiz etmeyi sağlar.
Testleri Kimler Yapar?
 Yazılımcı
 Yazılım Destek/Test Personeli
 Proje Yöneticisi
 Son Kullnıcı
Teste Ne Zaman Başlarsınız? >>
 Testlere erken başlanılması son kullanıcıya teslim
edilen yazılımın hatasız olmasını sağlar, yeniden
düzenleme işlemleri için gereken zamanı ve maliyeti
azaltır.
 Testler yazılım geliştirme yaşam döngüsünün bir
aşaması olan «gereksinimleri toplama» aşamasında
başlayabilir ve bu yazılımın teslimine kadar devam
edebilir.
Teste Ne Zaman Başlarsınız?
 İhtiyaçların toplanması aşamasında gereksinimlerin
analizi ve doğrulanması da test olarak kabul edilir.
 Tasarım aşamasında tasarımın gözden geçirilmesi
de test olarak kabul edilir.
 Kodun tamamlanmasından sonra geliştirici tarafından
yapılan kontroller de test olarak kabul edilir.
Testler Ne Zaman Bitirilir?
 Testin sonsuz bir süreç olduğu ve hiç kimsenin bir yazılımın
%100 test edildiğini iddia edememesi nedeniyle, testi ne
zaman durduracağınızı belirlemek zordur.
 Aşağıdaki hususlar göz önüne alınarak buna karar verilebilir;
 Belirlenen test case’lerin başarılı çalıştırılmasının tamamlanması
 Belirli bir noktaya kadar fonksiyonel testlerin tamamlanması
 Hata sayısının belirli bir seviyenin altına inmesi ve yüksek öncelikli
hata tespit edilmemesi
 Yönetim kararı
Testler İle İlgili Bazı Doğru Bilinen
Yanlışlar
Test Süreci Çok Maliyetlidir
 Yazılımı geliştirirken yapılan test için ödediğiniz
bedel, bakım ve düzeltme aşamasında ödediğiniz
bedelden daha azdır.
 Erken yapılan testler zaman ve maliyet açısından
tasarruf sağlar, ancak test edilmeden maliyeti
düşürmeye çalışmak uygulamanın yanlış
geliştirilmesi ile ürünün işe yaramaz hale gelmesini
sağlar.
Test Yapmak Zaman Kaybıdır
 SDLC Aşamaları gerçekleşirken, test yapmak zaman
kaybı değildir.
 Bununla birlikte test aşamasında hataların tespit
edilip düzeltilmesi zaman alan fakat üretken bir
faaliyettir.
Sadece Tamamlanmış Ürünler Test
Edilebilir
 Test yapmak source code’a bağlıdır fakat müşteri
isteklerinin gözden geçirilmesi ve test planlarının
oluşturulması source koddan bağımsızdır.
 Ancak iterative veya incremental SDLC yaklaşımı
testlerin projeninin tamamının bitmesinden bağımsız
olarak yürütülmesini kolaylaştırır.
Tümüyle Test Etmek Mümkündür
 Müşteri ya da test eden kişilerin eksiksiz testin
mümkün olduğunu düşünmesi bir sorun haline
gelebilir. Tüm durumların ele alınmış olması
mümkündür fakat eksiksiz test edilmesi asla
gerçekleşemez.
 SDLC sürecinde hiç test edilmeyen senaryolar
olabilir. Bu durum proje kullanıma başlandığında
ortaya çıkabilir.
Test Edilmiş Yazılım Hatasızdır
 Bu müşterilerin, proje yöneticilerinin ve diğer
yöneticilerin inandığı ortak bir yanılgıdır.
 Uygulamayı mükemmel bir test sürecinden geçirseniz
bile kimse uygulamanın %100 hatasız olduğunu iddia
edemez.
Kusurlar, Test Yapan Kişilerden
Kaynaklanmaktadır
 Testler tamamlandıktan sonra bile uygulamada kalan
hatalar için test yapan kişileri suçlamak doğru bir
yaklaşım değildir.
 Bu durum zaman, maliyet ve gereksinimleri
değiştiren kısıtlara bağlıdır.
 Bununla birlikte, test stratejisi hataların test ekibi
tarafından kaçırılmasına neden olabilir.
Test Yapanlar Ürünün Kalitesinden
Sorumludur
 Uygulamanın kalitesinden sadece test yapanların ve
test ekibinin sorumlu olması çok yaygın bir yanılgıdır.
 Test yapanların sorumluluğu hataların belirlenmesini
sağlamak ve bunun ilgililere bildirmektir. Hataların
düzeltilip düzeltilmeyeceği kararını vermezler.
 Projenin zamanında tamamlanması test ekibi
üzerinde fazlaca baskıya sebep olur. Çünkü oluşan
herhangi bir hatadan sorumlu tutulabilirler.
Test Otomasyonu Zaman Maliyetini Düşürmek İçin
Mümkün Olan Her Yerde Kullanılabilir
 Test otomasyonunun test zamanlarını azalttığı
doğrudur, fakat yazılım geliştirme aşamasında
herhangi bir zamanda test otomasyonuna başlamak
mümkün değildir.
 Test otomasyonu, uygulama manuel test edilip belirli
bir kararlılığa ulaştığında başlatılır. Gereksinimler
değişmeye devam ederse test otomasyonu
kullanılamaz hale gelir.
Herhangi Birisi Uygulama Testi
Yapabilir
 IT sektörünün dışındaki kişiler, testlerin herhangi birisi
tarafından yapılabileceğini düşünürler. Hatta test yapma
işinin yaratıcılık gerektiren bir iş olmadığını da düşünürler.
 Fakat testçiler bunun bir safsata olduğunu çok iyi bilirler.
Alternatif senaryoları düşünerek, uygulamayı hataya
düşürecek durumları ortaya çıkarmak uygulamayı
geliştiren/tasarlayan kişiler tarafından yapılamaz.
Kalite Güvence(QA), Kalite
Kontrol(QC), Test
Bu konular her ne kadar bir araya gelmiş ve bir
dereceye kadar aynı faaliyetler olarak görülse de
belirgin farklılıkları vardır.
Kalite Güvence(QA), Kalite
Kontrol(QC), Test
Kalite Güvence Kalite Kontrol Test
KG geliştirilmesi yapılmış
yazılımların doğruluğuna
ve amaçlanan gerekliliklere
bağlı olarak süreçlerin,
prosedürlerin ve
standartların
uygulanmasını sağlayan
faaliyetleri içerir.
Belgelenmiş
gereksinimlerle ilgili olarak
gelişmiş yazılımın
doğrulanmasını sağlar.
Yazılımdaki hataların
tanımlanmasını sağlayan
faaliyettir.
Kalite Güvence(QA), Kalite
Kontrol(QC), Test
Kalite Güvence Kalite Kontrol Test
Sistem üzerinde fiili test
yapmak yerine süreçlere
ve prosedürlere odaklanır.
Müşteri gereksinimlerinin
doğru tanımlanıp
tanımlanmadığını kontrol
eder.
Tanımlanan prosedürlerin
uygulanması yoluyla hata /
eksikleri tespit etmek
amacıyla testleri yapar.
Gerçek teste odaklanır.
Süreç odaklıdır. Prosedürleri doğrulamaya
odaklanır.
Sürecin işlemesinde
oluşacak hataları
önlemeye odaklanır.
Kalite Güvence(QA), Kalite
Kontrol(QC), Test
Kalite Güvence Kalite Kontrol Test
Software Test Life
Cycle(STLC)’nin bir alt
kümesidir.
KG’nin bir alt kümesidir. KK’ün bir alt kümesidir.
Test Çeşitleri
 Functional Test : Yazılımın belirtilen müşteri gereksinimleri karşılayıp karşılamadığını tespit etmeyi sağlar.
 Unit Test
 Source kodun belirli bölümlerini test etme yöntemidir.
 Integration Test
 Uygulamanın birleşik bölümlerinin birlikte doğru şekilde çalışıp çalışmadığını test etme yöntemidir.
 System Test
 Sistemin tümünü test etmeyi hedefler, tüm sistemin istenen kalite standartına uygun olup olmadığını kontrol etmeyi sağlar.
 Regression Test
 Sistemde yapılan bir geliştirmenin ya da hata gidermenin sistemin çalışan diğer bölümlerinde bir hataya sebep olup
olmadığını anlamayı sağlayan test yöntemidir.
 Acceptance Test
 Yapılan geliştirmenin istenen özelliklere uygun olup olmadığını, müşterinin gereksinimlerini karşılayıp karşılamadığını tespit
edildiği test yöntemidir.
 Alpha Test
 Geliştiriciler ve QA ekipleri için ilk test aşamasıdır. Unit test, integration test ve system test alfa testi olarak tanımlanabilir.
Test edilecek konular; Yazım hataları, bozuk bağlantılar, kötü yönlendirmeler vb.
 Beta Test
 Yayın öncesi test olarak adlandırılabilir. Uygulamayı kullanacak kitleden bir örnek kitle testi yapar. Yayın öncesi gerçek
kullanıcıların beklentilerini tespit etmeyi sağlar. Yazılımın kalitesini istenen düzeye çekmeyi hedefler.
Test Çeşitleri
 Non-Functional Test
 Performans Test : Yazılımdaki oluşabilecek tıkanıklığı veya performans sorununu tespit etmeyi
sağlar.
 Hata sebepleri; Ağ gecikmesi, client sayısı, db transaction sayısı, load balancing problemi, veri işleme
 Performans testi; hız(response time), kapasite, stabilite ve ölçeklenebilirlik açısından önemli ve
zorunludur.
 Load Test
 Bu test normal ve yoğun zamanlarda yazılımın maks. kapasitesini ve davranışını tespit etmeyi sağlar.
 Stress Test
 Anormal koşullar altında yazılımın davranışını test etmeyi sağlar. Örneğin db bağlantısının kesilmesi
veya limitlerin ötesinde bir yük uygulamak gibi durumlar olabilir. Bu testin amacı yükü sisteme
uygulayarak yazılımın kırılma noktasını belirlemektir. Bu test; ağ bağlantılarını rastgele kapatarak yada
yeniden başlatarak, veritabanını kapatıp açarak veya yazılımın çalıştığı makinada sistem kaynaklarını
tüketecek farklı uygulamalar çalıştırılarak yapılabilir.
 Usability Test
 Kullanılabilirlik testi, kullanıcıların kullanımları ve çalışma şekillerini gözlemleyerek yazılımın daha iyi
kullanım kolaylığına sahip olup olmadığını tespit etmeyi sağlar. Yani bir sistemin kullanıcı dostu,
öğrenmesi kolay, hatırlanması kolay, kullanılması verimli, tatmin edici ve anlaşılması kolay olup
olmadığını anlamayı sağlar. Bu maddelerin sınırlarını çizen bazı ISO standartları ve kalite modelleri
mevcuttur(ISO-9126, ISO-9241-11, ISO-13407 ve IEEE).
Test Çeşitleri
 Security Test
 Uygulamayı güvenlik açısından herhangi bir hataya sahip olup
olmadığını test etmeyi sağlar. Aşağıdaki konulara dikkat edilmelidir;
 Doğrulama, Yetkilendirme , Giriş kontrolü ve doğrulama, SQL ekleme
saldırıları, Enjeksiyon kusurları, Oturum yönetimi sorunları, Siteler arası
komut dosyası çalıştırma saldırıları, Dizin traversal saldırıları
 Portability Test
 Taşınabilirlik testi, yazılımın tekrar kullanılabilirliğini sağlamak amacıyla
test edilmesini sağlar. Bu testin temel amacı farklı donanım, işletim
sistemi ve browserlarda çalışabilirliğini test etmektir.
 Aşağıdaki stratejiler izlenebilir;
 Yüklü bir yazılmın bir bilgisayardan farklı bir bilgisayara aktarma
 Yazılımı farklı platformlarda çalıştırma
Kaynak
 https://www.tutorialspoint.com

Contenu connexe

Tendances

Testing concepts [3] - Software Testing Techniques (CIS640)
Testing concepts [3] - Software Testing Techniques (CIS640)Testing concepts [3] - Software Testing Techniques (CIS640)
Testing concepts [3] - Software Testing Techniques (CIS640)Venkatesh Prasad Ranganath
 
Test Mühendisliğine Giriş Eğitimi - Bölüm 2
Test Mühendisliğine Giriş Eğitimi - Bölüm 2Test Mühendisliğine Giriş Eğitimi - Bölüm 2
Test Mühendisliğine Giriş Eğitimi - Bölüm 2Mesut Günes
 
6 Traits of a Successful Test Automation Architecture
6 Traits of a Successful Test Automation Architecture6 Traits of a Successful Test Automation Architecture
6 Traits of a Successful Test Automation ArchitectureErdem YILDIRIM
 
Test Automation
Test AutomationTest Automation
Test Automationrockoder
 
Software Quality Assurance
Software Quality AssuranceSoftware Quality Assurance
Software Quality AssuranceSachithra Gayan
 
Software Testing Life Cycle
Software Testing Life CycleSoftware Testing Life Cycle
Software Testing Life CycleUdayakumar Sree
 
How To Improve Quality With Static Code Analysis
How To Improve Quality With Static Code Analysis How To Improve Quality With Static Code Analysis
How To Improve Quality With Static Code Analysis Perforce
 
Chapter 5 - Test Automation Reporting and Metrics
Chapter 5 - Test Automation Reporting and MetricsChapter 5 - Test Automation Reporting and Metrics
Chapter 5 - Test Automation Reporting and MetricsNeeraj Kumar Singh
 
A Top Down Approach to End-to-End Testing
A Top Down Approach to End-to-End TestingA Top Down Approach to End-to-End Testing
A Top Down Approach to End-to-End TestingSmartBear
 
Analist Eğitimi - Tüm Bölümler - [535 Slides]
Analist Eğitimi - Tüm Bölümler -  [535 Slides]Analist Eğitimi - Tüm Bölümler -  [535 Slides]
Analist Eğitimi - Tüm Bölümler - [535 Slides]Erol Bozkurt
 
Test Automation Framework Design | www.idexcel.com
Test Automation Framework Design | www.idexcel.comTest Automation Framework Design | www.idexcel.com
Test Automation Framework Design | www.idexcel.comIdexcel Technologies
 
Automation testing introduction for FujiNet
Automation testing introduction for FujiNetAutomation testing introduction for FujiNet
Automation testing introduction for FujiNetHai Tran Son
 

Tendances (20)

ISTQB PROJELERDE HATA YÖNETİMİ
ISTQB PROJELERDE HATA YÖNETİMİISTQB PROJELERDE HATA YÖNETİMİ
ISTQB PROJELERDE HATA YÖNETİMİ
 
Testing concepts [3] - Software Testing Techniques (CIS640)
Testing concepts [3] - Software Testing Techniques (CIS640)Testing concepts [3] - Software Testing Techniques (CIS640)
Testing concepts [3] - Software Testing Techniques (CIS640)
 
Test Mühendisliğine Giriş Eğitimi - Bölüm 2
Test Mühendisliğine Giriş Eğitimi - Bölüm 2Test Mühendisliğine Giriş Eğitimi - Bölüm 2
Test Mühendisliğine Giriş Eğitimi - Bölüm 2
 
Bir Test Uzmanına Söylenmemesi Gereken Şeyler
Bir Test Uzmanına Söylenmemesi Gereken ŞeylerBir Test Uzmanına Söylenmemesi Gereken Şeyler
Bir Test Uzmanına Söylenmemesi Gereken Şeyler
 
Yazılım Gereksinim Mühendisliği Semineri
Yazılım Gereksinim Mühendisliği SemineriYazılım Gereksinim Mühendisliği Semineri
Yazılım Gereksinim Mühendisliği Semineri
 
6 Traits of a Successful Test Automation Architecture
6 Traits of a Successful Test Automation Architecture6 Traits of a Successful Test Automation Architecture
6 Traits of a Successful Test Automation Architecture
 
Software Testing
Software TestingSoftware Testing
Software Testing
 
Softwaretesting
SoftwaretestingSoftwaretesting
Softwaretesting
 
Test Automation
Test AutomationTest Automation
Test Automation
 
Test Automation
Test AutomationTest Automation
Test Automation
 
Software Quality Assurance
Software Quality AssuranceSoftware Quality Assurance
Software Quality Assurance
 
Software Testing Life Cycle
Software Testing Life CycleSoftware Testing Life Cycle
Software Testing Life Cycle
 
Software testing
Software testingSoftware testing
Software testing
 
How To Improve Quality With Static Code Analysis
How To Improve Quality With Static Code Analysis How To Improve Quality With Static Code Analysis
How To Improve Quality With Static Code Analysis
 
Chapter 5 - Test Automation Reporting and Metrics
Chapter 5 - Test Automation Reporting and MetricsChapter 5 - Test Automation Reporting and Metrics
Chapter 5 - Test Automation Reporting and Metrics
 
Software test life cycle
Software test life cycleSoftware test life cycle
Software test life cycle
 
A Top Down Approach to End-to-End Testing
A Top Down Approach to End-to-End TestingA Top Down Approach to End-to-End Testing
A Top Down Approach to End-to-End Testing
 
Analist Eğitimi - Tüm Bölümler - [535 Slides]
Analist Eğitimi - Tüm Bölümler -  [535 Slides]Analist Eğitimi - Tüm Bölümler -  [535 Slides]
Analist Eğitimi - Tüm Bölümler - [535 Slides]
 
Test Automation Framework Design | www.idexcel.com
Test Automation Framework Design | www.idexcel.comTest Automation Framework Design | www.idexcel.com
Test Automation Framework Design | www.idexcel.com
 
Automation testing introduction for FujiNet
Automation testing introduction for FujiNetAutomation testing introduction for FujiNet
Automation testing introduction for FujiNet
 

Similaire à Software/Yazılım Test

İş Birimleri ve PO'lar için Test Teknikleri
İş Birimleri ve PO'lar için Test Teknikleriİş Birimleri ve PO'lar için Test Teknikleri
İş Birimleri ve PO'lar için Test TeknikleriOnur Baskirt
 
Yazılım projeleri süreç performans ölçümü
Yazılım projeleri süreç performans ölçümüYazılım projeleri süreç performans ölçümü
Yazılım projeleri süreç performans ölçümüTUBITAK
 
Application Lifecycle Management Services by 4S
Application Lifecycle Management Services by 4SApplication Lifecycle Management Services by 4S
Application Lifecycle Management Services by 4SSerdar Zeybek
 
Yazılım mimarisi yazılım müh.
Yazılım mimarisi yazılım müh.Yazılım mimarisi yazılım müh.
Yazılım mimarisi yazılım müh.Hüseyin Örer
 
Dr. Mustafa DEĞERLİ - 2017 - Etkili bir kalite güvence sürecinin parçası olar...
Dr. Mustafa DEĞERLİ - 2017 - Etkili bir kalite güvence sürecinin parçası olar...Dr. Mustafa DEĞERLİ - 2017 - Etkili bir kalite güvence sürecinin parçası olar...
Dr. Mustafa DEĞERLİ - 2017 - Etkili bir kalite güvence sürecinin parçası olar...Dr. Mustafa Değerli
 
FMEA makale.pptx
FMEA makale.pptxFMEA makale.pptx
FMEA makale.pptxNimetBalc
 
Etkili Bir Kalite Güvence Sürecinin Parçası Olarak Proje Seviyesindeki Deneti...
Etkili Bir Kalite Güvence Sürecinin Parçası Olarak Proje Seviyesindeki Deneti...Etkili Bir Kalite Güvence Sürecinin Parçası Olarak Proje Seviyesindeki Deneti...
Etkili Bir Kalite Güvence Sürecinin Parçası Olarak Proje Seviyesindeki Deneti...Dr. Mustafa Değerli
 
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
 
Scrum takımlarında performans ölçüm yaklaşımı
Scrum takımlarında performans ölçüm yaklaşımıScrum takımlarında performans ölçüm yaklaşımı
Scrum takımlarında performans ölçüm yaklaşımıNecmettin Ozkan
 
Bir CMMI Seviye 5 Organizasyonel Performans Yönetim Projesi Örneği: Kod Kalit...
Bir CMMI Seviye 5 Organizasyonel Performans Yönetim Projesi Örneği: Kod Kalit...Bir CMMI Seviye 5 Organizasyonel Performans Yönetim Projesi Örneği: Kod Kalit...
Bir CMMI Seviye 5 Organizasyonel Performans Yönetim Projesi Örneği: Kod Kalit...Deniz Gungor
 
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
 
Capability Maturity Model
Capability Maturity ModelCapability Maturity Model
Capability Maturity ModelNuri Cankaya
 

Similaire à Software/Yazılım Test (20)

Teste bakıs v01
Teste bakıs v01Teste bakıs v01
Teste bakıs v01
 
Sunum tdd
Sunum tddSunum tdd
Sunum tdd
 
İş Birimleri ve PO'lar için Test Teknikleri
İş Birimleri ve PO'lar için Test Teknikleriİş Birimleri ve PO'lar için Test Teknikleri
İş Birimleri ve PO'lar için Test Teknikleri
 
Yazılım projeleri süreç performans ölçümü
Yazılım projeleri süreç performans ölçümüYazılım projeleri süreç performans ölçümü
Yazılım projeleri süreç performans ölçümü
 
Application Lifecycle Management Services by 4S
Application Lifecycle Management Services by 4SApplication Lifecycle Management Services by 4S
Application Lifecycle Management Services by 4S
 
Mirsis Test Hizmeti
Mirsis Test Hizmeti Mirsis Test Hizmeti
Mirsis Test Hizmeti
 
BTRisk Yazılım Güvenliği Yönetimi Eğitimi
BTRisk Yazılım Güvenliği Yönetimi EğitimiBTRisk Yazılım Güvenliği Yönetimi Eğitimi
BTRisk Yazılım Güvenliği Yönetimi Eğitimi
 
Yazılım mimarisi yazılım müh.
Yazılım mimarisi yazılım müh.Yazılım mimarisi yazılım müh.
Yazılım mimarisi yazılım müh.
 
Dr. Mustafa DEĞERLİ - 2017 - Etkili bir kalite güvence sürecinin parçası olar...
Dr. Mustafa DEĞERLİ - 2017 - Etkili bir kalite güvence sürecinin parçası olar...Dr. Mustafa DEĞERLİ - 2017 - Etkili bir kalite güvence sürecinin parçası olar...
Dr. Mustafa DEĞERLİ - 2017 - Etkili bir kalite güvence sürecinin parçası olar...
 
Fmea makale
Fmea makaleFmea makale
Fmea makale
 
FMEA makale.pptx
FMEA makale.pptxFMEA makale.pptx
FMEA makale.pptx
 
Etkili Bir Kalite Güvence Sürecinin Parçası Olarak Proje Seviyesindeki Deneti...
Etkili Bir Kalite Güvence Sürecinin Parçası Olarak Proje Seviyesindeki Deneti...Etkili Bir Kalite Güvence Sürecinin Parçası Olarak Proje Seviyesindeki Deneti...
Etkili Bir Kalite Güvence Sürecinin Parçası Olarak Proje Seviyesindeki Deneti...
 
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ü
 
Scrum takımlarında performans ölçüm yaklaşımı
Scrum takımlarında performans ölçüm yaklaşımıScrum takımlarında performans ölçüm yaklaşımı
Scrum takımlarında performans ölçüm yaklaşımı
 
Cevik Yaklasim, Scrum ve XP Pratikleri
Cevik Yaklasim, Scrum ve XP PratikleriCevik Yaklasim, Scrum ve XP Pratikleri
Cevik Yaklasim, Scrum ve XP Pratikleri
 
Kalite ve maliyeti
Kalite ve maliyetiKalite ve maliyeti
Kalite ve maliyeti
 
Test
TestTest
Test
 
Bir CMMI Seviye 5 Organizasyonel Performans Yönetim Projesi Örneği: Kod Kalit...
Bir CMMI Seviye 5 Organizasyonel Performans Yönetim Projesi Örneği: Kod Kalit...Bir CMMI Seviye 5 Organizasyonel Performans Yönetim Projesi Örneği: Kod Kalit...
Bir CMMI Seviye 5 Organizasyonel Performans Yönetim Projesi Örneği: Kod Kalit...
 
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...
 
Capability Maturity Model
Capability Maturity ModelCapability Maturity Model
Capability Maturity Model
 

Plus de Dilaver Demirel

Plus de Dilaver Demirel (15)

Git - Code Versiyon Yönetim Sistemi
Git - Code Versiyon Yönetim SistemiGit - Code Versiyon Yönetim Sistemi
Git - Code Versiyon Yönetim Sistemi
 
Microservices Architecture
Microservices ArchitectureMicroservices Architecture
Microservices Architecture
 
Unit test
Unit testUnit test
Unit test
 
12factor apps
12factor apps12factor apps
12factor apps
 
SDLC - Software Development Life Cycle
SDLC - Software Development Life CycleSDLC - Software Development Life Cycle
SDLC - Software Development Life Cycle
 
Yazılım Prensipleri ve Code Review Check List
Yazılım Prensipleri ve Code Review Check ListYazılım Prensipleri ve Code Review Check List
Yazılım Prensipleri ve Code Review Check List
 
Oracle Weblogic Server
Oracle Weblogic ServerOracle Weblogic Server
Oracle Weblogic Server
 
Java Server Faces
Java Server FacesJava Server Faces
Java Server Faces
 
Pentaho BI
Pentaho BIPentaho BI
Pentaho BI
 
JVM ve VisualVm
JVM ve VisualVmJVM ve VisualVm
JVM ve VisualVm
 
Apache Maven
Apache MavenApache Maven
Apache Maven
 
Aspect Oriented Programming
Aspect Oriented ProgrammingAspect Oriented Programming
Aspect Oriented Programming
 
NodeJS ve MongoDB
NodeJS ve MongoDBNodeJS ve MongoDB
NodeJS ve MongoDB
 
NodeJS Nedir
NodeJS NedirNodeJS Nedir
NodeJS Nedir
 
Jpa
JpaJpa
Jpa
 

Software/Yazılım Test

  • 2. Test Nedir?  Bir sistemin ya da birimin, belirli şartları yerine getirip getirmediğini bulmak niyetiyle değerlendirilmesi işlemidir.  Bir uygulamada var olan özellikler ile olması gereken özellikleri analiz etmeyi sağlar.
  • 3. Testleri Kimler Yapar?  Yazılımcı  Yazılım Destek/Test Personeli  Proje Yöneticisi  Son Kullnıcı
  • 4. Teste Ne Zaman Başlarsınız? >>  Testlere erken başlanılması son kullanıcıya teslim edilen yazılımın hatasız olmasını sağlar, yeniden düzenleme işlemleri için gereken zamanı ve maliyeti azaltır.  Testler yazılım geliştirme yaşam döngüsünün bir aşaması olan «gereksinimleri toplama» aşamasında başlayabilir ve bu yazılımın teslimine kadar devam edebilir.
  • 5. Teste Ne Zaman Başlarsınız?  İhtiyaçların toplanması aşamasında gereksinimlerin analizi ve doğrulanması da test olarak kabul edilir.  Tasarım aşamasında tasarımın gözden geçirilmesi de test olarak kabul edilir.  Kodun tamamlanmasından sonra geliştirici tarafından yapılan kontroller de test olarak kabul edilir.
  • 6. Testler Ne Zaman Bitirilir?  Testin sonsuz bir süreç olduğu ve hiç kimsenin bir yazılımın %100 test edildiğini iddia edememesi nedeniyle, testi ne zaman durduracağınızı belirlemek zordur.  Aşağıdaki hususlar göz önüne alınarak buna karar verilebilir;  Belirlenen test case’lerin başarılı çalıştırılmasının tamamlanması  Belirli bir noktaya kadar fonksiyonel testlerin tamamlanması  Hata sayısının belirli bir seviyenin altına inmesi ve yüksek öncelikli hata tespit edilmemesi  Yönetim kararı
  • 7. Testler İle İlgili Bazı Doğru Bilinen Yanlışlar
  • 8. Test Süreci Çok Maliyetlidir  Yazılımı geliştirirken yapılan test için ödediğiniz bedel, bakım ve düzeltme aşamasında ödediğiniz bedelden daha azdır.  Erken yapılan testler zaman ve maliyet açısından tasarruf sağlar, ancak test edilmeden maliyeti düşürmeye çalışmak uygulamanın yanlış geliştirilmesi ile ürünün işe yaramaz hale gelmesini sağlar.
  • 9. Test Yapmak Zaman Kaybıdır  SDLC Aşamaları gerçekleşirken, test yapmak zaman kaybı değildir.  Bununla birlikte test aşamasında hataların tespit edilip düzeltilmesi zaman alan fakat üretken bir faaliyettir.
  • 10. Sadece Tamamlanmış Ürünler Test Edilebilir  Test yapmak source code’a bağlıdır fakat müşteri isteklerinin gözden geçirilmesi ve test planlarının oluşturulması source koddan bağımsızdır.  Ancak iterative veya incremental SDLC yaklaşımı testlerin projeninin tamamının bitmesinden bağımsız olarak yürütülmesini kolaylaştırır.
  • 11. Tümüyle Test Etmek Mümkündür  Müşteri ya da test eden kişilerin eksiksiz testin mümkün olduğunu düşünmesi bir sorun haline gelebilir. Tüm durumların ele alınmış olması mümkündür fakat eksiksiz test edilmesi asla gerçekleşemez.  SDLC sürecinde hiç test edilmeyen senaryolar olabilir. Bu durum proje kullanıma başlandığında ortaya çıkabilir.
  • 12. Test Edilmiş Yazılım Hatasızdır  Bu müşterilerin, proje yöneticilerinin ve diğer yöneticilerin inandığı ortak bir yanılgıdır.  Uygulamayı mükemmel bir test sürecinden geçirseniz bile kimse uygulamanın %100 hatasız olduğunu iddia edemez.
  • 13. Kusurlar, Test Yapan Kişilerden Kaynaklanmaktadır  Testler tamamlandıktan sonra bile uygulamada kalan hatalar için test yapan kişileri suçlamak doğru bir yaklaşım değildir.  Bu durum zaman, maliyet ve gereksinimleri değiştiren kısıtlara bağlıdır.  Bununla birlikte, test stratejisi hataların test ekibi tarafından kaçırılmasına neden olabilir.
  • 14. Test Yapanlar Ürünün Kalitesinden Sorumludur  Uygulamanın kalitesinden sadece test yapanların ve test ekibinin sorumlu olması çok yaygın bir yanılgıdır.  Test yapanların sorumluluğu hataların belirlenmesini sağlamak ve bunun ilgililere bildirmektir. Hataların düzeltilip düzeltilmeyeceği kararını vermezler.  Projenin zamanında tamamlanması test ekibi üzerinde fazlaca baskıya sebep olur. Çünkü oluşan herhangi bir hatadan sorumlu tutulabilirler.
  • 15. Test Otomasyonu Zaman Maliyetini Düşürmek İçin Mümkün Olan Her Yerde Kullanılabilir  Test otomasyonunun test zamanlarını azalttığı doğrudur, fakat yazılım geliştirme aşamasında herhangi bir zamanda test otomasyonuna başlamak mümkün değildir.  Test otomasyonu, uygulama manuel test edilip belirli bir kararlılığa ulaştığında başlatılır. Gereksinimler değişmeye devam ederse test otomasyonu kullanılamaz hale gelir.
  • 16. Herhangi Birisi Uygulama Testi Yapabilir  IT sektörünün dışındaki kişiler, testlerin herhangi birisi tarafından yapılabileceğini düşünürler. Hatta test yapma işinin yaratıcılık gerektiren bir iş olmadığını da düşünürler.  Fakat testçiler bunun bir safsata olduğunu çok iyi bilirler. Alternatif senaryoları düşünerek, uygulamayı hataya düşürecek durumları ortaya çıkarmak uygulamayı geliştiren/tasarlayan kişiler tarafından yapılamaz.
  • 17. Kalite Güvence(QA), Kalite Kontrol(QC), Test Bu konular her ne kadar bir araya gelmiş ve bir dereceye kadar aynı faaliyetler olarak görülse de belirgin farklılıkları vardır.
  • 18. Kalite Güvence(QA), Kalite Kontrol(QC), Test Kalite Güvence Kalite Kontrol Test KG geliştirilmesi yapılmış yazılımların doğruluğuna ve amaçlanan gerekliliklere bağlı olarak süreçlerin, prosedürlerin ve standartların uygulanmasını sağlayan faaliyetleri içerir. Belgelenmiş gereksinimlerle ilgili olarak gelişmiş yazılımın doğrulanmasını sağlar. Yazılımdaki hataların tanımlanmasını sağlayan faaliyettir.
  • 19. Kalite Güvence(QA), Kalite Kontrol(QC), Test Kalite Güvence Kalite Kontrol Test Sistem üzerinde fiili test yapmak yerine süreçlere ve prosedürlere odaklanır. Müşteri gereksinimlerinin doğru tanımlanıp tanımlanmadığını kontrol eder. Tanımlanan prosedürlerin uygulanması yoluyla hata / eksikleri tespit etmek amacıyla testleri yapar. Gerçek teste odaklanır. Süreç odaklıdır. Prosedürleri doğrulamaya odaklanır. Sürecin işlemesinde oluşacak hataları önlemeye odaklanır.
  • 20. Kalite Güvence(QA), Kalite Kontrol(QC), Test Kalite Güvence Kalite Kontrol Test Software Test Life Cycle(STLC)’nin bir alt kümesidir. KG’nin bir alt kümesidir. KK’ün bir alt kümesidir.
  • 21. Test Çeşitleri  Functional Test : Yazılımın belirtilen müşteri gereksinimleri karşılayıp karşılamadığını tespit etmeyi sağlar.  Unit Test  Source kodun belirli bölümlerini test etme yöntemidir.  Integration Test  Uygulamanın birleşik bölümlerinin birlikte doğru şekilde çalışıp çalışmadığını test etme yöntemidir.  System Test  Sistemin tümünü test etmeyi hedefler, tüm sistemin istenen kalite standartına uygun olup olmadığını kontrol etmeyi sağlar.  Regression Test  Sistemde yapılan bir geliştirmenin ya da hata gidermenin sistemin çalışan diğer bölümlerinde bir hataya sebep olup olmadığını anlamayı sağlayan test yöntemidir.  Acceptance Test  Yapılan geliştirmenin istenen özelliklere uygun olup olmadığını, müşterinin gereksinimlerini karşılayıp karşılamadığını tespit edildiği test yöntemidir.  Alpha Test  Geliştiriciler ve QA ekipleri için ilk test aşamasıdır. Unit test, integration test ve system test alfa testi olarak tanımlanabilir. Test edilecek konular; Yazım hataları, bozuk bağlantılar, kötü yönlendirmeler vb.  Beta Test  Yayın öncesi test olarak adlandırılabilir. Uygulamayı kullanacak kitleden bir örnek kitle testi yapar. Yayın öncesi gerçek kullanıcıların beklentilerini tespit etmeyi sağlar. Yazılımın kalitesini istenen düzeye çekmeyi hedefler.
  • 22. Test Çeşitleri  Non-Functional Test  Performans Test : Yazılımdaki oluşabilecek tıkanıklığı veya performans sorununu tespit etmeyi sağlar.  Hata sebepleri; Ağ gecikmesi, client sayısı, db transaction sayısı, load balancing problemi, veri işleme  Performans testi; hız(response time), kapasite, stabilite ve ölçeklenebilirlik açısından önemli ve zorunludur.  Load Test  Bu test normal ve yoğun zamanlarda yazılımın maks. kapasitesini ve davranışını tespit etmeyi sağlar.  Stress Test  Anormal koşullar altında yazılımın davranışını test etmeyi sağlar. Örneğin db bağlantısının kesilmesi veya limitlerin ötesinde bir yük uygulamak gibi durumlar olabilir. Bu testin amacı yükü sisteme uygulayarak yazılımın kırılma noktasını belirlemektir. Bu test; ağ bağlantılarını rastgele kapatarak yada yeniden başlatarak, veritabanını kapatıp açarak veya yazılımın çalıştığı makinada sistem kaynaklarını tüketecek farklı uygulamalar çalıştırılarak yapılabilir.  Usability Test  Kullanılabilirlik testi, kullanıcıların kullanımları ve çalışma şekillerini gözlemleyerek yazılımın daha iyi kullanım kolaylığına sahip olup olmadığını tespit etmeyi sağlar. Yani bir sistemin kullanıcı dostu, öğrenmesi kolay, hatırlanması kolay, kullanılması verimli, tatmin edici ve anlaşılması kolay olup olmadığını anlamayı sağlar. Bu maddelerin sınırlarını çizen bazı ISO standartları ve kalite modelleri mevcuttur(ISO-9126, ISO-9241-11, ISO-13407 ve IEEE).
  • 23. Test Çeşitleri  Security Test  Uygulamayı güvenlik açısından herhangi bir hataya sahip olup olmadığını test etmeyi sağlar. Aşağıdaki konulara dikkat edilmelidir;  Doğrulama, Yetkilendirme , Giriş kontrolü ve doğrulama, SQL ekleme saldırıları, Enjeksiyon kusurları, Oturum yönetimi sorunları, Siteler arası komut dosyası çalıştırma saldırıları, Dizin traversal saldırıları  Portability Test  Taşınabilirlik testi, yazılımın tekrar kullanılabilirliğini sağlamak amacıyla test edilmesini sağlar. Bu testin temel amacı farklı donanım, işletim sistemi ve browserlarda çalışabilirliğini test etmektir.  Aşağıdaki stratejiler izlenebilir;  Yüklü bir yazılmın bir bilgisayardan farklı bir bilgisayara aktarma  Yazılımı farklı platformlarda çalıştırma