SlideShare a Scribd company logo
Yıldız Teknik Üniversitesi
Ömer Faruk İNCE
14501008
Yazılım Kalitesi ve Test Teknikleri
24/12/2015
Selenium Nedir?
 Selenium web tabanlı uygulamaların testlerini browser/tarayıcı
üzerinden yapmamızı sağlayan ve tüm web testlerinin yapılabileceği
bir test aracıdır.
 Selenium’un desteklediği programlama dillerinden bazıları:
 Java
 C#
 Perl
 Groovy
 PHP
 Python
 Ruby
 .Net
 Açık kaynaklı (open source) bir yazılımdır.
 http://www.openqa.org/
Selenium Nedir ?
 Selenium’un çalışabildiği işletim sistemi türleri:
 Windows
 Linux
 Mac OS işletim sistemlerinde çalışabilmektedir.
Selenium Bileşenleri
 Selenium’u üç ana başlıkta inceleyeceğiz.
 Selenium IDE
 Selenium WebDriver
 Selenium-Grid
1) Selenium IDE
 Selenium IDE, geliştirdiğimiz web tabanlı uygulamaların test
edilmesini sağlayan ve bunları daha sonrasında otomatize ederek
browser üzerinde aynı caseleri tekrar tekrar girmeden kontrol
etmemizi sağlayan araçtır.
 Selenium IDE’nin başlıca özellikleri;
1. Normal bir kullanıcı gibi davranıp işlemler kullanıcıymış gibi
yapılabilir ve kaydedilebilir.
2. Fonksiyonel testler yazmak için kullanılmaktadır.
3. Bir çok dil desteği mevcut (Java, .NET, Python, Ruby, PHP,Perl).
1) Selenium IDE
 Selenium IDE’nin başlıca özellikleri;
1. Normal bir kullanıcı gibi davranıp işlemler kullanıcıymış gibi
yapılabilir ve kaydedilebilir.
2. Fonksiyonel testler yazmak için kullanılmaktadır.
3. Firefox plug-in’i olarak çalışmaktadır.
4. Bir çok dil desteği mevcut (Java, .NET, Python, Ruby, PHP,Perl).
5. Selenium’un open source olması sayesinde bir çok platformda
(Windows, Linux, IOS) herhangi bir sorun yaşamadan
çalışmaktadır.
6. Bir çok dil desteği ve platform desteği sayesinde diğer test
araçlarına göre daha çok tercih edilmektedir. (UFT, QTP)
Selenium IDE’yi Yakından Tanıyalım
Selenium IDE’yi Yakından Tanıyalım
Selenium IDE Özellikleri:
 Menüler: Menü kısmında yeni test
oluşturmak, yapılan testleri
kaydetmek ve istediğiniz testi,
istediğimiz dilde export ederek
kullanabiliriz. Bu özelliklerin hepsini
yapacağınız testlerde kullanabilirsiniz.
 Table: Adım adım yapılan işlemlerin
tutulduğu bölümdür.
 Source: Table’da bulunan değerlerin
HTML kodudur.
 Play: Kaydedilen adımların otomatize
edilip tekrardan aynı test caselerini
girmeden çalıştırıldığı bölümdür.
 Test Case: Yapılan testlerin
isimlendirerek saklandığı bölümdür.
 Command: Çalıştırılan uygulamanın
test caselerine uygun alanların
doldurularak işleme devam edildiği
yerdir.
Selenium IDE Özellikleri:
En çok kullanılan komutlar aşağıdaki gibidir.
 open: URL’i ( Siteyi/adresi ) açmak içindir.
 click: Bir nesneye tıklamak içindir.
 clickandWait: Nesneye tıkladıktan sonra sayfanın yüklenmesini bekler.
 assertElementPresent: Belirtilen elemanın yüklenmesini bekler.
 assertTextPresent: Belirtilen bir text’in(yazının) sayfada olup olmadığını kontrol
eder.
 deleteCookie: Belirtilen Cookie’nin silinmesi sağlar.
 mouseOver: Mouse’u belirtilen elementin üzerine götürür.
 verifyTextPresent: Belirtilen nesnenin belirmesini bekler ve sağlamasını yapar.
 waitForPageToLoad: Sayfanın yüklenmesini bekler.
 captureEntirePageScreenshot: Üzerinde test yaptığımız sayfanın ekran görüntüsünü
çerçevesiz olarak kaydeder.
 waitForElementPresent: Sayfadaki bir elementin yüklenmesini bekler, bunu
genellikle JavaScript tarafından kontrol edilen elementler için kullanırız.
 type: Bir input’un içine yazmak için kullanılır.
Selenium IDE Özellikleri:
 Log: Adım adım yapılan testlerin loglarının bulunduğu kısımdır. Play ile çalıştırılarak
yapılan testler hakkında hata mesajlarının görüntülendiği kısımdır. Bu sayede
yaptığınız testleri bir nevi debug etmiş olursunuz.
 Reference: Command kısmında kullanılan kodların dökümante edildiği kısımdır. Bu
sayede yaptığınız testleri dökümante ederken size kolay sağlayarak işlemlerinizi hızlı
bir şekilde yapabilirsiniz.
 Base URL: Testlerin hangi sayfada yapılacağını
gösteren kısımdır.
 Target: Ekranda test edilmek istenen alanın
belirtildiği kısımdır.
 Value: Yapılan istenen test için değerin girildiği
alandır.
 Runs & Failures: Testlerin kaç tanesinin başarılı, kaç
tanesinin başarısız olduğunun listelendiği kısımdır.
 Record: Kayıt tutmak için kullanılan buton.
