SlideShare a Scribd company logo
1 of 23
Download to read offline
Selenium İle Web Uygulama
Testlerini Otomatikleştirmek
“Web Test/QA Engineer“ nedir, ne iş yapar?




                  ?
“Web Test/QA Engineer“ nedir, ne iş yapar?




Her deployment sonrasında, tüm siteyi, daha önce test etmiş olmasına
rağmen bir kez daha elle gezen, test eden, bu işlemi desteklenen tüm tarayıcılar,
işletim sistemleri ve cihazlar için tekrarlayan, oluşan hataları bıkmadan
usanmadan raporlayan sabırlı canlılar.
“Web Test/QA Engineer“ nedir, ne iş yapar?




Her deployment sonrasında, tüm siteyi, daha önce test etmiş olmasına
rağmen bir kez daha elle gezen, test eden, bu işlemi desteklenen tüm tarayıcılar,
işletim sistemleri ve cihazlar için tekrarlayan, oluşan hataları bıkmadan
usanmadan raporlayan sabırlı canlılar.

                             Quality “Assurance“?
“Web Test/QA Engineer“ nedir, ne iş yapar?




Her deployment sonrasında, tüm siteyi, daha önce test etmiş olmasına
rağmen bir kez daha elle gezen, test eden, bu işlemi desteklenen tüm tarayıcılar,
işletim sistemleri ve cihazlar için tekrarlayan, oluşan hataları bıkmadan
usanmadan raporlayan sabırlı canlılar.

             Quality “Assurance“ = Kalite “Güvencesi“ / “Teminatı“
“Web Test/QA Engineer“ nedir, ne iş yapar?




Her deployment sonrasında, tüm siteyi, daha önce test etmiş olmasına
rağmen bir kez daha elle gezen, test eden, bu işlemi desteklenen tüm tarayıcılar,
işletim sistemleri ve cihazlar için tekrarlayan, oluşan hataları bıkmadan
usanmadan raporlayan sabırlı canlılar.

             Quality “Assurance“ = Kalite “Güvencesi“ / “Teminatı“


 Proje yönetimi tarafından belirlenen spec'leri doğrulayan "otomatize" testleri
 development ekibiyle birlikte hareket ederek yazan, ve daha sonra o bölüm
 değişmediği sürece o bölümü bir daha test etme gereği duymayan,
 kalan boş zamanlarında kahvesini alıp komikli kedi videoları izleyen,
 videolardan sıkılınca kendini geliştiren, sistemi daha sağlam olmasını
 "temenni eden" testler hazırlayan, bilge canlılar.
Bu sunumda ne yapmak istiyoruz?




İnsan katmanını aradan çıkarıp,onların ekmeğini elinden almak

                          Zaaa XD
Bu sunumda ne yapmak istiyoruz?




 İnsan katmanını aradan çıkarıp,onların ekmeğini elinden almak

                           Zaaa XD



       Aynı şeyleri tekrar tekrar test eden insanları,
“kararlı sistemleri temenni eden mühendislere“
                      dönüştürmek <3
“Agile Testing“




Testi olmayan süreç, agile süreç midir?
“Agile Testing“




                  Testi olmayan süreç, agile süreç midir?

●   Test, yazılım geliştirme yaşam döngüsünün(SDLC) bir parçası olmalıdır.

●   Regression testler hayat kurtarır

●   Continous Integration araçları

    ●   Jenkins

    ●   Hudson

    ●   Cruise Control
Selenium nedir?



●   Jason Huggins tarafından ThoughtWorks'de doğmuştur

●   Tarayıcıda çalışır

●   Bu sayede son kullanıcı davranışlarını birebir simüle etme imkanı tanır.

●   Tüm güncel tarayıcılarda + iphone ve android'de de çalışır

●   Fonksiyonel, regression ve yük testleri(*) yapılabilir

●   Açık kaynak kodlu, özgür bir yazılımdır (Apache 2.0)

●   Ücretsizdir
Selenium 2.x


