KaderTarlan

BlogCan

Test Senaryolarını Anlama

Yazdığımız uygulamalarda ,programlarda kodlarımız sayfalar dolu olsun ama arada öyle bir yer varki bizim gözümüzden kaçtı unuttuk yada yaptığımız yeni bir dokunuş uygulamanın herhangi bir yerini bozdu ve orası çalışmıyor.
Kullanıcı ise sizden önce bunun çalışmadığını fark etti. Uygulamanızın çok kritik işler yaptığını düşünürsek o küçüçük eksikliğin bile büyük hasarlar getireceğini unutmayalım.
Oluşturduguz bu ürün kulanıcı tarafından hoş karşılanmaz ve müşteri kaybına uğramış olursunuz.
Bu ve bunun gibi bir çok senaryoyu kafamızda düşünebiliriz.
Milyon dolarlık ürünlerin internet üzerinden satışını yapacağınız anda “satın al” butonunun çalışmayıp müşteri kaybetmeniz gibi çoğaltabiliriz.

Testlerin başka bir güzelliği de var örneğin firefoxda çalıştırdığımız uygulamanın hiç hatası yok her şey mükemmel sanıyoruz ki aslında üzerinde çalıştığınız uygulama chrome da yada explorerda çalışmayabilir, sadece o da değil işletim sistemi değiştiğinde de çalışmayabilir. Linux da çalışan şey windowsta çalışmayabilir. Bu uygulamayı insan gücü ile her şeyiyle kontrol etmesi çok zor..

Test yazma işini 3 aşamada yapacağız;
Öncelikle test yazmak için elimizde bir Test Senaryosu olmalı.
İkinci aşama da ise senaryomuzu Selenium IDE de yazıp test adımlarımızı çalıştırıp görmeliyiz.
Son aşama da ise Selenium IDE sorunsuz çalışan testimizi Ruby koduna çevirip BrowserStack‘e yükleyip birçok Browser ve işletim sistemi için test etmeyi sağlamalıyız.

Test yazma işi oldukça önemli , senaryolarımızı analiz ederek Selenium koduna dökebilmeliyiz.

Testleriniz anlaşılır olmalı öyle ki sizin yazdığınız bir senaryoyu bir başkası da okuyarak o testi yazabilmeli.

Testlerimizi benim oluşturduğum basit bir Rails uygulaması üzerinden anlatacağım.

Şimdi ilk senaryomuzu sunuyorum ;

1.Go to https://heroku
   1.1 Verify that "BORÇ TAKİBİ" appeared on the page  

2.Click on "Arkadaş Ekle" button  
   2.1 Verify that "Yeni Borçlu Ekle" appeared on the page  

3.Fill in "Borçlunun Adı Soyadı:","E-Mail Adresi:","Twitter Kullanıcı Adi:" sections

4.Click on "Create Friend" button  
   4.1 Verify that " Successful Created. " appeared on the page  

Dört adımlık bir test senaryosu oluşturduk şimdi senaryomuzu anlayalım;

İlk adımda;

Go to komutu ile Sayfamızı browserdan açtırıyoruz ve sayfamız açıldı mı kontrolünü ise Verify komutu ile oluşturuyoruz. Sayfa açıldığında görmek istediğimiz yazı her ne ise onu yazıyoruz eğer bu yazı geldiyse butonumuz çalışıyor ve doğru adresteyiz demektir.

İkinci adımda;

Arkadaş ekle butonumuzdan bir arkadaş ekleyeceğiz. Click komutu ile butona tıklama işlemini yapıyoruz. Arkadaş ekle butonuna tıkladıktan sonra görmek istediğimiz sayfadaki herhangi ayırt edici bir yazıyı Verify ile kontrol edip sayfa açılmış mı, arkadaş ekle butonu çalışmış mı kontrolünü yaptık. Verify ile yazılan adımlar önemli işin içinde bir kontrol yoksa testiniz click clickten ibaret olur bu da işimize yaramaz bir şeyi test etmiş olmayız.

Üçüncü adımda;

Arkadaş ekle sayfasındaki doldurulması gereken yerleri Fill in komutu ile sağladık.

Dördüncü adımda;

Click komutu ile Arkadaşımızı oluştur dedik. Akabinde Verify komutu ile sonraki adımda karşımıza çıkacak ayırt edici herhangi yazıyı kullanarak arkadaşımız oluşmuş mu diye kontrol ettik. Butona tıklandıktan sonra istediğimiz sayfaya geçiş sağlanmış mı kontrol etmiş olduk.

Ayırt edici yazıdan kastım; eğer bir önceki sayfada da aynı yazı varsa ve senin butonun çalışmadı bozuk diyelim , sayfa geçişi sağlayamadın ve aynı sayfada kaldın. Kontrol ettiğin yazı bulunduğun sayfada zaten vardı sayfa geçişi yapmadığın halde verify ile kontrol ettiğin yer true dönüp seni yanıltabilir, butonun doğru çalışmadığı halde fark edemezsin.

Ayrıca burada yazı değil bir elementi ,bir alert mesajını, bir title yada bir modal kontrolü de yapabilirsin.

Özetle test senaryolarında her adımı click, select, fill in , fill out, choose gibi komutlarla anlaşılır biçimde yazıyoruz. Adım sonlarında kontrolü sağlamak için de Verify komutunu kulanıyoruz.