• Rezultati Niso Bili Najdeni

V nalogi smo se osredotoˇcili na problem testiranja programskih sistemov in aplikacij, sestavljenih iz veˇc komponent, ki so napisane v razliˇcnih jezikih.

Zanimalo nas je, kaj lahko testiramo na zaˇcelnem ali zalednem delu sistema.

Zgradili smo testno aplikacijo, na podlagi katere smo potem analizirali in izbrali testna ogrodja, pripravili teste in postavili celoten DevOps cevovod.

Ugotovili smo, da se je pri testiranju treba prilagoditi potrebam. Te-sti na vsaki komponenti so najbolj primerni za teTe-stiranje le te komponente.

Veˇc preprostih delov aplikacije ali pa komponente, za katere je teˇzko napi-sati teste, je najlaˇzje testirati kot celoto z integracijskimi in E2E testi, ki nam omogoˇcajo istoˇcasno testiranje zelo razliˇcnih komponent aplikacije, ki so lahko del zaˇcelja ali zaledja.

Na ˇcelnem delu sistema testiramo funkcionalnost in delovanje celotne apli-kacije in uporabniˇskega vmesnika. Testiramo lahko tudi uporabniˇsko izkuˇsnjo s performanˇcnimi testi. Na zaledju pa se osredotoˇcamo na testiranje poslovne logike in podatkovne baze. Posebej se posvetimo tudi testiranju delovanja sistema pod stresom, ki ga simuliramo z veˇc navideznimi uporabniki. Tako lahko odkrijemo probleme, kjer pride do zagate, tvegana stanja ali izgube podatkov.

Za bolj podrobno primerjavo testnih ogrodij se je izkazalo, da imamo preveˇc preprosto testno aplikacijo, saj je veˇcina testnih ogrodij miˇsljena za

31

32 Andraˇz Sterle uporabo z veˇcjimi aplikacijami. Zaradi tega je bilo veliko ugotovitev teo-retiˇcnih in ne empiriˇcno dokazanih na aplikaciji.

Diplomsko nalogo bi lahko izboljˇsali z veˇcjo, bolj zapleteno testno apli-kacijo, kjer bi lahko implementirali veˇc vrst testov in testnih ogrodij. Potem bi lahko primerjali in analizirali primernost razliˇcnih pristopov testiranja na dejanskih primerih. Lahko bi se tudi znebili arhitekture odjemalec-streˇznik in celotno testno aplikacijo napisali v veˇc razliˇcnih jezikih in bi potem pri-merjali testna ogrodja, teste in rezultate testov med razliˇcnimi programskimi jeziki.

Menim pa, da smo kljub preprostosti testne aplikacije lahko pridobili veliko informacij. Ob tem smo se veliko nauˇcili o DevOps cevovodih, avto-matskem testiranju in o njuni pomembnosti za podjetja vseh velikosti, ki se ukvarjajo z izdelavo programske opreme.

Literatura

[1] Zack Aayush. Spring – rest controller, 2021. https:

//www.geeksforgeeks.org/spring-rest-controller/, dostopano 16.1.2022.

[2] Agiledata. Three agile testing methods – tdd, atdd and bdd, 2020. https://agiledata.io/blog/agile-techniques/three-agile-testing-methods-tdd-atdd-and-bdd/, dostopano 1.11.2021.

[3] Agiledata. Introduction to tdd, 2020. http://agiledata.org/essays/

tdd.html, dostopano 5.2.2022.

[4] Agiledata. Jbehave, 2021. https://jbehave.org, dostopano 1.11.2021.

[5] Agile Alliance. Behaviour driven development, 2017. https://www.

agilealliance.org/glossary/bdd/, dostopano 5.2.2022.

[6] Agile Alliance. Acceptance test driven development, 2020. https://

www.agilealliance.org/glossary/atdd/, dostopano 5.2.2022.

[7] Angular. Deployment, 2021. https://angular.io/guide/

deployment#building-and-serving-from-disk, dostopano 24.10.2021.

[8] Apache. Apache tomcat, 2021. https://tomcat.apache.org, dosto-pano 16.1.2022.

[9] Adam Auerbach. Part of the pipeline: Why continuous testing is essen-tial, 2015. https://www.techwell.com/techwell-insights/2015/

33

34 Andraˇz Sterle

08/part-pipeline-why-continuous-testing-essential, dostopano 16.1.2022.

[10] Serenity BDD. Serenity, 2021. https://serenity-bdd.info, dosto-pano 1.11.2021.

[11] Serenity BDD. Serenity introduction, 2021. https://serenity-bdd.github.io/theserenitybook/latest/index.html, dostopano 23.1.2022.

[12] Bryntum. Siesta, 2021. https://www.bryntum.com/products/

siesta/, dostopano 1.11.2021.

[13] Buildbot. Buildbot, 2021. http://buildbot.net, dostopano 7.11.2021.

