Automated app testing on real mobile devices
Nikanti, Patrick (2021)
Nikanti, Patrick
2021
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-202104134699
https://urn.fi/URN:NBN:fi:amk-202104134699
Tiivistelmä
Testiautomaatio ja sen monimutkainen sanasto olivat minulle tuoreita käsitteitä vielä ohjelmistokehitysurani alkuvaiheissa. Ne vaikuttavat olevan monelle muullekin alalla olevalle, jos ei tee työkseen ohjelmiston laadunvarmistusta. Tämän takia opinnäytetyössä käydään käytännön esimerkeillä, mitä testiautomaatio on, miten sitä kehitetään ja mitä siltä vaaditaan. Opinnäytetyössä käydään myös läpi, miten taustalla olevat kirjastot, kielet ja ohjelmistokehykset toimivat. Opinnäytetyön toimeksiantona oli kehittää päästä-päähän (end-to-end) testiautomaatio yhtä mobiilisovelluksen pääominaisuutta varten. Yhtenä vaatimuksena oli myös, että testiautomaatiota ajetaan oikeita mobiililaitteita (kuten Android ja iOS älypuhelimia) vasten. Automaatioympäristön pitäisi myös olla skaalautuva kymmeniin tai satoihin mobiililaitteisiin. Itse testiautomaatio on kehitetty Robot Framework automaatiokehyksellä, joka pyörii Python ohjelmointikielen päällä. Opinnäytetyö kuitenkin näyttää, että Python kieleen joudutaan turvautumaan suurimassa osassa ohjelmointilogiikasta. Näyttäen myös kuinka testiautomaation kehitys ei eroa perinteisestä ohjelmoinnista juuri ollenkaan. Työkokemusta testiautomaatiokehityksestä ja ohjelmiston laadunvarmistuksesta minulla oli opinnäytetyön kirjoittamisen aikana noin vuoden verran. Lopulta toimiva päästä-päähän testiautomaatio saatiin rakennettua. Testiautomaatiota ajetaan kymmeniä mobiililaitteita vasten. Kehitystiimimme voi varmistua, että sovelluksen ominaisuus toimii myös uusien ohjelmistoversioiden käyttöönottojen jälkeen. Itse olen tyytyväinen tuloksiin ja oppeihin mitä toimeksiannosta sain. Test automation and its intricate glossary were new things for me, still in the early stages of my software development career. They seem to be for many others in the industry also if not working on software quality assurance. For this reason, the thesis uses practical examples of what test automation is, how it is developed and what is required of it. The thesis will also touch on how the underlying libraries, languages, and software frameworks work. The thesis’s commission was to develop end-to-end test automation for a core feature of a mobile application. One requirement was that the test automation is run against real mobile devices (such as Android and iOS smartphones). The automation environment should also be scalable to dozens or hundreds of mobile devices. The test automation itself has been developed with Robot Framework automation framework that runs on top of the Python programming language. However, the thesis shows that resorting to Python language for programming logic is needed for most parts. Also showing that the development of test automation is almost no different from traditional programming. I had about a year of work experience in test automation development and software quality assurance during writing this thesis. Eventually, working end-to-end test automation was built. The test automation is run against dozens of mobile devices. Our development team can ensure that the application feature will continue to function even after new software version deployments. I am happy with the outcome and the learnings I got from the commission.