Yazılım Test Süreçleri

Yazılım Gereksinim Analizi

Merhaba Arkadaşlar
Bu yazımızda Yazılım geliştirme süreci konusuna devam edilecek ve gereksinim analizi, tasarımların yapılması ve geliştirme aşamasına geçilmesi ile ilgili bilgiler verilecektir. Daha önce yazılım geliştirme aşamalarını ve yazılım geliştirme modellerini verdiğimiz yazılardan sonra yazılım geliştirme ile son olarak değinecek ve Yazılım Test Süreci ile ilgili eğitime devam edeceğiz.

Yazılım Gereksinim Analizi

Yazılım gereksinimleri geliştirilmesi istenen üründen nelerin beklendiğinin net açık bir şekilde ifade edilmesidir. Amacına uygun ürünlerin oluşması için beklenenlerin, istenilenlerin yani yazılım gereksinimlerinin net bir şekilde tespit edilmesi önemlidir. Genel de yazılım gereksinimleri belirtilmeden önce taleplerin tanımlanması yani iş birimleri (müşteri, kullanıcı vb.) tarafından gelen istekler ya da şirket içi birimlerden gelen talepler adımı bulunur. Taleplerin yönetilmesi için ayrı departmanların olduğu şirketlerde talep yöneticileri tarafından başlatılan bu süreçte bu isteklerin gereksinime dönüştürülmesi aşaması genelde İş Analistleri tarafından yapılır. İş analistleri gereksinim analizine ilk önce isteklerin, taleplerin yapılabilirliğinin olup olmadığına yani olurluluk çalışması ile başlarlar. Bu çalışma ile başlayan sürecin devamı şekildeki gibi işleyerek ilerlemektedir.

Bu süreç temel olarak aşağıdaki adımları kapsar:

  • Olurluluk çalışması ve raporlanması
  • Gereksinimlerin ortaya çıkarılması ve analizi
  • Gereksinimlerin tanımlanması
  • Gereksinimlerin doğrulanması

Gereksinim Analizi Önemi

Doğru anlaşılmış bir ihtiyaç doğru yazılımın geliştirilmesi için atılan en önemli adımdır. Yazılım gereksinimlerinin başarılı şekilde çıkarılması geliştirilecek ürünün başarılı olması açısından, geliştiriciler de oluşacak belirsizliklerin önüne geçmesi açısından açısından çok önemlidir. Zaman olarak büyük tasarruf sağlamasının yanında paydaşlar arasında iletişim sorunlarının da oluşmamasına yardım etmesi faydaları olarak verilebilir. Gereksinimlerin oluşturulmasından sonra yapılması gereken adım belirlenen gereksinimleri dokümantasyonu yapılmadan önce paydaşlar tarafından gözden geçirme işlemi (review) ile doğrulanmasıdır. Gözden geçirmelerde gereksinimler doğruluk, açıklık, anlaşılırlık, yapılabilirlik, tutarlılık, izlenebilirlik, uyumluluk, test edilebilirlik gibi bir dizi kriter açısından gözden geçirilir. Gözden geçirme süreçlerine dair ayrıntılı bilgileri sonraki yazılarda bulabileceksiniz.

Gereksinim Analizi yapılan farklı gereksinim türleri bulunabilir. Müşteri, Sistem, Kullanıcı vb. gereksinimleri kendi içlerinde belli kriterlere göre oluşturulan gereksinimlerdir. Bu konuda daha fazla bilgi için tıklayınız.
Yazılım gereksinimleri, Yazılım Testleri açısından da çok önemli olduğu için bu bölümü vermeden geçmek istemedim. Çünkü gereksinimler test mühendislerinin referans alabileceği ve testlerin tasarlanmasında kullanılan bir girdi olarak düşünülebilir. Gereksinim doğru tanımlanmış, net açık ve anlaşılır olduğunda hem yazılım mühendisleri hem test mühendisleri kargaşanın içinde olmadan işlerini daha hızlı ve verimli şekilde yapmış olacaklardır.

Yukarıdaki gibi sol tarafta bulunan gereksinimler olduğu sürece sağ tarafta olan test durumları daha rahat bir şekilde bulunacaktır. Bu yüzden yazılım geliştirme sürecinde gereksinimlerin belirtilmesi önemli bir aşamadır dedikten sonra tasarım aşamasına geçelim.

Yazılım Tasarımı ve Geliştirilmesi

Gereksinimlerin netleşmesinden sonra Tasarım aşamasına yani geliştirilecek olan ürünün ilk modelinin ve gösteriminin ortaya çıkarılması aşamasına geçilir. Bu aşamada gereksinimlerden faydalanarak Teknik Tasarım, Çözüm Tasarım vb. adlandırılan belgelendirmeler ile ürüne ait geliştirme öncesi faaliyetler gerçekleştirilir. Bu açıdan tasarımların gerçekleştirilmesinde deneyim ve bilgi birikimi önemli yer tutar. Yazılım geliştirme sürecinde “tasarım ve geliştirme” aşaması, gereksinimlere dönüştürülmüş taleplerin çalışabilir bir duruma dönüştürülme aşamasıdır. Geliştirilmek istenen ürün web tabanlı ya da masaüstü uygulaması ya da mobil bir ürün olabilir. Bilgisayar, telefon, tablet vs. cihazlara uygun şekilde tasarımın yapılması gerekmektedir. Çalışabilir durumda olmasını bu şekilde açıklayabiliriz.

Yazılım tasarım sürecinde;

  • Bileşen tasarımı
  • Algoritma tasarımı
  • Mimari tasarım
  • Veri yapısı tasarımı
  • Ara yüz tasarımı

Tasarım aşaması gerçekleştirildikten sonra yazılımın kodlanmasına yani geliştirme aşamasına geçilir. Tasarım ile geliştirme faaliyetleri iç içe eylemler olabilmekte ve yazılım süreç modellerine göre farklılık göstermektedir. Bu bölüme ek olarak Test Otomasyonu ile ilgilenenler içeriğe bakabilirsiniz 🙂

Gereksinim analizi ile ilgili daha fazla bilgi için İş analistleri, test analistleri vb. paydaşların kullanabileceği dünya çapında tanınan bir standart olarak kabul edilen kılavuzu bu yazıya eklemek istedim. İlgilenenler için yardımcı olabilecek bir kılavuz olarak kullanılabilir. Bu kılavuz iş analizi uygulamaları için bir standart olan “A Guide to the Business Analysis Body of Knowledge (BABOK Guide)” kılavuzuna BABOK sitesinden erişebilirsiniz. Bu kılavuzda iş analizi bilgi alanlarını, görevlerini, temel yetkinlikleri, teknikleri ve iş analizine nasıl yaklaşılacağına dair bakış açılarını bulabilirsiniz.

Bu yazı ile birlikte Yazılım geliştirme süreci ile ilgili bilgileri vermeye çalıştım. Yazılım Test Süreci eğitimine giriş yapmadan önce yazılım ile ilgili bu bilgiler faydalı olacağı düşüncesindeyim. Yazılım Test Süreci ile ilgili detaylı yazılarımıza sonraki bölümlerde başlıyoruz. Daha önceki yazıda verdiğim Yazılım test süreci aşamalarına değineceğimiz sonraki yazıda buluşmak üzere.

Kaynakça: Gürbüz, A.(2010). Yazılım Test Mühendisliği (Birinci Baskı). Türkiye: Papatya Yayıncılık Eğitim, 14-28.

52

Gökhan Şit

Yazılım Test Uzmanı @Turksat

4 Yorum

Haftalık Bülten

Mobilhanem'de yayınlanan dersleri haftalık mail almak ister misiniz?