[14] GitLab B.V. Gitlab, 2021. https://about.gitlab.com, dostopano 7.11.2021.

[15] CI Software. Comparison of continuous integration software, 2021.

https://en.wikipedia.org/wiki/Comparison_of_continuous_

integration_software, dostopano 1.11.2021.

[16] CloudBees. Jenkins, 2021. https://www.jenkins.io, dostopano 7.11.2021.

[17] CloudBees. Jenkins docker image, 2021. https://hub.docker.com/r/

jenkins/jenkins, dostopano 7.11.2021.

[18] Software Freedom Conservancy. Selenium, 2021. https://www.

selenium.dev, dostopano 5.2.2022.

[19] Containers. Podman, 2021. https://podman.io, dostopano 16.1.2022.

[20] Docker. Docker, 2021. https://www.docker.com, dostopano 16.1.2022.

[21] Docker. Node.js, 2021. https://docs.docker.com/compose/, dosto-pano 26.1.2022.

Diplomska naloga 35 [22] Facebook. Jest, 2021. https://jestjs.io, dostopano 1.11.2021.

[23] International Organization for Standardization. Information techno-logy — programming languages — c, 2001. https://www.iso.org/

standard/74528.html, dostopano 17.1.2022.

[24] Eclipse Foundation. Jakarta ee, 2021. https://jakarta.ee, dostopano 17.1.2022.

[25] OpenJS Foundation. Node.js, 2014. https://nodejs.org/en/, dosto-pano 23.1.2022.

[26] Martin Fowler. Continuous integration, 2006. https://martinfowler.

com/articles/continuousIntegration.html/, dostopano 16.1.2022.

[27] Inc. GitHub. About github, 2022. https://github.com/about/, do-stopano 17.1.2022.

[28] Google. Angular, 2019. https://opensource.google/projects/

angular, dostopano 17.1.2022.

[29] Google. Angular - the modern web developer’s platform, 2021. https:

//angular.io, dostopano 16.1.2022.

[30] Google. Protractor, 2021. http://www.protractortest.org/, dosto-pano 1.11.2021.

[31] Harness. Harness acquires continuous integration pioneer drone.io and commits to open source, 2020. https://www.prnewswire.com/news- releases/harness-acquires-continuous-integration-pioneer-droneio-and-commits-to-open-source-301106473.html, dostopano 18.1.2022.

[32] Harness Inc. Drone, 2020. https://www.drone.io, dostopano 7.11.2021.

36 Andraˇz Sterle [33] Jasmine. Jasmine, 2021. https://jasmine.github.io, dostopano

1.11.2021.

[34] Karma. Karma, 2021. https://karma-runner.github.io/latest/

index.html, dostopano 1.11.2021.

[35] Katalon. What is end-to-end (e2e) testing? all you need to know, 2021. https://www.katalon.com/resources-center/blog/end-to-end-e2e-testing/, dostopano 7.11.2021.

[36] Microsoft. What is typescript?, 2022. https://www.typescriptlang.

org, dostopano 17.1.2022.

[37] Mocha. Mocha, 2021. https://mochajs.org, dostopano 1.11.2021.

[38] Mockito. Mockito, 2021. https://site.mockito.org, dostopano 1.11.2021.

[39] Oracle. What is java technology and why do i need it?, 2021.

https://www.java.com/en/download/help/whatis_java.html, do-stopano 17.1.2022.

[40] Oracle. Oracle java, 2021. https://www.oracle.com/java/, dostopano 17.1.2022.

[41] Sten Pittet. What is continuous deployment?, 2021. https://www.

atlassian.com/continuous-delivery/continuous-deployment, do-stopano 16.1.2022.

[42] Pluralsight. Javascript, 2013. https://www.javascript.com, dosto-pano 17.1.2022.

[43] REST Assured. Rest assured, 2021. https://rest-assured.io, dosto-pano 1.11.2021.

[44] SmartBear Software. Gherkin reference, 2019. https://cucumber.io/

docs/gherkin/reference/, dostopano 23.1.2022.

Diplomska naloga 37 [45] SmartBear Software. Cucumber, 2021. https://cucumber.io,

dosto-pano 1.11.2021.

[46] Spring. Spring – rest controller, 2021. https://spring.io, dostopano 16.1.2022.

[47] SQLite. Sqlite, 2022. https://www.sqlite.org/index.html, dosto-pano 16.1.2022.

[48] The JUnit Team. Junit5, 2021. https://junit.org/junit5/, dosto-pano 1.11.2021.

[49] Gmbh Travis CI. Travis ci, 2021. https://github.com/travis-ci/

travis-ci/blob/master/README.md, dostopano 7.11.2021.

[50] webpack. webpack, 2020. https://webpack.js.org, dostopano 17.1.2022.

POVEZANI DOKUMENTI