Selenium Örnek Test Case 1:
• Anasayfa’dan login olma sayfasına git.
• Login olma ekranında kullanıcı adını gir.
• Login olma ekranında şifreyi gir.
• Submit butonuna bas.
• “Bana Özel” sayfasına yönlenip yönlenmediğini kontrol et.
• “Adres Bilgilerim”e tıkla.
• Çıkan sayfada Güncelle’ye tıkla.
• TC Kimlik Noyu 11111111111 olarak değiştir.
• Kaydet butonuna tıkla.
• “Lütfen T.C. Kimlik Numaranızı Doğru Olarak Giriniz.” hata
mesajının sayfada yer alıp almadığını kontrol et.
Selenium Örnek Test Case 1:
• Bu işlemleri Selenium Ide ile kayıt ettiğimizde bize
aşağıdaki kodu oluşturacaktır:
Selenium Örnek Test Case 1:
• Bu işlemleri Selenium Ide ile kayıt ettiğimizde bize
aşağıdaki kodu oluşturacaktır:
Selenium Örnek Test Case 2:
• THY sitesi için SearchFlight test senaryo gerçeklemesini
test edelim.
Selenium Örnek Test Case 2:
• Bütün kontrolleri geçerek bizim için örnek test senaryosunu başarıyla
gerçekleştirdi. Beklenen değerlerin kontrolleri hatasız bir şekilde gerçekleştirildi.
2) Selenium WebDriver
 Selenium WebDriver’ın eklenmesinden sonra Selenium 2.0
olarak yayınlandı. WebDriver, Selenium’un kendi içinde
geliştirmiş olduğu en önemli özelliklerinden biri diyebiliriz.
Çünkü WebDriver, test yapan kişilerin isteklerine göre
browserın kendi metodlarını kullanarak işlem yapabilir.
 WebDriver bir çok browserda çalışmaktadır. (Firefox, Chrome,
Opera, Safari, Internet Explorer vs..) Bu durum test uzmanları
için güzel bir özellik olup, browserların davranışlarını daha
yakından görerek müdahele etmelerine olanak sağlar.
2) Selenium WebDriver
 WebDriver’ın geliştirilmesindeki en büyük amaç dinamik web
sitelerinin içeriklerinin belli bir kısmının değişimi sırasında tüm
sayfanın tekrardan yüklenmeden yapılan değişiklikleri görerek
test caselerinin devam ettirilmesine yardımcı olmaktır.
 Selenium WebDriver sayesinde yapmış olduğumuz projenin
testi için kullanmamız gereken tek şey WebDriver API’ı
indirmektir. API sayesinde projenizin diline göre Java, .NET,
Python, Ruby, PHP, Perl gibi dillerini kullanarak test scriptlerinizi
yazılabilir. Bu araç daha çok developerlara yöneliktir.
2) Selenium WebDriver
 Sistemimizde Java JDK kurulu olmalıdır.
 Eclipse kurulu olmalıdır.
 Selenium Java Client download edilir.
 Jar dosyasi extract edilir.
 Eclipse java projesi oluşturulur.
 Jar dosyalari proje ye import edilir.
 Test class i oluşturulur.
package test;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
public class TestClass {
public static void main(String[] args) {
//Here we initialize the firefox webdriver
WebDriver firefoxDriver=new FirefoxDriver();
//Open the url which we want in firefox
firefoxDriver.get("Http://www.google.com");
}
2) Selenium WebDriver
 Selenium c# client bilgisayarımıza indirip oluşturacağımız bir klasörün içerisine
çıkartıyoruz.
 nunitframework.dll bilgisayarımıza indiriyoruz.
2) Selenium WebDriver
 Selenium c# client bilgisayarımıza indirip oluşturacağımız bir klasörün içerisine
çıkartıyoruz.
 nunitframework.dll bilgisayarımıza indiriyoruz.
2) Selenium WebDriver
 Daha sonra projeye testlerin yazılacağı bir Class ekleriz. Solution Explorer
eklediğimiz classın içerisine;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using OpenQA.Selenium;
using OpenQA.Selenium.Firefox; //Firefox'u kullanmamızı sağlayan namespace
using NUnit.Framework;
[TestFixture()]
public class SeleniumTestSuite
{
[SetUp]
public void RunTest()
{
//Yapılacak testler yazılır.
}
}
2) Selenium WebDriver
 Daha sonra projeye testlerin yazılacağı bir Class ekleriz. Solution Explorer
içindeki ilk_test satırının üzerinde;
3) Selenium-Grid
 Selenium’un geliştirmiş olduğu ve geliştirmesi devam eden Selenium-Grid
farklı sunucular üzerinde farklı browserlar ile paralel bir şekilde
çalıştırmaktadır. Buradaki asıl amaç farklı işletim sistemi, donanım, cihaz gibi
kombinasyonlar üzerinde test sonuçlarını görmek, dağıtık ortamda paralel
olarak test süreçlerini yürütmek ve test sonuçlarını hızlıca almaktır. Bu
testler paralel olarak çalıştığında süre olarak ciddi bir zaman kazancı
gözükmektedir.
 Selenium Hub ve Node yapısını kullanarak testlerini yapmaktadır.
 Geliştirilmeye devam edilmektedir.
Sonuçlar:
 Büyük çapta web projelerinde milyonlarca sayfa içerdiğinden test maliyeti
kritik önem içermektedir. Test otomasyon araçları bu kapsamda
değerlendirildiğinde çok önemli yer teşkil etmektedir.
 Selenium test otomasyon aracı kullanıcılara tarayıcı ve işletim sistemi
