Çalışmada bazı test araçları karşılaştırılmış ve karşılaştırılan test yazılımlarının hepsinin farklı işlerde iyi olduğu gözlemlenmiştir. Örneğin Ranorex grafiksel arayüz testlerinde iyiken, Selenium web tabanlı uygulamalarda oldukça iyidir. Piyasadaki ücretsiz ve açık kaynak kodlu araçlardan Selenium’un en çok kullanılan ücretsiz araç olduğu ve amacına yönelik testlerde bekleneni verdiği gözlemlenmiştir. Yüksek maliyetler söz konusu olmasına rağmen fonksiyonel testlerde IBM RFT aracının yüksek fiyatına rağmen kurumsal firmalarca tercih edilebilir olduğu gözlemlenmiştir. Bu çalışma teorik olarak kaynak tarama yöntemiyle yapıldığından bir de pratiğe dökerek bu araçların çeşitli parametrelerle test edilmesi ya da kullanan test mühendislerinden fikir alınarak seçilmesi önerilir. Sonuç olarak her test aracının belli alanlarda daha iyi olduğu gözlemlenmiştir.
GİRİŞ
Günümüzde çok çeşitli ve farklı maksatlarla kullanılan yazılım test araçları vardır. Yazılım test araçlarının hangisini kullanacağımıza karar verirken bazı kriterlere göre seçim yaparız. Bu araştırma ödevinde de yazılım testinin amaçlarına değinilmiş, sağladığı avantajlardan kısaca bahsedilerek piyasada etkin olarak kullanılan bazı test araçları belirli kriterlere göre incelenmiştir.
TEST ARAÇLARI
Test otomasyonunu yürütmek için kullanılan bazı araçlar vardır. Günümüzde etkin olarak kullanılan birçok test otomasyon aracı bulunmaktadır. Bunların açık kaynak kodlu ücretsiz sürümleri olduğu gibi kurumsal düzeyde olanları da vardır. Bu araçlardan bazılarını açık kaynak kodlu ve kurumsal olarak ikiye ayırarak sıralayacak olursak [1]:
Açık Kaynak Kodlu Araçlar
a) Test Yönetim Araçları
TET (Test Environment Toolkit)
TETware
RTH
b) Fonksiyonel Test araçları
Selenium
Soapui
Watir
WatiN
Canoo WebTest
Webcorder
Solex
Imprimatur
SAMIE
Swete
ITP
WET
WebInject
c) Yükleme Testi Araçları
Jmeter
FunkLoad
Kurumsal Araçlar
a) Test Yönetim Araçları
HP Quality Center/ALM
QA Complete
T-Plan Professional
Automated Test Designer (ATD)
Testuff
QAS. TCS (Test Case Studio)
PractiTest
Test Manager Adaptors
SpiraTest
TestLog
ApTest Manager
DevTest
b) Fonksiyonel Test Araçları
QuickTest Pro
Rational Robot
Sahi
SoapTest
Badboy
Test Complete
QA Wizard
Netvantage Functional Tester
PesterCat
AppsWatch
Squish
actiWATE
liSA
vTest
Internet Macros
Ranorex
c) Yükleme Testi araçları
WebLOAD Professional
HP LoadRunner
LoadStorm
NeoLoad
Loadtracer
Forecast
ANTS – Advanced. NET Testing System
vPerformer
Webserver Stress Tool
preVue-ASCII
Load Impact
YAZILIM TEST ARAÇLARININ KARŞILAŞTIRILMASI
Bu çalışmada fonksiyonel test araçlarından HP Quick Test Professional, Selenium, Ranorex ve IBM Rational Functional Tester karşılaştırılmıştır. Sırayla bu araçları tanıyalım.
HP Quick Test Professional
Hewlett Packard (HP) firması tarafından geliştirilen bir test aracıdır. Bu test aracılığıyla bir kere yazılan betik aracılığıyla bir otomatik fonksiyonel test izleme olmaksızın kusursuz olarak test edilebilir. HP QTP uygulama otomasyonu için VBScript dilini kullanır. Bu dil Windows işletim sistemi ailesinde özellikle kuruluma ihtiyaç duymaz zaten işletim sisteminin bir parçasıdır. QTP fonksiyonel ve regresyon testleri için iyi bir çözümdür. Windows uygulamalarını yanı sıra Java applet ve uygulamaları, uygulamalardaki multimedya nesneleri test etmemize olanak sağlar. Uygulamanın kullanıcı arayüzündeki nesne veya bir web sayfası üzerinde gerçekleştirilen aksiyonları (örneğin Mouse ile tıklama veya klavye aktiviteleri) tanımlayarak bunların isim ya da bir id numaralarını yakalar ve bu şekilde oradaki hareketleri daha sonradan test sırasında manipüle edebilir. Genellikle UI yani kullanıcı arayüzü tabanlı testlerde kullanılır ancak bazı arayüzü olmayan dosya işlemleri ve veri tabanı testi gibi işlemlerde de kullanılabilir [2].
Şekil 2. HP Quick Test Pro test konsepti [4]
Avantajları:
VBScript ile çalışmasından dolayı çok iyi düzeyde kod yazma becerisi gerektirmez. Nesne yönelimli diğer dillerle karşılaştırıldığında oldukça kolaydır.
Menüler arasında gezinme, sonuç doğrulama ve rapor oluşturma kolaydır.
HP-Quality Center test yönetim aracıyla entegre olduğundan zamanlama ve izleme kolaydır.
Mobil uygulama testlerinde de kullanılabilir.
Teknik destek konusunda arkasında kurumsal düzeyde destek verebilecek bir ekip vardır.
Dezavantajları:
Sadece Windows üzerinde çalışır.
Tüm web tarayıcı sürümleriyle çalışmaz. Her sürümde yama yayınlanması beklenir.
Lisans ücretleri çok yüksektir.
Kod yazma süresi kısa olmasına rağmen, CPU & RAM üzerine yüklenip çalışma zamanı buna nazaran uzundur.
Selenium
Selenium ücretsiz ve açık kaynak kodlu bir test aracıdır. Selenium web sitesinden kolaylıkla indirilebilir. Öncelikli kullanım amacı web uygulamalarını test etmektir. Destek konusunda kendi forumu vardır, ayrıca bir teknik destek ekibi bulunmamaktadır. Java, Python, PHP, C#, Ruby ve JavaScript gibi bir çok dili destekler. Çevik metodolojisi için çok uygundur. Bir uygulamayı test ederken kaydedilen kullanıcı aksiyonları dışarı aktarılarak daha sonra da kullanılabilir [3].
Şekil 3. Selenium test konsepti [4]
Avantajları:
Bir çok programlama dilini destekler (Java, Python, PHP, C#, Ruby vs.)
Tüm web tarayıcılar üzerinde çalışır (IE, Safari, Chrome, Firefox vs.)
Açık ya da sorunları Jenkins aracılığıyla JIRA (bug management tool) üzerine aktarmanızı sağlar.
Ücretsizdir.
Açık kaynak kodlu diğer uygulamalar entegre şekilde çalışabilir. Örneğin paralel testler için API sağlayan Grid.
Dezavantajları:
Teknik destek sadece Community ile sınırlıdır.
Yeni sürüm ve geliştirme rutini yoktur. Diğer kurumsal yazılımlardaki gibi bir gelişim rutinine sahip değildir.
Sadece web uygulamaları test ederken kullanılır.
Ranorex
Düşük maliyetli ve kapsamlı bir test aracıdır. Alışılagelmiş test araçlarına iyi bir alternatiftir çünkü kullanıcı perspektifinde, standart programlama tekniklerini ve C#, VB.net gibi yaygın dilleri kullanır. Betik dili öğrenmek zorunlu değildir saf .NET kodları ile kullanılır. C#, VB.net ve Iron Python dillerinden birini kullanabilirsiniz. Dünya çapında yüzlerce kullanıcısı vardır. Ranorex XPath tabanlıdır böylelikle web tabanlı uygulamalarda nesnelerin yerini bulma oranı yüksektir. Ranorex eklentileriyle çeşitli teknolojiler daha sonradan da entegre edilebilir. Görsel tabanlı tanıma yapar.
Şekil 4. Ranorex test konsepti [4]
Avantajları:
Tüm ortamlarda ve tüm tarayıcılarda çalışır
Sürükle bırak test otomasyonu
Çoklu programlama dili desteği
Çalıştırması kolaydır
Düşük maliyetlidir
Dezavantajları:
Bazı durumlarda nesne tanımanın zaman alması
Teknik destek konusunda bazı sıkıntılar mevcut
Aynı anda birden çok test gerçekleştiremez
Veri tabanı testi yoktur
IBM Rational Functional Tester
IBM Rational Functional Tester nesne yönelimli fonksiyonel test otomasyon yazılımıdır. Aynı zamanda yaşam döngüsü IBM Rational Software yazılım yaşam döngüsü araçlarının bir parçasıdır. Herhangi bir graiksel arayüze sahip değildir. RFT Java kullanıcıları için Eclipse’de veya NET geliştiricileri için Visual Studio’da kullanılabilir. Test bir kere kaydedildiğinde hem Java hem de VB.NET için kullanılabilir. [5]
Şekil 5. IBM Rational Functional Tester test konsepti [4]
Avantajları:
Verimliliği yüksektir.
Kodları optimize etmenize yardımcı olur.
Testçinin herhangi bir spesifik programlama dili bilmesine gerek yoktur.
Kodlardaki fazla satırların silinmesinde yardımcı olur.
Dezavantajları:
Deneyimli testçi gerektirir.
Gizli hataları bulmak için kodlardaki tüm bitlere bakamaz.
Dizayn etmesi zordur.
Girişler çok zaman alır.
Karşılaştırma
Şimdi kısaca incelediğimiz bu test araçlarını bir tablo üzerinde karşılaştıralım.
Tablo 1. Test araçlarının karşılaştırılması
Özellik | HP QTP | Selenium | Ranorex | IBM RFT | |
Desteklediği Diller | VBScript | Java, .Net, Perl, PHP, Python ve Ruby | C#, VB.net ve Iron Python | Java ve VB.NET | |
Ortam Desteği | Windows | Unix, Linux, OS X, Windows | Windows | Windows, Unix (Kısmen) | |
Kodlama Deneyimi Gereksinimi | Düşük | Yüksek | Düşük | Düşük | |
Performans | Yüksek | Yüksek | Orta | İyi | |
Ürün Desteği | İyi | Orta (Sadece topluluk desteği) | Orta | İyi | |
Fiyat | Yüksek | Ücretsiz | Düşük | Orta | |
Kaynak Gereksinimi | Yüksek | Düşük | Düşük | Yüksek | |
Raporlama | Var | Var (Yardımcı araçlarla) | Var | Var | |
Özelleştirilebilirlik | Orta | Yüksek (Eklenti desteği) | Düşük | Orta | |
Kullanılabilirlik | Yüksek | Yüksek | Orta | Orta | |
Veri Tabanı Testi | Var | Yok | Yok | Yok | |
Aynı Anda Çoklu Test | Yok | Var | Yok | Yok | |
Test Sonucu Analizi | Var | Yok | Var | Yok | |
Zamanlamalı Test | Yok | Yok | Yok | Yok | |
Web Tabanlı Uygulama Testi | Var | Var | Var | Var | |
Masaüstü Yazılım Testi | Var | Yok | Var | Var | |
Servis Testi | Var | Yok | Yok | Yok | |
Mobil Uygulama Testi | Var | Var | Var | Var | |
Anlık Ekran Görüntüsü Alabilme | Var | Yok | Var | Yok | |
Test Logları | Var | Var | Var | Var | |
Test Kaydetme ve Tekrar Etme | Var | Var | Var | Var | |
Eklenti Desteği | Var | Var | Yok | Var | |
Kontrol Noktası | Var | Var | Var | Var | |
Object Mapping | Var | Var | Var | Var |
SONUÇ
Yapılan inceleme sonucunda bu dört aracın da belli alanlarda birbirlerine üstünlük kurdukları gözlemlenmiştir. Bu araştırmada karşılaştırılan kriterler göz önüne alındığında ve internet üzerinde bulunan bazı incelemeler okunduğunda HP Quick Test Professional ürünün bir adım önde çıktığını gözlemleyebiliriz. 143.111 üyesi olan IT Central Station’ın internet sitesinde yer alan inceleme, karşılaştırma ve puanlamalara göre yapılan sıralamada da HP QTP 5., IBM RFT 7. Sırada yer almaktadır [12]. Ranorex ve Selenium da ciddi kullanımı olan ürünlerdir ancak bu dört yazılım test aracı içerisinde HP QTP ve IBM RFT öne çıkmaktadır. Maliyet açısından HP QTP sadece bu dört yazılım içerisinde değil genel olarak tüm test araçları içerisinde en yüksek maliyete sahip araçlardan biridir. Ancak buna karşın test işlemlerinin kolay olması, yazılım uzmanlığı gereksiniminin düşük olması ve eğitim maliyetlerinin diğer araçlara göre düşük olmasından dolayı görünmez maliyet çıkarma olasılığı düşük olduğu için tercih edilmektedir. Selenium aracı her ne kadar ücretsiz olsa da karmaşık olması ve yüksek seviyede yazılım bilgisi gerektirdiğinden 5-10 yıllık periyotlarda daha maliyetli olabilmektedir [13]. Bunun sebebi de yüksek yazılım becerisine sahip test elemanlarının maaşlarının daha yüksek olmasından ileri gelmektedir. Tüm bunlardan yola çıkarsak test aracı seçimi ağırlıklı olarak yapılan yazılım testi türüne ya da yazılım türüne göre belirlenmelidir.
REFERANSLAR
http://www.softwaretestingclass.com/software-testing-tools-list/
QTP TUTORIAL, Simply Easy Learning by tutorialspoint.com
Kaur, H., Gupta, G., “Comparative Study of Automated Testing Tools: Selenium, Quick Test Professional and Testcomplete”, Harpreet kaur et al Int. Journal of Engineering Research and Applications, Vol. 3, Issue 5, Sep-Oct 2013, pp.1739-1743
Vizulis, V., Diebelis, E., “Self-Testing Approach and Testing Tools”, Scientific Papers, University Of Latvia, 2012. Vol. 787, P. 27-29.
http://www.cs.huji.ac.il/~ssd/IBM_Functional_Tester/IBM_Functional_Tetser.html
https://qtp4experts.wordpress.com/2014/03/19/qtp-vs-rft-rational-functional-tester/
https://www.itcentralstation.com/categories/test-management-tools#top_rated
Selenium vs. HP QuickTest Professional: The Hidden Costs of Open-Source White Paper, Visionary Integration Professionals