Lakki. Lisää ot sik k o osoit t am alla. Nöyrästi vain lakki kourassa... Jussi Vänskä Espotel Oy. vierailuluentosarja OTM kurssi 2010

Samankaltaiset tiedostot
Työkalut ohjelmistokehityksen tukena

Ohjelmistojen mallintaminen. Luento 11, 7.12.

Ohjelmistotekniikan menetelmät, Ohjelmistotuotannon työkaluista

Takki. Lisää ot sik k o osoit t am alla. Nyt se sopii, tai sitten ei. Jussi Vänskä Espotel Oy. vierailuluentosarja OTM kurssi

Ohjelmiston testaus ja laatu. Ohjelmistotekniikka elinkaarimallit

C-ohjelmoinnin peruskurssi. Pasi Sarolahti

statbeatmobile PROJECT REVIEW iteration 1

Ketterä vaatimustenhallinta

Ohjelmistotekniikka - Luento 2

SEPA diary. Dokumentti: SEPA_diary_PK_HS.doc Päiväys: Projekti: AgileElephant Versio: V0.3

Avointen ohjelmistojen käyttö ohjelmistokehityksessä

Ohjelmistotekniikka - Luento 2 Jouni Lappalainen

Testausdokumentti. Kivireki. Helsinki Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

Yksikkötestaus. import org.junit.test; public class LaskinTest public void testlaskimenluonti() { Laskin laskin = new Laskin(); } }

Scrum is Not Enough. Scrum ei riitä. Ari Tanninen & Marko Taipale. Nääsvillen oliopäivä 2009 Tampereen teknillinen yliopisto 9.12.

Copyright Observis Oy All rights reserved. Observis Oy Ville Kanerva, CTO Heikki Isotalus, COO Datasta tietoa

T Tietojenkäsittelyopin ohjelmatyö. Testiraportti, vaihe T1. Tietokonegrafiikka-algoritmien visualisointi. Testiraportti, vaihe T1

Test-Driven Development

TIE Ohjelmistojen suunnittelu

OTM viikoilla 18 ja 19

Onnistunut Vaatimuspohjainen Testaus

Power Steering for ATV

Tähtitieteen käytännön menetelmiä Kevät 2009 Luento 4: Ohjelmointi, skriptaus ja Python

Testausraportti. Orava. Helsinki Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

Tapahtuipa Testaajalle...

PLA Mobiiliohjelmointi. Mika Saari

Testaussuunnitelma. Koskelo. Helsinki Ohjelmistotuotantoprojekti. HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

Testiautomaatio tietovarastossa. Automaattisen regressiotestauksen periaate ja hyödyt

Projektityö

Kuntasektorin kokonaisarkkitehtuuri

Suomi.fi palveluiden hyödyntäminen valinnanvapaus ja palvelutietovaranto

Toteutusvaihe T2 Edistymisraportti

Test-Driven Development

LIITE 1 HANKITTAVAT KOULUTUKSET POHJOIS-POHJANMAAN ELY-KESKUS Koulutuksen nimi ja koulutuskuvauksen numero Paikkakunta

Helia Ohjelmointitaito Tuomas Kaipainen Mermit Business Applications Oy Mermit Business Applications

Pedacode Pikaopas. Java-kehitysympäristön pystyttäminen

Ohjelmointi 1 / syksy /20: IDE

Testaaminen ohjelmiston kehitysprosessin aikana

Ohjelmistotekniikan menetelmät, kesä 2008

Joonas Ruotsalainen GIT PIKAOPAS. Tutkielma 2011

Ohjelmistotestaus -09

AS C-ohjelmoinnin peruskurssi 2013: C-kieli käytännössä ja erot Pythoniin

Testaussuunnitelma. Asdf. Helsinki Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

Testauksen hallinta Testaustyökalut Luento 7 Antti-Pekka Tuovinen

T Projektikatselmus

Scrumin käyttö ketterässä sovelluskehityksessä

Ohjelmointitekniikka lyhyesti Survival Kit 1 Evtek KA ELINKAARIMALLEISTA

