29 Haziran 2015 Pazartesi

Test case nasıl yazılır? Örnek test case formatı

ID
Priority
User Requirement
Title
Description
Pre-conditions
Post-Conditions
TC_1
High
Login fonksiyonu
Kullanıcı adı ve şifre ile login
ABC.com sitesi login fonksiyonu testi
Kullanıcı adı ve şifre
Ana sayfa ekranında Hoş Geldin! Metni görülmeli






Step
Test Steps
Test Data
Expected Result
Actual Result
Status
Notes
1
Kullanıcı adı girilir
Kullanıcı şifre alanına yönlendirilmelidir.

PASSED


2
Şifre girilir
“P@ssw0rd”
Login butonu deaktiften aktife dönüşmelidir.
Buton deaktif olarak kalmakta, kullanıcı login olamamaktadır.
FAILED








Yukarıda görmekte olduğunuz 1. tabloda test case'in business tarafının ihtiyacını karşılayan kısmını görmektesiniz. Bu tablodaki alanlarda analiz dokümanında belirtilen user-requirement'lardan hangisinin test case'i olduğunu, önceliği (bu öncelik regression test pack'i oluştururken çok önemlidir) pre ve post conditonlarını görmektesiniz. 

2. tabloda ise testin teknik tarafının işine yarayan kısmı bulunmaktadır. Test steplerinde testin koşulması için gereken adımların tamamı yazılır. Bu adımlar ayrı ayrı yazılmalıdır ki yukarıdaki örnekte olduğu gibi login fonksiyonunun hangi nedenle fail olduğu daha kolay şekilde anlaşılsın. Login fonksiyonunda a@b.com adresini ve P@ssw0rd şifresini girdiğimde login olamıyorum yerine, bu kullanıcı adı için doğru şifreyi girmeme rağmen buton deaktif kalıyor demek çok daha doğru ve tekrar edilebilir bir durumdur.

Expected result kısmında kullanılacak olan ifade Türkçe'de dilek kipi olarak bildiğimiz :) gereklilik ekidir. X yapınca Y olur yerine, X yapıldığında Y olmalıdır ifadesi expected result kısmında kullanımı daha doğru bir ifadedir.

Actual result, execution sırasında doldurulan bir alandır. Status de testin passed/failed/untested/blocked/partially passed gibi sonuçlanan durumlarını gösterir. 

Notes kısmında da test case ile ilgili test sırasında herhangi bir sorun ile karşılaşılırsa bu alana yazılabilir. Ya da, test versiyonlarının dikkatle kontrol altında tutulduğu durumlarda, bu case için açılan defect id'leri yazılarak bir sonraki test sırasında bu defect'in fix edilip edilmediği takip edilebilir.

Yıllardır kullanmakta olduğum test case formatı yukarıdaki gibi ve şimdiye kadar da bu şekilde test case yazmanın çok faydasını gördüm diyebilirim. Case'leri bu şekilde yazmak uzun sürüyor olabilir, fakat zamanla defect açmanın ve bu case'leri koşmanın ne kadar kolaylaştığını fark ediyorsunuz. Bütün bu case'leri neye göre yazdığımız ise iş analistinin göndermiş olduğu teknik/fonksiyonel analiz dokümanında saklı :)

Sevgiler

22 Haziran 2015 Pazartesi

Regression Testi nedir ? Ne zaman yapılmalıdır?

Merhabalar,

Birkaç hafta aradan sonra bugün sizlere regression testinden bahsedeceğim. Regression testi genel anlamda, kod üzerinde yapılan değişikliğin, değişiklik yapılmayan yerleri etkilemediğinden emin olmak için yapılır.

Özellikle Agile modeli kullanılarak geliştirilen yazılımların testinde regression önemli bir rol oynamaktadır. Sürekli artan fonksiyonlar ve yeni gelen geliştirmeler nedeniyle onaylanmış/geliştirmesi tamamlanmış fonksiyonların hala çalışıp çalışmadığı veya yeni eklenen fonksiyonlar nedeniyle çalışmasının etkilenip etkilenmediği test edilmelidir.

Regression için full fonksiyonel test yapmaya safety-critical olan yazılımlar dışında çok fazla gerek yoktur. Bu yüzden full fonksiyonel test caseler arasından regression test case'leri seçilerek yalnızca bu case'ler koşulur. Olmazsa olmaz fonksiyonların kesinlikle test edildiği, diğer fonksiyonlardan da kullanıcının hata ile karşılaşabileceği düşünülen yerler alınarak bir regression test pack oluşturulur.

Regression testi "ütopik" ama aslında "olması gereken" süreçte sanity testinden sonra koşulmalıdır.

Burada karşılaştırılan önemli bir nokta var :

  • Regression testi re-test'ten farklı olarak ne yapıyor?
Regression testi kodun etkilenip etkilenmediğini konfirme etmek için yapılırken, re-test; test edilmiş ve hata çıkan yazılım fix edilip tester'a hatanın ortadan kaldırıldığına emin olmak için yapılır. Yani herhangi bir yazılımın testi sırasında developer'a bir defect açtığınız zaman bu defect çözüldüğünde re-test, çözülen defect'in kodun herhangi başka bir alanını etkilemediğini görmek için de regression testi yaparsınız.

Bugünlük bu kadar :)

Sevgiler