farketmeksizin tüm platform/tarayıcılarda test etme imkanı sunduğundan
zaman ve iş gücü maliyetini önemli ölçüde azaltmaktadır.
 Kullanıcıların çok sayıda giriş yapmaları gerken durumlarda kullanım
kolaylığı sağlayarak zamandan çok büyük ölçüde tasarruf ve test kolaylığı
sağlamaktadır.
 Çeşitli test senaryolarını çok kısa süre içerisinde otomatik bir şekilde test
edebilme imkanı sağlamaktadır.
Referanslar
 Kaur H., Gagan G., “Comparative Study of Automated Testing Tools:
Selenium, Quick Test Professional and Testcomplete”, 2013,
ISSN:22489622, Volume 3, Issue 5, 1739 - 1743
 http://www.seleniumhq.org/
 https://en.wikipedia.org/wiki/Selenium_software
 https://en.wikipedia.org/wiki/Web_testing

More Related Content

What's hot

Selenium interview questions and answers
Selenium interview questions and answersSelenium interview questions and answers
Selenium interview questions and answers
kavinilavuG
 
Cypress - Best Practices
Cypress - Best PracticesCypress - Best Practices
Cypress - Best Practices
Brian Mann
 
Types of software testing
Types of software testingTypes of software testing
Types of software testing
Testbytes
 
Cypress Automation
Cypress  AutomationCypress  Automation
Cypress Automation
Susantha Pathirana
 
Automated Web Testing Using Selenium
Automated Web Testing Using SeleniumAutomated Web Testing Using Selenium
Automated Web Testing Using Selenium
Weifeng Zhang
 
Automated testing with Cypress
Automated testing with CypressAutomated testing with Cypress
Automated testing with Cypress
Yong Shean Chong
 
Test Automation Framework Design | www.idexcel.com
Test Automation Framework Design | www.idexcel.comTest Automation Framework Design | www.idexcel.com
Test Automation Framework Design | www.idexcel.com
Idexcel Technologies
 
What Is Functional Testing?
What Is Functional Testing?What Is Functional Testing?
What Is Functional Testing?
QA InfoTech
 
Introduction to Selenium Web Driver
Introduction to Selenium Web DriverIntroduction to Selenium Web Driver
Introduction to Selenium Web Driver
Return on Intelligence
 
Specification by example - course summary
Specification by example - course summarySpecification by example - course summary
Specification by example - course summary
Jakub Holy
 
User Interface Testing. What is UI Testing and Why it is so important?
User Interface Testing. What is UI Testing and Why it is so important?User Interface Testing. What is UI Testing and Why it is so important?
User Interface Testing. What is UI Testing and Why it is so important?
Maveryx
 
Appium solution
Appium solutionAppium solution
Appium solution
Nael Abd Eljawad
 
Selenium Interview Questions and Answers | Selenium Tutorial | Selenium Train...
Selenium Interview Questions and Answers | Selenium Tutorial | Selenium Train...Selenium Interview Questions and Answers | Selenium Tutorial | Selenium Train...
Selenium Interview Questions and Answers | Selenium Tutorial | Selenium Train...
Edureka!
 
Software testing
Software testingSoftware testing
Software testing
ssusere50573
 
Automation using Appium
Automation using AppiumAutomation using Appium
Automation using Appium
Livares Technologies Pvt Ltd
 
Test Automation Framework using Cucumber BDD overview (part 1)
Test Automation Framework using Cucumber BDD overview (part 1)Test Automation Framework using Cucumber BDD overview (part 1)
Test Automation Framework using Cucumber BDD overview (part 1)
Mindfire Solutions
 
Mobile Application Testing
Mobile Application TestingMobile Application Testing
Mobile Application Testing
Noor Orfahly
 
An overview of selenium webdriver
An overview of selenium webdriverAn overview of selenium webdriver
An overview of selenium webdriver
Anuraj S.L
 

What's hot (20)

Selenium interview questions and answers
Selenium interview questions and answersSelenium interview questions and answers
Selenium interview questions and answers
 
Manual testing
Manual testingManual testing
Manual testing
 
Cypress - Best Practices
Cypress - Best PracticesCypress - Best Practices
Cypress - Best Practices
 
Types of software testing
Types of software testingTypes of software testing
Types of software testing
 
Cypress Automation
Cypress  AutomationCypress  Automation
Cypress Automation
 
Automated Web Testing Using Selenium
Automated Web Testing Using SeleniumAutomated Web Testing Using Selenium
Automated Web Testing Using Selenium
 
Automated testing with Cypress
Automated testing with CypressAutomated testing with Cypress
Automated testing with Cypress
 
Test Automation Framework Design | www.idexcel.com
Test Automation Framework Design | www.idexcel.comTest Automation Framework Design | www.idexcel.com
Test Automation Framework Design | www.idexcel.com
 
Test plan
Test planTest plan
Test plan
 
What Is Functional Testing?
What Is Functional Testing?What Is Functional Testing?
What Is Functional Testing?
 
Introduction to Selenium Web Driver
Introduction to Selenium Web DriverIntroduction to Selenium Web Driver
Introduction to Selenium Web Driver
 
Specification by example - course summary
Specification by example - course summarySpecification by example - course summary
Specification by example - course summary
 
User Interface Testing. What is UI Testing and Why it is so important?
User Interface Testing. What is UI Testing and Why it is so important?User Interface Testing. What is UI Testing and Why it is so important?
User Interface Testing. What is UI Testing and Why it is so important?
 
Appium solution
Appium solutionAppium solution
Appium solution
 