T Projektikatselmus

UCOT-Sovellusprojekti. Testausraportti

Testausraportti. Oppimistavoitteiden hallintajärjestelmä harri

Ohjelmiston testaus ja laatu. Testaustasot

TIE Ohjelmistojen suunnittelu. Luento 2: protot sun muut

PLA Mobiiliohjelmointi. Mika Saari

Pythonin alkeet Syksy 2010 Pythonin perusteet: Ohjelmointi, skriptaus ja Python

Ohjelmistotuotantoprojekti

Agenda. Johdanto Ominaispiirteitä Kokonaisjärjestelmän määrittely Eri alojen edustajien roolit Sulautetut järjestelmät ja sulautettu ohjelmointi

CT60A4150 OHJELMISTOTESTAUKSEN PERUSTEET. Jussi Kasurinen Kevät 2016

Pedacode Pikaopas. Web-sovelluksen luominen

KONEAUTOMAATION LAATU JA TURVALLISUUS Marko Varpunen

Sopisiko testiautomaatio yritykseesi juuri nyt? Testiautomaation soveltuvuuden arviointiopas

2. Ohjelmistotuotantoprosessi

Testaussuunnitelma Labra

POHJOIS-KARJALAN AMMATTIKORKEAKOULU

ICT-ALOJEN KOULUTUSTARVEKYSELY tammi-helmikuu Raportti 4/2011. Varsinais-suomen elinkeino-, liikenne ja ympäristökeskuksen julkaisuja

Tarjolla tänää: Ohjelmiston toteutuksesta. Kuinka tulla hyväksi ohjelmoijaksi? CRC-kortit. Testilähtöinen kehittäminen JOT2007. Uudelleenrakentaminen

Turvakriittisen projektin menetelmät ja työkalut

Malliperustainen ohjelmistokehitys - MDE Pasi Lehtimäki

Ohjelmistotuotteen hallinnasta

Prosessimalli. 2. Ohjelmistotuotantoprosessi. Prosessimallin vaihejako. Prosessimallien perustehtävät. Ohjelmiston suunnittelu. Vaatimusmäärittely

TIE Ohjelmistojen testaus Harjoitustyön esittely osa 2: Vaiheet 3 & 4. Antti Jääskeläinen Matti Vuori

Ketteryys pähkinänkuoressa. Kokopäivän Scrum-kurssin sisältö tislattuna ja tiivistettynä kolmeen varttiin

TIE Ohjelmistojen testaus Harjoitustyön esittely osa 2: Vaiheet 3 & 4. Antti Jääskeläinen Matti Vuori

Simulaattoriavusteinen ohjelmistotestaus työkoneympäristössä. Simo Tauriainen

4. Luokan testaus ja käyttö olion kautta 4.1

Testilähtöinen ohjelmistokehitys. Testilähtöinen ohjelmistokehitys. TDD Testilähtöinen ohjelmistokehitys. Testi! Testi

Työkalujen merkitys mittaamisessa

TIE Ohjelmistojen suunnittelu. Luento 2: protot sun muut

LAATURAPORTTI Iteraatio 1

Testauksen hallintaa teekkareille (ja muille kiinnostuneille) Arto Stenberg

Testaussuunnitelma. PUSU-ryhmä. Helsinki Ohjelmistotuotantoprojekti. HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

Lohtu-projekti. Testaussuunnitelma

TESTIRAPORTTI - JÄRJESTELMÄ, ADMIN Virtuaaliyhteisöjen muodostaminen Versio 1.0

Testaustyökalut. Luento 11 Antti-Pekka Tuovinen. Faculty of Science Department of Computer Science

Ohjelmistoarkkitehtuuriin vaikuttavia tekijöitä. Kari Suihkonen

Yrittäjäkasvatuksen polku - sivusto. Yksityiskohtainen suunnittelu Huhtikuu 2018

Ohjelmistoprojekteista. Datanomiopiskelijat 2.vuosi

