Ohjelmistotestauksen menetelmät osana teollisuusrobottisovellusten kehittämistä
Pirttilahti, Konsta (2025)
Pirttilahti, Konsta
2025
Automaatiotekniikan DI-ohjelma - Master's Programme in Automation Engineering
Tekniikan ja luonnontieteiden tiedekunta - Faculty of Engineering and Natural Sciences
This publication is copyrighted. You may download, display and print it for Your own personal use. Commercial use is prohibited.
Hyväksymispäivämäärä
2025-05-06
Julkaisun pysyvä osoite on
https://urn.fi/URN:NBN:fi:tuni-202505064862
https://urn.fi/URN:NBN:fi:tuni-202505064862
Tiivistelmä
Teollisuusrobotiikan tarpeen lisääntyessä ja projektien tiukkojen aikataulupaineiden seurauksena tulee ohjelmistojen suunnittelu sekä testaus suorittaa tehokkaasti. Perinteisessä ohjelmistokehityksessä on testaukseen luotu kehittyneitä testaussovelluksia, testaukseen käytettäviä ohjelmistokirjastoja sekä versionhallintaan liitettyjä automaattisen jatkuvan kehityksen väyliä, jotka mahdollistavat sovellusten toiminnallisuuksien laadun varmistamisen aina kun lähdekoodiin tehdään muutoksia ja muutokset siirretään versionhallinta sovellukseen. Vastaavanlaisten testaussovellusten, ohjelmistokirjastojen ja käytäntöjen hyödyntäminen kohdeyrityksen teollisuusrobotiikan ohjelmistokehityksessä on erittäin vähäistä. Testaussovellusten ja käytäntöjen puutteiden seurauksen teollisuusrobotiikassa testaus suoritetaan pääsääntöisesti manuaalisesti. Offline-ohjelmointi vaiheessa testauksessa käytetään joko robottivalmistajien tai kolmannen osapuolen tarjoamia simulaatiosovelluksia. Online-ohjelmointi vaiheessa testaus suoritetaan ajamalla ohjelmistoja robottivalmistajien roboteilla. Tämän työn tarkoituksena on selvittää sekä tutkia mahdollisuuksia hyödyntää perinteisen ohjelmistokehityksen ja -testauksen menetelmiä osana robottiohjelmistojen ohjelmistokehitystyötä. Osana tätä työtä on suunniteltu sekä toteutettu teollisuusrobottisovellusten testaussovellus vähentämään kehittäjiltä vaadittua manuaalista työtä, parantamaan projektien toiminnallisuuksia sekä selkolukuisuutta.
Automaattisen ohjelmistotestauksen avulla pystytään vähentämään tarvittavaa manuaalista testausta ohjelmistokehityksen aikana. Tämä vapauttaa resursseja sovellusten toiminnallisuuksien kehittämiseen ja parantaa sovellusten toiminnallisuuksien toteutuksien laatua. Teollisuusrobottien offline-ohjelmointi vaiheessa hyödynnetään simulaatiosovelluksia sovellusten toiminnan tarkastelussa. Tässä kehitysvaiheessa tarkastetaan ohjelmistojen toimintalogiikka, robotin alustavat liikeradat, turva-alueet ja käytetyt I/O-signaalit. Koska offline-ohjelmoinnin aikana robotti ja sovelluksen muut toimilaitteet eivät ole saatavilla, tässä vaiheessa ei pystytä analysoimaan näiden yhteistoimintaa tai määrittämään tarkasti robotin paikoituspisteitä. Online-ohjelmoinnin aikana päästään testaamaan suunniteltuja liikeratoja sekä paikoituspisteitä robotilla sekä analysoimaan robotin toiminnallisuutta yhteistyössä muiden toimilaitteiden kanssa. Online-ohjelmoinnin aikana toiminnallisuuksien muutoksien sekä virheiden määrä voi lisääntyä ja tällöin myös sovelluksen toiminnan oikeellisuuden tarkastamisen merkitys kasvaa.
Perinteisten ohjelmistotestauksen testaussovelluksia on vaikea tai mahdotonta hyödyntää osana teollisuusrobottien ohjelmistokehitystä alakohtaisten muuttujien, funktiokutsujen ja ohjelmistorakenteiden takia. Osana tätä työtä on tähän tarkoitukseen suunniteltu sekä toteutettu staattinen testaussovellus. Testaussovelluksen pilottiversiolla kohdeyrityksen kehittäjät voivat suorittaa staattista testausta omalta koneeltaan FANUC robottisovellusten varmuuskopiolle. Suunnitteluvaiheessa on määritelty testitapaukset, joita testaussovelluksen tulee suorittaa robottien ohjausohjelmisto- ja turva-alueen konfiguraatiotiedostoille. Testaussovelluksella pystytään todentamaan kehitysvaiheessa toteutettuja virheellisiä rekisteriarvojen sekä I/O -signaalien nimeämisiä, aliohjelmistojen kutsuja sekä turva-alue konfiguraatioita. Testaussovelluksen avulla toteutuksien testaukset saadaan yhtenäistettyä kehittäjästä riippumattomiksi, vähennetään tarkastukseen tarvittavaa manuaalista työtä ja saadaan todettua testattujen ominaisuuksien toiminnallisuuksien oikeellisuus.
Testaussovelluksen pilottiversio antaa lupaavia tuloksia tiedostojen sisällön analysoinnista. Testaussovelluksen toiminnallisuutta testattiin 16 toteutetun projektin varmuuskopioilla. Varmuuskopioita on otettu projektin kolmessa eri vaiheessa: projektin aloituksen Vanilla-pohjasta, kohdeyrityksen tiloissa suoritetun hyväksymistestauksen (FAT) jälkeen ja asiakkaan tiloissa suoritetun hyväksymistestauksen (SAT) jälkeen. Testituloksista nähdään, että varsinkin toiminnallisuuksiin vaikuttavat virheet vähenevät projektien edetessä, mutta tiedostojen selkolukuisuuteen vaikuttavat tyylivirheet kasvavat. Testaussovelluksen sekä automaattisen testausprosessin jatkokehityksellä saataisiin parannettua tulevaisuudessa jokaisen kohdeyrityksen teollisuusrobottiprojektin ohjausohjelmien ja turva-alue konfiguraatioiden laatua.
Automaattisen ohjelmistotestauksen avulla pystytään vähentämään tarvittavaa manuaalista testausta ohjelmistokehityksen aikana. Tämä vapauttaa resursseja sovellusten toiminnallisuuksien kehittämiseen ja parantaa sovellusten toiminnallisuuksien toteutuksien laatua. Teollisuusrobottien offline-ohjelmointi vaiheessa hyödynnetään simulaatiosovelluksia sovellusten toiminnan tarkastelussa. Tässä kehitysvaiheessa tarkastetaan ohjelmistojen toimintalogiikka, robotin alustavat liikeradat, turva-alueet ja käytetyt I/O-signaalit. Koska offline-ohjelmoinnin aikana robotti ja sovelluksen muut toimilaitteet eivät ole saatavilla, tässä vaiheessa ei pystytä analysoimaan näiden yhteistoimintaa tai määrittämään tarkasti robotin paikoituspisteitä. Online-ohjelmoinnin aikana päästään testaamaan suunniteltuja liikeratoja sekä paikoituspisteitä robotilla sekä analysoimaan robotin toiminnallisuutta yhteistyössä muiden toimilaitteiden kanssa. Online-ohjelmoinnin aikana toiminnallisuuksien muutoksien sekä virheiden määrä voi lisääntyä ja tällöin myös sovelluksen toiminnan oikeellisuuden tarkastamisen merkitys kasvaa.
Perinteisten ohjelmistotestauksen testaussovelluksia on vaikea tai mahdotonta hyödyntää osana teollisuusrobottien ohjelmistokehitystä alakohtaisten muuttujien, funktiokutsujen ja ohjelmistorakenteiden takia. Osana tätä työtä on tähän tarkoitukseen suunniteltu sekä toteutettu staattinen testaussovellus. Testaussovelluksen pilottiversiolla kohdeyrityksen kehittäjät voivat suorittaa staattista testausta omalta koneeltaan FANUC robottisovellusten varmuuskopiolle. Suunnitteluvaiheessa on määritelty testitapaukset, joita testaussovelluksen tulee suorittaa robottien ohjausohjelmisto- ja turva-alueen konfiguraatiotiedostoille. Testaussovelluksella pystytään todentamaan kehitysvaiheessa toteutettuja virheellisiä rekisteriarvojen sekä I/O -signaalien nimeämisiä, aliohjelmistojen kutsuja sekä turva-alue konfiguraatioita. Testaussovelluksen avulla toteutuksien testaukset saadaan yhtenäistettyä kehittäjästä riippumattomiksi, vähennetään tarkastukseen tarvittavaa manuaalista työtä ja saadaan todettua testattujen ominaisuuksien toiminnallisuuksien oikeellisuus.
Testaussovelluksen pilottiversio antaa lupaavia tuloksia tiedostojen sisällön analysoinnista. Testaussovelluksen toiminnallisuutta testattiin 16 toteutetun projektin varmuuskopioilla. Varmuuskopioita on otettu projektin kolmessa eri vaiheessa: projektin aloituksen Vanilla-pohjasta, kohdeyrityksen tiloissa suoritetun hyväksymistestauksen (FAT) jälkeen ja asiakkaan tiloissa suoritetun hyväksymistestauksen (SAT) jälkeen. Testituloksista nähdään, että varsinkin toiminnallisuuksiin vaikuttavat virheet vähenevät projektien edetessä, mutta tiedostojen selkolukuisuuteen vaikuttavat tyylivirheet kasvavat. Testaussovelluksen sekä automaattisen testausprosessin jatkokehityksellä saataisiin parannettua tulevaisuudessa jokaisen kohdeyrityksen teollisuusrobottiprojektin ohjausohjelmien ja turva-alue konfiguraatioiden laatua.