Selenium Interview Questions and Answers | Selenium Tutorial | Selenium Train...
Selenium Interview Questions and Answers | Selenium Tutorial | Selenium Train...Selenium Interview Questions and Answers | Selenium Tutorial | Selenium Train...
Selenium Interview Questions and Answers | Selenium Tutorial | Selenium Train...
 
Software testing
Software testingSoftware testing
Software testing
 
Automation using Appium
Automation using AppiumAutomation using Appium
Automation using Appium
 
Test Automation Framework using Cucumber BDD overview (part 1)
Test Automation Framework using Cucumber BDD overview (part 1)Test Automation Framework using Cucumber BDD overview (part 1)
Test Automation Framework using Cucumber BDD overview (part 1)
 
Mobile Application Testing
Mobile Application TestingMobile Application Testing
Mobile Application Testing
 
An overview of selenium webdriver
An overview of selenium webdriverAn overview of selenium webdriver
An overview of selenium webdriver
 

Viewers also liked

248255 334309-1-pb
248255 334309-1-pb248255 334309-1-pb
248255 334309-1-pb
Januário Esteves
 
Test Driven Development
Test Driven Development Test Driven Development
Test Driven Development
Nezir Yürekli
 
(GFS) Google Dosya Sistemi
(GFS) Google Dosya Sistemi (GFS) Google Dosya Sistemi
(GFS) Google Dosya Sistemi
Ömer Faruk İNCE
 
Yazılım Test Yaşam Döngüsü ve Proje Başarısına Etkisi
Yazılım Test Yaşam Döngüsü ve Proje Başarısına EtkisiYazılım Test Yaşam Döngüsü ve Proje Başarısına Etkisi
Yazılım Test Yaşam Döngüsü ve Proje Başarısına Etkisi
Aynur Özkan
 
Web tabanlı egıtım
Web tabanlı egıtımWeb tabanlı egıtım
Web tabanlı egıtımlevent06
 
Eğitim Yazılımları
Eğitim YazılımlarıEğitim Yazılımları
Eğitim YazılımlarıDerya Baysal
 
Eğitsel yazılımları değerlendirme kriterleri
Eğitsel yazılımları değerlendirme kriterleriEğitsel yazılımları değerlendirme kriterleri
Eğitsel yazılımları değerlendirme kriterleria b
 
Internet Tabanli EğItim
Internet Tabanli EğItimInternet Tabanli EğItim
Internet Tabanli EğItimselver
 
Yaprak Akçay Dinamikler 2016
Yaprak Akçay Dinamikler 2016Yaprak Akçay Dinamikler 2016
Yaprak Akçay Dinamikler 2016
Dinamikler
 
Test Mühendisliğine Giriş Eğitimi - Bölüm 1
Test Mühendisliğine Giriş Eğitimi - Bölüm 1Test Mühendisliğine Giriş Eğitimi - Bölüm 1
Test Mühendisliğine Giriş Eğitimi - Bölüm 1
Mesut Günes
 
Eğitsel yazılımlar
Eğitsel yazılımlarEğitsel yazılımlar
Eğitsel yazılımlargizem90
 
Barış Sarıalioğlu Dinamikler 2016
Barış Sarıalioğlu Dinamikler 2016Barış Sarıalioğlu Dinamikler 2016
Barış Sarıalioğlu Dinamikler 2016
Dinamikler
 
Yazilim Projelerinde Test Sureci
Yazilim Projelerinde Test SureciYazilim Projelerinde Test Sureci
Yazilim Projelerinde Test Sureci
Necdet Terkes
 
BGA BANK Web Güvenlik Testleri Uygulama Kitabı V1
BGA BANK Web Güvenlik Testleri Uygulama Kitabı V1BGA BANK Web Güvenlik Testleri Uygulama Kitabı V1
BGA BANK Web Güvenlik Testleri Uygulama Kitabı V1
BGA Cyber Security
 
Web ve Mobil Uygulama Güvenlik Testleri Eğitimi Uygulama Kitabı
Web ve Mobil Uygulama Güvenlik Testleri Eğitimi Uygulama KitabıWeb ve Mobil Uygulama Güvenlik Testleri Eğitimi Uygulama Kitabı
Web ve Mobil Uygulama Güvenlik Testleri Eğitimi Uygulama Kitabı
BGA Cyber Security
 

Viewers also liked (15)

248255 334309-1-pb
248255 334309-1-pb248255 334309-1-pb
248255 334309-1-pb
 
Test Driven Development
Test Driven Development Test Driven Development
Test Driven Development
 
(GFS) Google Dosya Sistemi
(GFS) Google Dosya Sistemi (GFS) Google Dosya Sistemi
(GFS) Google Dosya Sistemi
 
Yazılım Test Yaşam Döngüsü ve Proje Başarısına Etkisi
Yazılım Test Yaşam Döngüsü ve Proje Başarısına EtkisiYazılım Test Yaşam Döngüsü ve Proje Başarısına Etkisi
Yazılım Test Yaşam Döngüsü ve Proje Başarısına Etkisi
 
Web tabanlı egıtım
Web tabanlı egıtımWeb tabanlı egıtım
Web tabanlı egıtım
 
Eğitim Yazılımları
Eğitim YazılımlarıEğitim Yazılımları
Eğitim Yazılımları
 
Eğitsel yazılımları değerlendirme kriterleri
Eğitsel yazılımları değerlendirme kriterleriEğitsel yazılımları değerlendirme kriterleri
Eğitsel yazılımları değerlendirme kriterleri
 
Internet Tabanli EğItim
Internet Tabanli EğItimInternet Tabanli EğItim
Internet Tabanli EğItim
 
Yaprak Akçay Dinamikler 2016
Yaprak Akçay Dinamikler 2016Yaprak Akçay Dinamikler 2016
Yaprak Akçay Dinamikler 2016
 
