Yazılım testi, bir yazılım ürününün veya uygulamasının yapması gerekeni yaptığını değerlendirme ve doğrulama sürecidir. Testin faydaları, hataları önlemeyi, geliştirme maliyetlerini düşürmeyi ve performansı iyileştirmeyi içerir.
KALITELI YAZILIM NEDIR?
Geliştirilecek olan yazılımın kendisine ait açık veya gizli olan gereksinimlere ve beklentilere uygunluk derecesidir.
Belirtilen veya ima edilen gereksinimleri karşılama yeteneğini taşıyan bir yazılım ürününün işlevsellik ve özelliklerin toplamıdır. (ISTQB,2010)
- Gereksinimleri karşılayabilen
- Sürdürülebilir,geliştirilmeye açık
- Kabul edilebilir düzeyde hatasız
- Bütçe planına ve zamanına uygun bitirilen özelliklere sahip olan yazılımlar kaliteli yazılım olarak adlandırılabilir.
YAZILIM TESTI NEDEN YAPILIR?
Yazılımın kendisinden beklenen işlevleri yine kendinden beklenen kalite ölçütleri çerçevesinde herhangi bir hata vermeden yerine getirdiğini göstermek amacıyla yapılır.
Yazılım testi, bir yazılımın sonsuz sayıdaki çalışma alanından, sınırlı sayıda ve uygun şekilde seçilmiş testler ile belirlenmiş gereksinimleri karşıladığının doğrulanması veya beklenen ile gözlenen sonuçlar arasındaki farkların belirlenmesi amacıyla yapılır.
Sonuç olarak olması gereken şeylerin olmadığını veya olmaması gereken şeylerin olduğunu denemek ve ortaya çıkartmak yazılım testinin amacı olmalıdır.
- Yazılımın canlıda kullanımı sırasında ortaya çıkacak arızalı önlemek,
- Yazılımı kalite kriterleri açısından değerlendirmek,
- Müşterinin rekabet gücünü arttıracak ve ihtiyacını karşılayacak bir ürün teslim etmek,
- Yazılımın karşılayacağını vaat ettiği müşteri,iş,paydaş ve çözüm gereksinimlerinden sapmaları belirlemek,
- Yazılım test faaliyetlerini, geliştirilen yazılım üzerinde uygulayarak daha kaliteli yazılımlar geliştirilmesini sağlamak için yapılmaktadır.
YAZILIM TEST TEKNIKLERI
- Beyaz Kutu Testi : Beyaz kutu testi, kara kutu testinde olduğu gibi sadece işlevsellikten ziyade iç yapıları, kullanılan veri yapılarını, iç tasarımı, kod yapısını ve yazılımın çalışmasını analiz eder. Ayrıca cam kutu testi veya şeffaf kutu testi veya yapısal test olarak da adlandırılır.
- Kara Kutu Testi : Kara Kutu Testi, dahili kod yapısı, uygulama detayları ve dahili yollar hakkında bilgi sahibi olmadan yazılım uygulamalarının işlevlerinin test edildiği bir yazılım test yöntemidir. Kara Kutu Testi, temel olarak yazılım uygulamalarının giriş ve çıkışına odaklanır ve tamamen yazılım gereksinimlerine ve özelliklerine dayanır. Davranış Testi olarak da bilinir.
- Keşif Testi : Keşif Testi, Test senaryolarının önceden oluşturulmadığı, ancak testçilerin sistemi anında kontrol ettiği bir tür yazılım testidir. Testin yürütülmesinden önce neyin test edileceğine dair fikirleri not edebilirler. Keşfedici testlerin odak noktası daha çok “düşünme” etkinliği olarak test etme üzerinedir.
YAZILIM TEST YASAM DONGUSU
Yazılım Test Yaşam Döngüsü (STLC), yazılım kalite hedeflerinin karşılanmasını sağlamak için test süreci sırasında gerçekleştirilen bir dizi özel eylemdir. STLC, hem doğrulama hem de doğrulama içerir. Popüler inanışın aksine, yazılım testi sadece ayrı bir faaliyet değildir.
1. Gereksinim Analizi
2. Planlama
3. Analiz
4. Tasarım
5. Uygulama
6. Yürütme
7. Sonuç
8. Kapanış
YAZILIM TEST PLANLAMASINDA YAPILACAKLAR
1. Test stratejisi ve test edilecek bileşenler
2. Giriş ve çıkış kriterleri
3. Hata yönetimi
4. Risk yönetimi
5. Görev ve sorumluluklar
6. Test ortamı ve test araçları
7. Test takvimi
YAZILIM TEST SEVIYELERI
- Birim Testi : Bir yazılımın ayrı birimlerinin veya bileşenlerinin test edildiği bir tür yazılım testidir. Amaç, yazılım kodunun her biriminin beklendiği gibi çalıştığını doğrulamaktır.
- Entegrasyon Testi : Yazılım modüllerinin mantıksal olarak entegre edildiği ve grup olarak test edildiği bir test türü olarak tanımlanır. Tipik bir yazılım projesi, farklı programcılar tarafından kodlanmış birden çok yazılım modülünden oluşur. Bu test seviyesinin amacı, entegre olduklarında bu yazılım modülleri arasındaki etkileşimdeki kusurları ortaya çıkarmaktır.
- Sistem Testi : Eksiksiz ve tam entegre yazılım ürününü doğrulayan bir test düzeyidir. Bir sistem testinin amacı, uçtan uca sistem özelliklerini değerlendirmektir. Genellikle yazılım, daha büyük bir bilgisayar tabanlı sistemin yalnızca bir öğesidir. Sonuç olarak, yazılım diğer yazılım/donanım sistemleriyle arabirim oluşturur. Sistem Testi aslında tek amacı tam bilgisayar tabanlı sistemi çalıştırmak olan bir dizi farklı testtir.
- Kabul Testi : Yazılım uygulamasını üretim ortamına taşımadan önce yazılım sistemini doğrulamak/kabul etmek için son kullanıcı veya müşteri tarafından gerçekleştirilen bir test türüdür. Fonksiyonel, entegrasyon ve sistem testleri yapıldıktan sonra testin son aşamasında UAT yapılır.
MANUEL TEST VE TEST OTOMASYONU
YEDI TEST PRENSIBI NEDIR?
1. Show presence of errors (Test üründe hataların olduğunu gösterir.)
2. Early Testing (Teste projenin başında başlamak gerekir.)
3. Defect Clustering (Hatalar belirli yerlerde yoğunlaşır.)
4. Pesticide Paradox (Antibiyotik Direnci Paradoksu)
5. Exhaustive Testing Is Imposible (Her şeyi kapsayan test mümkün değildir.)
6. Testing Is Context Dependent (Test yaklaşımı projeye göre değişiklik gösterir,alan bağımlıdır.)
7. Absense of Errors Fallacy (Hata yokluğu yanılgısı; hata bulunmadığı için ürünün hatasız olduğunu düşünmek)
YAZILIM TEST TIPLERI NELERDIR?
Statik Testler
Yazılım uygulamasındaki hataları kodu çalıştırmadan kontrol etmek için kullanılan bir yazılım test tekniğidir. Hataları belirlemek ve hataları çözmek daha kolay olduğundan, geliştirmenin erken bir aşamasında hataları önlemek için statik testler yapılır. Ayrıca Dinamik Test tarafından bulunamayan hataların bulunmasına da yardımcı olur.
Dinamik Testler
Yazılım kodunun dinamik davranışını test etmek için kullanılan bir yazılım test yöntemidir. Dinamik testin temel amacı, yazılım davranışını dinamik değişkenler veya sabit olmayan değişkenlerle test etmek ve yazılım çalışma zamanı ortamında zayıf alanlar bulmaktır. Dinamik davranışı test etmek için kod çalıştırılmalıdır.
KAYNAKLAR;
https://www.ibm.com/topics/software-testing
https://www.javatpoint.com/software-testing-tutorial
https://www.softwaretestinghelp.com/what-is-software-testing-life-cycle-stlc/
https://www.tutorialspoint.com/stlc/stlc_overview.htm
https://www.inflectra.com/rapise/highlights/what-is-automated-software-testing.aspx
Yorumlar
Yorum Gönder