Static code analysis in Robot Framework : rules for Robocop
Alatalo, Tatu (2022)
Alatalo, Tatu
2022
All rights reserved. This publication is copyrighted. You may download, display and print it for Your own personal use. Commercial use is prohibited.
Julkaisun pysyvä osoite on
https://urn.fi/URN:NBN:fi:amk-2022052512089
https://urn.fi/URN:NBN:fi:amk-2022052512089
Tiivistelmä
Staattisesta koodianalysoinnista on tulossa osa testiautomaatiota ja se voi tehdä koodista helpompaa lukea, katselmoida sekä ylläpitää. Hyvät käytänteet kirjoittaessa koodia myös hidastavat koodin vanhenemista, vähentävät vikoja sekä lisäävät koodin uudelleenkäytettävyyttä.
Työn tilaaja Qvantel Oy oli kiinnostunut staattisesta koodianalysointi-työkalusta nimeltä Robocop Robot Frameworkille, joka mahdollisesti voitaisiin ottaa käyttöön asiakasohjelman testiautomaatiotiimissä. Työn tavoitteena oli ottaa selvää, onko Robocop sopiva staattinen koodianalysointi-työkalu testiautomaatiotiimille, paljonko työtä tarvitaan testikokoelmien sekä resurssitiedostojen muokkaamiseen, jos Robocop otetaan käyttöön sekä ottamaan selvää mikä on testiautomaatiotiimin tämänhetkinen koodistandardi.
Työ toteutettiin käyttäen sovellettua tutkimusstrategiaa sekä monimenetelmällistä tutkimusta, joka koostui määrällisestä, laadullisesta ja kehittämistutkimusmenetelmästä. Kolme tiedostoa valittiin testattavaksi Robocopin kanssa, joista kaksi oli testisarjoja ja yksi resurssitiedosto. Kaikki kolme tiedostoa ajettiin Robocopin läpi ja yksittäiset ongelmat kerättiin yhteen. Näistä keskusteltiin testiautomaatiotiimin kanssa ”säännöt Robocopille” nimisessä tapaamisessa, jossa päätettiin kuinka nämä esiin nostetut ongelmat tullaan käsittelemään. Tapaamisen lopputuloksena päätöksistä luotiin konfiguraatiotiedosto, jossa muokattiin Robocopin sisäänrakennettuja sääntöjä. Huomattiin myös, että sen lisäksi tarvittiin luoda kaksi yksilöllistä sääntöä. Lopuksi nämä tiedostot ajettiin uudestaan Robocopin kanssa, joka käytti luotua konfiguraatiotiedostoa sisältäen muokatut sisäänrakennetut ja yksilölliset säännöt.
Molempien mittauskertojen tuloksia verrattiin keskenään ja tulokset osoittivat, että ongelmia oli paljon vähemmän mukautettujen ja yksilöllisten sääntöjen kanssa kuin alkuperäisten sisäänrakennettujen sääntöjen kanssa. Vaikka Robocopin ilmoittamia ongelmia oli vähemmän ja ne voivat olla suhteellisen helppoja korjata menee kuitenkin tiimin kaikkien testisarjojen ja resurssitiedostojen muokkaamiseen paljon aikaa. Robocop otettiin käyttöön ja konfiguraatiotiedostoa alettiin käyttämään koodistandardina. Sivutuotteena syntyi myös käyttöohje Robocopin käyttöönottoa varten. Tulevaisuudessa Robocop on mahdollista integroida automatisoituun julkaisuputkeen, jossa se voi automaattisesti katselmoida sääntörikkomuksia vetopyynnöstä. Static code analysis is becoming part of test automation as it can help to make the code easier to read, review and maintain. Having good practises while making code also makes the code to age slower, reduce bugs during implementation and increase reusability.
Task was commissioned by Qvantel Oy for the test automation team from a customer program as they were looking for a static code analysis tool called Robocop for Robot Framework. Objectives were to find out if Robocop is a suitable static code analysis tool for the test automation team. Secondly, how much work is needed to edit test suites and resource files if Robocop is taken into use. Finally, it should be found out what is the current coding standard in the test automation team.
Task was done using applied research strategy and blended research methods including quantitative, qualitative and action research. Three files were chosen during the task to test with Robocop, two test suites and one resource file. All three were ran through Robocop and all the unique issues that were raised by Robocop were noted and then discussed with the test automation team. During this “rules for Robocop” -meeting it was agreed how those issues should be handled and a configure file for Robocop was created from the meeting notes. It was also noticed that two custom rules are needed and those were created before running all three files again with the configure file that included modified built-in and custom rules.
Results of those both execution measurements were compared, and the results were that the issue amount was a lot less with the modified rules than with the original built-in rules. Even though there were less issues raised by Robocop and those are effortless to fix, it was also noted that there are excessive number of issues to be handled that takes quite a lot of time. Robocop tool was taken into use in the test automation team and created configure file was also started using as a coding standard. A user guide for how to install and use Robocop was also created as a side product of the task. In the future it is possible to integrate Robocop with a continuous integration pipeline so it can automatically review pull requests for issues.
Työn tilaaja Qvantel Oy oli kiinnostunut staattisesta koodianalysointi-työkalusta nimeltä Robocop Robot Frameworkille, joka mahdollisesti voitaisiin ottaa käyttöön asiakasohjelman testiautomaatiotiimissä. Työn tavoitteena oli ottaa selvää, onko Robocop sopiva staattinen koodianalysointi-työkalu testiautomaatiotiimille, paljonko työtä tarvitaan testikokoelmien sekä resurssitiedostojen muokkaamiseen, jos Robocop otetaan käyttöön sekä ottamaan selvää mikä on testiautomaatiotiimin tämänhetkinen koodistandardi.
Työ toteutettiin käyttäen sovellettua tutkimusstrategiaa sekä monimenetelmällistä tutkimusta, joka koostui määrällisestä, laadullisesta ja kehittämistutkimusmenetelmästä. Kolme tiedostoa valittiin testattavaksi Robocopin kanssa, joista kaksi oli testisarjoja ja yksi resurssitiedosto. Kaikki kolme tiedostoa ajettiin Robocopin läpi ja yksittäiset ongelmat kerättiin yhteen. Näistä keskusteltiin testiautomaatiotiimin kanssa ”säännöt Robocopille” nimisessä tapaamisessa, jossa päätettiin kuinka nämä esiin nostetut ongelmat tullaan käsittelemään. Tapaamisen lopputuloksena päätöksistä luotiin konfiguraatiotiedosto, jossa muokattiin Robocopin sisäänrakennettuja sääntöjä. Huomattiin myös, että sen lisäksi tarvittiin luoda kaksi yksilöllistä sääntöä. Lopuksi nämä tiedostot ajettiin uudestaan Robocopin kanssa, joka käytti luotua konfiguraatiotiedostoa sisältäen muokatut sisäänrakennetut ja yksilölliset säännöt.
Molempien mittauskertojen tuloksia verrattiin keskenään ja tulokset osoittivat, että ongelmia oli paljon vähemmän mukautettujen ja yksilöllisten sääntöjen kanssa kuin alkuperäisten sisäänrakennettujen sääntöjen kanssa. Vaikka Robocopin ilmoittamia ongelmia oli vähemmän ja ne voivat olla suhteellisen helppoja korjata menee kuitenkin tiimin kaikkien testisarjojen ja resurssitiedostojen muokkaamiseen paljon aikaa. Robocop otettiin käyttöön ja konfiguraatiotiedostoa alettiin käyttämään koodistandardina. Sivutuotteena syntyi myös käyttöohje Robocopin käyttöönottoa varten. Tulevaisuudessa Robocop on mahdollista integroida automatisoituun julkaisuputkeen, jossa se voi automaattisesti katselmoida sääntörikkomuksia vetopyynnöstä.
Task was commissioned by Qvantel Oy for the test automation team from a customer program as they were looking for a static code analysis tool called Robocop for Robot Framework. Objectives were to find out if Robocop is a suitable static code analysis tool for the test automation team. Secondly, how much work is needed to edit test suites and resource files if Robocop is taken into use. Finally, it should be found out what is the current coding standard in the test automation team.
Task was done using applied research strategy and blended research methods including quantitative, qualitative and action research. Three files were chosen during the task to test with Robocop, two test suites and one resource file. All three were ran through Robocop and all the unique issues that were raised by Robocop were noted and then discussed with the test automation team. During this “rules for Robocop” -meeting it was agreed how those issues should be handled and a configure file for Robocop was created from the meeting notes. It was also noticed that two custom rules are needed and those were created before running all three files again with the configure file that included modified built-in and custom rules.
Results of those both execution measurements were compared, and the results were that the issue amount was a lot less with the modified rules than with the original built-in rules. Even though there were less issues raised by Robocop and those are effortless to fix, it was also noted that there are excessive number of issues to be handled that takes quite a lot of time. Robocop tool was taken into use in the test automation team and created configure file was also started using as a coding standard. A user guide for how to install and use Robocop was also created as a side product of the task. In the future it is possible to integrate Robocop with a continuous integration pipeline so it can automatically review pull requests for issues.