Test Mühendisliğine Giriş Eğitimi - Bölüm 1
Test Mühendisliğine Giriş Eğitimi - Bölüm 1Test Mühendisliğine Giriş Eğitimi - Bölüm 1
Test Mühendisliğine Giriş Eğitimi - Bölüm 1
 
Eğitsel yazılımlar
Eğitsel yazılımlarEğitsel yazılımlar
Eğitsel yazılımlar
 
Barış Sarıalioğlu Dinamikler 2016
Barış Sarıalioğlu Dinamikler 2016Barış Sarıalioğlu Dinamikler 2016
Barış Sarıalioğlu Dinamikler 2016
 
Yazilim Projelerinde Test Sureci
Yazilim Projelerinde Test SureciYazilim Projelerinde Test Sureci
Yazilim Projelerinde Test Sureci
 
BGA BANK Web Güvenlik Testleri Uygulama Kitabı V1
BGA BANK Web Güvenlik Testleri Uygulama Kitabı V1BGA BANK Web Güvenlik Testleri Uygulama Kitabı V1
BGA BANK Web Güvenlik Testleri Uygulama Kitabı V1
 
Web ve Mobil Uygulama Güvenlik Testleri Eğitimi Uygulama Kitabı
Web ve Mobil Uygulama Güvenlik Testleri Eğitimi Uygulama KitabıWeb ve Mobil Uygulama Güvenlik Testleri Eğitimi Uygulama Kitabı
Web ve Mobil Uygulama Güvenlik Testleri Eğitimi Uygulama Kitabı
 

Similar to Web Application Testing

Selenium
SeleniumSelenium
Selenium
Osman Yuksel
 
45965 php-source-code-analysis
45965 php-source-code-analysis45965 php-source-code-analysis
45965 php-source-code-analysis
Attaporn Ninsuwan
 
Java Web Uygulama Geliştirme
Java Web Uygulama GeliştirmeJava Web Uygulama Geliştirme
Java Web Uygulama Geliştirme
ahmetdemirelli
 
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®
 
JVM Tuning and Monitoring, JVM Languages, IDE
JVM Tuning and Monitoring, JVM Languages, IDEJVM Tuning and Monitoring, JVM Languages, IDE
JVM Tuning and Monitoring, JVM Languages, IDE
Halil İbrahim ÇELENLİ
 
Dogus University-Web Application Security
Dogus University-Web Application SecurityDogus University-Web Application Security
Dogus University-Web Application Securitymtimur
 
Web Uygulamalarında Kaynak Kod Analizi - 1
Web Uygulamalarında Kaynak Kod Analizi - 1Web Uygulamalarında Kaynak Kod Analizi - 1
Web Uygulamalarında Kaynak Kod Analizi - 1Mehmet Ince
 
ASP.NET MVC'den ASP.NET Core MVC'ye Geçiş Süreci
ASP.NET MVC'den ASP.NET Core MVC'ye Geçiş SüreciASP.NET MVC'den ASP.NET Core MVC'ye Geçiş Süreci
ASP.NET MVC'den ASP.NET Core MVC'ye Geçiş Süreci
Sinan Bozkuş
 
Birim Test Stratejileri.pptx
Birim Test Stratejileri.pptxBirim Test Stratejileri.pptx
Birim Test Stratejileri.pptx
TarkanDOU
 
Eclipse
EclipseEclipse
Eclipse
Muharrem Tac
 
Tizen
TizenTizen
Temel Düzeyde MySQL ve PHP Eğitimleri 1
Temel Düzeyde MySQL ve PHP Eğitimleri 1Temel Düzeyde MySQL ve PHP Eğitimleri 1
Temel Düzeyde MySQL ve PHP Eğitimleri 1
Univerist
 
Jenkins
JenkinsJenkins
Jenkins
Osman Yuksel
 
Web uygulama açıklıklarından faydalanarak sistem ele geçirme
Web uygulama açıklıklarından faydalanarak sistem ele geçirmeWeb uygulama açıklıklarından faydalanarak sistem ele geçirme
Web uygulama açıklıklarından faydalanarak sistem ele geçirme
BTRisk Bilgi Güvenliği ve BT Yönetişim Hizmetleri
 
Primeface
PrimefacePrimeface
Primeface
serserox
 
Jenkins Notlarım
Jenkins NotlarımJenkins Notlarım
Jenkins Notlarım
Cem Topkaya (MSc)
 
Introduction to Android Programming
Introduction to Android ProgrammingIntroduction to Android Programming
Introduction to Android Programming
Anıl Sözeri
 
Visual Studio Developer Tools
Visual Studio Developer ToolsVisual Studio Developer Tools
Visual Studio Developer Tools
Uğur Tılıkoğlu
 
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
 
Android'e Giriş Eğitimleri 1_1
Android'e Giriş Eğitimleri 1_1Android'e Giriş Eğitimleri 1_1
Android'e Giriş Eğitimleri 1_1
Univerist
 

Similar to Web Application Testing (20)

Selenium
SeleniumSelenium
Selenium
 
45965 php-source-code-analysis
45965 php-source-code-analysis45965 php-source-code-analysis
45965 php-source-code-analysis
 
Java Web Uygulama Geliştirme
Java Web Uygulama GeliştirmeJava Web Uygulama Geliştirme
Java Web Uygulama Geliştirme
 
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ş
 
JVM Tuning and Monitoring, JVM Languages, IDE
JVM Tuning and Monitoring, JVM Languages, IDEJVM Tuning and Monitoring, JVM Languages, IDE
JVM Tuning and Monitoring, JVM Languages, IDE
 