●
    Selenium önceki sürümlerde, Selenium RC ile beraber kullanılıp, tarayıcıya

BrowserBot enjekte ediyordu.

●   BrowserBot bir JavaScript, dolayısıyla JavaScript'in sınırları dışına çıkılamıyordu

    ●   Modal pencereler

    ●   Same Origin Policy

●   Daha sonra Webdriver doğdu

    ●   BrowserBot'un yaptığı işleri tarayıcıların sağladığı API'lar ile yapabilmek için

    ●   Şimdilerde bir W3 Draft

●   Daha temiz bir API
Flash/Flex testleri



Selenium, bazı eklentilerle, Flash/Flex uygulamalarının testlerine de imkan tanır

●   http://code.google.com/p/flash-selenium/

●   http://code.google.com/p/flex-ui-selenium
Selenium alternatifleri?




HP QTP
●




Borland SilkTest
●




Watir → WatiX
●




Canoo
●
Bölümleri



●   Selenium Core

●   Selenium RC / Selenium Webdriver

●   Selenium Grid (Cloud? SouceLabs?)

●   Selenium IDE

●   Selenium Domain Specific Language (Selenese)
Komutlar



●
    Sayfa komutları → “Sayfa aç“ gibi komutlar

●   Element komutları → Sayfadaki öğeyi bulma ilgili komutlar

●   Verification komutları → verifyTitle(“fooBar“)

●   Assertion komutları → assertTitle( “fooBar“)
Element bulma yöntemleri (Locator)



●   id=foo → ID seçici

●   name=foo → Form öğeleri için isme göre seçici

●   link=Devam → <a href=“foobar“>Devam</a> için seçici

●   //div/a → XPath seçici (IE'de sorunlu, Dinamik DOM)

●   dom=document.getElementById('foo') → DOM seçici

●   css=foo[name*=foo] → CSS Seçici
Selenium IDE (Firefox Eklentisi)