Testaus osana ohjelmistojen elinkaarta I

SEPA diary. Dokumentti: SEPA_diary_PK_HS.doc Päiväys: Projekti: AgileElephant

Ohjelmistotekniikan menetelmät, kevät 2008

CT60A4150 OHJELMISTOTESTAUKSEN PERUSTEET. Jussi Kasurinen Kevät 2015

COTOOL dokumentaatio Testausdokumentit

WCLIQUE. Ohjelmistoprojekti. Testaussuunnitelma

Projektin vaiheet

Automatisoinnilla tehokkuutta mittaamiseen

C-ohjelmoinnin peruskurssi. Pasi Sarolahti

Toiminnalliset ja ei-toiminnalliset vaatimukset Tunnus (ID) Vaatimus Vaatimuksen

Lean MITEN POISTAA TURHA, OPPIA JA KESKITTYÄ OLENNAISEEN

TUOMAS VÄLIMÄKI AUTOMAATTISEN TESTAUSJÄRJESTELMÄN KEHITYS. Diplomityö

Internet-pohjainen ryhmätyöympäristö

Transkriptio:

Lakki Nöyrästi vain lakki kourassa... Jussi Vänskä Espotel Oy vierailuluentosarja OTM kurssi 2010 2.luento: ohjelmistokehityksen päivärutiinit Lisää ot sik k o osoit t am alla Siitä vain reunasta Miten syödään elefantti? Jussi Vänskä OTM kevät 2010

TDD TDD eli Test Driven Development Regressiot Soveltuvuus ketteriin menetelmiin Pakottaa pieniin ohjelmistokokonaisuuksiin n. 1300 jäjestelmätestitapausta n. 500 regressiotestitapausta 10-100 yksikkötestitapausta per moduli Wanhan järjestelmän koko noin 500k SLOC Nykyisen koko arviolta 600k SLOC, mutta runsas XML pohjainen ohjelmiston tuottaminen ja mallien käyttö hankaloittavat arvion tekemistä.

CI Continous Integration Jatkuva integrointi- ja yksikkötestaus Aina jotakin toimivaa, thy shall never break the build Ei tarvita erillisiä testisovelluksia yksikkötestikehyksen kanssa Kuinka usein? Edellyttää työkalutukea sekä koosteen että käännöksen hallintaan Soveltuu ketteriin menetelmiin.

Mihin tarvitaan? Vaatimustenhallinta Ominaisuuksien hallinta Versionhallinta Yksikkötestaus Integrointitestaus Laitetestaus CI (ohjelmointi)

Vaatimusten hallintaan projektissa käytetään Borlandin Caliber ohjelmistoa, mutta sille vaihtoehtoisia ratkaisuja on haettu ohjelmista paristakin ohjelmistosta. TestLink http://testlink.sourceforge.net/docs/testlink.php Polarion http://www.polarion.com/ Caliber http://www.borland.com/us/products/caliber/index.html Erillisen työkalun käyttöön taulukkolaskentaohjelmiston sijasta on pari hyvää syytä Jäljitettävyys Tuki kehitysympäristölle Liitynnät muihin järjestelmiin

Ominaisuuksien hallinta on toteutettu Mantis tietokannan avulla. Mantis toimii sekä SCRUM backlogina että bugitietokantana. Tällöin backlog taskit on helppo linkittää toteutus-, testaus- ja reklamaatiotaskeihin. http://www.mantisbt.org/ http://scrum.dk/pages/about-scrum Ilman toimivaa backlog hallintaa on turha yrittää pyörittää SCRUM kierroksia. AP ja toteutustiimin nopeuden arviointi on laajennettu Mantis tietokantaan. Johtuen projektissa työskentelevien ulkopuolisten henkilöiden määrästä on työajan(laskutuksen) seuranta näppärästi yhdistettävissä samaan työkaluun.

Mantis

