Yazılım Testi ve Altın 11

Merhaba Arkadaşlar,
Mobilhanem.com üzerinden anlattığımız Yazılım Testi Eğitimi serisinde ikinci dersimizde sizlere Yazılım Testi aşamalarında kullandığımız Altın 11’imizden bahsetmeye çalışacağız.

Bir deneyeyim de öyle karar vereyim

Geliştiricilerin, ürün yöneticilerinin, test uzmanlarının kısacası uygulama geliştirme ile ilgilenen herkesin teste ilişkin çok farklı tanımları ile karşılaşmak mümkün. Yazılım testi kavramını konu alan sertifikasyon programlarını, kitaplarını ya da bloglarını incelediğimizde manası hemen hemen aynı olan farklı tanımlar ile karşılaşmamız da…Benim tanımım, günlük hayatımızda edinmek istediğimiz ya da edindiğimiz şeyler için kullandığımız ‘Bir deneyeyim de öyle karar vereyim’ cümlesinin yazılıma uyarlanması…

yazılım testi sonucu: evet ya da hayır

Edinmek istediğimiz şeyin edinme amacımıza uygun olmasını ve çalışabilir olduğunu kontrol etmek için yaptığımız aktivitelerin tamamı…

Bir ürün almak istediğinizi düşünün. Mağazaya gitmeden önce ihtiyaçlarınızı, nasıl bir ürün almak istediğinizi, bunu sağlayıp sağlamadığını kontrol etmek için neler soracağınızı  ve ürün üzerinde nelere dikkat edeceğinizi büyük ihtimalle düşünürsünüz. Yazılım testinde de konu pek farklı değil aslında… Gereksinimleri inceliyoruz, onların nasıl ele alınacağına bakıyoruz ve olup olmadığını anlamak için hangi kontrolleri uygulayacağımızı içeren senaryoları hazırlıyoruz. Bu hazırlamış olduğumuz senaryoları uygulama üzerinde koşturuyoruz ve edinme amacına uygun olup olmadığına karar veriyoruz. Bu senaryoların bir sonu yok. Sınırsız sayıda senaryo üretmemiz mümkün. Tabi ki onları hazırlayacak ve işletecek zamanımız ve bütçemiz varsa… Zamanımız ve bütçemiz olsa bile mutlaka test etmeyi düşünemeyeceğimiz noktalar da olacaktır. Bu sebeple yazılım testlerinde en uygun ve kıymetli olan senaryoları seçebilmek çok önemlidir. Mümkün olan en az senaryo ile en fazla sayıda hatayı yakalayabilmek yani etkin bir test süreci uygulayabilmek. Etkin bir test sürecini uygulayabilmek için baş ucumda tuttuğum altın bir 11’im var.