Dogus University-Web Application Security
Dogus University-Web Application SecurityDogus University-Web Application Security
Dogus University-Web Application Security
 
Web Uygulamalarında Kaynak Kod Analizi - 1
Web Uygulamalarında Kaynak Kod Analizi - 1Web Uygulamalarında Kaynak Kod Analizi - 1
Web Uygulamalarında Kaynak Kod Analizi - 1
 
ASP.NET MVC'den ASP.NET Core MVC'ye Geçiş Süreci
ASP.NET MVC'den ASP.NET Core MVC'ye Geçiş SüreciASP.NET MVC'den ASP.NET Core MVC'ye Geçiş Süreci
ASP.NET MVC'den ASP.NET Core MVC'ye Geçiş Süreci
 
Birim Test Stratejileri.pptx
Birim Test Stratejileri.pptxBirim Test Stratejileri.pptx
Birim Test Stratejileri.pptx
 
Eclipse
EclipseEclipse
Eclipse
 
Tizen
TizenTizen
Tizen
 
Temel Düzeyde MySQL ve PHP Eğitimleri 1
Temel Düzeyde MySQL ve PHP Eğitimleri 1Temel Düzeyde MySQL ve PHP Eğitimleri 1
Temel Düzeyde MySQL ve PHP Eğitimleri 1
 
Jenkins
JenkinsJenkins
Jenkins
 
Web uygulama açıklıklarından faydalanarak sistem ele geçirme
Web uygulama açıklıklarından faydalanarak sistem ele geçirmeWeb uygulama açıklıklarından faydalanarak sistem ele geçirme
Web uygulama açıklıklarından faydalanarak sistem ele geçirme
 
Primeface
PrimefacePrimeface
Primeface
 
Jenkins Notlarım
Jenkins NotlarımJenkins Notlarım
Jenkins Notlarım
 
Introduction to Android Programming
Introduction to Android ProgrammingIntroduction to Android Programming
Introduction to Android Programming
 
Visual Studio Developer Tools
Visual Studio Developer ToolsVisual Studio Developer Tools
Visual Studio Developer Tools
 
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
 
Android'e Giriş Eğitimleri 1_1
Android'e Giriş Eğitimleri 1_1Android'e Giriş Eğitimleri 1_1
Android'e Giriş Eğitimleri 1_1
 