Versionhallinta on ehkä itsestäänselvyys, mutta sen valinta ei välttämättä ole. Nykyisellään vaihtoehtoja on käytännössä kolme; GIT, SVN ja CVS. Versionhallintaa käytetään projektissa myös koontikäännöskuorien määrittelemiseen. Käytännössä tämä tarkoittaa käännöksiin liittyvän metatiedon versioitumista varsinaisen lähdekoodin tavoin. http://svnbook.red-bean.com/ Lähdekoodin hallinta on muotoutunut rajusti projektin edetessä ja hioutunut hyvinkin joustavaksi.

SCM Jokainen projekti voi määritellä vapaasti oman julkaisun rakenteensa ja siihen kuuluvat ohjelmistoversiot Ohjelmistokomponentti voi versioitua vapaasti omaa tahtiaan. Komponenttien jakaminen eri projektien välillä helppoa

Yksikkötestauksen työkalun valintaan vaikuttaa vahvasti käytettävä käännösympäristö. Projektin ohjelmistot käännetään autotool ohjelmakokoelman avulla. Qt sovelluksille on tosin omakin testauskehys, mutta sitä ei projektissa hyödynnetä. CXXtest on junit perheen jälkeläinen, johon projekti päätyi lähinnä gcov tuen takia. void testcsoftwareversion::teststringconversion() { } std::string version = "10.9"; CSoftwareVersion<unsigned int> application( version ); std::string appversion = application; TS_ASSERT_EQUALS( version, appversion ); unsigned int b = 10; unsigned int c = 9; CSoftwareVersion<unsigned int> application2( b, c ); std::string someversion = application2; TS_ASSERT_EQUALS( version, someversion );

Integrointitestaus on huonosti automatisoitavissa. Usein integrointia varten on erillinen vastuuhenkilö. Toistaiseksi integrointitestaus suoritetaan käsin, mutta kehityksen alla on simuloidun laiteympäristön ja skriptattujen testitapausten yhdistäminen CI ympäristöön. Tällöin yksikkötestien lisäksi suoritetaisiin myös skriptatut integrointitestit automaattisesti. Testitapausten kehitys oli alunperin LabViev ja TestStand pohjainen, mutta siirtymässä työkaluriippumattomaan Python pohjaiseen skriptaukseen.

Laitetestaus on korvattu liki kokonaan simulaattoritestauksella. Ainoastaan julkaisujen ja uusien laiteominaisuuksien yhteydessä käytetään enää aitoa laitetta. Integrointitestaus ja käytettävyystestaus suoritetaan pääsääntöisesti simulaattorilla.

Jatkuvan integroinnin ympäristö osuus on määräävin kaikista kehitysympäristöön liittyvistä ohjelmistoista. Muiden työkalujen on toimittava yhteen CI ympäristön kanssa. Taipuminen näin päin siitä syystä, että toimivia CI ympäristöjä ei ole liiaksi saatavilla. Cruise http://cruisecontrol.sourceforge.net/dashboard.html Pulse http://zutubi.com/ Polarion http://www.polarion.com/ Polarion on laaja-alaisuutensa ansiosta tulevaisuuden työkalu, vaikka tällä hetkellä käännöspalvelut on koottu Pulseen.

Ohjelmointityökalut ovat oikeastaan toisarvoisia. Alunperin käytössä olivat ainakin seuraavat työkalut VisualStudio KDevelop Emacs Eclipse Qt designer Tärkempi varsinaista ohjelmointieditoria on käännösjärjestelmä. Alunperin ohjelmisto oli käsin määritellyn maken varassa. Sittemmin käännös siirrettiin autotool pohjaiseksi ja seuraava askel on cmake. Projektin edetessä editoriksi on vakiintunut Eclipse IDE mutta tuettuna on edellen cmaken avulla myös VisualStudio.

Eclipse

Toteutusvuo Uudet ominaisuudet järjestelmään käyvät läpi seuraavat vaiheet enemmän tai vähemmän SCRUM prosessin mukaisesti. Vaatimusmäärittely Valmistumistavoite Sprint aikataulutus Backlog Taski Testaus Hyväksyminen (DONE)