Yazılım Test Süreçleri

Esra Köse
Nöbetçi Testçi
Published in
5 min readJun 12, 2019

Merhaba arkadaşlar,

Bu yazımda sizlere yazılım test süreçlerinden bahsedeceğim.

Yazılım test süreçleri şirketten şirkete göre değişebilir, geliştirilebilir süreçlerdir. Ben süreçlerin genelini aktarmaya çalışacağım.

Yazılım dünyasında kod yazmak ne kadar kıymetlisiyse, yazılım testinin o kadar değerli olduğu dünyada ve hatta ülkemizde anlaşıldı. Bununla beraber test, yazılım döngüsüne yerleştirildi ve yazılım test uzmanının kıymeti artmaya başladı.

Yazılım test uzmanı, test süreci boyunca ürünün kendisinden beklendiği gibi davranıp davranmadığını kontrol eder. Testler aşamasında hataları bularak, çözülmesini sağlar. Bu sayede ürünün istenilen hale gelmesine yardımcı olur. Buradan yola çıkarak yazılım testi yazılımın kalitesini arttırır diyebiliriz. Yazılım testi, yazılımın yaşam döngüsünün sadece sonunda yer alan bir aşama değildir. Yazılım testi süreçtir ve yazılım tamamlandıktan sonra da devam eder. Örneğin ürün teslim edildikten sonra ürüne yeni özellikler eklenecek, ürün geliştirilecektir. Bu aşamada yine yazılım testi gerekli olacaktır. Özetle yazılım testi asla bitmeyen bir süreçtir.

Test süreçlerinin üzerinden geçelim:

1- Planlama Yapılması:

Bu aşama, test planlamasının yapıldığı aşamadır. Testin kapsamı belirlenir ve buna bağlı olarak alınacak veya alınamayacak riskler analiz edilir. Projenin büyüklüğüne ve küçüklüğüne göre planlama değişir. Örneğin bazı durumlarda, daha önceki yazımda bahsettiğim, işin kapsamı dahilinde sanity check yapmak yeterli olacaktır. Bunun kararına bu aşamada varılır. Geliştirmenin nereleri etkileyeceği belirlenir, etki analizi yapılır.

Gerekli test kaynakları belirlenir. Bu kaynak bir mobil cihaz, bir operatör hattı ya da bilgisayara kurulması gereken bir tarayıcı bile olabilir. Bu aşamada test sırasında kullanılacak tüm malzemeler listelenmelidir. Üçüncü aşama olan test ortamının kurulumu ve verilerin sağlanması aşamasında bu adımda belirlenen kaynaklar kullanılacaktır.

Zamanlama planlaması yapılır. Teste ne zaman başlanıp ne zaman biteceği belirlenir ve tarih aralıkları proje liderine ya da takım liderine bildirilir. Elbette testin ne zaman biteceği yolun başında anlaşılamaz. Testler sırasında görülen hatalar ya da süreçte yaşanabilecek olan sorunlar test süreçlerini olumsuz etkiler. Burada verilen tarihler tahminidir ve “tahmini” olduğu da yine ifade edilmelidir.

2- Senaryoların Oluşturulması:

Test edilecek projenin içeriğine göre “beklenen” ve “gerçekleşen” çıktıların hazırlandığı aşamadır. Bu adımda test uzmanı, uygulayacağı senaryoları yazar. Bir test uzmanın en yaratıcı olduğu adımdır. Test senaryoları oluşturulurken yazılımcıdan ya da ürün yöneticisinden alınan ön bilgi ile veya tasarım ve analiz dokümanlarından yararlanılır.

Aşağıdaki örnekte E- posta adresi ile giriş ekranının test senaryosu ve test stepleri yer alıyor. Görüldüğü gibi test senaryosunun adı “e-posta ile giriş” ve bu senaryoya ait 2 adet step bulunuyor.

Test senaryoları steplerden oluşur. Beklenen ve gerçekleşen çıktılar test steplerinde yer alır.

Test senaryoları oluşturulurken hem basit hem de farklı düşünülmelidir. Çok ekstra case’ler denenmek istenirken ana konudan uzaklaşılmamalıdır. Geneli görebilmek ve özele inebilmek elbette çok önemlidir; ancak özelde de kaybolunmamalıdır. Yani senaryolar yazılırken denge çok önemlidir.

Bu aşamada yararlanılması gereken diğer bir kıymetli kaynak test uzmanının tecrübeleridir. Test uzmanı önceki tecrübeleri sayesinde verimli senaryoları hazırlayacaktır.

3- Test Ortamının Hazırlanması ve Verilerin Oluşturulması

Bu aşama test için hazırlık aşamasıdır. Teste başlanmadan önce gerekli tüm hazırlıklar bu adımda yapılır.

