Ohjelmointivirheiden raportointityökalut
Tiikkainen, Ville (2021)
Tiikkainen, Ville
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-2021060314062
https://urn.fi/URN:NBN:fi:amk-2021060314062
Tiivistelmä
Tämän opinnäytetyön tavoitteena oli tutkia erilaisia ohjelmistovirheitä, kuinka niiden syntyminen voidaan estää, sekä niiden raportointiin tarkoitettuja työkaluja. Lisäksi kehitettiin yksinkertainen demoprojekti, jonka tarkoitus oli demonstroida valittujen raportointityökalujen integroimista ulkoiseen verkkokäyttöliit-tymään.
Työssä käytiin läpi erityyppiset ohjelmointivirheet, joita ovat käännösvirheet, ajonaikaiset virheet, sekä loo-giset virheet. Lisäksi jokaisesta ohjelmointivirhetyypistä on esimerkki. Tämän lisäksi esiteltiin kaksi tapaa koettaa estää ohjelmointivirheiden pääseminen lopulliseen tuotteeseen, testaaminen ja katselmointi. Suu-rin osa ohjelmointivirheistä voidaan estää näillä prosesseilla, mutta osa virheistä tulee jäämään käyttäjän raportoitavaksi.
Työssä verrataan kahta eri työkalua: Bugzilla ja Azure Boards, joita on mahdollista käyttää ongelmien ra-portoimiseen sekä projektin hallintaan. Molemmista työkaluista käytiin läpi perustietoa, kuten raportin elinkaari järjestelmässä, lisenssi, hinta, ekosysteemi sekä integroitavuus. Tämän jälkeen työkaluja verrattiin näiden perusteella. Integroitavuus verrattiin demoprojektilla, jonka tarkoitus on toimia verkkokäyttöliitty-mänä molemmille työkaluille. Demoprojektissa demonstroitiin virheraportin luominen, hakeminen ja päi-vittäminen työkalujen REST-rajapintaa käyttämällä.
Työn lopuksi esitettiin vertailun tulokset tiiviisti, ja tultiin lopputulokseen, että molemmilla työkaluilla on puolensa, eikä kumpikaan ole aina paras ratkaisu. Azure Boards hyötyy suuresti Azure DevOps -ympäris-töstä, kun taas Bugzillan yksinkertaisempi integrointirajapinta sekä laajennostuki mahdollistaa sen integ-roimisen helpommin haluttuun ympäristöön. The objective of this thesis was to research different programming errors, how to prevent them, and the existing tools meant for reporting them. Also, a web interface was developed for the sole purpose of demonstrating the integration of selected tools into a third-party interface.
The thesis goes over different kinds of programming errors with examples, which are compilation errors, runtime errors, and logical errors. Also, it introduces two different processes that are used to minimize the number of errors that make their way into the final product, testing and code reviewing. Most of the errors can be prevented with these processes, but some still make their way into the product. Some of these might not be found by developers, so users should have a way of reporting these errors.
Two products were compared: Bugzilla and Azure Boards. Both can be used to report errors and to manage a project. Basic information, such as the lifetime of reports, licensing, price, surrounding ecosystem and integrability, was researched for both. The tools were compared using these details, and the integrability was tested with a demonstration project, which was used as a web interface for the tools. The project implemented creating, searching, and updating reports via REST API.
At the end of the thesis the results of the comparison are laid out, and the conclusion is that both tools have their positives, and neither is always the best. Azure Boards benefits massively from being part of Microsoft Azure DevOps services, while Bugzilla’s simpler integration interface and extension support makes it easier to integrate into different systems.
Työssä käytiin läpi erityyppiset ohjelmointivirheet, joita ovat käännösvirheet, ajonaikaiset virheet, sekä loo-giset virheet. Lisäksi jokaisesta ohjelmointivirhetyypistä on esimerkki. Tämän lisäksi esiteltiin kaksi tapaa koettaa estää ohjelmointivirheiden pääseminen lopulliseen tuotteeseen, testaaminen ja katselmointi. Suu-rin osa ohjelmointivirheistä voidaan estää näillä prosesseilla, mutta osa virheistä tulee jäämään käyttäjän raportoitavaksi.
Työssä verrataan kahta eri työkalua: Bugzilla ja Azure Boards, joita on mahdollista käyttää ongelmien ra-portoimiseen sekä projektin hallintaan. Molemmista työkaluista käytiin läpi perustietoa, kuten raportin elinkaari järjestelmässä, lisenssi, hinta, ekosysteemi sekä integroitavuus. Tämän jälkeen työkaluja verrattiin näiden perusteella. Integroitavuus verrattiin demoprojektilla, jonka tarkoitus on toimia verkkokäyttöliitty-mänä molemmille työkaluille. Demoprojektissa demonstroitiin virheraportin luominen, hakeminen ja päi-vittäminen työkalujen REST-rajapintaa käyttämällä.
Työn lopuksi esitettiin vertailun tulokset tiiviisti, ja tultiin lopputulokseen, että molemmilla työkaluilla on puolensa, eikä kumpikaan ole aina paras ratkaisu. Azure Boards hyötyy suuresti Azure DevOps -ympäris-töstä, kun taas Bugzillan yksinkertaisempi integrointirajapinta sekä laajennostuki mahdollistaa sen integ-roimisen helpommin haluttuun ympäristöön.
The thesis goes over different kinds of programming errors with examples, which are compilation errors, runtime errors, and logical errors. Also, it introduces two different processes that are used to minimize the number of errors that make their way into the final product, testing and code reviewing. Most of the errors can be prevented with these processes, but some still make their way into the product. Some of these might not be found by developers, so users should have a way of reporting these errors.
Two products were compared: Bugzilla and Azure Boards. Both can be used to report errors and to manage a project. Basic information, such as the lifetime of reports, licensing, price, surrounding ecosystem and integrability, was researched for both. The tools were compared using these details, and the integrability was tested with a demonstration project, which was used as a web interface for the tools. The project implemented creating, searching, and updating reports via REST API.
At the end of the thesis the results of the comparison are laid out, and the conclusion is that both tools have their positives, and neither is always the best. Azure Boards benefits massively from being part of Microsoft Azure DevOps services, while Bugzilla’s simpler integration interface and extension support makes it easier to integrate into different systems.