●   Basitçe kullanıcı davranışlarını kayıt ediyor/oynatıyor
●   Hızlıca fonskiyonel testler yazmak için kullanılabilir
●   Birçok farklı dil için çıktı verebiliyor
●   Selenese üretiyor
●   Bir çok fonksiyon yok
●   Sadece Firefox için var :(
Selenium IDE (Firefox Eklentisi)



●   Basitçe kullanıcı davranışlarını kayıt ediyor/oynatıyor
●   Hızlıca fonskiyonel testler yazmak için kullanılabilir
●   Birçok farklı dil için çıktı verebiliyor
●   Selenese üretiyor
●   Bir çok fonksiyon yok
●   Sadece Firefox için var :(
“Selenium in action!“


Bir e-posta kayıt formu düşünün

●   Bir e-posta girilmemişse "Lütfen bir e-posta adresi girin" uyarısı çıkarılır

●   Geçersiz bir e-posta girilmişse "Lütfen geçerli bir e-posta adresi girin" uyarısı çıkarılır

●   E-posta alanına sadece @sonsuzdongu.com e-posta adresleri kabul edilir, başka

uzantılı bir adres varsa "İzin verilmiyor" diye hata mesajı gösterilir
●



●   E-posta kaydı başarılı ise "E-posta adresiniz başarıyla kaydedilmiştir" mesajı gösterilir
                                                   ●




                       http://sonsuzdongu.github.com/owtg-2012-selenium/
http://sonsuzdongu.github.com/owtg-2012-selenium/
Sorular?




 ?
Teşekkürler



http://sonsuzdongu.com

http://github.com/sonsuzdongu

http://twitter.com/sonsuzdongucom

http://facebook.com/sonsuzdongucom



http://yuxel.net

http://github.com/yuxel

http://twitter.com/yuxel

http://facebook.com/osman.yuksel

More Related Content

Similar to Selenium

GDO'suz Yazılım Geliştirme Teknikleri
GDO'suz Yazılım Geliştirme TeknikleriGDO'suz Yazılım Geliştirme Teknikleri
GDO'suz Yazılım Geliştirme TeknikleriLemi Orhan Ergin
 
Visual studio 2010 ve tfs 2010 yeni takim gelistirme ozellikleri
Visual studio 2010 ve tfs 2010 yeni takim gelistirme ozellikleriVisual studio 2010 ve tfs 2010 yeni takim gelistirme ozellikleri
Visual studio 2010 ve tfs 2010 yeni takim gelistirme ozellikleriMurat Başeren
 
Web İçin Teknoloji Geliştirmek
Web İçin Teknoloji GeliştirmekWeb İçin Teknoloji Geliştirmek
Web İçin Teknoloji GeliştirmekVolkan Özçelik
 
JUnit ve Docker yardimiyla kolay entegrasyon testleri
JUnit ve Docker yardimiyla kolay entegrasyon testleriJUnit ve Docker yardimiyla kolay entegrasyon testleri
JUnit ve Docker yardimiyla kolay entegrasyon testleriİlkin Balkanay
 
Software development life cycle yazılım geliştirme yaşam döngüsü
Software development life cycle   yazılım geliştirme yaşam döngüsüSoftware development life cycle   yazılım geliştirme yaşam döngüsü
Software development life cycle yazılım geliştirme yaşam döngüsüMesut Günes
 
Yazılım Geliştirme Teknolojileri
Yazılım Geliştirme TeknolojileriYazılım Geliştirme Teknolojileri
Yazılım Geliştirme TeknolojileriYusuf AYTİN
 
Silk Test Framework Kurulumu ve Yazılım Test Otomasyon Mimarisine Giriş
Silk Test Framework Kurulumu ve Yazılım Test Otomasyon Mimarisine GirişSilk Test Framework Kurulumu ve Yazılım Test Otomasyon Mimarisine Giriş
Silk Test Framework Kurulumu ve Yazılım Test Otomasyon Mimarisine GirişBurak AVCI, MEM, PSM I®
 
Yazilim Gelistirme Yöntemleri
Yazilim Gelistirme YöntemleriYazilim Gelistirme Yöntemleri
Yazilim Gelistirme Yöntemlerim_korkmaz
 
jQuery ile ASP.NET Uygulamaları Geliştirme
jQuery ile ASP.NET Uygulamaları GeliştirmejQuery ile ASP.NET Uygulamaları Geliştirme
jQuery ile ASP.NET Uygulamaları Geliştirmeİbrahim ATAY
 
Çaylak Javacılara Yol Haritası
Çaylak Javacılara Yol HaritasıÇaylak Javacılara Yol Haritası
Çaylak Javacılara Yol HaritasıMurat Can ALPAY
 
Test Güdümlü Geliştirme ve Birim Testler
Test Güdümlü Geliştirme ve Birim TestlerTest Güdümlü Geliştirme ve Birim Testler
Test Güdümlü Geliştirme ve Birim Testlerserhatlevent910
 
Açık Kaynak Kodlu Yazılım Geliştirme
Açık Kaynak Kodlu Yazılım GeliştirmeAçık Kaynak Kodlu Yazılım Geliştirme
Açık Kaynak Kodlu Yazılım GeliştirmeSerkan Kaba
 
DevOps Pratikleri ile Yazılım Dünyasında Neler Değişiyor?
DevOps Pratikleri ile Yazılım Dünyasında Neler Değişiyor?DevOps Pratikleri ile Yazılım Dünyasında Neler Değişiyor?
DevOps Pratikleri ile Yazılım Dünyasında Neler Değişiyor?Derya SEZEN
 
Android mimari-cekirdek-binding-scheduler
Android mimari-cekirdek-binding-schedulerAndroid mimari-cekirdek-binding-scheduler
Android mimari-cekirdek-binding-schedulerErcan Pinar
 

Similar to Selenium (20)

GDO'suz Yazılım Geliştirme Teknikleri
GDO'suz Yazılım Geliştirme TeknikleriGDO'suz Yazılım Geliştirme Teknikleri
GDO'suz Yazılım Geliştirme Teknikleri
 
Visual studio 2010 ve tfs 2010 yeni takim gelistirme ozellikleri
Visual studio 2010 ve tfs 2010 yeni takim gelistirme ozellikleriVisual studio 2010 ve tfs 2010 yeni takim gelistirme ozellikleri
Visual studio 2010 ve tfs 2010 yeni takim gelistirme ozellikleri
 
Web İçin Teknoloji Geliştirmek
Web İçin Teknoloji GeliştirmekWeb İçin Teknoloji Geliştirmek
Web İçin Teknoloji Geliştirmek
 
JUnit ve Docker yardimiyla kolay entegrasyon testleri
JUnit ve Docker yardimiyla kolay entegrasyon testleriJUnit ve Docker yardimiyla kolay entegrasyon testleri
JUnit ve Docker yardimiyla kolay entegrasyon testleri
 
Jenkins Notlarım
Jenkins NotlarımJenkins Notlarım
Jenkins Notlarım
 
Software development life cycle yazılım geliştirme yaşam döngüsü
Software development life cycle   yazılım geliştirme yaşam döngüsüSoftware development life cycle   yazılım geliştirme yaşam döngüsü
Software development life cycle yazılım geliştirme yaşam döngüsü
 
Çevik testler
Çevik testlerÇevik testler
Çevik testler
 
Yazılım Geliştirme Teknolojileri
Yazılım Geliştirme TeknolojileriYazılım Geliştirme Teknolojileri
Yazılım Geliştirme Teknolojileri
 
Visual Studio Developer Tools
Visual Studio Developer ToolsVisual Studio Developer Tools
Visual Studio Developer Tools
 
Silk Test Framework Kurulumu ve Yazılım Test Otomasyon Mimarisine Giriş
Silk Test Framework Kurulumu ve Yazılım Test Otomasyon Mimarisine GirişSilk Test Framework Kurulumu ve Yazılım Test Otomasyon Mimarisine Giriş
Silk Test Framework Kurulumu ve Yazılım Test Otomasyon Mimarisine Giriş
 
Yazilim Gelistirme Yöntemleri
Yazilim Gelistirme YöntemleriYazilim Gelistirme Yöntemleri
Yazilim Gelistirme Yöntemleri
 
jQuery ile ASP.NET Uygulamaları Geliştirme
jQuery ile ASP.NET Uygulamaları GeliştirmejQuery ile ASP.NET Uygulamaları Geliştirme
jQuery ile ASP.NET Uygulamaları Geliştirme
 
Zed attack-proxy-web
Zed attack-proxy-webZed attack-proxy-web
Zed attack-proxy-web
 
Çaylak Javacılara Yol Haritası
Çaylak Javacılara Yol HaritasıÇaylak Javacılara Yol Haritası
Çaylak Javacılara Yol Haritası
 
Eclipse
EclipseEclipse
Eclipse
 
Test Güdümlü Geliştirme ve Birim Testler
Test Güdümlü Geliştirme ve Birim TestlerTest Güdümlü Geliştirme ve Birim Testler
Test Güdümlü Geliştirme ve Birim Testler
 
Açık Kaynak Kodlu Yazılım Geliştirme
Açık Kaynak Kodlu Yazılım GeliştirmeAçık Kaynak Kodlu Yazılım Geliştirme
Açık Kaynak Kodlu Yazılım Geliştirme
 
Nedir Bu Java ?
Nedir Bu Java ?Nedir Bu Java ?
Nedir Bu Java ?
 
DevOps Pratikleri ile Yazılım Dünyasında Neler Değişiyor?
DevOps Pratikleri ile Yazılım Dünyasında Neler Değişiyor?DevOps Pratikleri ile Yazılım Dünyasında Neler Değişiyor?
DevOps Pratikleri ile Yazılım Dünyasında Neler Değişiyor?
 
Android mimari-cekirdek-binding-scheduler
Android mimari-cekirdek-binding-schedulerAndroid mimari-cekirdek-binding-scheduler
Android mimari-cekirdek-binding-scheduler
 

More from Osman Yuksel

More from Osman Yuksel (6)

Varnish
VarnishVarnish
Varnish
 
Muhafiz
MuhafizMuhafiz
Muhafiz
 
Jasminebdd
JasminebddJasminebdd
Jasminebdd
 
Web Onyuzu Nasil Olmali
Web Onyuzu Nasil OlmaliWeb Onyuzu Nasil Olmali
Web Onyuzu Nasil Olmali
 
Tornadoweb
TornadowebTornadoweb
Tornadoweb
 
JavaScript sunumu
JavaScript sunumuJavaScript sunumu
JavaScript sunumu
 

Selenium

  • 1. Selenium İle Web Uygulama Testlerini Otomatikleştirmek
  • 2. “Web Test/QA Engineer“ nedir, ne iş yapar? ?
  • 3. “Web Test/QA Engineer“ nedir, ne iş yapar? Her deployment sonrasında, tüm siteyi, daha önce test etmiş olmasına rağmen bir kez daha elle gezen, test eden, bu işlemi desteklenen tüm tarayıcılar, işletim sistemleri ve cihazlar için tekrarlayan, oluşan hataları bıkmadan usanmadan raporlayan sabırlı canlılar.
  • 4. “Web Test/QA Engineer“ nedir, ne iş yapar? Her deployment sonrasında, tüm siteyi, daha önce test etmiş olmasına rağmen bir kez daha elle gezen, test eden, bu işlemi desteklenen tüm tarayıcılar, işletim sistemleri ve cihazlar için tekrarlayan, oluşan hataları bıkmadan usanmadan raporlayan sabırlı canlılar. Quality “Assurance“?
  • 5. “Web Test/QA Engineer“ nedir, ne iş yapar? Her deployment sonrasında, tüm siteyi, daha önce test etmiş olmasına rağmen bir kez daha elle gezen, test eden, bu işlemi desteklenen tüm tarayıcılar, işletim sistemleri ve cihazlar için tekrarlayan, oluşan hataları bıkmadan usanmadan raporlayan sabırlı canlılar. Quality “Assurance“ = Kalite “Güvencesi“ / “Teminatı“
  • 6. “Web Test/QA Engineer“ nedir, ne iş yapar? Her deployment sonrasında, tüm siteyi, daha önce test etmiş olmasına rağmen bir kez daha elle gezen, test eden, bu işlemi desteklenen tüm tarayıcılar, işletim sistemleri ve cihazlar için tekrarlayan, oluşan hataları bıkmadan usanmadan raporlayan sabırlı canlılar. Quality “Assurance“ = Kalite “Güvencesi“ / “Teminatı“ Proje yönetimi tarafından belirlenen spec'leri doğrulayan "otomatize" testleri development ekibiyle birlikte hareket ederek yazan, ve daha sonra o bölüm değişmediği sürece o bölümü bir daha test etme gereği duymayan, kalan boş zamanlarında kahvesini alıp komikli kedi videoları izleyen, videolardan sıkılınca kendini geliştiren, sistemi daha sağlam olmasını "temenni eden" testler hazırlayan, bilge canlılar.
  • 7. Bu sunumda ne yapmak istiyoruz? İnsan katmanını aradan çıkarıp,onların ekmeğini elinden almak Zaaa XD
  • 8. Bu sunumda ne yapmak istiyoruz? İnsan katmanını aradan çıkarıp,onların ekmeğini elinden almak Zaaa XD Aynı şeyleri tekrar tekrar test eden insanları, “kararlı sistemleri temenni eden mühendislere“ dönüştürmek <3
  • 9. “Agile Testing“ Testi olmayan süreç, agile süreç midir?
  • 10. “Agile Testing“ Testi olmayan süreç, agile süreç midir? ● Test, yazılım geliştirme yaşam döngüsünün(SDLC) bir parçası olmalıdır. ● Regression testler hayat kurtarır ● Continous Integration araçları ● Jenkins ● Hudson ● Cruise Control
  • 11. Selenium nedir? ● Jason Huggins tarafından ThoughtWorks'de doğmuştur ● Tarayıcıda çalışır ● Bu sayede son kullanıcı davranışlarını birebir simüle etme imkanı tanır. ● Tüm güncel tarayıcılarda + iphone ve android'de de çalışır ● Fonksiyonel, regression ve yük testleri(*) yapılabilir ● Açık kaynak kodlu, özgür bir yazılımdır (Apache 2.0) ● Ücretsizdir
  • 12. Selenium 2.x ● Selenium önceki sürümlerde, Selenium RC ile beraber kullanılıp, tarayıcıya BrowserBot enjekte ediyordu. ● BrowserBot bir JavaScript, dolayısıyla JavaScript'in sınırları dışına çıkılamıyordu ● Modal pencereler ● Same Origin Policy ● Daha sonra Webdriver doğdu ● BrowserBot'un yaptığı işleri tarayıcıların sağladığı API'lar ile yapabilmek için ● Şimdilerde bir W3 Draft ● Daha temiz bir API
  • 13. Flash/Flex testleri Selenium, bazı eklentilerle, Flash/Flex uygulamalarının testlerine de imkan tanır ● http://code.google.com/p/flash-selenium/ ● http://code.google.com/p/flex-ui-selenium
  • 14. Selenium alternatifleri? HP QTP ● Borland SilkTest ● Watir → WatiX ● Canoo ●
  • 15. Bölümleri ● Selenium Core ● Selenium RC / Selenium Webdriver ● Selenium Grid (Cloud? SouceLabs?) ● Selenium IDE ● Selenium Domain Specific Language (Selenese)
  • 16. Komutlar ● Sayfa komutları → “Sayfa aç“ gibi komutlar ● Element komutları → Sayfadaki öğeyi bulma ilgili komutlar ● Verification komutları → verifyTitle(“fooBar“) ● Assertion komutları → assertTitle( “fooBar“)
  • 17. Element bulma yöntemleri (Locator) ● id=foo → ID seçici ● name=foo → Form öğeleri için isme göre seçici ● link=Devam → <a href=“foobar“>Devam</a> için seçici ● //div/a → XPath seçici (IE'de sorunlu, Dinamik DOM) ● dom=document.getElementById('foo') → DOM seçici ● css=foo[name*=foo] → CSS Seçici
  • 18. Selenium IDE (Firefox Eklentisi) ● Basitçe kullanıcı davranışlarını kayıt ediyor/oynatıyor ● Hızlıca fonskiyonel testler yazmak için kullanılabilir ● Birçok farklı dil için çıktı verebiliyor ● Selenese üretiyor ● Bir çok fonksiyon yok ● Sadece Firefox için var :(
  • 19. Selenium IDE (Firefox Eklentisi) ● Basitçe kullanıcı davranışlarını kayıt ediyor/oynatıyor ● Hızlıca fonskiyonel testler yazmak için kullanılabilir ● Birçok farklı dil için çıktı verebiliyor ● Selenese üretiyor ● Bir çok fonksiyon yok ● Sadece Firefox için var :(
  • 20. “Selenium in action!“ Bir e-posta kayıt formu düşünün ● Bir e-posta girilmemişse "Lütfen bir e-posta adresi girin" uyarısı çıkarılır ● Geçersiz bir e-posta girilmişse "Lütfen geçerli bir e-posta adresi girin" uyarısı çıkarılır ● E-posta alanına sadece @sonsuzdongu.com e-posta adresleri kabul edilir, başka uzantılı bir adres varsa "İzin verilmiyor" diye hata mesajı gösterilir ● ● E-posta kaydı başarılı ise "E-posta adresiniz başarıyla kaydedilmiştir" mesajı gösterilir ● http://sonsuzdongu.github.com/owtg-2012-selenium/