Naslov Testiranje web-orijentiranih programskih rješenja
Naslov (engleski) Testing of web-oriented software solutions
Autor Ivan Vlašić
Mentor Dragan Jevtić (mentor)
Član povjerenstva Dragan Jevtić (predsjednik povjerenstva)
Član povjerenstva Marin Vuković (član povjerenstva)
Član povjerenstva Tomislav Grgić (član povjerenstva)
Ustanova koja je dodijelila akademski / stručni stupanj Sveučilište u Zagrebu Fakultet elektrotehnike i računarstva Zagreb
Datum i država obrane 2015-07-03, Hrvatska
Znanstveno / umjetničko područje, polje i grana TEHNIČKE ZNANOSTI Računarstvo
Znanstveno / umjetničko područje, polje i grana TEHNIČKE ZNANOSTI Elektrotehnika
Sažetak 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.
Sažetak (engleski) 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.
Ključne riječi
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
Ključne riječi (engleski)
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
Jezik hrvatski
URN:NBN urn:nbn:hr:168:514532
Studijski program Naziv: Informacijska i komunikacijska tehnologija Vrsta studija: sveučilišni Stupanj studija: diplomski Akademski / stručni naziv: magistar/magistra inženjer/inženjerka informacijske i komunikacijske tehnologije (mag. ing. inf. et comm. techn.)
Vrsta resursa Tekst
Način izrade datoteke Izvorno digitalna
Prava pristupa Zatvoreni pristup
Uvjeti korištenja
Javna napomena
Repozitorij Repozitorij FER-a
Datum i vrijeme pohrane 2018-02-06 14:22:11