Web Application Testing

  • 1. Yıldız Teknik Üniversitesi Ömer Faruk İNCE 14501008 Yazılım Kalitesi ve Test Teknikleri 24/12/2015
  • 2. Selenium Nedir?  Selenium web tabanlı uygulamaların testlerini browser/tarayıcı üzerinden yapmamızı sağlayan ve tüm web testlerinin yapılabileceği bir test aracıdır.  Selenium’un desteklediği programlama dillerinden bazıları:  Java  C#  Perl  Groovy  PHP  Python  Ruby  .Net  Açık kaynaklı (open source) bir yazılımdır.  http://www.openqa.org/
  • 3. Selenium Nedir ?  Selenium’un çalışabildiği işletim sistemi türleri:  Windows  Linux  Mac OS işletim sistemlerinde çalışabilmektedir. Selenium Bileşenleri  Selenium’u üç ana başlıkta inceleyeceğiz.  Selenium IDE  Selenium WebDriver  Selenium-Grid
  • 4. 1) Selenium IDE  Selenium IDE, geliştirdiğimiz web tabanlı uygulamaların test edilmesini sağlayan ve bunları daha sonrasında otomatize ederek browser üzerinde aynı caseleri tekrar tekrar girmeden kontrol etmemizi sağlayan araçtır.  Selenium IDE’nin başlıca özellikleri; 1. Normal bir kullanıcı gibi davranıp işlemler kullanıcıymış gibi yapılabilir ve kaydedilebilir. 2. Fonksiyonel testler yazmak için kullanılmaktadır. 3. Bir çok dil desteği mevcut (Java, .NET, Python, Ruby, PHP,Perl).
  • 5. 1) Selenium IDE  Selenium IDE’nin başlıca özellikleri; 1. Normal bir kullanıcı gibi davranıp işlemler kullanıcıymış gibi yapılabilir ve kaydedilebilir. 2. Fonksiyonel testler yazmak için kullanılmaktadır. 3. Firefox plug-in’i olarak çalışmaktadır. 4. Bir çok dil desteği mevcut (Java, .NET, Python, Ruby, PHP,Perl). 5. Selenium’un open source olması sayesinde bir çok platformda (Windows, Linux, IOS) herhangi bir sorun yaşamadan çalışmaktadır. 6. Bir çok dil desteği ve platform desteği sayesinde diğer test araçlarına göre daha çok tercih edilmektedir. (UFT, QTP)
  • 8. Selenium IDE Özellikleri:  Menüler: Menü kısmında yeni test oluşturmak, yapılan testleri kaydetmek ve istediğiniz testi, istediğimiz dilde export ederek kullanabiliriz. Bu özelliklerin hepsini yapacağınız testlerde kullanabilirsiniz.  Table: Adım adım yapılan işlemlerin tutulduğu bölümdür.  Source: Table’da bulunan değerlerin HTML kodudur.  Play: Kaydedilen adımların otomatize edilip tekrardan aynı test caselerini girmeden çalıştırıldığı bölümdür.  Test Case: Yapılan testlerin isimlendirerek saklandığı bölümdür.  Command: Çalıştırılan uygulamanın test caselerine uygun alanların doldurularak işleme devam edildiği yerdir.
  • 9. Selenium IDE Özellikleri: En çok kullanılan komutlar aşağıdaki gibidir.  open: URL’i ( Siteyi/adresi ) açmak içindir.  click: Bir nesneye tıklamak içindir.  clickandWait: Nesneye tıkladıktan sonra sayfanın yüklenmesini bekler.  assertElementPresent: Belirtilen elemanın yüklenmesini bekler.  assertTextPresent: Belirtilen bir text’in(yazının) sayfada olup olmadığını kontrol eder.  deleteCookie: Belirtilen Cookie’nin silinmesi sağlar.  mouseOver: Mouse’u belirtilen elementin üzerine götürür.  verifyTextPresent: Belirtilen nesnenin belirmesini bekler ve sağlamasını yapar.  waitForPageToLoad: Sayfanın yüklenmesini bekler.  captureEntirePageScreenshot: Üzerinde test yaptığımız sayfanın ekran görüntüsünü çerçevesiz olarak kaydeder.  waitForElementPresent: Sayfadaki bir elementin yüklenmesini bekler, bunu genellikle JavaScript tarafından kontrol edilen elementler için kullanırız.  type: Bir input’un içine yazmak için kullanılır.
  • 10. Selenium IDE Özellikleri:  Log: Adım adım yapılan testlerin loglarının bulunduğu kısımdır. Play ile çalıştırılarak yapılan testler hakkında hata mesajlarının görüntülendiği kısımdır. Bu sayede yaptığınız testleri bir nevi debug etmiş olursunuz.  Reference: Command kısmında kullanılan kodların dökümante edildiği kısımdır. Bu sayede yaptığınız testleri dökümante ederken size kolay sağlayarak işlemlerinizi hızlı bir şekilde yapabilirsiniz.  Base URL: Testlerin hangi sayfada yapılacağını gösteren kısımdır.  Target: Ekranda test edilmek istenen alanın belirtildiği kısımdır.  Value: Yapılan istenen test için değerin girildiği alandır.  Runs & Failures: Testlerin kaç tanesinin başarılı, kaç tanesinin başarısız olduğunun listelendiği kısımdır.  Record: Kayıt tutmak için kullanılan buton.
  • 11. Selenium Örnek Test Case 1: • Anasayfa’dan login olma sayfasına git. • Login olma ekranında kullanıcı adını gir. • Login olma ekranında şifreyi gir. • Submit butonuna bas. • “Bana Özel” sayfasına yönlenip yönlenmediğini kontrol et. • “Adres Bilgilerim”e tıkla. • Çıkan sayfada Güncelle’ye tıkla. • TC Kimlik Noyu 11111111111 olarak değiştir. • Kaydet butonuna tıkla. • “Lütfen T.C. Kimlik Numaranızı Doğru Olarak Giriniz.” hata mesajının sayfada yer alıp almadığını kontrol et.
  • 12. Selenium Örnek Test Case 1: • Bu işlemleri Selenium Ide ile kayıt ettiğimizde bize aşağıdaki kodu oluşturacaktır:
  • 13. Selenium Örnek Test Case 1: • Bu işlemleri Selenium Ide ile kayıt ettiğimizde bize aşağıdaki kodu oluşturacaktır:
  • 14. Selenium Örnek Test Case 2: • THY sitesi için SearchFlight test senaryo gerçeklemesini test edelim.
  • 15. Selenium Örnek Test Case 2: • Bütün kontrolleri geçerek bizim için örnek test senaryosunu başarıyla gerçekleştirdi. Beklenen değerlerin kontrolleri hatasız bir şekilde gerçekleştirildi.
  • 16. 2) Selenium WebDriver  Selenium WebDriver’ın eklenmesinden sonra Selenium 2.0 olarak yayınlandı. WebDriver, Selenium’un kendi içinde geliştirmiş olduğu en önemli özelliklerinden biri diyebiliriz. Çünkü WebDriver, test yapan kişilerin isteklerine göre browserın kendi metodlarını kullanarak işlem yapabilir.  WebDriver bir çok browserda çalışmaktadır. (Firefox, Chrome, Opera, Safari, Internet Explorer vs..) Bu durum test uzmanları için güzel bir özellik olup, browserların davranışlarını daha yakından görerek müdahele etmelerine olanak sağlar.
  • 17. 2) Selenium WebDriver  WebDriver’ın geliştirilmesindeki en büyük amaç dinamik web sitelerinin içeriklerinin belli bir kısmının değişimi sırasında tüm sayfanın tekrardan yüklenmeden yapılan değişiklikleri görerek test caselerinin devam ettirilmesine yardımcı olmaktır.  Selenium WebDriver sayesinde yapmış olduğumuz projenin testi için kullanmamız gereken tek şey WebDriver API’ı indirmektir. API sayesinde projenizin diline göre Java, .NET, Python, Ruby, PHP, Perl gibi dillerini kullanarak test scriptlerinizi yazılabilir. Bu araç daha çok developerlara yöneliktir.
  • 18. 2) Selenium WebDriver  Sistemimizde Java JDK kurulu olmalıdır.  Eclipse kurulu olmalıdır.  Selenium Java Client download edilir.  Jar dosyasi extract edilir.  Eclipse java projesi oluşturulur.  Jar dosyalari proje ye import edilir.  Test class i oluşturulur. package test; import org.openqa.selenium.WebDriver; import org.openqa.selenium.firefox.FirefoxDriver; public class TestClass { public static void main(String[] args) { //Here we initialize the firefox webdriver WebDriver firefoxDriver=new FirefoxDriver(); //Open the url which we want in firefox firefoxDriver.get("Http://www.google.com"); }
  • 19. 2) Selenium WebDriver  Selenium c# client bilgisayarımıza indirip oluşturacağımız bir klasörün içerisine çıkartıyoruz.  nunitframework.dll bilgisayarımıza indiriyoruz.
  • 20. 2) Selenium WebDriver  Selenium c# client bilgisayarımıza indirip oluşturacağımız bir klasörün içerisine çıkartıyoruz.  nunitframework.dll bilgisayarımıza indiriyoruz.
  • 21. 2) Selenium WebDriver  Daha sonra projeye testlerin yazılacağı bir Class ekleriz. Solution Explorer eklediğimiz classın içerisine; using System; using System.Collections.Generic; using System.Linq; using System.Text; using OpenQA.Selenium; using OpenQA.Selenium.Firefox; //Firefox'u kullanmamızı sağlayan namespace using NUnit.Framework; [TestFixture()] public class SeleniumTestSuite { [SetUp] public void RunTest() { //Yapılacak testler yazılır. } }
  • 22. 2) Selenium WebDriver  Daha sonra projeye testlerin yazılacağı bir Class ekleriz. Solution Explorer içindeki ilk_test satırının üzerinde;
  • 23. 3) Selenium-Grid  Selenium’un geliştirmiş olduğu ve geliştirmesi devam eden Selenium-Grid farklı sunucular üzerinde farklı browserlar ile paralel bir şekilde çalıştırmaktadır. Buradaki asıl amaç farklı işletim sistemi, donanım, cihaz gibi kombinasyonlar üzerinde test sonuçlarını görmek, dağıtık ortamda paralel olarak test süreçlerini yürütmek ve test sonuçlarını hızlıca almaktır. Bu testler paralel olarak çalıştığında süre olarak ciddi bir zaman kazancı gözükmektedir.  Selenium Hub ve Node yapısını kullanarak testlerini yapmaktadır.  Geliştirilmeye devam edilmektedir.
  • 24. Sonuçlar:  Büyük çapta web projelerinde milyonlarca sayfa içerdiğinden test maliyeti kritik önem içermektedir. Test otomasyon araçları bu kapsamda değerlendirildiğinde çok önemli yer teşkil etmektedir.  Selenium test otomasyon aracı kullanıcılara tarayıcı ve işletim sistemi farketmeksizin tüm platform/tarayıcılarda test etme imkanı sunduğundan zaman ve iş gücü maliyetini önemli ölçüde azaltmaktadır.  Kullanıcıların çok sayıda giriş yapmaları gerken durumlarda kullanım kolaylığı sağlayarak zamandan çok büyük ölçüde tasarruf ve test kolaylığı sağlamaktadır.  Çeşitli test senaryolarını çok kısa süre içerisinde otomatik bir şekilde test edebilme imkanı sağlamaktadır.
  • 25. Referanslar  Kaur H., Gagan G., “Comparative Study of Automated Testing Tools: Selenium, Quick Test Professional and Testcomplete”, 2013, ISSN:22489622, Volume 3, Issue 5, 1739 - 1743  http://www.seleniumhq.org/  https://en.wikipedia.org/wiki/Selenium_software  https://en.wikipedia.org/wiki/Web_testing

