Testivetoisen ohjelmistokehityksen edut ja haitat ohjelmistoprojekteissa

Tässä tutkielmassa on tarkoitus selvittää testivetoisella ohjelmistokehityksellä mahdollisesti saavutettavia etuja ohjelmistoprojekteissa. Tutkimusmenetelmä-nä on kirjallisuuskatsaus. Aluksi tutkielmassa käsitellään vesiputousmallia, ketteriä menetelmiä, ohjelmistotestausta ja ohjelmiston laadun käs...

Täydet tiedot

Bibliografiset tiedot
Päätekijä: Perälä, Juuso
Muut tekijät: Informaatioteknologian tiedekunta, Faculty of Information Technology, Informaatioteknologia, Information Technology, Jyväskylän yliopisto, University of Jyväskylä
Aineistotyyppi: Kandityö
Kieli:fin
Julkaistu: 2018
Aiheet:
Linkit: https://jyx.jyu.fi/handle/123456789/58147
_version_ 1826225814722576384
author Perälä, Juuso
author2 Informaatioteknologian tiedekunta Faculty of Information Technology Informaatioteknologia Information Technology Jyväskylän yliopisto University of Jyväskylä
author_facet Perälä, Juuso Informaatioteknologian tiedekunta Faculty of Information Technology Informaatioteknologia Information Technology Jyväskylän yliopisto University of Jyväskylä Perälä, Juuso Informaatioteknologian tiedekunta Faculty of Information Technology Informaatioteknologia Information Technology Jyväskylän yliopisto University of Jyväskylä
author_sort Perälä, Juuso
datasource_str_mv jyx
description Tässä tutkielmassa on tarkoitus selvittää testivetoisella ohjelmistokehityksellä mahdollisesti saavutettavia etuja ohjelmistoprojekteissa. Tutkimusmenetelmä-nä on kirjallisuuskatsaus. Aluksi tutkielmassa käsitellään vesiputousmallia, ketteriä menetelmiä, ohjelmistotestausta ja ohjelmiston laadun käsitettä, jotta sen jälkeinen testivetoisen ohjelmistokehityksen tutkimukseen tutustuminen olisi selkeämpää. Testivetoinen ohjelmistokehitys, tai TDD, on suosittu ohjel-miston suunnittelumenetelmä, joka perustuu lyhyisiin iteraatioihin, joissa tes-tit kirjoitetaan aina ennen varsinaista ohjelmakoodia, tai testattavaa toiminnal-lisuutta. Tutkielmassa saavutetut tulokset viittaavat siihen, että testivetoisen ohjelmistokehityksen implementoinnilla saavutettavia etuja voivat olla mm.: ohjelmiston ulkoisen laadun paraneminen, virheiden väheneminen, koodikat-tavuuden paraneminen, koodin ja vaatimusten parempi ymmärtäminen, komp-leksisuuden paraneminen. Joitain haittoja, jotka saattavat myös hankaloittaa TDD:n implementointia, olivat: testivetoisen ohjelmistokehityksen implemen-toimiseen vaadittava aika ja vaiva, testivetoisen ohjelmistokehityksen kehittä-jiltä vaatima korkeampi taitokynnys, mahdollisesta TDD:n prosessin väärin-ymmärtämisestä aiheutuvat ongelmat ja mahdollinen joidenkin koodin osien heikkeneminen. Tuloksissa havaittiin myös epäselvyyttä ja ristiriitaisuutta, joka viittaa lisätutkimuksen tarpeeseen. The purpose of this thesis is to find out the benefits that may be gained in soft-ware projects by implementing test-driven development. The research method used in this thesis is literature review. Initially, the paper deals with the water-fall model, agile methods, software testing, and the concept of software quality to make it easier to understand when it later starts to review the research on test-driven development. Test-driven development, or TDD, is a popular soft-ware design method that is based on short iterations where writing test cases comes always before writing any functional code that is to be tested. The re-sults obtained in this thesis suggest that the benefits of implementing test-driven development include: improvement of the software’s external quality, reduction of errors, better code coverage, better understanding of the code and requirements, and better code complexity. Some disadvantages, which may also complicate the implementation of test-driven development were: time and effort required to implement test-driven development, higher skill threshold required by developers, possible problems caused by the misunderstanding of the TDD process and possible deterioration of some parts of the code. The re-sults also revealed ambiguity and contradiction, which suggests to the need for further research.
first_indexed 2019-08-19T08:21:07Z
format Kandityö
free_online_boolean 1
fullrecord [{"key": "dc.contributor.advisor", "value": "Pirhonen, Maritta", "language": "", "element": "contributor", "qualifier": "advisor", "schema": "dc"}, {"key": "dc.contributor.author", "value": "Per\u00e4l\u00e4, Juuso", "language": "", "element": "contributor", "qualifier": "author", "schema": "dc"}, {"key": "dc.date.accessioned", "value": "2018-05-28T07:24:19Z", "language": null, "element": "date", "qualifier": "accessioned", "schema": "dc"}, {"key": "dc.date.available", "value": "2018-05-28T07:24:19Z", "language": null, "element": "date", "qualifier": "available", "schema": "dc"}, {"key": "dc.date.issued", "value": "2018", "language": "", "element": "date", "qualifier": "issued", "schema": "dc"}, {"key": "dc.identifier.uri", "value": "https://jyx.jyu.fi/handle/123456789/58147", "language": null, "element": "identifier", "qualifier": "uri", "schema": "dc"}, {"key": "dc.description.abstract", "value": "T\u00e4ss\u00e4 tutkielmassa on tarkoitus selvitt\u00e4\u00e4 testivetoisella ohjelmistokehityksell\u00e4 mahdollisesti saavutettavia etuja ohjelmistoprojekteissa. Tutkimusmenetelm\u00e4-n\u00e4 on kirjallisuuskatsaus. Aluksi tutkielmassa k\u00e4sitell\u00e4\u00e4n vesiputousmallia, ketteri\u00e4 menetelmi\u00e4, ohjelmistotestausta ja ohjelmiston laadun k\u00e4sitett\u00e4, jotta sen j\u00e4lkeinen testivetoisen ohjelmistokehityksen tutkimukseen tutustuminen olisi selke\u00e4mp\u00e4\u00e4. Testivetoinen ohjelmistokehitys, tai TDD, on suosittu ohjel-miston suunnittelumenetelm\u00e4, joka perustuu lyhyisiin iteraatioihin, joissa tes-tit kirjoitetaan aina ennen varsinaista ohjelmakoodia, tai testattavaa toiminnal-lisuutta. Tutkielmassa saavutetut tulokset viittaavat siihen, ett\u00e4 testivetoisen ohjelmistokehityksen implementoinnilla saavutettavia etuja voivat olla mm.: ohjelmiston ulkoisen laadun paraneminen, virheiden v\u00e4heneminen, koodikat-tavuuden paraneminen, koodin ja vaatimusten parempi ymm\u00e4rt\u00e4minen, komp-leksisuuden paraneminen. Joitain haittoja, jotka saattavat my\u00f6s hankaloittaa TDD:n implementointia, olivat: testivetoisen ohjelmistokehityksen implemen-toimiseen vaadittava aika ja vaiva, testivetoisen ohjelmistokehityksen kehitt\u00e4-jilt\u00e4 vaatima korkeampi taitokynnys, mahdollisesta TDD:n prosessin v\u00e4\u00e4rin-ymm\u00e4rt\u00e4misest\u00e4 aiheutuvat ongelmat ja mahdollinen joidenkin koodin osien heikkeneminen. Tuloksissa havaittiin my\u00f6s ep\u00e4selvyytt\u00e4 ja ristiriitaisuutta, joka viittaa lis\u00e4tutkimuksen tarpeeseen.", "language": "fi", "element": "description", "qualifier": "abstract", "schema": "dc"}, {"key": "dc.description.abstract", "value": "The purpose of this thesis is to find out the benefits that may be gained in soft-ware projects by implementing test-driven development. The research method used in this thesis is literature review. Initially, the paper deals with the water-fall model, agile methods, software testing, and the concept of software quality to make it easier to understand when it later starts to review the research on test-driven development. Test-driven development, or TDD, is a popular soft-ware design method that is based on short iterations where writing test cases comes always before writing any functional code that is to be tested. The re-sults obtained in this thesis suggest that the benefits of implementing test-driven development include: improvement of the software\u2019s external quality, reduction of errors, better code coverage, better understanding of the code and requirements, and better code complexity. Some disadvantages, which may also complicate the implementation of test-driven development were: time and effort required to implement test-driven development, higher skill threshold required by developers, possible problems caused by the misunderstanding of the TDD process and possible deterioration of some parts of the code. The re-sults also revealed ambiguity and contradiction, which suggests to the need for further research.", "language": "en", "element": "description", "qualifier": "abstract", "schema": "dc"}, {"key": "dc.description.provenance", "value": "Submitted by Miia Hakanen (mihakane@jyu.fi) on 2018-05-28T07:24:19Z\nNo. of bitstreams: 0", "language": "en", "element": "description", "qualifier": "provenance", "schema": "dc"}, {"key": "dc.description.provenance", "value": "Made available in DSpace on 2018-05-28T07:24:19Z (GMT). No. of bitstreams: 0\n Previous issue date: 2018", "language": "en", "element": "description", "qualifier": "provenance", "schema": "dc"}, {"key": "dc.format.extent", "value": "25", "language": "", "element": "format", "qualifier": "extent", "schema": "dc"}, {"key": "dc.language.iso", "value": "fin", "language": null, "element": "language", "qualifier": "iso", "schema": "dc"}, {"key": "dc.rights", "value": "In Copyright", "language": "en", "element": "rights", "qualifier": null, "schema": "dc"}, {"key": "dc.subject.other", "value": "testivetoinen ohjelmistokehitys", "language": "", "element": "subject", "qualifier": "other", "schema": "dc"}, {"key": "dc.subject.other", "value": "TDD", "language": "", "element": "subject", "qualifier": "other", "schema": "dc"}, {"key": "dc.subject.other", "value": "test-driven development", "language": "", "element": "subject", "qualifier": "other", "schema": "dc"}, {"key": "dc.title", "value": "Testivetoisen ohjelmistokehityksen edut ja haitat ohjelmistoprojekteissa", "language": "", "element": "title", "qualifier": null, "schema": "dc"}, {"key": "dc.type", "value": "bachelor thesis", "language": null, "element": "type", "qualifier": null, "schema": "dc"}, {"key": "dc.identifier.urn", "value": "URN:NBN:fi:jyu-201805282814", "language": "", "element": "identifier", "qualifier": "urn", "schema": "dc"}, {"key": "dc.type.ontasot", "value": "Bachelor's thesis", "language": "en", "element": "type", "qualifier": "ontasot", "schema": "dc"}, {"key": "dc.type.ontasot", "value": "Kandidaatinty\u00f6", "language": "fi", "element": "type", "qualifier": "ontasot", "schema": "dc"}, {"key": "dc.contributor.faculty", "value": "Informaatioteknologian tiedekunta", "language": "fi", "element": "contributor", "qualifier": "faculty", "schema": "dc"}, {"key": "dc.contributor.faculty", "value": "Faculty of Information Technology", "language": "en", "element": "contributor", "qualifier": "faculty", "schema": "dc"}, {"key": "dc.contributor.department", "value": "Informaatioteknologia", "language": "fi", "element": "contributor", "qualifier": "department", "schema": "dc"}, {"key": "dc.contributor.department", "value": "Information Technology", "language": "en", "element": "contributor", "qualifier": "department", "schema": "dc"}, {"key": "dc.contributor.organization", "value": "Jyv\u00e4skyl\u00e4n yliopisto", "language": "fi", "element": "contributor", "qualifier": "organization", "schema": "dc"}, {"key": "dc.contributor.organization", "value": "University of Jyv\u00e4skyl\u00e4", "language": "en", "element": "contributor", "qualifier": "organization", "schema": "dc"}, {"key": "dc.subject.discipline", "value": "Tietoj\u00e4rjestelm\u00e4tiede", "language": "fi", "element": "subject", "qualifier": "discipline", "schema": "dc"}, {"key": "dc.subject.discipline", "value": "Information Systems Science", "language": "en", "element": "subject", "qualifier": "discipline", "schema": "dc"}, {"key": "yvv.contractresearch.funding", "value": "0", "language": "", "element": "contractresearch", "qualifier": "funding", "schema": "yvv"}, {"key": "dc.type.coar", "value": "http://purl.org/coar/resource_type/c_7a1f", "language": null, "element": "type", "qualifier": "coar", "schema": "dc"}, {"key": "dc.rights.accesslevel", "value": "openAccess", "language": null, "element": "rights", "qualifier": "accesslevel", "schema": "dc"}, {"key": "dc.type.publication", "value": "bachelorThesis", "language": null, "element": "type", "qualifier": "publication", "schema": "dc"}, {"key": "dc.subject.oppiainekoodi", "value": "601", "language": "", "element": "subject", "qualifier": "oppiainekoodi", "schema": "dc"}, {"key": "dc.subject.yso", "value": "ketter\u00e4t menetelm\u00e4t", "language": null, "element": "subject", "qualifier": "yso", "schema": "dc"}, {"key": "dc.subject.yso", "value": "testausmenetelm\u00e4t", "language": null, "element": "subject", "qualifier": "yso", "schema": "dc"}, {"key": "dc.subject.yso", "value": "ohjelmistotuotanto", "language": null, "element": "subject", "qualifier": "yso", "schema": "dc"}, {"key": "dc.subject.yso", "value": "ohjelmistosuunnittelu", "language": null, "element": "subject", "qualifier": "yso", "schema": "dc"}, {"key": "dc.rights.url", "value": "https://rightsstatements.org/page/InC/1.0/", "language": null, "element": "rights", "qualifier": "url", "schema": "dc"}]
id jyx.123456789_58147
language fin
last_indexed 2025-02-18T10:54:07Z
main_date 2018-01-01T00:00:00Z
main_date_str 2018
online_boolean 1
online_urls_str_mv {"url":"https:\/\/jyx.jyu.fi\/bitstreams\/205652f8-9ccb-4773-98c4-46a0fb684ed6\/download","text":"URN:NBN:fi:jyu-201805282814.pdf","source":"jyx","mediaType":"application\/pdf"}
publishDate 2018
record_format qdc
source_str_mv jyx
spellingShingle Perälä, Juuso Testivetoisen ohjelmistokehityksen edut ja haitat ohjelmistoprojekteissa testivetoinen ohjelmistokehitys TDD test-driven development Tietojärjestelmätiede Information Systems Science 601 ketterät menetelmät testausmenetelmät ohjelmistotuotanto ohjelmistosuunnittelu
title Testivetoisen ohjelmistokehityksen edut ja haitat ohjelmistoprojekteissa
title_full Testivetoisen ohjelmistokehityksen edut ja haitat ohjelmistoprojekteissa
title_fullStr Testivetoisen ohjelmistokehityksen edut ja haitat ohjelmistoprojekteissa Testivetoisen ohjelmistokehityksen edut ja haitat ohjelmistoprojekteissa
title_full_unstemmed Testivetoisen ohjelmistokehityksen edut ja haitat ohjelmistoprojekteissa Testivetoisen ohjelmistokehityksen edut ja haitat ohjelmistoprojekteissa
title_short Testivetoisen ohjelmistokehityksen edut ja haitat ohjelmistoprojekteissa
title_sort testivetoisen ohjelmistokehityksen edut ja haitat ohjelmistoprojekteissa
title_txtP Testivetoisen ohjelmistokehityksen edut ja haitat ohjelmistoprojekteissa
topic testivetoinen ohjelmistokehitys TDD test-driven development Tietojärjestelmätiede Information Systems Science 601 ketterät menetelmät testausmenetelmät ohjelmistotuotanto ohjelmistosuunnittelu
topic_facet 601 Information Systems Science TDD Tietojärjestelmätiede ketterät menetelmät ohjelmistosuunnittelu ohjelmistotuotanto test-driven development testausmenetelmät testivetoinen ohjelmistokehitys
url https://jyx.jyu.fi/handle/123456789/58147 http://www.urn.fi/URN:NBN:fi:jyu-201805282814
work_keys_str_mv AT peräläjuuso testivetoisenohjelmistokehityksenedutjahaitatohjelmistoprojekteissa