Haku

Automatic testing and delivery in web development

QR-koodi

Automatic testing and delivery in web development

This thesis aims to investigate how web development can be automated and improved. It aims to describe topics such as development and testing processes, DevOps culture and methods of automating multiple parts of the development pipeline with workflows such as continuous integration and delivery.

In-depth research was conducted starting from development practices. Agile software development and the DevOps movement were researched, alongside with possibilities in testing and delivery. Modern web development frameworks and their technical implementations were also researched.

This thesis resulted in a proof of a concept, which provides a demonstration for the points made in the theoretical sections. The proof of a concept includes development workflow with continuous integration and delivery. It allows a base for developers to start building their own continuous integration and delivery project.

The frontend part of the proof of a concept was implemented with TypeScript and React. The backend was created using NodeJS, Express, and PostgreSQL. It includes end-to-end testing from the PostgreSQL database to the React frontend. All technologies except the database are JavaScript-based.

Web-pohjaiset ohjelmistot ovat monimutkaistuneet viime vuosina, sekä niiltä odotetaan paljon enemmän. Odotusten kasvaessa kehitysprosessit ja testaaminen, sekä niiden automatisointi ovat ajankohtaisia aiheita. Automatisoinnilla on mahdollista nopeuttaa uusien versioiden julkaisua, sekä tehdä kehittäjien ja ylläpitäjien työstä tehokkaampaa.

Opinnäytetyön tarkoituksena oli tutkia kuinka web-kehitystä on mahdollista automatisoida sekä kehittää. Opinnäytetyössä tutkitaan seuraavia aiheita: kehitys- ja testausprosessit, DevOps -kulttuuri sekä tavat, joilla voitaisiin automatisoida eri osia kehitysprosessista. Näistä tavoista käsiteltiin muun muassa automaattitestausta, jatkuvaa integraatiota, jatkuvaa toimitusta sekä julkaisua.

Syventävä tutkimus aloitettiin tutkimalla ohjelmistokehityksen tapoja ja prosesseja. Ketterää ohjelmistokehitystä sekä DevOps-kulttuuria tutkittiin, yhdistelemällä ne mahdollisuuksiin ohjelmistotestauksen ja toimituksen saralla. Lisäksi perehdyttiin modernin web-kehityksen viitekehyksiin sekä niiden teknisiin implementaatioihin.

Opinnäytetyön tulos on teoreettisen tutkinnan lisäksi konkreettinen soveltuvuusselvitys, joka sisältää demonstraation aiheille, joita käsitellään teoreettisissa osioissa. Selvitys sisältää valmiiksi asennetun automatisoidun kehitysprosessin, joka sisältää pohjan jatkuvalle integraatiolle sekä toimitukselle, mukaanlukien automaattitestit.

Soveltuvuusselvityksen presentaationaalinen osuus, eli selainpuoli, on tehty käyttäen TypeScriptiä ja Reactia. Palvelinpuoli on toteutettu NodeJS, Express ja PostgreSQL-yhdistelmällä. Soveltuvuusselvitys sisältää kokonaisvaltaisen testauksen PostgreSQL-tietokannasta selainpuolen Reactiin. Tietokanta poislukien, edellä mainitut teknologiat ovat kaikki JavaScript-pohjaisia teknologioita.

Tallennettuna: