Anasayfa Bloglar Yazılım Test Yaşam Döngüsü Nedir? | STLC Aşamaları

Yazılım Test Yaşam Döngüsü Nedir? | STLC Aşamaları

Yazılım Geliştirme
8 Dakika Okuma Süresi · 14.10.2024
Blog Small Image

Tıpkı bir yazılım yaşam döngüsünün bir dizi aşamayı içermesi gibi, aynı kavram yazılım testine de uygulanır. Test süreci boyunca yazılım uygulamaları işlevsellik, uyumluluk, yanıt verme, performans ve güvenlik gibi bir dizi konular için test edilir. 

Temel olarak, Yazılım Test Yaşam Döngüsü (STLC), bir yazılım uygulamasının (bunlar web sitesi veya mobil uygulama olabilir) test edilmesi sırasında yer alan çeşitli görevleri gerçekleştirir.

STLC'deki bu görevler, geliştirilen yazılım uygulamasının kalite standartlarını ve müşteriler tarafından belirlenen özel ihtiyaçları karşılayıp karşılamadığını doğrulamaya odaklanır. 

Yazılım Test Yaşam Döngüsü hakkındaki bu yazımızda, yazılım testinin temellerini ve Yazılım Test Yaşam Döngüsü'nün aşamaların ele alacağız.

 

Yazılım Test Yaşam Döngüsü (STLC) Nedir?

Yazılım Test Yaşam Döngüsü (STLC), yazılımı test etmek ve kalite standartlarının karşılandığından emin olmak için kullanılan bir süreçtir. Her biri yazılımın geliştirilmesi için kritik olan birkaç aşamayı içerir. STLC aşamaları, yazılım uygulaması yayınlanmaya uygun bir kalite düzeyine ulaşana kadar birden fazla kez gerçekleştirilebilir.

Uygulamada herhangi bir hata varsa, yazılım test uzmanları geliştirme ekibiyle birlikte çalışır ve hata giderilir. Yalnızca tek bir testin yapıldığı zamanlarda ürünün hatasız olacağından emin olmak imkansızdır. Bu nedenle, her Yazılım Test Yaşam Döngüsü (STLC) aşamasında birden fazla test yapılır.

STLC'de yazılım test uzmanları şu konularda önemli bir rol oynar:

  • Agile sürecin iyileştirilmesi
  • Projelerde test için net son tarihler belirlemek
  • Proje hedeflerinin belgelenmesi ve tutarlı bir şekilde takip edilmesi
  • Tüm hedeflerinin doğru bir şekilde karşılandığının kontrol edilmesi
  • Yeni özellikler eklemeden önce her yazılım özelliğini test etmek
  • Test sürecini geliştirmek için otomatikleştirilebilecek görevlerin belirlenmesi

 

 

STLC ve SDLC Nedir?

Yazılım Geliştirme Yaşam Döngüsü (SDLC) ve Yazılım Test Yaşam Döngüsü (STLC) yazılım geliştirmede karşımıza çıkan iki önemli konu. Bu kavramlar genellikle çoğu kişi tarafından aynı şeyler olarak düşünülse de aslında farklı rolleri ve işlevleri vardır.

Biraz daha net anlatmak gerekirse, bir ürünün başlangıcından son ürüne dönüşmesine kadar olan tüm yolculuğu SDLC tarafından yönetilir. SDLC'nin çeşitli aşamaları arasında test en önemli aşamalardan biridir. Yazılım testinin de kendi yaşam döngüsü vardır. Bu döngüye de STLC diyoruz.

SDLC 👇

  • Yazılım gereksinimlerinin toplanması
  • Yazılımın tasarlanması
  • Yazılım ürününün oluşturulması ve test edilmesi
  • Yazılımın üretim ortamına dağıtılması
  • Yazılım kodunun güncellenmesi ve bakımı 

STLC 👇

  • Test gereksinimi analizi
  • Test planlama ve geliştirme
  • Test ortamının kurulumu
  • Test vakalarını yürütme

SDLC ile STLC arasındaki diğer önemli farklar şunlardır:

Yazılım Geliştirme Yaşam Döngüsü (SDLC)

Yazılım Test Yaşam Döngüsü (STLC)

Bir yazılım uygulamasının geliştirilmesine odaklanır.

Yazılım uygulamasının test edilmesine odaklanır.

Yüksek kaliteli yazılımların geliştirilmesine yardımcı olur.

Yazılımın hatasız hale getirilmesine yardımcı olur.

Kullanıcı ihtiyaçlarını anlar ve bunlara dayalı bir ürün yaratır.

Hedeflenen performansı sağlamak için ihtiyaçları kontrol eder.

İş analistlerinden ihtiyaçları toplar.

QA ekibi bir test planı oluşturur.

Test öncesinde SDLC aşamaları tamamlanır.

SDLC aşamalarından sonra STLC aşamaları başlar.

Yüksek kalitede, kullanılabilir bir yazılım uygulaması sunar.

Geliştirme ekibinin düzeltmesi için hataları ortaya çıkarır ve raporlar.

SDLC’de STLC'nin Rolü

Bir önceki bölümde SDLC’nin ana amacının, yüksek kaliteli ürünler sunmak olduğunu gördük. Peki, yüksek kaliteyi nasıl ölçebiliriz? 🤔

Kullanıcı deneyimi, bir ürünün kalitesi ile doğru orantılıdır. Bu kaliteyi sağlamak için en önemli unsurlardan biri, ürünün sorunsuz ve beklendiği gibi çalıştığından emin olmaktır. İşte bu noktada STLC yani Yazılım Test Yaşam Döngüsü devreye girer. 

STLC’nin SDLC’deki rolü, ürünün sorunsuz veya beklendiği gibi çalışmayan kısımlarını belirleyip, bu sorunları geliştirme ekibine bildirmektir.

STLC’nin ne olduğunu anladığımıza göre, neden bu kadar önemli olduğuna bir bakalım. STLC’nin temel görevi yazılımdaki hataları bulup düzeltilmeyi sağlamaktır. STLC’nin uygulanmasındaki ana amaç ürün kalitesini korumaktır.

STLC tamamen ürünün kalitesini güvence altına almayı hedefler. Her uygulamanın güvenilirlik, işlevsellik ve performans gibi farklı özellikleri vardır. STLC, bu özellikleri iyileştirmeye yardımcı olur ve ideal bir son ürünün teslim edilmesini kolaylaştırır.

 

Yazılım Test Aşamaları Nelerdir?

Yazılımı nasıl test edeceğin konusunda daha iyi kararlar almak için Yazılım Test Yaşam Döngüsü'nün (STLC) aşamalarını anlamak önemlidir. STLC, her biri kendi giriş-çıkış kriterlerine sahip olan 6 aşamadan oluşur. Giriş-çıkış kriterleri, aşamanın ne zaman başlayıp bittiğini tanımlar. Yazılım testinin kendisi ayrıntılı bir süreç olduğundan, test uzmanları bunu aşağıdaki aşamalarda gerçekleştirir:

✅ İhtiyaç Analizi

✅ Test Planlaması

✅ Test Senaryosu Geliştirme

✅ Test Ortamı Kurulumu

✅ Test Yürütme

✅ Test Kapatma

Her birine daha yakından bakalım 👇.
 

1. İhtiyaç analizi

İhtiyaç analizi STLC'deki ilk adımdır. Bu aşamada, yazılım test uzmanları test edilmesi gereken ürün gereksinimlerini anlamalıdır. Örneğin, QA ekipleri hem işlevsel hem de işlevsel olmayan gereksinimleri inceleyebilir ve ardından test etmeleri gereken gereksinimlerini belirleyebilir.

İhtiyaç analizi aşaması şunları içerir:

  • Test gereksinimlerinin belirlenmesi ve önceliklendirilmesi
  • QA ekibinin test gereksinimlerini açıkça anlamasını sağlamak
  • Gereksinim İzlenebilirlik Matrisi'ni (RTM) tasarlamak
  • Ürün özelliklerindeki herhangi bir kusur veya açığın belirlenmesi

 

2. Test Planlaması

Bu aşamada, QA ekibi test gereksinimlerine dayalı olarak test planını oluşturur. Test planlaması, gereksinimler aşamasından gelen içgörüleri etkili bir şekilde belgelenmiş bir test stratejisine dönüştürür. Bu aşamada, ilgili ekipler test sürecinin zamanını ve maliyetini belirleyebilir.

Test planlaması şu aşamalardan oluşur:

  • Tanımlanan gereksinimlere göre test planı hazırlanması
  • Doğru manuel test veya test otomasyon aracının seçilmesi
  • QA ekibine rol ve sorumlulukların atanması
  • Herhangi bir eğitim ihtiyacının belirlenmesi

 

3. Test Senaryosu Geliştirme

Test planlama aşamasından sonra, test senaryosu geliştirme aşaması tamamen test planı ve gereksinimlere dayalı test vakaları oluşturmakla ilgilidir. Test senaryosunun etkili olması için yazılımın her özelliğini kapsaması gerekir. 