Editor's Notes

  1. 5. satırda yer alan “clickAndWait” komutu “dropmenudiv” id’li div’e ulaşmaya çalışıyor fakat “Bana Özel” sayfasında ki bu div JavaScript ile “Üyeliğim” linkinin üzerine geldiğimizde oluşturuluyor. Mouse’un “Üyeliğim” linkinin üzerine gitmesi gerektiğini kodumuza eklemeliyiz. Bu tip JavaScript kökenli problemleri çözdükten sonra sayfalarda ki kontrolleri yapmamız gerekiyor. Login olduktan sonra gittiğimiz sayfada “Bana Özel” yazıp yazmadığının kontrolü için “assertTextPresent” komutunu kullanmamız gerekir. “TC Kimlik No” girildikten sonra sayfada hata oluşup oluşmadığını görmek için de aynı komutu kullanmalıyız.
  2. 5. satırda yer alan “clickAndWait” komutu “dropmenudiv” id’li div’e ulaşmaya çalışıyor fakat “Bana Özel” sayfasında ki bu div JavaScript ile “Üyeliğim” linkinin üzerine geldiğimizde oluşturuluyor. Mouse’un “Üyeliğim” linkinin üzerine gitmesi gerektiğini kodumuza eklemeliyiz. Bu tip JavaScript kökenli problemleri çözdükten sonra sayfalarda ki kontrolleri yapmamız gerekiyor. Login olduktan sonra gittiğimiz sayfada “Bana Özel” yazıp yazmadığının kontrolü için “assertTextPresent” komutunu kullanmamız gerekir. “TC Kimlik No” girildikten sonra sayfada hata oluşup oluşmadığını görmek için de aynı komutu kullanmalıyız.
  3. 5. satırda yer alan “clickAndWait” komutu “dropmenudiv” id’li div’e ulaşmaya çalışıyor fakat “Bana Özel” sayfasında ki bu div JavaScript ile “Üyeliğim” linkinin üzerine geldiğimizde oluşturuluyor. Mouse’un “Üyeliğim” linkinin üzerine gitmesi gerektiğini kodumuza eklemeliyiz. Bu tip JavaScript kökenli problemleri çözdükten sonra sayfalarda ki kontrolleri yapmamız gerekiyor. Login olduktan sonra gittiğimiz sayfada “Bana Özel” yazıp yazmadığının kontrolü için “assertTextPresent” komutunu kullanmamız gerekir. “TC Kimlik No” girildikten sonra sayfada hata oluşup oluşmadığını görmek için de aynı komutu kullanmalıyız.