Laitteistorajapinnan toteutus testiautomaatiojärjestelmään - Lehtisalo, Jani Kristian (My University, 2020)
Tämän diplomityön tarkoituksena on suunnitella laitteistorajapinta ohjelmistoyrityksen kehittämän testiautomaatiojärjestelmän ja siihen kytkettävien sulautetun järjestelmän sisältävien laitteiden välille. Järjestelmän tehtävänä on suorittaa erilaisia automatisoituja testejä ohjelmistoyrityksen asiakkaiden kehittämille laitteita ohjaaville sovelluksille. Rajapinnan on tarkoitus mahdollistaa laitteiden automatisoitu valmistelu testaukseen. Työstä on rajattu pois yrityksen asiakkaiden kehittämät ohjelmistot, niihin liittyvät rajapinnat, järjestelmään liitettävät mobiililaitteet sekä itse testiautomaatio. Laitteistorajapinnan toteutuksessa keskitytään tiettyyn, ohjelmistoyrityksen valitsemaan asiakasprojektiin ja siinä esiin nouseviin vaatimuksiin, joiden pohjalta tässä työssä tavoiteltu rajapinta on tarkoitus kehittää. Tavoitteena on luoda asiakasvaatimukset täyttävä, toimiva ohjelmisto-rajapinta asiakaslaitteiden ja testijärjestelmän välille, mitä ohjelmistoyritys pystyy hyödyntämään myös muissa vastaavanlaisissa asiakasprojekteissaan. Työn alussa laadittiin suunnitelma rajapinnan arkkitehtuurista ja halutuista toiminnoista. Tämän jälkeen toiminnot toteutettiin ketterän kehityksen menetelmiä soveltaen priorisoidussa järjestyksessä. Tavoitteena oli saada vaatimukset täyttävä laitteistorajapinta valmiiksi kymmenen kuukauden kehitystyön jälkeen. Suurin osa työstä tehtiin ohjelmointityönä, käyttäen Java-kieltä ja Play-ohjelmistokehystä. Työn lopputuloksena luotiin annettujen vaatimusten mukaisesti skaalautuva ohjelmisto-rajapinta, jota on mahdollista hyödyntää tutkimustyön aikaisen asiakasprojektin lisäksi myös seuraavissa projekteissa. Työn aikana saatiin tietoa testiautomaatiojärjestelmän teknisestä soveltuvuudesta uusiin tilanteisiin ja käyttötarkoituksiin. Työn lopputulos loi myös edellytyksiä järjestelmän tuotteistamiselle tulevaisuudessa laajempaan käyttöön.

The goal of this research is to design hardware interface between test automation system developed by software company and devices with embedded systems. The purpose of the test automation system is to enable running automated test cases for customer applications that control embedded systems. The purpose of the hardware interface is to enable automated preparation of devices for testing. The research definition excludes customer developed application, other customer software, related interfaces, mobile devices and test automation itself. The implementation of the hardware interface is done by focusing to an individual customer project case and its requirements for the interface. Goal is to create a working hardware interface that fulfills the requirements of the case study. When completed software company would be able to utilize the common hardware interface for other similar customer projects as a part of their test automation system. Before the starting of implementation a plan for architectural structure and desired features was created. The implementation was carried out by applying agile methods for prioritized work list. Goal was to complete the hardware interface after 10 months of development work. Majority of the work was carried out as programming work by using Java programming language with Play framework. As a result of the research the scalable hardware interface was created based on given case study requirements. Because of its modularity the developed interface can also be utilized to other projects in the future. Research also provided information about the technical suitability of the test automation system for new use cases. Research and the resulting interface have also created foundation for commercialization of the test automation system.
Keywords: testiautomaatio; regressiotestaus; ohjelmistorajapinta; plug-in-arkkitehtuuri; REST-arkkitehtuurimalli; testaus; tietokoneohjelmat; testausmenetelmät; fi=Ohjelmistotekniikka|en=Software Engineering|; fi=Tietotekniikan koulutusohjelma (DI)|en=Degree Programme in Information Technology|