Bu STLC aşamasında gerçekleştirilen temel görevler şunlardır:

  • Hazırlanan test senaryolarının veya otomasyon scriptlerinin güncellenmesi
  • Beklenen test çıktıları için test koşullarının tanımlanması
  • Test için gerekli test verilerinin hazırlanması

 

4. Test Ortamı Kurulumu

Etkili yazılım testi, sunucular, test framework’leri ve yazılım araçlarından oluşan eksiksiz bir test ortamı gerektirir. Ek olarak, doğru test ortamı, son kullanıcıların kullanması muhtemel tüm yapılandırmaları içermelidir.

Bu aşamada gerçekleştirilen görevler şunlardır:

  • Test ortamının parametrelerinin tanımlanması
  • Duman testlerinin yapılması
  • Test ortamlarının önceliklendirilmesi ve kurulması

 

5. Test Yürütme

Bu aşamada, yazılım uygulaması tanımlanmış test planına göre test edilmeye hazırdır. Herhangi bir yazılım hatası bu aşamada bulunur. QA ekibi yakaladığı hataları geliştirme ekibine bildirir.

Bu aşamada gerçekleştirilenler şunlardır:

  • Test vakalarının yürütülmesinden kaynaklanan hataların raporlanması
  • Ürünün (hata düzeltmesinden sonra) herhangi bir yeni hata açısından yeniden test edilmesi
  • Test kapsamını artırmak için test otomasyonunu kullanmak

 

6. Test Kapatma

Test kapatma, STLC'nin son aşamasıdır. Bu aşama, test senaryosu yürütmenin ve nihai ürün teslimatının sonunu işaret eder. QA ekibi, test sonuçlarına dayanarak ürün kalitesini, proje maliyetlerini ve test kapsamını tartışır. Bu aşamanın sonunda, QA ekipleri test sonuçlarını özetleyen bir test kapanış raporu sunar.

Bu aşamada gerçekleştirilen temel görevler şunlardır:

  • Test stratejisi, test planları ve otomatik test komut dosyaları da dahil olmak üzere çıktıların kontrol edilmesi
  • Test sırasında beklenmeyen davranışların ayrıntılarını içeren olay raporunun hazırlanması

 

Yazılım Test Yaşam Döngüsünde Giriş ve Çıkış Kriterleri Nedir? 

Giriş kriterleri, test başlamadan önce yerine getirilmesi gereken koşullar ve gerekliliklerdir. Bu kriterler, test sürecinin etkili bir şekilde devam etmesini sağlar. 

Çıkış kriterleri, test sona ermeden önce tamamlanması gereken gereklilikleri ve eylemleri belirtir. Başka bir deyişle, görev listesinden silinecek öğeleri ve test durmadan önce tamamlanması gereken süreçleri içerir.

 

Test Otomasyonunun STLC’deki Yeri

Büyük bir yapbozu tamamladığını düşün; her parçayı tek tek organize etmek saatler alabilir. Ama doğru parçaları bulmana yardımcı olacak bir rehberin varsa, her şey çok daha hızlı ilerler. Test otomasyonu da tam olarak böyle bir rehber gibidir.

Bir oyun ya da uygulama geliştirirken, işlevselliği doğrulamak için testler yapman gerekir. Bu testleri manuel olarak yapabilirsin, ama bu oldukça zaman alıcı olabilir. İşte burada test otomasyonu devreye girer. Otomasyon, monoton ve tekrar eden işleri senin yerine halleder. Mesela, sürekli aynı düğmelere tıklamak ya da aynı yazıları tekrar tekrar yazmak gibi.

Test otomasyonu, hataları hızlıca tespit ederek hem zamandan hem de maliyetten tasarruf etmene yardımcı olur. Ayrıca, testlerin çok daha hızlı tamamlanmasını sağlar ve uygulamanın sorunsuz çalıştığından emin olmanı kolaylaştırır.

 

Yazılım Test Yaşam Döngüsü (STLC) Metodolojileri

Yazılım testinde, yazılım test süreçlerini yürütmek için çeşitli metodolojiler vardır.

1. Waterfall (Şelale) Metodolojisi

Yazılım Test Yaşam Döngüsü'nün (STLC) en eski metodolojilerinden biri Waterfall (Şelale) Metodolojisidir. Kullanımı oldukça basittir. Aşağı doğru akan bir şelaleye benzer şekilde çalışır. 

Bu modelde, her aşama bir sonraki aşamanın yürütülmesinden önce tamamlanır. Böylece hiçbir aşamanın çakışmaması sağlanır. Waterfall (Şelale) Metodolojisinde birbiri ardına tamamlanan gereksinim toplama ve belgeleme, sistem tasarımı, uygulama, test, teslimat/dağıtım ve bakım gibi 6 aşama vardır.

 