Test edilecek proje test ortamına başarılı bir şekilde kurulur.

Birinci adım olan planlama aşamasında belirlenmiş kaynaklar test ortamına uygun hale getirilir. Örneğin mobil uygulamada yapılmış bir geliştirme kontrol edilecekse uygulamanın güncel backend ile aynı dili konuşur hale getirilmesi gerekir. Bunun için gerekli ayarlamalar yapılır, her şeyin teste hazır olması sağlanır.

Test için gerekli veriler sağlanır. Test ortamı hazırlandıktan sonra geliştirmenin kapsamı doğrultusunda gerekli, kullanılacak veriler belirlenerek hazırlanır. Bu bir kullanıcı olabilir, ilan ya da ürün olabilir. Gerek manual gerek bir script sayesinde data yaratılabilir. Günümüzde data yaratmak için kullanılan scriptler sayesinde testler oldukça kolaylaşıyor. Bunu bir örnekle açıklamak istiyorum. Çalıştığım şirkette kurgu gereği, alışveriş kategorisinde 101. ilanda kullanıcıdan bir pop up aracılığı ile ücret talep ediyoruz. Bu pop up üzerinde yapılan tasarım ya da metin değişikliğini test etmek için manual 100 tane ilan vermem gerekli. Bunun yerine jenkins üzerinden çalıştırılan, istediğim test ortamında, istediğim kullanıcıya, istediğim kategoride (cep telefonu, bilgisayar vb) istediğim kadar ilan verdirtebiliyorum. Bu sayede hem zamandan hem de efordan kazanç elde ediyorum.

Test ortamının sağlıklı çalıştığı kontrol edilir. Sadece test edilecek alanın değil, bir öncesindeki veya bir sonrasındaki ekranın/ sayfanın çalıştığı, test ortamının ayakta olduğu, uygulama testi yapılacaksa uygulamanın indirilerek test ortamına bağlanabiliyor olduğu bir sürprizle karşılaşmamak adına önden kontrol edilmelidir.

4- Oluşturulan Senaryoların Koşulması

Bu aşama testlerin koşulduğu aşamadır. Yazılmış olan test senaryoları bu adımda uygulanır.

Burada dikkat edilmesi gereken unsur, oluşturulan senaryoların, zaman baskısına yenilmeden, uygulanabilir olmasıdır. Ne yazık ki test uzmanlarının üzerinde her zaman bir “zaman baskısı” mevcuttur. Özellikle senaryolar koşulurken zaman baskısı çok tehlikelidir. Planlanan senaryolar eksiksiz koşulmalıdır.

Bu adımda hem yeni oluşturulmuş test senaryoları hem de daha önceden var olan, eski senaryolar kullanılabilir. Etkilenebilecek alanları cover eden senaryolar adım adım koşulmalıdır.

5- Sonuçların Raporlanması

Belirlenen tüm senaryolar uygulandıktan sonra ortaya çıkan durumun ilgili kişiye (ki bu genelde yazılımcı olur) iletildiği aşamadır.

Raporda mümkün olduğunca sade bir dil kullanılmalıdır. Görülen hata adım adım yazılmalıdır. Mümkünse hatayı gösteren ekran görünütüsü, backend logu, video gibi destekleyici unsurlar kullanılmalıdır. Bulunan hatayı tekrar edemeyen yazılımcı tekrar test uzmanın yanına gelerek birlikte tekrar etmek isteyecek, aynı ofiste değillerse “tekrar edilemiyor” diye hatayı kapatacaktır. Böyle bir zaman ve efor kaybının önüne geçmek için hata iyi ifade edilmelidir.

Hatanın görüldüğü platform, hatayı tekrar eden veri gibi bilgiler raporda aktarılmalıdır.

Sonrasında yazılımcı ile sürekli iletişim halinde olarak hatanın takibi ve çözüme ulaşması adımı mevcut. Bu adım da hataların raporlanmasına dahil edilebilir.

Aslında yazılım test süreçleri bu kadar; ancak resmi kaynaklarda olmayan bir adımının daha olduğunu düşünüyorum: Deneyim Kazanılması.

Bence test uzmanının cebine kalan en önemli şey elde ettiği tecrübedir. Üstelik bu elde edilen tecrübe yukarıdaki her adımda yakalanmış olabilir. Test uzmanı belki hata raporlamada belki de planlama aşamasında bir tecrübe elde etti. Ya da daha teknik bir konuda bir şey öğrendi. Her ne olursa olsun elde edilen tecrübenin bir sonraki testte kullanılmak üzere cepte kalması paha biçilemez J

Teşekkürler.

Esra KÖSE

--

--