Yazılım Testi Nedir? Neden Gereklidir?

Recep EMUL
4 min readDec 9, 2019

--

Son zamanlarda bir çok projenin/ürünün başarısız olmasıyla birlikte “test” kavramı giderek önem kazanmaya başlamıştır. Peki neden ihtiyaç duyarız? Gelin birlikte yazılım sektöründe test kavramının önemini birlikte inceleyelim.
Öncelikle tabi nedir bu test ona bakalım.

Yazılım Testi Nedir?
Aslında yazılım testini açıklayan birçok tanım yazabiliriz. En genel tanımıyla yazılım testi “bir yazılımın, kendisinden beklenen özellikleri karşılayıp karşılayamadığını incelemek amacıyla yapılan işlemlerdir. Bu şekilde yazılımdaki hatalar bulunup düzeltilebilir ve gereksinimlere uygun hale getirilebilir.”

Tanımda da anlaşılacağı üzere bir yazılım projesinde gereksinimleri doğru bir şekilde algılayabilmek product development(ürün geliştirme)sürecinin en önemli kavramlarından biridir. Gereksinimlerin doğru anlaşılması hem ileriye dönük süreçte, hem de bulunan hataların geri dönüşlerinde zaman ve maliyet açısından bizlere avantaj sağlayacaktır.

Peki Gereksinimler Nasıl Olmalıdır? -SMART

Spesific-Açık olmalı
Measurable- Ölçülebilir olmalı
Attaninable- Uygulanabilir olmalı
Realisable- Amaca uygun olmalı
Testable- Test edilebilir olmalı

En net gereksinim test edilebilir gereksinimdir.

Waterfall modelde test süreci genellikle en son aşamada olup, bazen de “aman ne gerek var ki benim kodum hep düzgün çalışır(!)” denilen sonrasında projenin başarısız olmasına sebep olan durumlar söz konusu olmuştur. Bu yüzden bu modelde hatayı bulduğunuzda ya da müşterinin gereksinimleri değiştiğinde sürecin en başına dönmeniz maliyet, özellikle zaman açısından projeyi sıkıntıya sokacak belki de iptaline yol açacaktır.

Agile modeliyle birlikte test artık ürün geliştirme aşamasıyla birlikte başlamış olup daha da önemli bir hale gelmiştir. Bu modelde daha ürünün geliştirme aşamasının başında neyi, nasıl test edeceğiz gibi soruları sorup girdilerimizi belirlemeye başlarız. Hatayı bulduğumuzda geri dönüşlerimiz daha dinamik ve çözüm odaklı olacaktır.

Aşamalarına Göre Hata Maliyetleri
1-
Gereksinimlerin Belirlenmesi-Analiz 1€
2-
Tasarım 10€
3-
Development(Kod) 100€
4-
Test 1000€

Yazılım Testinin Amaçları Nelerdir? Neden Gereklidir?

· Gereksinimlerin ne kadar karşılandığından emin olmak,
· Ürünün kalite düzeyine karşı güven oluşturmak,
· Ürünün test işleminin tamamlandığını ve müşterinin beklediği şekilde çalıştığını onaylamak,
· Hataları ve kusurları bulmak ve önlemek,
· Yetersiz yazılım ve kalite riskini azaltmak,
· Yasal standartlarına uymasını sağlamak bunlardan başlıcalarıdır.

Yazılım Testinin 7 Prensibi

1- Test Hataların Varlığını Göstermektir.
Hata bulunamaması yazılımın hatasız olduğu anlamına gelmez. Test senaryoları daha fazla hata bulmak için tasarlanmalıdır.

2- Yüzde Yüz Test İmkansızdır.
Genellikle sektörde büyük isimlerin bile yanıldığı konulardan biridir. Ancak bir ürünün yüzde yüz test edilmesi imkansızdır. Ürün içerisinde bulunan sadece bir input’u bile test etmeye kalksak günlerimizi hatta aylarımızı alabilir. Bu yüzden test yaparken risklerimize ve önceliklerimize göre test yapmak önemli olacaktır.

3-Teste Yazılım Sürecinin Başında Başlamak Gerekir.
Yukarıda da söz ettiğim gibi test sürecine yazılım sürecinin başında başlamak zaman ve maliyet açısından önemli olacaktır. Ürünün kalitesine doğrudan olmasa da katkı sağlayacaktır.

4-Hatalar Yazılımın Belli Alanlarında Yoğunlaşır.
Yazılımda hatalar genellikle ürünü oluşturan bileşenlerin küçük bir kısmında bulunacağı görülecektir. Bu durum genellikle Pareto analizi ile açıklanır. Kalitenin iyileştirilmesinde sorunların büyük bir çoğunluğunu (% 80) nedenlerin sadece az bir kısmı tarafından üretilmektedir (% 20).

5-Antibiyotik Direnci
Yazılımda sürecinde sürekli aynı senaryoları uygulamak bir süre sonra bağışıklık kazandıracaktır ve hataların bulunamamasına sebep olacaktır. Bu yüzden farklı farklı senaryolar denemek daha fazla hata bulma açısından önemlidir.

6-Testin Kapsamı Bağımsızdır.
Bir ürüne test uygularken farklı bir ürüne uyguladığınız testlerden farklı olmalıdır. Çünkü ürünler birbirinden bağımsızdır. Hastanede kullanılan bir yazılımın kapsamı ile e-ticaret sitelerindeki yazılımın kapsamı farklıdır bu yüzden testleri ürünün kapsamını dikkate alarak yapmak gerekir.

7- Test Ürünün Hatasız Olduğunu Kanıtlayamaz.
Test yaparken bir başka düştüğümüz yanılgı da o ürünün hatasız çalıştığına inanmaktır. Ancak test yazılımın hatasız çalıştığını kanıtlamaz, o üründeki hataları minimum seviyeye çekerek kalitesini artırmasına yardımcı olur.

Sonuç olarak yazılım sektöründe projelerin büyümesiyle birlikte test kavramı zorunluluk haline gelmiştir. Bu süreçte gereksinimlerin iyi anlaşılması, testlerin sürecin en başından itibaren diğer adımlarla entegre bir şekilde yapılması ürünün kalitesi açısından son derece fayda sağlayacaktır.

Kaynakça

#Software #Testing

Sign up to discover human stories that deepen your understanding of the world.

Free

Distraction-free reading. No ads.

Organize your knowledge with lists and highlights.

Tell your story. Find your audience.

Membership

Read member-only stories

Support writers you read most

Earn money for your writing

Listen to audio narrations

Read offline with the Medium app

--

--

Recep EMUL
Recep EMUL

No responses yet

Write a response