2. Scrum 

Scrum, karmaşık yazılım projelerinin başarı oranını yükseltmek için oluşturulmuş proje yönetim metotlarından biridir. Karmaşık ve zor yazılım süreçlerinde ekip üyelerinin hangi aşamada oldukları, sonraki adımların neler olduğu ve gelecekte karşılaşabilecekleri zorluklar hakkında konuşmak için bir araya geldikleri kısa toplantılardır.

 

3. V-Model

V-Model, geliştirme ve test faaliyetlerini yan yana yürüten bir sistemdir. V-Model'deki görevler aynı anda tamamlanır. Sol tarafta yazılım geliştirme faaliyetlerini gösterirken, sağ tarafta devam eden test aşamalarını gösterir. Bu, yazılım geliştirme döngüsünün her bir öğesinin yazılım testinin aşamalarına ayrılmaz bir şekilde bağlı olduğu anlamına gelir. 

 

4. Agile 

Agile yani çevik metodoloji, nispeten daha az baş ağrısıyla daha hızlı ürün teslimatı vadeden bir proje yönetim ve yazılım geliştirme yaklaşımıdır. Her şeyi planda toplayıp aynı anda yönetmek yerine küçük ve etkili bir metot önerir bize Agile. Agile metodolojisi planlama/analiz, tasarım, kodlama, test, uygulama ve bakım gibi 6 alt başlıktan oluşur; 

 

Yazılım Test Mühendisliği

Yazılım test mühendisliği kariyer imkanı nelerdir? Yazılım test mühendislerine talep var mı soruları sıklıkla sorulan soruların başında geliyor. Bunun bir nedeni, kariyer planı oluştururken ilgili alandaki iş imkanlarının ne kadar olduğu, şirketlerin bu alanda çalışanlara talebinin olup/olmadığı veya koşullarının ne olduğunun son derece önemli olması. 

Soruya gelecek olursak, yazılım test mühendisleri, uygulamaların sorunsuz bir şekilde devreye alınmasını ve etkili test edilmesini sağlayan becerileriyle birçok sektörde yüksek talep gören uzmanlardır. Bu talep, özellikle yazılım geliştirme, finans, eğlence ve oyun sektörlerinde oldukça fazladır. 

Yazılım test mühendisliği geniş bir yelpazede kariyer fırsatları sunar. Yazılım test uzmanlarının ortalama maaşlarını öğrenmek istiyorsan buraya göz atabilirsin. 

Eğer yazılım test mühendisliğine ilgi duyuyorsan, topluluğumuza katılarak düzenlediğimiz meet-up'larda diğer uzmanlarla tanışabilir ve Discord'daki büyük topluluğumuza katılarak güncel gelişmeleri takip edebilirsin.

Zaten yazılım test uzmanıysan hayalindeki kariyere ulaşmak için tek yapman gereken Coderspace’de profilini oluşturmak ve bizim senin için mükemmel fırsatı bulmamızı beklemek! Buraya tıklayarak profilini 2 dakika içerisinde oluştur ve arkana yaslan, gerisini biz halledelim. :)

İÇERİKLER
Konu içeriği

🎁 Coderspace Yılbaşı Çekilişi Stanley Termos, Herschel Sırt Çantası, Tişört, Python Sıfırdan Uzmanlığa kitabı, 500 TL Udemy desteği HEDİYE! Çekilişe Katıl

Önerilen İçerikler

Tüm İçerikler

Açık Etkinlikler

Tüm Etkinlikler
Geleceği Yazan Kadınlar Yapay Zeka Programı
Geleceği Yazan Kadınlar Yapay Zeka Programı

Kadınlar hem geleceği hem hayallerini yazıyor!

Yetenek Programı
  • Son Başvuru 9 Aralık
Detaylı Bilgi
Think Tech 2024
Think Tech 2024

Bilişim Teknolojisi Genç Yeteneklerle Buluşuyor!

Meet-up
  • Son Başvuru 10 Aralık
  • Başlangıç 10 Aralık
  • Bitiş 10 Aralık
Detaylı Bilgi
Gelecek Hayalim Projesi Teknoloji Eğitimleri
Gelecek Hayalim Projesi Teknoloji Eğitimleri

Gelecek Hayalim Topluluğu’na dahil olmak için hemen başvur!

Bootcamp
  • Son Başvuru 12 Aralık
Detaylı Bilgi
Tüm Etkinlikler

Codecast: Yazılımcı Sohbetleri

Farklı alanlardan konuklarımızın katılımlarıyla gerçekleşen Codecast’te yazılım ve veri bilimi yöneticilerini Podcast serimizde konuk ediyoruz!