ı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:
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 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:
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:
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:
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:
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:
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:
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.
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ı
- Test gereksinimi analizi
- Test planlama ve geliştirme
- Test ortamının kurulumu
- Test vakalarını yürütme
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.