51 |
The role of process conformance and developers' skills in the context of test-driven developmentFucci, D. (Davide) 26 April 2016 (has links)
Abstract
Modern software development must adapt to demanding schedules while keeping the software at a high level of quality. Agile software development has been adopted in recent years to meet such a need. Test-driven development (TDD) is one practice that has arisen within the agile software development movement that leverages unit tests to develop software in incremental cycles. TDD supporters claim that the practice increases the productivity of the practitioners who employ it, as well as the internal and external quality of the software they develop. In order to validate or refute such claims, the software engineering research community has studied TDD for the last decade; the results of the empirical studies on the effects of TDD have been mostly inconclusive.
This dissertation has studied two factors that may impact the manifestation of the claimed effects of TDD on software’s external quality and developers’ productivity: the developers’ conformance to the process (i.e., their ability to follow TDD) and their skills. The research was performed in four phases. In the first phase, the literature was reviewed to identify a set of factors that have been considered to affect TDD. In the second phase, two experiments were executed within academia. A total of 77 students at the University of Oulu, took part in the studies. These experiments investigated the quality of the software, as well as the subject’s productivity with respect to their programming and testing skills. A follow-up study, using data collected during the second experiment, explored the relation between the quality, productivity and the subjects’ process conformance. In the third phase, four industrial experiments, involving 30 professional, were performed. Process conformance and skills were investigated in relation to the TDD’s effects on external quality and productivity. The fourth phase synthesized the evidence gathered in the two previous phases.
The results show that TDD is not associated with improvements in external quality, or developers’ productivity. Further, improvements in both external quality and productivity are associated with skills, rather than with the process, at least in the case of professional developers. Hence, process conformance has a negligible impact. The productivity of novice developers, on the other hand, can benefit from the test-first approach promoted by TDD. / Tiivistelmä
Modernin ohjelmistokehityksen täytyy mukautua haastaviin aikatauluihin säilyttäen ohjelmistojen korkea laatu. Ketterä ohjelmistokehitys on viime vuosina omaksuttu tähän tarpeeseen ja suuntauksessa on saanut alkunsa testivetoisen kehityksen käytäntö, joka hyödyntää yksikkötestausta ohjelmiston inkrementaalisessa, syklisessä kehityksessä. Testivetoisen kehityksen puolestapuhujat väittävät tämän käytännön lisäävän ohjelmistokehittäjien tuottavuutta sekä ohjelmiston sisäistä ja ulkoista laatua. Ohjelmistotuotannon tutkimusyhteisö on tutkinut testivetoista kehitystä viimeisen vuosikymmenen aikana vahvistaakseen tai kumotakseen nämä väitteet. Empiiriset tutkimukset testivetoisen kehityksen vaikutuksista ohjelmistotuotantoon ovat suurelta osin tuloksettomia.
Tämä väitöstyö tutkii kahta tekijää, jotka voivat vaikuttaa testivetoisen kehityksen väitettyjen vaikutusten ilmentymiseen ohjelmiston ulkoisena laatuna ja ohjelmistokehittäjien tuottavuutena: ohjelmistokehittäjien taitoja ja prosessin mukaista toimintaa. Tutkimus toteutettiin neljässä vaiheessa. Ensimmäisessä vaiheessa tehtiin kirjallisuuskatsaus, jolla selvitettiin tekijöitä, joiden on katsottu vaikuttavan testivetoiseen kehitykseen. Toisessa vaiheessa tehtiin Oulun yliopistolla kaksi koetta, joihin osallistui kaikkiaan 77 opiskelijaa. Kokeissa tutkittiin ohjelmiston laadun ja osallistujien tuottavuuden suhdetta heidän ohjelmointi- ja testaustaitoihinsa. Toisen kokeen aikana kerättyä aineistoa hyödynnettiin jatkotutkimuksessa, jossa tarkasteltiin laadun, tuottavuuden ja prosessin mukaisen toiminnan suhdetta. Kolmannessa vaiheessa tehtiin neljä koetta, joihin osallistui 30 ohjelmistoalan ammattilaista. Prosessin mukaista toimintaa ja taitoja tutkittiin suhteessa testivetoisen kehityksen vaikutuksiin ohjelmiston ulkoiseen laatuun ja tuottavuuteen. Neljännessä vaiheessa syntetisoitiin kahden edellisen vaiheen löydökset.
Tulokset osoittavat, ettei testivetoinen kehitys liity ulkoisen laadun parantumiseen eikä ohjelmistokehittäjien tuottavuuteen. Parannukset laadussa ja tuottavuudessa liittyvät ennemmin taitoihin kuin prosessiin, ainakin ohjelmistokehityksen ammattilaisten kohdalla. Näin ollen prosessin mukaisella toiminnalla on vähäpätöinen vaikutus. Toisaalta testivetoisen kehityksen suosiman test-first-menettelytavan hyödyntäminen voi edistää aloittelevien ohjelmistokehittäjien tuottavuutta.
|
52 |
Testdrivenutveckling i industrimiljö : Erfarna och oerfarnautvecklares perspektivStarefeldt, Peter January 2017 (has links)
Test driven development [TDD] is an iterative technique where unit tests are written before production code. General idea is that quality, especially code design, improves with usage of TDD. Previous studies have had difficulties proving these benefits. Qualitative studies about TDD are rare and a deeper understanding how developers’ view relates to usage of TDD has been sought after. How experience affects usage and perception about TDD is of particular interest, and the study’s basis. Semi-structured interviews were conducted with three experienced and three inexperienced developers in a qualitative survey study. Obvious differences could be determined by letting those groups represent the experience range that exists. A deductive thematic analysis was performed with the help of a theoretical framework. Results show that workplace’s culture greatly affects how TDD is used. TDD is not commonly used and low adherence to protocol is also made visible. Differences in basic view about TDD is evident as well – creation of the code’s design is starting point for experienced developers, inexperienced use TDD as a tool in creation of unit tests and to control system correctness. / Testdriven utveckling [TDD] är en iterativ teknik där enhetstest skrivs före produktionskod. Tanken är att kvalité och framförallt design av kod förbättras vid användning av TDD. Tidigare studier visar svårigheter att bevisa dessa vinster. Kvalitativa studier är ovanliga i forskning om TDD och en djupare förståelse hur TDD används från utvecklarens synvinkel har eftersökts. Hur erfarenhet påverkar användning och uppfattning om TDD är särskilt intressant, och fungerar som studiens grund. Semistrukturerade intervjuer utfördes med tre erfarna och tre oerfarna utvecklare i en kvalitativ tvärsnittsstudie. Genom att låta grupperna representera det erfarenhetsspann som existerar kunde tydliga skillnader synliggöras. En deduktiv tematisk analys genomfördes med hjälp av ett teoretiskt ramverk. Studien visar framförallt att arbetsplatsens kultur påverkar stort hur TDD används. TDD används inte i särskilt stor utsträckning och låg regelmässighet blev även synliggjort. Förutom detta visades skillnader i grundläggande syn över TDD – skapande av kodens design är utgångspunkt för erfarna utvecklare, oerfarna använder TDD som verktyg att skapa tester och kontrollera systemets korrekthet.
|
53 |
Queued and Pooled Semantics for State Machines in the Umple Model-Oriented Programming LanguageAlghamdi, Aliaa January 2015 (has links)
This thesis describes extensions to state machines in the Umple model-oriented programming language to offer queued state machines (QSM), pooled state machines (PSM) and handing of the arrival of unexpected events. These features allow for modeling the behavior of a system or protocol in a more accurate way in Umple because they enable detecting and fixing common design errors such as unspecified receptions. In addition, they simplify the communication between communicating state machines by allowing for asynchronous calls of events and passing of messages between state machines. Also, a pooled state machine (PSM) has been developed to provide a different policy of handling events that avoid unspecified receptions. This mechanism has similar semantics as a queued state machine, but it differs in the way of detecting unspecified receptions because it helps handling these errors. Another mechanism has been designed to use the keyword ‘unspecified’ in whatever state of a state machine the user wants to detect these errors. In this thesis, the test-driven development (TDD) process has been followed to first modify the Umple syntax to add ‘queued,’ ‘pooled,’ and ‘unspecified’ keywords to Umple state machine’s grammar; and second, to make a change to the Umple semantics in order to implement these extensions in Umple. Then, additional modifications have been made to allow for Java code generation from those types of state machines. Finally, more test cases have been written to ensure that these models are syntactically and semantically correct. In order to show the usefulness and usability of these new features, an example is shown as a case study that is modeled using the queued state machine (QSM) besides other small tests cases.
|
54 |
Prototyp informačního systému pro exekutorské úřady / A Prototype of Information System for Executor OfficesBezděk, Dušan January 2016 (has links)
This master's thesis deals with analysis , design and implementation of information system for bailiff office . The system provides functionality for managing bailiff's files , their subjects , appropriate documents , financial requirements and cooperation with third parties . Moreover , the system enables communication with data boxes for receiving and sending messages and performing vetting in registers of economic subjects . The application implements also multitenant architecture , which means the system can serve multiple offices . The information system is realised as a web application in ASP. NET MVC technology and written in C\# language . The client side of the application is composed of AngularJS and Bootstrap frameworks .
|
55 |
Webbportal för nätverks-övervakning : Utveckling av en Single Page Application i .NET och JavaScript / Web Portal for Network Monitoring : Development of a Single Page Application. NET and JavaScriptBorgström, Joakim, Gerdin, Stefan January 2013 (has links)
I detta projekt jobbar vi för att skapa ett program åt Infozone Sverige AB tillsammans med professionella utvecklare från företaget. Programmet är en webbportal som används till att övervaka och visa driftinformation om ett nätverk. Tanken är att denna portal skall integreras i ett ännu ej byggt system för nätverksövervakning som Infozone senare kan sälja till kund. Produkten tas fram med Scrum samt testdriven utveckling och under utvecklingen jobbar laget med bestämda metoder och SOLID-principerna för att säkerställa programmets kvalitet. Webbportalen utnyttjar moderna teknologier och ramverk för webbutveckling, bland annat är den en Single Page Application (SPA), använder följsam webbdesign och utnyttjar Microsofts .NET-plattform. I slutändan är inte alla ställda krav uppfyllda, men i och med att Scrum används är programmet fungerande vid projektets avslutande. De krav som faktiskt implementeras görs så till fullo. Vidare visar det sig att det inte alltid är bäst att använda de senaste ramverken, utan mer beprövade metoder och teknologier kan i vissa fall vara mer lämpliga. / In this project we are creating a program for Infozone Sverige AB together with professional developers from the company. The program is a web portal which will be used to monitor and show system status of a network. The plan is that this web portal will be integrated into a not yet built network monitoring system which Infozone later can sell to their clients. The product is developed using Scrum together with test-driven development and during the development the team is working with certain methods and the SOLID principles to ensure the quality of the program. The web portal takes advantage of modern technologies and frameworks for web development, among other things it is a Single Page Application (SPA), uses responsive design and Microsoft’s .NET platform. In the end not all requirements are met, but because we are using Scrum, the program is functioning at the end of the project. The requirements that are implemented, are fully so. Furthermore, it is shown that it is not always best to use the latest frameworks, but the more tested methods and technologies can in some cases be more appropriate.
|
56 |
Test vid utveckling av IT- system : En studie om metoder och arbetssätt för low-level test / Test in Development of IT systems : A study of methods and procedures for low-level testVega Ledezma, Madeleine, Arslan, Murat-Emre January 2014 (has links)
Test av informationssystem är en viktig del inom systemutvecklingsprocessen för att minimera felaktigheter och förbättra tillförlitligheten av system. Trafikverkets IT enhet hade ett fastställt och strukturerat testarbete för high-level test däremot hade de inte ett fastställt strukturerat testarbete inom low-level test. Vi fick i uppdrag att undersöka metoder och arbetssätt som fanns inom low-level test. Vi skulle också jämföra system som genomgått ett strukturerat testarbete inom low- och high-level test mot system som genomgått ostrukturerat low-level test och strukturerat high-level test. Målet med examensarbetet var att föreslå lämpliga metoder och arbetsätt inom low-level test för Trafikverkets IT enhet. Målet var också att ge en rekommendation ifall ett strukturerat testarbete inom low- och high-level var att rekommendera i jämförelse mot system som genomgått ostrukturerat low-level test och strukturerat high-level test. Genom litterära studier och intervjuer med Trafikverkets resurser genomförde vi vår undersökning och kom fram till vårt resultat.Vår rekommendation för Trafikverket IT var att de ska använda sig utav testdriven utveckling eftersom utvecklarna var osäkra på vad som skulle testas och metoden skulle klargöra detta. Dessutom ville de ha valmöjligheter och riktlinjer som skulle ge dem en mer bestämd arbetsstruktur. Vi rekommenderar också en anpassning av Self-Governance ramverket där aktiviteter väljs ut för varje projekt av en metodansvarig eller projektansvarig (Scrum Master) som bestämmer vilka aktiviteter som ska utföras på individ- och gruppnivå. / Testing of information systems is an essential part of the system development process to minimize errors and improve the reliability of systems. Trafikverket IT unit had a structured testing in the test phase high-level, however, they had not a structured testing in the development phase, low-level tests. We were assigned to examine methods and working methods in low-level test. We also would compare systems that had undergone a structuredtesting in low-and high-level test against systems that had undergone an unstructured low-leveltest and structured high-level test.The goal of the thesis was to propose appropriate method/methods in low-level test for Trafikverket IT unit. The goal was also to make a recommendation if a structured testing in low-and high-level were to be recommended in comparison with systems that had undergone unstructured low-level test and structured high-level test. Through literary studies and interviews with Trafikverket employees we reached our result. Our recommendation for Trafikverket IT is that they should use test-driven development because developers were unsure of what should be tested and the method would make thisclear. The developers also wanted to have options and guidelines that would give them a definite work structure. We also recommend an adaptation of the Self-Governance frameworkfrom where activities can be selected from each project manager (Scrum Master) that determines which activities will be performed in individual- and group level for each project.
|
Page generated in 0.0877 seconds