Title Testiranje web-orijentiranih programskih rješenja
Title (english) Testing of web-oriented software solutions
Author Ivan Vlašić
Mentor Dragan Jevtić (mentor)
Committee member Dragan Jevtić (predsjednik povjerenstva)
Committee member Marin Vuković (član povjerenstva)
Committee member Tomislav Grgić (član povjerenstva)
Granter University of Zagreb Faculty of Electrical Engineering and Computing Zagreb
Defense date and country 2015-07-03, Croatia
Scientific / art field, discipline and subdiscipline TECHNICAL SCIENCES Computing
Scientific / art field, discipline and subdiscipline TECHNICAL SCIENCES Electrical Engineering
Abstract Testiranje softvera i web usluga je nužno jer nam se svima događaju propusti i pogreške, a neke se greške pojavljuju zbog pogrešnih pretpostavki pa je poželjno da i drugi provjere softver kako bi se izbjegle. Po definiciji, testiranje softvera predstavlja proces analize elemenata softvera kako bi se utvrdila razlika između postojećeg stanja i zahtjeva i kako bi se ustanovile karakteristike softvera. Testiranje je važno raditi pravovremeno jer što se u ranijoj fazi otkrije greška, to su manji troškovi popravka. Web usluga je programski sustav koji je dizajniran da podržava interakciju između dva stroja preko mreže. Rezultati testiranja web usluge pokazuju koje funkcije ona omogućava, koja svojstva može pružiti i koliki kapaciteti se mogu koristiti. Najčešći načini razmjene podataka među web uslugama su preko REST i SOAP poruka. Kako bi ispravili nedostatke tradicionalnog razvoja softvera, razvojni inženjeri su s vremenom osmislili novi način razvoja, razvoj upravljan testovima. Ona ima neke značajne prednosti ispred tradicionalnog jer se testovi pišu i provode od samog početka projekta tako da se lakše izlazi na kraj s greškama, no ima i nekih nedostataka. Zbog nedostataka TDD-a poput nedovoljno dobrog odgovora na to što i kada testirati ili kako najbolje nazvati testove, došlo je do razvoja ponašanjem upravljanog razvoja. On je nadogradnja i poboljšanje TDD-a i ima puno prednosti, iako naravno i on ima svoje nedostatke. Jedan od najpoznatijih i najkorištenijih alata za BDD razvoj je alat Cucumber koji se koristi, osim za BDD, i za testiranje sofvera i web usluga. Razvoj u Cucumberu počinje izborom funkcija pa pisanjem scenarija, tj. poželjnih obrazaca ponašanja u jeziku Gherkin. Taj jezik je specifičan jer je vrlo sličan govornom prirodnom jeziku pa ga razumiju ne samo razvojni inženjeri, nego i poslovni klijenti. Nakon toga, definiraju se koraci koje je potrebno programski implementirati kako bi scenarij bio uspješno izvršen. Koraci se najčešće programiraju u jeziku Ruby. Usporedbom programa i aplikacija razvijenih na tradicionalan način s onima razvijenim u Cucumberu BDD metodologijom, utvrđeni su i opisani prednosti i nedostaci BDD razvoja u odnosu na tradicionalni.
Abstract (english) Software testing and web service testing are necessary because errors and failures happen to all of us, and some mistakes happen because of false presuppositions, so it’s advisable for others to validate software too so that errors could be avoided. According to definition, software testing is process of analysis of software elements so that we can determine a difference between existing state and requirements and so that software characteristic could be established. It is better to do testing sooner than later because if failures are founded in earlier phases than costs of repair are significantly lower. Web service is software system that is designed in a way that it supports machine to machine interaction over network. Results of web services testing show what functions does web service enable, which features does it support and how much capabilities can be used. The most popular ways of data transfer between web services are over REST and SOAP messages. In order to fix failures of traditional software development, software engineers have over time designed new way of software development, Test-Driven Development. It has some significant advantages over traditional testing and development because tests are written and run from the mere beginning of a project so that it is easier to handle errors, but still it has some disadvantages. Because of TDD failures like not good enough answers on questions like what and when to test and how to name tests in the best way, Behavior-Driven Development was developed. BDD is upgraded and improved TDD and has a lot of advantages, but of course it also has its own failures. One of the most popular and most used tool for BDD is Cucumber which is used, except for BDD, also for software testing and web service testing. Development in Cucumber starts with choosing features and then writing scenarios, wanted behavior models in Gherkin language. That language is specific because it is very similar to human natural language so it is understood not only by software engineers, but also business clients. After that, we define step definitions that we need to implement so that scenario could be successfully executed. Step definitions are usually implemented in Ruby language. Comparing programs and applications developed in a traditional way with those developed in Cucumber with BDD methodology, advantages and disadvantages of BDD over traditional development are determined and described.
Keywords
TDD
BDD
REST
SOAP
API
WSDL
XML
Cucumber
web usluga
testiranje
razvoj softvera
Gherkin
Ruby
definicija koraka
web
softver
testiranje softvera
test
greške
funkcijsko testiranje
razvojni ciklus
razvojni inženjer
programski kod
refaktoriranje
čišćenje koda
prednosti TDD-a
nedostaci TDD-a
prednosti BDD-a
nedostaci BDD-a
testni slučaj
modularizacija
agilni razvoj
krhki testovi
Zadano
Kada
Onda
scenarij
test prihvatljivosti
automatizirani test
čitljivost
jedinstveni jezik
svojstvo
specifikacije
pozadina
titrajući scenarij
krhka svojstva
spora svojstva
nezainteresirani sudionici
poslovni klijenti
sudionici
propusni scenarij
Keywords (english)
TDD
BDD
REST
SOAP
API
WSDL
XML
Cucumber
web service
testing
software development
Gherkin
Ruby
step definition
web
softver
softver testing
test
error
functional testing
development cycle
software engineer
program code
refactoring
code cleansing
TDD advantages
TDD disadventages
BDD advantages
BDD disadventages
test case
modularization
agile development
fragile test
Given
When
Then
scenario
acceptance test
automated test
readability
ubiquitous language
feature
specification
Background
flickering scenario
brittle feature
slow feature
bored stakeholders
bussines clients
stakeholders
leaky scenario
Language croatian
URN:NBN urn:nbn:hr:168:514532
Study programme Title: Information and Communication Technology Study programme type: university Study level: graduate Academic / professional title: magistar/magistra inženjer/inženjerka informacijske i komunikacijske tehnologije (magistar/magistra inženjer/inženjerka informacijske i komunikacijske tehnologije)
Type of resource Text
File origin Born digital
Access conditions Closed access
Terms of use
Public note
Created on 2018-02-06 14:22:11