Altın 11 Listesi

  • Kalite:  Yazılım testleri müşteriye kaliteli bir uygulama sunabilmek için gerçekleştirilir. Kalite özünde göreceli bir kavram. Kullanıcıların büyük çoğunluğunun uygulamayı kullanmaktan memnun olmalarını sağlayan her şey kalitenin kapsamındadır. Birinci sıraya bunu koymazsam büyük bir haksızlık olacağını düşünüyorum.
  • Yaklaşım:  Uygulamalar çok farklı şekilde test edilebilir. Testten önce test şeklini belirlememiz çok önemli. Bazı durumlarda planlı bir test gerekli iken bazı durumlarda rastgele düşünülmüş ad-hoc testler kullanabiliriz. Benzer şekilde mobil uygulamaları web uygulamalarından farklı olarak test ederiz. Yaklaşımımız test edeceğimiz uygulamaya, zamana ve projeye göre değişebilir.
  • Kullanıcı gibi Düşünmek:  Bu da aslında sıkça duyduğumuz bir cümle. Kullanıcının neyi nasıl istediğini tespit etmek ve test senaryolarını oluşturmak. Oluşturulan senaryoları uygulamanın kullanıcısının davranacağı gibi çalıştırmak ve sonuçları yorumlamak.
  • Kapsam:  Uygulamanın ne kadar çok özelliğini test edersek o kadar sağlam ve istenilen bir uygulama olmasını sağlarız. Bu noktada testlerin kapsama hedeflerinin nedenleri ile birlikte belirlenmesi elzem.
  • Hatanın Ele Alınması:  Test aktivitesinin ana çıktısı genelde hataları içeren bir  raporun sunulması olarak görülür. Ama asıl olan bulunan hataların ilgilileri tarafından ele alınmasının sağlanmasıdır. Tespit edilmiş ama giderilmemiş bir hatanın ne anlamı olabilir ki…
  • Basitlik:  Kullanıcının en basit şekilde işini görebileceği uygulamanın sunulması da yazılım testi kapsamındadır. Fonksiyonel olarak hatasız ama kullanımı çok zor bir uygulama kulaklarımızın çınlamasına sebep olabilir.
  • İş Birliği:  Yazılımda genelde test son aktivite olarak görülmesine rağmen aslında iş birliği içerisinde ele alınan bir süreçtir. Gereksinim hazırlanmasında, kodlama aşamasında ve kullanıcı kabulünde bunu görebiliriz. Bir adımda yakalanamayan hata bir sonraki adımda daha pahalıya patlar. Bu sebeple yazılan bir gereksinimi, fonksiyonu veya tasarımın nedenini anlamak çok kıymetli. Bunun içinde sürecin ilgili parçalarında yer alan paydaşlar ile iletişim kurmak parçayı anlamamızı daha kolay sağlayabilir. İlgili aşamanın testini kolaylaştırır.
  • Dokümantasyon:  Yazılım testi kapsamında çok önemli bir rol oynar. Test senaryolarının dokümante edilmesi, izlenebilirlik matrisinin oluşturulması, kontrol listelerinin oluşturulması, ekran görüntülerinin alınması ve videoların kaydedilmesi… Liste uzayıp gidebilir. Bu tip dokümanlar testin tekrarında ya da hataların giderilmesinde epey fayda sağlarlar. Tabi ki yeteri kadar olmalarına dikkat edilmelidir. Dokümanların yeterli miktarı projeden projeye, müşteriden müşteriye ve uygulamadan uygulamaya fark gösterir.
  • Zaman Yönetimi:  Canlı ortamda bulunmuş hataların giderilmesinin maliyeti test ya da geliştirme ortamlarında bulunan problemlerin giderilmesinden doğal olarak daha fazla olacaktır. Hataları ne kadar erken yakalarsak ve giderilmesini sağlarsak o kadar başarılı olduğumuzu düşünebiliriz. Tabi ki bu noktada zaman yönetimi konusunda bir zorluğumuzun olacağı aşikar. Aşağıdaki işlerin zamanlarını iyi yönetebilirsek toplam test aktivitesinin zamanının da yönetilmesini kolaylaştırılacağını düşünüyorum.
    • Test verisinin hazırlanması,
    • Test senaryolarının durumunun izlenmesi,
    • Hataların yeniden üretilebilmesi için test verilerinin tekrar oluşturulmaları,
    • Hataların izlenmesi,
    • Hataların giderilmesi,
    • Regresyon testlerinin üretilmesi ve koşulması
  • Ölçüm:  Test aktivitesinde de bir çok aktivitede olduğu gibi ölçme büyük önem arz etmektedir. Test sürecinin sürekli iyileştirilmesi gerekmektedir. Aklımızın bir köşesinde yer almasında fayda var. Ölçmediğimiz bir şeyi iyileştirmemiz şansa tabidir.
  • Tutku: Belki liste içerisinde garip durabilir ama altın 11in bunsuz eksik olacağına inanıyorum. İşimizi mutlu ve doğru şekilde yapmak için ihtiyaç duyduğumuz en önemli şey.

Son olarak yazılım testinin harmanlanmış tanımını kitabi olarak da paylaşayım.

Yazılım testi; bir yazılımın sonsuz sayıdaki çalışma alanından, sınırlı sayıda ve uygun şekilde seçilmiş testler ile beklenen davranışlarını karşılamaya yönelik, dinamik olarak yapılan doğrulama faaliyetleri bütünüdür.

Tercihim ‘Bir deneyeyim de öyle karar vereyim’ yönünde…

Bir sonraki yazımız Yazılım Testi Teknikleri ve Sınıflandırması hakkındadır.

Konu hakkında soru , cevap ve görüşlerinizi alt taraftaki yorum alanından veya Soru&Cevap sitemizden bizlere iletebilirsiniz.

Tüm Yazılım Testi dersleri için tıklayınız.

10

Sabri Mutluçağ

Test Engineer @Udemy

1 Yorum

Haftalık Bülten

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