İçeriğe geç

Yazılım Test Günlüğü: Test Nedir?

Geçen hafta “Neden test ederiz?” konusu ile Yazılım Test Günlüğü başlığında toplayacağım yazılara başlangıç yapmıştım. Bu hafta da sizlere Test’in ne olduğu ve Yedi test prensibinden bahsetmek istiyorum. Zaman kaybetmeden başlayalım.

Test Nedir?

En genel ifadesiyle Yazılım testi (Software testing) test altında hizmetlerin veya ürünlerin kalitesi hakkında paydaşlara bilgi sağlamak için yürütülen bir araştırmadır, yazılım testi aynı zamanda, yazılım uygulamalarının risklerini anlamak için yazılımı bağımsız ve nesnel olarak incelemektir. Bir başka tanımda Yazılım testi, yazılımdaki kusurları veya uygulamadaki hataları tanımlayan yazılım geliştirme yaşam döngüsünün ayrılmaz bir parçasıdır

Test hakkında genel bir anlayışlardan biri testin sadece test koşumundan ibaret olduğu yönündedir, fakat test koşumu test sürecinin sadece bir parçasıdır. Testin başından sonuna tüm aşamaları ise test koşumundan çok daha komplekstir. Test süreci öncesinde planlama ve kontrol, test koşullarını seçme, test senaryolarını tasarlama aşamalarından sonra testi koşturur ve sonrasında sonuçları kontrol etme, çıkış kriterini değerlendirme, test süreci ve test edilen sistem ile ilgili raporlama ve test fazı tamamlandıktan sonra kapanış işlemlerini sonlandırma ve tamamlama ile test sürecini bitirmiş oluruz. Bunun yanında test, dokümanların ve ya kaynak kodun gözden geçirilmesi ve statik analiz işlemlerini de içermektedir.

 

 

Test belirli hedefler için gerçekleştirilir. Testin genel amacı, yazılımı sistemli bir şekilde kontrol edilen koşullarda egzersiz yaparak yazılım sistemlerinin kalitesini teyit etmektir. Bu kapsamda yazılım testinin amaçlarını listeleyelim.

  1. Çözümlerin iş gereksinimlerini karşılayıp karşılamadığını garanti eder, böylece müşteri güvenini arttırır.
  2. Bug, defect ve error’leri ortaya çıkarır.
  3. Sistemin dengeli ve kullanıma hazır olup olmadığını kontrol eder.
  4. Bir uygulama veya üründeki riskli alanlarını tanımlar.
  5. Kalite derecesini belirler.
  6. Kullanıcı kabul edilebilirliğini belirler.

Kalite kontrol edilmez üretilir mantığı ve testlerin yazılım geliştirme sürecinin en başından itibaren işin içine dahil olması hataların daha yapılmadan önlenmesini sağlayacaktır. Üretilen çıktıların gözden geçirilmesi sonucunda (örn. analiz dokümanı) bulunan hataların tanımlanıp çözülmesi de kodda hataların çıkmasını engellemeye de yardımcı olabilir.

Test seviyelerindeki farklı bakış açıları farklı test amaçlarını ortaya çıkarır. Örneğin entegrasyon testinde amaç mümkün olan en fazla sayıda arızayı ortaya çıkarmakken, kullanıcı kabul testinde ise amaç yazılımın gereksinimleri karşılaması konusunda güven elde etmektir. Bazı test senaryolarında ise testin amacı yazılımın kalitesini değerlendirmek (hataları düzeltme amacı olmadan) ve yazılımın belirli bir sürede piyasaya sürülmesi ile ilgili riskler konusunda paydaşlara bilgi vermek olabilir.

 

Testin Yedi Prensibi

 

  1. Testler, hataların varlığını gösterir: Testler hataların bulunduğunu gösterebilir, ancak hata olmadığını ispatlayamaz. Test, yazılımda kalan keşfedilmemiş hataların olasılığını azaltır; ancak herhangi bir hata bulunmasa bile, bunun doğru olduğunun bir kanıtı değildir.
  2. %100 test mümkün değildir: Her şeyi tamamen test etmek bir önceki yazımızda da belirttiğimiz gibi imkansızdır. Bu yüzden odak noktası olarak risk analizi ve önceliklendirme yapılması gerekmektedir.
  3. Erken test etmek gerekir: Teste yazılım geliştirme sürecinin başında başlamak gerekir. Yazılım geliştirme hayat döngüsünün başlangıcıyla birlikte test etmek maliyeti ciddi derecede düşürecektir.
  4. Arıza kümülenmesi:  Yazılımda hatalar birbirine yakın bölgelerde yoğunlaşır. . Bu cümleyi Pareto kuralı ile eşleştirirsek; Hataların %80 i , tüm yazılımın %20 sini kapsar.
  5. Pesticide pradoksu: (Antibiyotik direnci) Test senaryolarının belirli aralıklarla güncellenmesi ve revize edilmesi gerekmektedir. Bunun yanında yazılımın farklı ve daha önce test edilmemiş parçalarını test eden yeni test senaryolarının hazırlanması, yeni test tekniklerinin kullanılması yazılımda daha fazla hatanın tespitine olanak sağlayacaktır.
  6. Test içeriğe göre değişir: Test farklı bağlamlarda farklı yapılır. Örneğin, güvenlik açısından kritik olan yazılımlar, bir e-ticaret sitesinden farklı şekilde test edilir.
  7. Hatasızlık algısı: Testte tespit edilen hataların düzeltilmiş olması, yazılımın müşteri/kullanıcı ihtiyaçlarını tam, eksiksiz ve doğru karşılıyor olduğu anlamını taşımamaktadır.

 

[symple_box color=”black” fade_in=”false” float=”center” text_align=”left” width=””]“It is not enough to do your best. You must know what to do and then do your best.” (“Elinizden gelenin en iyisini yapmak yeterli değildir. Ne yapacağını bilmelisin ve elinizden gelenin en iyisini yapın. “) W. Edwards Deming[/symple_box]

Kaynaklar:

  1. ISTQB Foundation Level Syllabus
  2. FOUNDATIONS OF SOFTWARE TESTING ( Dorothy Graham, Erik van Veenendaal, Isabel Evans, Rex Black)

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Bu site, istenmeyenleri azaltmak için Akismet kullanıyor. Yorum verilerinizin nasıl işlendiği hakkında daha fazla bilgi edinin.