Upload
osman-yuksel
View
1.289
Download
1
Embed Size (px)
DESCRIPTION
Özgür Web Teknolojileri Günleri 2012'de yaptığım "Selenium ile Web Uygulaması Testlerini Otomatikleştirmek" sunumu
Citation preview
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?
Aynı şeyleri tekrar tekrar test eden insanları, “kararlı sistemleri temenni eden mühendislere“
dönüştürmek <3
İnsan katmanını aradan çıkarıp,onların ekmeğini elinden almak
Zaaa XD
“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/
Sorular?
?
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
Teşekkürler