Enhancing Software Quality : A Comprehensive Study of Modern Software Testing Methods
Karvonen, Jere (2024)
Karvonen, Jere
2024
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-2024051511942
https://urn.fi/URN:NBN:fi:amk-2024051511942
Tiivistelmä
Tämä opinnäytetyö pyrkii tarjoamaan kattavan yleiskuvan nykyaikaisista ohjelmistotestausmene-telmistä, työn tavoitteena on antaa lukijalle parempi ymmärrys näiden menetelmien hyödyistä sekä haitoista.
Alkaen kirjallisuuskatsauksella, ohjelmistotestauksen kehitystä sen alkuajoista 1940-luvun puoli-välistä nykyaikaisiin lähestymistapoihin tarkastellaan, korostaen siirtymistä perinteisistä tes-tausmenetelmistä nykyaikaisiin lähestymistapoihin.
Lisäksi tämä opinnäytetyö pyrkii tuomaan esille nykyaikaisten ohjelmistotestausmenetelmien yleisiä ominaisuuksia, kuten vahvaa riippuvuutta testiautomaatiosta, shift-left- ja shift-right-testaus, sekä jatkuva- ja tutkivatestaus, antamalla perusteellisen erittelyn jokaisesta näistä me-netelmästä.
Perinteisten ja nykyaikaisten testauslähestymistapojen vertaileva analyysi suoritetaan viiden keskeisen kriteerin perusteella: luotettavuus, skaalautuvuus, ylläpidettävyys, tehokkuus ja sopeu-tumiskyky. Tämän analyysin avulla molempien metodologioiden edut sekä haitat tuodaan esiin, mikä auttaa lukijaa ymmärtämään paremmin, mikä menetelmä sopii parhaiten heidän tarpeisiinsa.
Nykyaikaisten testauskäytäntöjen omaksumisen haasteet, kuten tarvittava kulttuurimuutos, taito-vaatimusten kasvu ja infrastruktuurivaatimusten muutokset, tunnistetaan ja käydään läpi. Lisäksi selvitetään ohjelmistotestauksen tulevaisuuden suuntaukset sekä uudet trendit, kuten tekoälyn käyttö, kooditon automaatio ja koneoppimisen hyödyntäminen.
Tämä opinnäytetyö korostaa nykyaikaisten ohjelmistotestausmenetelmien mahdollisia etuja sekä haittoja ohjelmiston kokonaislaadun ja luotettavuuden parantamisessa. Sen tarkoituksena on toimia oppaana alan ammattilaisille päätöksenteossa siitä, mikä testausmenetelmä sopii parhai-ten heidän tarpeisiinsa. This thesis aims to provide a comprehensive overview of modern software testing methods, with the end goal of providing the reader with a better understanding of the advantages and disad-vantages of utilizing these methods.
Starting with a literature review, the evolution of software testing from its beginnings in the mid-1940’s to the modern-day approaches in use today is analyzed, highlighting the gradual shift from traditional testing methods to more modern approaches.
Additionally, this thesis aims to underline the common characteristics of modern software testing approaches such as the heavy reliance on test automation, the use of shift-left and shift-right testing, and the practices of continuous, and exploratory testing, by giving a thorough breakdown on each of these methods.
Comparative analysis of both traditional and modern testing approaches is conducted based five key criteria: reliability, scalability, maintainability, efficiency, and adaptability. Through this analy-sis, the advantages, and disadvantages of both these methodologies are outlined, giving the reader a better understanding on which methodology may fit their needs better.
The challenges of adopting modern testing practices, such as the cultural shift needed, increase in skill requirements, and changes in infrastructure requirements are identified and addressed. Additionally, the potential future direction and emerging trends in software testing field such as the use of artificial intelligence, codeless automation, and the use of machine learning are inves-tigated.
This thesis highlights the potential advantages as well as the disadvantages of the use of modern software testing methods in enhancing overall software quality and reliability. It aims to serve as a guide for practitioners to use when making the decision on which testing methodology fits their specific needs the best.
Alkaen kirjallisuuskatsauksella, ohjelmistotestauksen kehitystä sen alkuajoista 1940-luvun puoli-välistä nykyaikaisiin lähestymistapoihin tarkastellaan, korostaen siirtymistä perinteisistä tes-tausmenetelmistä nykyaikaisiin lähestymistapoihin.
Lisäksi tämä opinnäytetyö pyrkii tuomaan esille nykyaikaisten ohjelmistotestausmenetelmien yleisiä ominaisuuksia, kuten vahvaa riippuvuutta testiautomaatiosta, shift-left- ja shift-right-testaus, sekä jatkuva- ja tutkivatestaus, antamalla perusteellisen erittelyn jokaisesta näistä me-netelmästä.
Perinteisten ja nykyaikaisten testauslähestymistapojen vertaileva analyysi suoritetaan viiden keskeisen kriteerin perusteella: luotettavuus, skaalautuvuus, ylläpidettävyys, tehokkuus ja sopeu-tumiskyky. Tämän analyysin avulla molempien metodologioiden edut sekä haitat tuodaan esiin, mikä auttaa lukijaa ymmärtämään paremmin, mikä menetelmä sopii parhaiten heidän tarpeisiinsa.
Nykyaikaisten testauskäytäntöjen omaksumisen haasteet, kuten tarvittava kulttuurimuutos, taito-vaatimusten kasvu ja infrastruktuurivaatimusten muutokset, tunnistetaan ja käydään läpi. Lisäksi selvitetään ohjelmistotestauksen tulevaisuuden suuntaukset sekä uudet trendit, kuten tekoälyn käyttö, kooditon automaatio ja koneoppimisen hyödyntäminen.
Tämä opinnäytetyö korostaa nykyaikaisten ohjelmistotestausmenetelmien mahdollisia etuja sekä haittoja ohjelmiston kokonaislaadun ja luotettavuuden parantamisessa. Sen tarkoituksena on toimia oppaana alan ammattilaisille päätöksenteossa siitä, mikä testausmenetelmä sopii parhai-ten heidän tarpeisiinsa.
Starting with a literature review, the evolution of software testing from its beginnings in the mid-1940’s to the modern-day approaches in use today is analyzed, highlighting the gradual shift from traditional testing methods to more modern approaches.
Additionally, this thesis aims to underline the common characteristics of modern software testing approaches such as the heavy reliance on test automation, the use of shift-left and shift-right testing, and the practices of continuous, and exploratory testing, by giving a thorough breakdown on each of these methods.
Comparative analysis of both traditional and modern testing approaches is conducted based five key criteria: reliability, scalability, maintainability, efficiency, and adaptability. Through this analy-sis, the advantages, and disadvantages of both these methodologies are outlined, giving the reader a better understanding on which methodology may fit their needs better.
The challenges of adopting modern testing practices, such as the cultural shift needed, increase in skill requirements, and changes in infrastructure requirements are identified and addressed. Additionally, the potential future direction and emerging trends in software testing field such as the use of artificial intelligence, codeless automation, and the use of machine learning are inves-tigated.
This thesis highlights the potential advantages as well as the disadvantages of the use of modern software testing methods in enhancing overall software quality and reliability. It aims to serve as a guide for practitioners to use when making the decision on which testing methodology fits their specific needs the best.