Ohjelmistotekniikka - Luento 10 Jouni Lappalainen

Koko: px
Aloita esitys sivulta:

Download "Ohjelmistotekniikka - Luento 10 Jouni Lappalainen"

Transkriptio

1 Ohjelmistotekniikka - Luento 10 Jouni Lappalainen Luku 19: Oliosuuntautuneiden sovellusten testaus - oliotestauksen testaustasot - oliotestauksen ominaispiirteitä ja testausmenetelmiä - luokkatason testausmenetelmät Luku 20: Web sovellusten testaus - Web sovelluksen testausprosessi - Web sovelluksen testaustapoja - sisällön, navigoinnin ja konfiguraation testaus Luku 21: Formaali mallintaminen ja verifiointi - matemaattisen notaation soveltaminen formaaliin spesifiointiin - OCL kieli - puhdastilamenetelmä

2 Pohdiskelun aiheita Di Lucca ja Fasolino esittelevät paperin luvussa 7.2 Websovelluksen testaustapoja, joilla pyritään varmistamaan, että sovellus vastaa sekä ei-toiminnallisia että toiminnallisia vaatimuksia. Millaiset testaustavat sopivat ei-toiminnallisille vaatimuksille ja miten Web-sovellusten erityispiirteet näkyvät näissä testaustavoissa. Miten Web-sovellusten toiminnallisuuden testaus eroaa perinteisten ohjelmistojen testauksesta? Di Lucca G., Fasolino A., Web Application Testing, Engineering_Mendes_C07WebTest.pdf

3 OOT testaustasot Luokkatestaus vastaa yksikkötestausta luokan operaatiot testataan luokan tilakäyttäytyminen testataan Integrointitestauksessa kolme strategiaa säieperustainen testaus - integroidaan luokat, joita tarvitaan käsittelemään jonkin syöte tai tapahtuma käyttöpohjainen testaus - integroidaan luokat, joita tarvitaan jokin käyttötapauksen mukaiseen toimintaan ryväspohjainen testaus - integroidaan luokat, joita tarvitaan toteuttamaan haluttu yhteistyö Järjestelmätestaus ja validointitestaus kuten perinteisessä testauksessa 3

4 Olioperustainen testaus Aloitetaan arvioimalla (tarkastamalla) OOA ja OOD mallien oikeellisuutta (syntaksi & semantiikka) ja yhdenmukaisuutta tutkimalla CRC korteilla kuvatut luokkien vastuut ja yhteistyö muiden luokkien kanssa Muutokset testausstrategiassa yksikkö-käsite laajenee kapseloinnin tuloksena integrointi kohdistuu luokkiin ja niiden suoritukseen säikeessä, käyttöskenaarion tai yhteistyön (ryväs) rajaamana validointi käyttää perinteisiä mustalaatikko-menetelmiä 4

5 Oliotestauksen ominaispiirteet Luokkatestaus ja luokkahierarkia Testataan luokan jokainen metodi (ja konstruktori) Testataan metodien vaikutukset luokan tilaan (attribuutteihin) tarvitaan omia (built-in) metodeja, joilla saadaan tila näkyville Periytyminen ei tee tarpeettomaksi kaikkien johdettujen luokkien läpikotaista testausta. luokan muuttuessa joudutaan testaamaan kaikki ko. luokkaa käyttävät sovellukset sekä luokasta perityt aliluokat aliluokkaan tehty muutos aiheuttaa perittyjen operaatioiden testaustarpeen. 5

6 Olioperustaiset testausmenetelmät Vikapohjainen testaus Perustuu olettamuksiin todennäköisistä vioista (faults) tutkiva (exploratory) testaus Analyysi- ja suunnittelutason kuvaukset antavat vihjeitä todennäköisistä vioista Skenaarioperustainen testien suunnittelu Skenaarioperustainen testaus keskittyy käyttäjän tekemiseen. Tämä tarkoittaa käyttötapauksista poimittujen tehtävien käyttämistä testien perustana. 6

7 Luokkatason testausmenetelmät Satunnainen testaus tunnistetaan luokalle sopivat operaatiot määritellään rajoitukset niiden käytölle (esim. järjestys) tunnistetaan pienin riittävä testisekvenssi (_) operaatiot, jotka määrittelevät luokan minimin elinhistorian generoi vaihteleva joukko satunnaisia (käypiä) testisekvenssejä laajennetaan luokan elinhistoriaa Account luokka: open(), setup(), deposit(), withdraw(), balance(), summarize(), creditlimit(), close() 7

8 Luokkatason testausmenetelmät Ositus(partitio)testaus vähentää testitapausten määrää aivan kuten ekvivalenssiositus perinteisessä testauksessa tilaperustainen ositus (tilaa muuttavat/ei-muuttavat) valitaan testioperaatioita, jotka muuttavat luokan tilaa, esim. Account luokka: deposit(), withdraw() attribuuttiperustainen ositus (attribuuttia käyttävät/ muuttavat) valitaan testioperaatioita, jotka käyttävät attribuutteja, esim. Account luokka: attribuutit balance, creditlimit kategoriaperustainen ositus valitaan testioperaatioita, jotka suorittavat toimintoja, esim. Account luokka: initialization (open(), setup()), computational (deposit(), withdraw()), termination (close()) operaatiot 8

9 20. Web-sovellusten testaus Web-sovelluksen suunnitteluaktiviteetit Käyttöliittymän suunnittelu Graafinen suunnittelu Sisällön suunnittelu Navigoinnin suunnittelu Arkkitehtuurisuunnittelu Komponenttisuunnittelu 9

10 Web-sovelluksen ympäristön vaikutus virheiden etsimiseen Nguyen 2000 Koska Web-sovelluksen testauksessa löydetään ensin virheitä asiakaspuolelta, kehittäjä/testaaja näkee virheen oireet - ei itse virhettä. Koska Web-sovellus on toteutettu eri konfiguraatioina eri ympäristöissä, voi olla vaikeaa tuottaa uudelleen tilanne, jossa virhe havaittiin. Vaikka jotkut virheet johtuvat virheellisestä suunnittelusta tai ohjelmoinnista, monet virheet voidaan jäljittää konfiguraatioon. Koska Web-sovellukset rakennetaan asiakas/palvelin arkkitehtuurille, virheen paikallistaminen voi olla vaikeaa (asiakas/palvelin/verkko). Jotkut virheet johtuvat staattisesta toimintaympäristöstä (konfiguraatio, jossa testataan), toiset dynaamisesta (suoritusaikaiset resurssit). 10

11 Sisällön testaus (syntaksi, semantiikka, tietokanta) Käyttäjä Käyttöliittymän suunnittelu Graafinen suunnittelu Sisällön suunnittelu Navigoinnin suunnittelu Käyttöliittymän Sisällön testaus (käytettävyys) testaus Navigoinnin testaus Komponenttitason testaus (toimintojen testaus, esim. polkutestaus) Web-sovelluksen testausprosessi Integrointitestaus Arkkitehtuurisuunnittelu Konfiguraation testaus (asiakas/palvelin) Komponenttisuunnittelu Suorituskykytestaus Turvallisuustestaus Teknologia 11

12 Sisällön testaus Kolme tärkeää tavoitetta syntaksivirheiden paljastaminen tekstidokumenteista, ja kaavioista (kirjoitusvirheet, sääntöjen rikkomiset) semanttisten virheiden paljastaminen (puutteet tiedon tarkkuudessa ja täydellisyydessä, tarjotaanko mahdollisuuksia väärinkäyttäjille) virheiden paljastaminen loppukäyttäjälle esitettävän sisällön rakenteesta ja organisoinnista (kuvat, kuvaukset) Katselmointi tärkeässä roolissa Myös dynaamisten sivujen testaus yhteys tietokantaan (tasoarkkitehtuuri) käyttäjän pyynnöt SQL lauseiksi 12

13 Web-sovelluksen testaustapoja /Di Lucca, Fasolino 2006 Suorituskykytestaus (performance testing) Varmistetaan tietyt järjestelmän ominaisuudet, kuten vasteaika, palveluaste (kriittisiä Web sovelluksissa) Kuormitustestaus (load testing) Piikkitestaus (stress testing) Yhteensopivuustestaus (compatibility testing) Järjestelmää testataan (vaatimusten mukaan) ennalta määritellyllä kuormalla. Mitataan kykyä selviytyä kuormasta minimikokoonpanolla. Testaan kykyä selviytyä yli sovittujen rajojen menevästä kuormasta (myös elpyä romahduksesta). Testataan sovelluksen toimivuutta erilaisilla palvelinalustoilla tai selaimilla

14 Web-sovelluksen testaustapoja /Di Lucca, Fasolino 2006 Käytettävyystestaus (usability testing) Käyttöön saamisen testaus (accessibility testing) Turvallisuustestaus (security testing) Varmistutaan sovelluksen helppokäyttöisyydestä, oikean muotoisesta sisällön esittämisestä, viestien, kehoitteiden ja komentojen selvyydestä. Käytettävyys on kriittinen tekijä Web-sovelluksissa. (Navigoinnista seuraavalla sivulla) Käytettävyystestauksen alalaji, varmistutaan että sisältö saadaan näkyviin, vaikka selain ei tukisi grafiikkaa tai skriptejä. Varmistaudutaan, että luvattomat käyttäjät eivät pääse käyttämään sovellusta. Web-sovellukset ovat haavoittuvampia kuin perinteiset (johtuu käyttäjämääristä, toteutuksen monista vaihtoehdoista)

15 Navigoinnin testaus / Splaine & Jaskiel 2001 Seuraavat navigointimekanismit tulisi testata Linkit sisäiset ja ulkoiset (toisiin sovelluksiin) Uudelleenohjaukset kun sivu on poistettu tai nimeä muutettu Kirjanmerkit (bookmarks) varmistetaan järkevä nimiehdotus Kehykset (frames) ja kehysjoukot kehysjoukot voivat muodostaa sisäkkäisiä rakenteita, näiden testauksessa tulisi keskittyä esim. navigoinnin, layoutin ja latauksen keston testaukseen

16 Navigoinnin testaus / Splaine & Jaskiel 2001 Seuraavat navigointimekanismit tulisi testata... Sivun uudelleenorganisointi myös web sivut rapistuvat ajan myötä, kannattaa vertailla kilpailijoiden sivuihin Sivukartat kaikki (ja vain ne) tärkeät sivut löytyvät ja esitetään sopivassa järjestyksessä Sisäiset hakukoneet hakukoneiden avulla käyttäjä paikallistaa halutun tiedon laajoissa web sovelluksissa testataan hakukoneen nopeutta, tulosten lajittelua ja selviämistä vääränmuotoisista syötteistä

17 Konfiguraation testaus Ei tavoitella kaikkien mahdollisten konfiguraatioiden testausta, mutta testataan joukko mahdollisista Palvelinpuolen testausta (esim.) onko Web-sovellus yhteensopiva palvelimen käyttöjärjestelmän kanssa toimiiko tiedostojen ja hakemistojen päivitys virheettömästi sallivatko tietoturvamekanismit Web-sovelluksen tehokkaan käytön onko Web-sovellusta testattu myös hajautetussa konfiguraatiossa, jos sellaista käytetään Asiakaspuolen testausta testattavat konfiguraatiot kerätään sovittamalla yhteen komponentteja laitteisto: CPU, keskusmuisti, talletusmedia,... käyttöjärjestelmä: Linux, OS X, Windows,... selain: IE, Firefox, Safari,... käyttöliittymäkomponentit: Active X, Java applets,... laajennukset: QuickTime, RealPlayer,... yhteydet: kaapeli, ADSL/DSL modeemi,...

18 Luku 21: Formaali mallintaminen ja verifiointi Mitä ongelmia on perinteisissä spesifikaatioissa? ristiriitaisuudet (contradictions) epäselvyydet (ambiguities) epämääräisyys (vagueness) epätäydellisyys (incompleteness) abstraktiotasojen sekavuus (mixed levels of abstraction) Formaaleilla spesifikaatioilla pyritään eroon luonnollisen kielen ja graafisen esitystavan aiheuttamista epätäsmällisyyksistä. Siirrytään joukko-opin ja logiikka-notaation käyttöön sekä matemaattiseen todistukseen. 18

19 Formaalit spesifiointikielet Formaali spesifiointikieli koostuu yleensä kolmesta osasta syntaksista, joka määrittelee kuvaustavan (notaation) spesifikaation esittämiselle semantiikasta, joka määrittelee käytettävät oliot (universe of objects) järjestelmän kuvaamiselle joukosta yhteyksiä, jotka määrittelevät olioiden käytön säännöt halutun spesifikaation muodostamiselle Formaalin spesifiointikielen syntaksi perustuu joukkoteoriaan ja predikaattikalkyyliin. Spesifiointikielen semantiikalla kuvataan järjestelmän vaatimukset. 19

20 Object Constraint Language (OCL) Formaali kuvaustapa, jonka avulla käyttäjät voivat tarkentaa UML kuvauksia (luokka, tila ja aktiviteettikaavioita). Kielellä on logiikan ja diskreetin matematiikan kuvausvoima. OCL kielen suunnittelijat päättivät, että OCL lauseissa käytetään vain ASCII merkkejä (eikä perinteistä matemaattista notaatiota) OCL kielen lausekkeissa (rajoituksissa) operaattorit toimivat olioiden kanssa. OCL mahdollistaa kyselyjen kirjoittamisen, samankaltaisesti kuten SQL-kielellä. 20

21 BlockHandler using UML Block * elements 1 BlockSet * number * * blockqueue free * used {ordered} allblocks {subset} {subset} BlockHandler addblock() removeblock() Pressman

22 BlockHandler määrittelyt OCL kielellä Invarianttien käyttö (predikaatti, joka on voimassa kiinnitetyn luokan (BlockHandler) kaikissa esiintymissä) Jokainen lohko merkitään käytetyksi tai käyttämättömäksi. context BlockHandler inv: (self.used->intersection(self.free)) ->isempty() Kaikki jonossa olevat lohkot ovat nyt käytössä olevia lohkoja. context BlockHandler inv: blockqueue->forall(ablockset used->includesall(ablockset )) Käytettyjen ja käyttämättömien lohkojen kokoelmat muodostavat kaikkien lohkojen kokoelman. context BlockHandler inv: allblocks = used->union(free) Käyttämättämien lohkojen kokoelmassa ei ole samoja lohkonumeroja. context BlockHandler inv: free->isunique(ablock ablock.number) Käytettyjen lohkojen kokoelmassa ei ole samoja lohkonumeroja. context BlockHandler inv: used->isunique(ablock ablock.number) free used-lohkot eivät löydy free-lohkoista kaikki jonossa olevat lohkot (ablockset) löytyvät used-lohkoista Block allblocks used elements BlockHandler BlockSet blockqueue Pressman

23 Cleanroom menetelmä Cleanroom menetelmän periaatteet määriteltiin 1970/80 lukujen vaihteessa Nimi Cleanroom (puhdastila) on lainattu puolijohdeteollisuudesta Vaikka ihminen on erehtyväinen, ohjelmistovirheet voidaan välttää (Mills 1991) Harlan Mills sovitti matematiikka ja tilastotiedettä ohjelmistotekniikkaan toiminnallinen todentaminen (functional verification) testimateriaalin tarkka suunnittelu (tilastomatematiikan käyttö)

24 Esimerkkiprojekteja 1987 IBM Flight Control: Helicopter Avionics System Component 33 KLOC (Jovial) Häiriöaste 2.3 virhettä/kloc, valmistui etuajassa 1989 NASA Satellite Control Project I 40 KLOC (Fortran) Häiriöaste 4.5 virhettä/kloc, 80% parannus tuottavuudessa 1989 NASA Satellite Control Projects II & III 170 KLOC (Fortran) Häiriöaste 4.2 virhettä/kloc 1993 IBM LAN software first increment 4.8 KLOC (C) Häiriöaste 0.8 virhettä/kloc Tyypillinen tulos on alle 6 virhettä 1000 koodiriviä kohden ensimmäisessä testausvaiheessa (menetelmässä ei tehdä yksikkötestausta)

25 Cleanroom - ongelmia Vaatii paljon koulutusta IBM kertoo menetelmän käytöstä noin 450 henkilön laboratoriossa 150 osallistui päivän koulutukseen 300 osallistui lyhyempään koulutukseen kokonaisuudessaan laboratorio investoi koulutukseen 7-8 henkilötyövuotta spesifikaatioiden kirjoitus vei myös suunniteltua enemmän aikaa (6 viikkoa -> 12 viikkoa)

26 Asiakas Vaatimusanalyysi Toiminnallinen spesifikaatio Käyttöspesifikaatio Spesifikaatioiden evaluointi Toteutusvaiheiden suunnittelu Suunnittelu, toteutus, todentaminen Käytön mallinnus ja testien suunnittelu Tuoteversioiden evaluointi Tilastollinen testaus ja laadunvarmistus = ohjelmistokehitysryhmän työtä = laadunvarmistusryhmän työtä = yhteiset tehtävät

27 Cleanroom tekniikat Asteittainen kehittäminen Funktioperustainen määrittely, suunnittelu ja todentaminen mustalaatikko (black box) syöte + syötehistoria -> palaute (S, SH) -> (R) tilalaatikko (state box) syöte + vanha tilatieto = palaute + uusi tilatieto (S, OS) -> (R, NS) lasilaatikko (clear box) clear box -> black boxes (S, OS) -> (R, NS) by procedures P

28 CB BB SB CB BB 1.1 BB CB BB 1 BB 1.2 BB BB 1.3 BB 1.n Pressman

29 Cleanroom tekniikat... Oikeellisuuden varmentaminen jokainen laatikko varmennetaan kukin ohjelmoija todentaa (verifioi) oman koodinsa julkaisun oikeellisuus todennetaan myös katselmoinneissa Tilastollinen testaus käyttömalli (usage model) kuvaa ohjelmiston käyttäytymisen testitapaukset laaditaan käyttömallin avulla määritellään MTTF (Mean Time To Failure) tavoitearvot

30 [set w to minimum of z and absolute value of x] [set w to minimum of z and absolute value of x] DO = [set y to absolute = value of x] [set w to minimum of z and y] END [set w to minimum of z and absolute value of x] DO [set y to absolute value of x] IF x < 0 THEN y := -x ELSE y := x END [set w to minimum of z and y] IF y < z THEN w := y ELSE w := z END Asteittainen tarkentaminen ja todentaminen clear box esityksessä

31 SAFEHOME off away stay alarm check fire away stay instant bypass not ready armed power max test bypass instant code chime ready * 0 # panic ohjauspaneli ilmaisee toimijalle järjestelmän tilan: - not ready ilmoitus tarkoittaa, että huoneiston jokin ovi tai ikkuna on auki toimija käyttää näppäimistöä antaakseen nelinumeroisen salasanan - jos salasana on väärä, järjestelmä ilmoittaa piippaamalla, jos oikea, odottaa jatkotoimia toimija asettaa järjestelmän käyttöön stay (talon ulkopuolen tunnistimet) tai away (kaikki tunnistimet) näppäimillä

32 Käyttäjän tekemä valinta A (arm/disalarm) Z (zone set) Q (query) T (test) P (panic alarm) Käytön todennäköinen hajonta 50 % 15 % 15 % 15 % 5 % Hajontaasteikko Testi Satunnaisluvut Testitapaukset A A A Z A T Z P A Q T Q T A Z A A A A A P T A Q Testitapausten tilastollinen valinta

33 Syötteet Syöte Kuvaus viite vaatimukseen nro S Set Laitteen aktivointi 2 T Trip Signaali tunnistimelta 1 B BadDigit Väärä merkki osana 7 koodia C Clear Koodin nollaus 7 G GoodDigit Oikea merkki osana 5,6 koodia Palautteet Palaute Kuvaus viite vaatimukseen nro Light on Set näppäimeen valo 3 Light off Set näppäimen valo pois 6 Alarm on Hälytysääni aktivoituu 4 Alarm off Hälytysääni katkeaa 5 33

34 Software not invoked Alarm G C Alarm and 1_OK G C Alarm and 2_OK S T C B B B Ready Alarm and Entry Error G G B C T T T Entry Error B 1_OK G 2_OK G Software terminated C C Turvahälyttimen käyttömalli

35 Pohdiskelun aiheita Di Lucca ja Fasolino esittelevät paperin luvussa 7.2 Websovelluksen testaustapoja, joilla pyritään varmistamaan, että sovellus vastaa sekä ei-toiminnallisia että toiminnallisia vaatimuksia. Millaiset testaustavat sopivat ei-toiminnallisille vaatimuksille ja miten Web-sovellusten erityispiirteet näkyvät näissä testaustavoissa. Miten Web-sovellusten toiminnallisuuden testaus eroaa perinteisten ohjelmistojen testauksesta? Di Lucca G., Fasolino A., Web Application Testing, Engineering_Mendes_C07WebTest.pdf

36 Harjoitustehtävät: viikko 7 1. Tarkastele funktiota laske_joulukuun_palkka Työntekijöiden kuukausipalkat vaihtelevat välillä euroa. Oletetaan myös, että työntekijä on voinut olla yrityksen palveluksessa 0 50 vuotta. Joulukuun palkkaan lisätään joulubonus, joka määritellään seuraavasti: Työntekijä saa 50% bonuksen (50% kuukausipalkasta), jos on ollut yrityksessä kolme vuotta tai enemmän. Jos on ollut yrityksessä yli viisi vuotta, bonus on 75% ja yli kahdeksan vuotta yritystä palvelleille bonus on 100%. Funktio määritellään kahden parametrin avulla seuraavasti: double laske_ joulukuun _palkka ( double kk_palkka, // henkilön kuukausipalkka int palvelusaika, // henkilön palvelusaika yrityksessä) a. Tee funktion parametreille testiaineisto käyttäen luennoilla esiteltyä ekvivalenssiositusta, jossa määritellään ekvivalenssiluokat sekä käyville että ei-käyville syöttöarvoille. Tee myös taulukkoesitys, josta näkee parametrien arvot ja lopputuloksen eri testiarvoilla. 36

37 Harjoitustehtävät: viikko 7 1. b. Toteuta laske_ joulukuun _palkka funktio Java (tai C) ohjelmana. Piirrä myös lohkokaavio ja määrittele syklomaattinen kompleksisuus ja tarvittavien testitapausten lkm. Määrittele polut, joiden avulla saadaan polkukattavuus 100%:ksi ja laadi näille testitapaukset. 2. Olet kehittämässä Web-pohjaista apteekkiohjelmistoa NurkkaApteekki.com, joka on tarkoitettu ikäihmisten käyttöön. Käyttäjän täytyy tunnistautua verkkopankin tunnuksilla. Sen jälkeen käyttäjä näkee, millaisia reseptejä, milloin ja kenen toimesta hänelle on määrätty. Ohjelmistolla on yhteys tietokantaan ja uusien lääkemääräyksien ja vanhojen määräyksien yhteisvaikutus arvioidaan. Jos huomataan vaarallinen yhteisvaikutus, tästä ilmoitetaan käyttäjälle. Millaisia testejä tällaiselle ohjelmistolle tulisi suunnitella. Riittää että kerrot sanallisesti testeistä, ei tarvitse suunnitella testiaineistoa. 37

Ohjelmiston testaus ja laatu. Ohjelmistotekniikka elinkaarimallit

Ohjelmiston testaus ja laatu. Ohjelmistotekniikka elinkaarimallit Ohjelmiston testaus ja laatu Ohjelmistotekniikka elinkaarimallit Vesiputousmalli - 1 Esitutkimus Määrittely mikä on ongelma, onko valmista ratkaisua, kustannukset, reunaehdot millainen järjestelmä täyttää

Lisätiedot

Testaus käsite. Sekalaista testausasiaa. Testauksen käsitteestä. Kattavuusmitat. Jos ajatellaan, että testaus = V&V, voidaan erottaa:

Testaus käsite. Sekalaista testausasiaa. Testauksen käsitteestä. Kattavuusmitat. Jos ajatellaan, että testaus = V&V, voidaan erottaa: Testaus käsite Sekalaista asiaa Sami Kollanus 15.11.2006 Jos ajatellaan, että = V&V, voidaan erottaa: Staattinen Dynaaminen Toisaalta voidaan määritellä Myersin (1979) mukaan: Testaus on ohjelman suoritusta,

Lisätiedot

Harjoitustyön testaus. Juha Taina

Harjoitustyön testaus. Juha Taina Harjoitustyön testaus Juha Taina 1. Johdanto Ohjelman teko on muutakin kuin koodausta. Oleellinen osa on selvittää, että ohjelma toimii oikein. Tätä sanotaan ohjelman validoinniksi. Eräs keino validoida

Lisätiedot

Ohjelmistojen mallintaminen. Luento 11, 7.12.

Ohjelmistojen mallintaminen. Luento 11, 7.12. Ohjelmistojen mallintaminen Luento 11, 7.12. Viime viikolla... Oliosuunnittelun yleiset periaatteet Single responsibility eli luokilla vain yksi vastuu Program to an interface, not to concrete implementation,

Lisätiedot

Convergence of messaging

Convergence of messaging Convergence of messaging Testaussuunnitelma The Converge Group: Mikko Hiipakka Anssi Johansson Joni Karppinen Olli Pettay Timo Ranta-Ojala Tea Silander Helsinki 20. joulukuuta 2002 HELSINGIN YLIOPISTO

Lisätiedot

Testaussuunnitelma PULSU. Syksy 2008 Ohjelmistotuotantoprojekti. HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

Testaussuunnitelma PULSU. Syksy 2008 Ohjelmistotuotantoprojekti. HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos Testaussuunnitelma PULSU Syksy 2008 Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos Kurssi 581260 Ohjelmistotuotantoprojekti (9 op) Projektiryhmä Heikki Manninen Noora Joensuu

Lisätiedot

Kontrollipolkujen määrä

Kontrollipolkujen määrä Testaus Yleistä Testaus on suunnitelmallista virheiden etsimistä Tuotantoprosessissa ohjelmaan jää aina virheitä, käytettävistä menetelmistä huolimatta Hyvät menetelmät, kuten katselmoinnit pienentävät

Lisätiedot

Verifioinnin ja validoinnin ero. 7. Verifiointi ja validointi. Verifiointi- ja validointitekniikat. Verifiointi- ja validointitekniikat II

Verifioinnin ja validoinnin ero. 7. Verifiointi ja validointi. Verifiointi- ja validointitekniikat. Verifiointi- ja validointitekniikat II 7. Verifiointi ja validointi Verifiointi ja validointi (V&V) on ohjelmistotuotannon työvaihe, missä varmistetaan, että ohjelmisto täyttää sille asetetut implisiittiset ja eksplisiittiset vaatimukset ja

Lisätiedot

Dynaaminen analyysi I

Dynaaminen analyysi I Dynaaminen analyysi I Luento 6 Antti-Pekka Tuovinen 4 April 2013 1 Tavoitteet Testitapausten suunnittelun ja suorituksen perusteet Black-Box testitapausten suunnittelu Ekvivalenssiluokat Raja-arvo (reuna-arvo)

Lisätiedot

Testaussuunnitelma Labra

Testaussuunnitelma Labra Testaussuunnitelma Labra Helsinki 25.8.2008 Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos 1 Kurssi 581260 Ohjelmistotuotantoprojekti (9+1op) Projektiryhmä Anssi Kapanen,

Lisätiedot

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

Testaustyökalut. Luento 11 Antti-Pekka Tuovinen. Faculty of Science Department of Computer Science Testaustyökalut Luento 11 Antti-Pekka Tuovinen 25 April 2013 1 Tavoitteet Työkalutyyppejä Testauksen hallinta Testien määrittely Staattinen analyysi Dynaaminen testaus 25 April 2013 2 1 Työkalut ja testaus

Lisätiedot

Suorituskyvyn varmistaminen sovelluskehityksen eri vaiheissa Paavo Häkkinen, Presales Teamleader Compuware Finland

Suorituskyvyn varmistaminen sovelluskehityksen eri vaiheissa Paavo Häkkinen, Presales Teamleader Compuware Finland Suorituskyvyn varmistaminen sovelluskehityksen eri vaiheissa Paavo Häkkinen, Presales Teamleader Compuware Finland Epäonnistuminen ei ole vaikeaa Approximately 40% of mission-critical mainframe projects

Lisätiedot

Analyysi, dynaaminen mallintaminen, yhteistoimintakaavio ja sekvenssikaavio

Analyysi, dynaaminen mallintaminen, yhteistoimintakaavio ja sekvenssikaavio Analyysi, dynaaminen mallintaminen, yhteistoimintakaavio ja sekvenssikaavio Analyysi Tarkentaa ja jäsentää vaatimusmäärittelyä, vastaa kysymykseen MITÄ järjestelmän tulisi tehdä. Suoritetaan seuraavia

Lisätiedot

Dynaaminen analyysi II

Dynaaminen analyysi II Dynaaminen analyysi II Luento 7 Antti-Pekka Tuovinen 9 April 2013 1 Tavoitteet Black-box testitapausten suunnittelutekniikat II Tilamallien käyttö Syys-seurausverkot ja päätöstaulut Käyttötapaukset Yhteenveto

Lisätiedot

Laadunvarmistustekniikat

Laadunvarmistustekniikat Laadunvarmistustekniikat Ohjelmistojen laadunvarmistustekniikoita: testaus (testing) ohjelman suorittamista tarkoituksena löytää virheitä tarkastukset (inspections, reviews) asiantuntijoiden suorittamia

Lisätiedot

Analyysi, dynaaminen mallintaminen, yhteistoimintakaavio ja sekvenssikaavio

Analyysi, dynaaminen mallintaminen, yhteistoimintakaavio ja sekvenssikaavio Analyysi, dynaaminen mallintaminen, yhteistoimintakaavio ja sekvenssikaavio Analyysi Tarkentaa ja jäsentää vaatimusmäärittelyä, vastaa kysymykseen MITÄ järjestelmän tulisi tehdä. Suoritetaan seuraavia

Lisätiedot

811120P Diskreetit rakenteet

811120P Diskreetit rakenteet 811120P Diskreetit rakenteet 2016-2017 1. Algoritmeista 1.1 Algoritmin käsite Algoritmi keskeinen laskennassa Määrittelee prosessin, joka suorittaa annetun tehtävän Esimerkiksi Nimien järjestäminen aakkosjärjestykseen

Lisätiedot

Suunnitteluvaihe prosessissa

Suunnitteluvaihe prosessissa Suunnittelu Suunnitteluvaihe prosessissa Silta analyysin ja toteutuksen välillä (raja usein hämärä kumpaankin suuntaan) Asteittain tarkentuva Analyysi -Korkea abstraktiotaso -Sovellusläheiset käsitteet

Lisätiedot

UML-kielen formalisointi Object-Z:lla

UML-kielen formalisointi Object-Z:lla UML-kielen formalisointi Object-Z:lla Kalvot ja seminaarityö WWW:ssä: http://users.jyu.fi/~minurmin/opiskelu/form/ UML UML == Unified Modelling Language. OMG:n standardoima kieli ohjelmistojärjestelmien,

Lisätiedot

Ohjelmistotekniikan menetelmät, UML

Ohjelmistotekniikan menetelmät, UML 582101 - Ohjelmistotekniikan menetelmät, UML 1 Sisältö DFD- ja sidosryhmäkaavioiden kertaus Oliomallinnus UML:än kaaviotyypit 2 Tietovuokaaviot Data flow diagrams, DFD Historiallisesti käytetyin kuvaustekniikka

Lisätiedot

Harjoitustehtävät ja ratkaisut viikolle 48

Harjoitustehtävät ja ratkaisut viikolle 48 Harjoitustehtävät ja ratkaisut viikolle 48 1. Tehtävä on jatkoa aiemmalle tehtävälle viikolta 42, missä piti suunnitella älykodin arkkitehtuuri käyttäen vain ennalta annettua joukkoa ratkaisuja. Tämäkin

Lisätiedot

Ohjelmistotekniikan menetelmät, toteutuksesta ja testauksesta

Ohjelmistotekniikan menetelmät, toteutuksesta ja testauksesta 582101 - Ohjelmistotekniikan menetelmät, toteutuksesta ja testauksesta 1 Toteutuksesta ja testauksesta Suunnitteluprosessista Tarkan tason luokkasuunnittelu Siirtyminen UML-kaavioista Java-toteutukseen

Lisätiedot

Oliosuunnitteluesimerkki: Yrityksen palkanlaskentajärjestelmä

Oliosuunnitteluesimerkki: Yrityksen palkanlaskentajärjestelmä Oliosuunnitteluesimerkki: Yrityksen palkanlaskentajärjestelmä Matti Luukkainen 10.12.2009 Tässä esitetty esimerkki on mukaelma ja lyhennelmä Robert Martinin kirjasta Agile and Iterative Development löytyvästä

Lisätiedot

Järjestelmäarkkitehtuuri (TK081702)

Järjestelmäarkkitehtuuri (TK081702) Järjestelmäarkkitehtuuri (TK081702) yleistyvät verkkopalveluissa Youtube Google... Avaavat pääsyn verkkopalvelun sisältöön. Rajapintojen tarjoamia tietolähteitä yhdistelemällä luodaan uusia palveluja,

Lisätiedot

Tenttikysymykset. + UML- kaavioiden mallintamistehtävät

Tenttikysymykset. + UML- kaavioiden mallintamistehtävät Tenttikysymykset 1. Selitä mitä asioita kuuluu tietojärjestelmän käsitteeseen. 2. Selitä kapseloinnin ja tiedon suojauksen periaatteet oliolähestymistavassa ja mitä hyötyä näistä periaatteista on. 3. Selitä

Lisätiedot

T Testiraportti - järjestelmätestaus

T Testiraportti - järjestelmätestaus T-76.115 Testiraportti - järjestelmätestaus 18. huhtikuuta 2002 Confuse 1 Tila Versio: 1.0 Tila: Päivitetty Jakelu: Julkinen Luotu: 18.04.2002 Jani Myyry Muutettu viimeksi: 18.04.2002 Jani Myyry Versiohistoria

Lisätiedot

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

SEPA diary. Dokumentti: SEPA_diary_PK_HS.doc Päiväys: Projekti: AgileElephant Versio: V0.3 AgilElephant SEPA Diary Petri Kalsi 55347A Heikki Salminen 51137K Tekijä: Petri Kalsi Omistaja: ElectricSeven Aihe: PK&HS Sivu 1 / 7 Dokumenttihistoria Revisiohistoria Revision päiväys: 29.11.2004 Seuraavan

Lisätiedot

Ohjelmistojen mallintaminen

Ohjelmistojen mallintaminen Ohjelmistojen mallintaminen - Mallit - Ohjelmiston kuvaaminen malleilla 31.10.2008 Harri Laine 1 Malli: abstraktio jostain kohteesta Abstrahointi: asian ilmaiseminen tavalla, joka tuo esiin tietystä näkökulmasta

Lisätiedot

7. Verifiointi ja validointi

7. Verifiointi ja validointi 7. Verifiointi ja validointi Verifiointi ja validointi (V&V) on ohjelmistotuotannon työvaihe, missä varmistetaan, että ohjelmisto täyttää sille asetetut implisiittiset ja eksplisiittiset vaatimukset ja

Lisätiedot

Ohjelmointi 1 / syksy /20: IDE

Ohjelmointi 1 / syksy /20: IDE Ohjelmointi 1 / syksy 2007 10/20: IDE Paavo Nieminen nieminen@jyu.fi Tietotekniikan laitos Informaatioteknologian tiedekunta Jyväskylän yliopisto Ohjelmointi 1 / syksy 2007 p.1/8 Tämän luennon rakenne

Lisätiedot

ITKP102 Ohjelmointi 1 (6 op)

ITKP102 Ohjelmointi 1 (6 op) ITKP102 Ohjelmointi 1 (6 op) Tentaattori: Antti-Jussi Lakanen 22. huhtikuuta 2016 Vastaa kaikkiin tehtäviin. Tee jokainen tehtävä erilliselle konseptiarkille! Kirjoittamasi luokat, funktiot ja aliohjelmat

Lisätiedot

58160 Ohjelmoinnin harjoitustyö

58160 Ohjelmoinnin harjoitustyö 58160 Ohjelmoinnin harjoitustyö Testaus 30.3.2009 Tuntiop. Sami Nikander sami.nikander@helsinki.fi 58160 Ohjelmoinnin harjoitustyö, Sami Nikander 30.3.2009 1 Testaus Ohjelman systemaattista tutkimista

Lisätiedot

Teknillinen korkeakoulu T-76.115 Tietojenkäsittelyopin ohjelmatyö. Testausraportti Smartmeeting opponointi

Teknillinen korkeakoulu T-76.115 Tietojenkäsittelyopin ohjelmatyö. Testausraportti Smartmeeting opponointi Testausraportti Smartmeeting opponointi Sisällysluettelo 1. Johdanto...3 2. Testitapaukset Smartmeeting...4 2.1 Yritä kirjautua järjestelmään väärällä salasanalla...4 2.2 Lisää uusi käyttäjä...4 2.3 Lisää

Lisätiedot

1.3 Lohkorakenne muodostetaan käyttämällä a) puolipistettä b) aaltosulkeita c) BEGIN ja END lausekkeita d) sisennystä

1.3 Lohkorakenne muodostetaan käyttämällä a) puolipistettä b) aaltosulkeita c) BEGIN ja END lausekkeita d) sisennystä OULUN YLIOPISTO Tietojenkäsittelytieteiden laitos Johdatus ohjelmointiin 811122P (5 op.) 12.12.2005 Ohjelmointikieli on Java. Tentissä saa olla materiaali mukana. Tenttitulokset julkaistaan aikaisintaan

Lisätiedot

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

Testaussuunnitelma. Koskelo. Helsinki Ohjelmistotuotantoprojekti. HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos Testaussuunnitelma Koskelo Helsinki 16.12.2004 Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos Kurssi 581260 Ohjelmistotuotantoprojekti (6 ov) Projektiryhmä Tom Bertell Johan

Lisätiedot

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

Yksikkötestaus. import org.junit.test; public class LaskinTest public void testlaskimenluonti() { Laskin laskin = new Laskin(); } } Yksikkötestauksella tarkoitetaan lähdekoodiin kuuluvien yksittäisten osien testaamista. Termi yksikkö viittaa ohjelman pienimpiin mahdollisiin testattaviin toiminnallisuuksiin, kuten olion tarjoamiin metodeihin.

Lisätiedot

TAMPEREEN TEKNILLINEN YLIOPISTO

TAMPEREEN TEKNILLINEN YLIOPISTO TAMPEREEN TEKNILLINEN YLIOPISTO Digitaali- ja Tietokonetekniikan laitos TKT-3200 Tietokonetekniikka ASSEMBLER: QSORT 06.09.2005 Ryhmä 00 nimi1 email1 opnro1 nimi2 email2 opnro2 nimi3 email3 opnro3 1. TEHTÄVÄ

Lisätiedot

815338A Ohjelmointikielten periaatteet Harjoitus 2 vastaukset

815338A Ohjelmointikielten periaatteet Harjoitus 2 vastaukset 815338A Ohjelmointikielten periaatteet 2015-2016. Harjoitus 2 vastaukset Harjoituksen aiheena on BNF-merkinnän käyttö ja yhteys rekursiivisesti etenevään jäsentäjään. Tehtävä 1. Mitkä ilmaukset seuraava

Lisätiedot

Ohjelmointi 1 C#, kevät 2013, 2. tentti

Ohjelmointi 1 C#, kevät 2013, 2. tentti ITKP102 Ohjelmointi 1 C# 15.5.2013 1 / 6 Ohjelmointi 1 C#, kevät 2013, 2. tentti Tentaattori Antti-Jussi Lakanen Tässä tentissä saa olla mukana omia muistiinpanoja yhden arkin verran. Tentin valvojalla

Lisätiedot

Automaattinen yksikkötestaus

Automaattinen yksikkötestaus Teknillinen Korkeakoulu T-76.115 Tietojenkäsittelyopin ohjelmatyö Lineaaristen rajoitteiden tyydyttämistehtävän ratkaisija L models Automaattinen yksikkötestaus Ryhmä Rajoitteiset Versio Päivämäärä Tekijä

Lisätiedot

Olion elinikä. Olion luominen. Olion tuhoutuminen. Olion tuhoutuminen. Kissa rontti = null; rontti = new Kissa();

Olion elinikä. Olion luominen. Olion tuhoutuminen. Olion tuhoutuminen. Kissa rontti = null; rontti = new Kissa(); Sisällys 7. Oliot ja viitteet Olio Java-kielessä. Olion luominen, elinikä ja tuhoutuminen. Viitteiden käsittelyä: sijoitus, vertailu ja varautuminen null-arvoon. Viite metodin paluuarvona.. 7.1 7.2 Olio

Lisätiedot

käyttötapaukset mod. testaus

käyttötapaukset mod. testaus käyttötapaukset Jari Ojasti Nokia email : jari.ojasti@nokia.com puh : 040 5926 312 Kartta hyväksyntä määrittely suunnittelu suunnittelu mod. testaus integrointi sys. testaus Ylläpito koodaus (toteutus)

Lisätiedot

11/20: Konepelti auki

11/20: Konepelti auki Ohjelmointi 1 / syksy 2007 11/20: Konepelti auki Paavo Nieminen nieminen@jyu.fi Tietotekniikan laitos Informaatioteknologian tiedekunta Jyväskylän yliopisto Ohjelmointi 1 / syksy 2007 p.1/11 Tämän luennon

Lisätiedot

Tilakaaviot, sekvenssikaaviot (Haikala, Märijärvi ss , )

Tilakaaviot, sekvenssikaaviot (Haikala, Märijärvi ss , ) Tilakaaviot, sekvenssikaaviot (Haikala, Märijärvi ss. 121-133, 135 141) Jari Ojasti Nokia email : jari.ojasti@nokia.com puh : 040 5926 312 Sisältö Sekvenssikaaviot ja tilakaaviot osana UML:ia Sekvenssikaaviot

Lisätiedot

Tämän lisäksi listataan ranskalaisin viivoin järjestelmän tarjoama toiminnallisuus:

Tämän lisäksi listataan ranskalaisin viivoin järjestelmän tarjoama toiminnallisuus: Dokumentaatio, osa 1 Tehtävämäärittely Kirjoitetaan lyhyt kuvaus toteutettavasta ohjelmasta. Kuvaus tarkentuu myöhemmin, aluksi dokumentoidaan vain ideat, joiden pohjalta työtä lähdetään tekemään. Kuvaus

Lisätiedot

TESTIRAPORTTI - VYM JA KANTA Virtuaaliyhteisöjen muodostaminen Versio 1.0

TESTIRAPORTTI - VYM JA KANTA Virtuaaliyhteisöjen muodostaminen Versio 1.0 TESTIRAPORTTI - VYM JA KANTA Versio 1.0 i Sisällysluettelo 1. YLEISTÄ 2 1.1. Dokumentin tarkoitus ja yleisiä toimintaohjeita 2 1.2. Viittaukset muihin dokumentteihin 2 2. SUORITETTAVA TESTI 3 2.1. Testauksen

Lisätiedot

WCLIQUE. Ohjelmistoprojekti. Testaussuunnitelma

WCLIQUE. Ohjelmistoprojekti. Testaussuunnitelma TKK/DISKO/Tik-76.115 WCLIQUE Projektiryhmä Clique http://www.hut.fi/jekahkon/wclique/testplan.html WCLIQUE Ohjelmistoprojekti Projektiryhmä Clique: Janne Dufva, 75008T, email: janne.dufva@nokia.com, 75014C,

Lisätiedot

Kehitysohje. ETL-työkalu. ExtraTerrestriaLs / Aureolis Oy

Kehitysohje. ETL-työkalu. ExtraTerrestriaLs / Aureolis Oy Kehitysohje ETL-työkalu Versio Pvm Tekijä Kuvaus 0.1 15.1.2005 Timo Sallinen Ensimmäinen versio 0.2 26.1.2005 Timo Sallinen Täydenetty pohjaa 0.3 06.02.2005 Mika Suvanto Pieniä täydennyksiä ja oikolukua

Lisätiedot

UML:n yleiskatsaus. UML:n osat:

UML:n yleiskatsaus. UML:n osat: UML:n yleiskatsaus - voidaan hyödyntää hyvin laajasti. - sopii liiketoimintamallinnukseen, ohjelmistomallinnukseen sen jokaiseen vaiheeseen tai minkä tahansa pysyviä ja muuttuvia ominaisuuksia sisältävän

Lisätiedot

2. Ohjelmistotuotantoprosessi

2. Ohjelmistotuotantoprosessi 2. Ohjelmistotuotantoprosessi Peruskäsitteet: prosessimalli: mahdollisimman yleisesti sovellettavissa oleva ohjeisto ohjelmistojen tuottamiseen ohjelmistotuotantoprosessi: yrityksessä käytössä oleva tapa

Lisätiedot

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 2.3.2009 T-106.1208 Ohjelmoinnin perusteet Y 2.3.2009 1 / 28 Puhelinluettelo, koodi def lue_puhelinnumerot(): print "Anna lisattavat nimet ja numerot." print

Lisätiedot

Visual Basic -sovelluskehitin Juha Vitikka

Visual Basic -sovelluskehitin Juha Vitikka Visual Basic -sovelluskehitin Helsinki 30.10.2000 Seminaari HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos Visual Basic sovelluskehitin Seminaari: Ohjelmistotuotantovälineet Tietojenkäsittelytieteen

Lisätiedot

7/20: Paketti kasassa ensimmäistä kertaa

7/20: Paketti kasassa ensimmäistä kertaa Ohjelmointi 1 / syksy 2007 7/20: Paketti kasassa ensimmäistä kertaa Paavo Nieminen nieminen@jyu.fi Tietotekniikan laitos Informaatioteknologian tiedekunta Jyväskylän yliopisto Ohjelmointi 1 / syksy 2007

Lisätiedot

1.3Lohkorakenne muodostetaan käyttämällä a) puolipistettä b) aaltosulkeita c) BEGIN ja END lausekkeita d) sisennystä

1.3Lohkorakenne muodostetaan käyttämällä a) puolipistettä b) aaltosulkeita c) BEGIN ja END lausekkeita d) sisennystä OULUN YLIOPISTO Tietojenkäsittelytieteiden laitos Johdatus ohjelmointiin 81122P (4 ov.) 30.5.2005 Ohjelmointikieli on Java. Tentissä saa olla materiaali mukana. Tenttitulokset julkaistaan aikaisintaan

Lisätiedot

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 15.3.2010 T-106.1208 Ohjelmoinnin perusteet Y 15.3.2010 1 / 56 Tiedostoista: tietojen tallentaminen ohjelman suorituskertojen välillä Monissa sovelluksissa ohjelman

Lisätiedot

Kuopio. Testitapausluettelo: Projektit-osakokonaisuus

Kuopio. Testitapausluettelo: Projektit-osakokonaisuus Kuopio Testitapausluettelo: Projektit-osakokonaisuus Kuopio, testitapausluettelo, 25.3.2002 Versiohistoria: Versio Pvm Laatija Muutokset 0.1 19.3.2002 Matti Peltomäki Kriittisen prioriteetin testitapaukset

Lisätiedot

Standardin IEC testaustekniikoista. V-malli vai ketterämpi prosessi?

Standardin IEC testaustekniikoista. V-malli vai ketterämpi prosessi? Standardin IEC 61508-3 testaustekniikoista V-malli vai ketterämpi prosessi? Mika Katara mika.katara@tut.fi Tampereen teknillinen yliopisto Ohjelmistotekniikan laitos 2 Sisältö Termien käännökset Johdanto

Lisätiedot

Määrittelyvaihe. Projektinhallinta

Määrittelyvaihe. Projektinhallinta Määrittelyvaihe Projektinhallinta testaus määrittely suunnittelu ohjelmointi käyttöönotto, testaus tuotteenhallinta laadunvarmistus dokumentointi vaatimustenhallinta Määrittely Määrittely, eli kansanomaisesti

Lisätiedot

Ylläpito. Ylläpito. Ylläpidon lajeja Ohjelmistotuotanto, syksy 1998 Ylläpito

Ylläpito. Ylläpito. Ylläpidon lajeja Ohjelmistotuotanto, syksy 1998 Ylläpito Kaikki ohjelmistoon sen julkistamisen jälkeen kohdistuvat muutostoimenpiteet jopa 70-80% ohjelmiston elinkaarenaikaisista kehityskustannuksista Ylläpidon lajeja korjaava ylläpito (corrective) testausvaiheessa

Lisätiedot

Olioiden yhteistyön mallintaminen

Olioiden yhteistyön mallintaminen Olioiden yhteistyön mallintaminen Luokkakaaviosta käy hyvin esille ohjelman rakenne minkälaisia luokkia on olemassa miten luokat liittyvät toisiinsa Entä ohjelman toiminta? Luokkakaaviossa voi olla metodien

Lisätiedot

Sisällys. 1. Omat operaatiot. Yleistä operaatioista. Yleistä operaatioista

Sisällys. 1. Omat operaatiot. Yleistä operaatioista. Yleistä operaatioista Sisällys 1. Omat operaatiot Yleistä operaatioista. Mihin operaatioita tarvitaan? Oman operaation määrittely. Yleisesti, nimeäminen ja hyvä ohjelmointitapa, määreet, parametrit ja näkyvyys. HelloWorld-ohjelma

Lisätiedot

Ehto- ja toistolauseet

Ehto- ja toistolauseet Ehto- ja toistolauseet 1 Ehto- ja toistolauseet Uutena asiana opetellaan ohjelmointilauseet / rakenteet, jotka mahdollistavat: Päätösten tekemisen ohjelman suorituksen aikana (esim. kyllä/ei) Samoja lauseiden

Lisätiedot

Dynaaminen analyysi III

Dynaaminen analyysi III Dynaaminen analyysi III Luento 8 Antti-Pekka Tuovinen 16 April 2013 1 Tavoitteet White box testitapausten suunnittelutekniikat Lausekattavuus Haarautumakattavuus Ehto- ja polkukattavuus Huomioita white

Lisätiedot

7. Oliot ja viitteet 7.1

7. Oliot ja viitteet 7.1 7. Oliot ja viitteet 7.1 Sisällys Olio Java-kielessä. Olion luominen, elinikä ja tuhoutuminen. Viitteiden sijoitus. Viitteiden vertailu. Varautuminen null-arvoon. Viite metodin paluuarvona. Viite metodin

Lisätiedot

Ohjelmistojen mallintaminen Olioiden yhteistyö. 18.11.2008 Harri Laine 1

Ohjelmistojen mallintaminen Olioiden yhteistyö. 18.11.2008 Harri Laine 1 Ohjelmistojen mallintaminen Olioiden yhteistyö 18.11.2008 Harri Laine 1 Olioiden yhteistyö Oliokeskeisen ohjelmistonäkemyksen mukaan ohjelmiston palvelut tuotetaan olioiden yhteistyön tuloksena. Ohjelmisto

Lisätiedot

Ohjelmistojen mallintamisen ja tietokantojen perusteiden yhteys

Ohjelmistojen mallintamisen ja tietokantojen perusteiden yhteys Ohjelmistojen mallintamisen ja tietokantojen perusteiden yhteys Tällä kurssilla on tutustuttu ohjelmistojen mallintamiseen oliomenetelmiä ja UML:ää käyttäen Samaan aikaan järjestetyllä kurssilla on käsitelty

Lisätiedot

12. Näppäimistöltä lukeminen 12.1

12. Näppäimistöltä lukeminen 12.1 12. Näppäimistöltä lukeminen 12.1 Sisällys Arvojen lukeminen näppäimistöltä yleisesti. Arvojen lukeminen näppäimistöltä Java-kielessä. In-luokka. Luetun arvon tarkistaminen. Tietovirrat ja ohjausmerkit.

Lisätiedot

Harjoitus 3: Flash-komponenttiarkkitehtuuri (18.3.2016)

Harjoitus 3: Flash-komponenttiarkkitehtuuri (18.3.2016) Harjoitus 3: Flash-komponenttiarkkitehtuuri (18.3.2016) Tietokoneavusteinen opetus -kurssilla opetetaan Adobe Flash CS6:n käyttämistä neljänä kertana: 11.3.2016, 15.3.2016, 18.3.2016 ja 1.4.2016. Harjoituskerroilla

Lisätiedot

Testiautomaatio tietovarastossa. Automaattisen regressiotestauksen periaate ja hyödyt

Testiautomaatio tietovarastossa. Automaattisen regressiotestauksen periaate ja hyödyt Testiautomaatio tietovarastossa Automaattisen regressiotestauksen periaate ja hyödyt Sisältö 2 Testaus kiinteänä osana DW-toteutusta Regressiotestauksen merkitys Robot Framework Automatisoitu DW:n regressiotestaus:

Lisätiedot

Oleelliset vaikeudet OT:ssa 1/2

Oleelliset vaikeudet OT:ssa 1/2 Oleelliset vaikeudet OT:ssa 1/2 Monimutkaisuus: Mahdoton ymmärtää kaikki ohjelman tilat Uusien toimintojen lisääminen voi olla vaikeaa Ohjelmista helposti vaikeakäyttöisiä Projektiryhmän sisäiset kommunikointivaikeudet

Lisätiedot

Ohjelmistotekniikan menetelmät, Ohjelmistotuotannon työkaluista

Ohjelmistotekniikan menetelmät, Ohjelmistotuotannon työkaluista 582101 - Ohjelmistotekniikan menetelmät, Ohjelmistotuotannon työkaluista 1 Ohjelmistotuotannon työkaluuista Projektinhallintatyökalut (ei käsitellä tällä kurssilla) CASE- ja mallinnustyökalut (esim. Poseidon)

Lisätiedot

Vertailulauseet. Ehtolausekkeet. Vertailulauseet. Vertailulauseet. if-lauseke. if-lauseke. Javan perusteet 2004

Vertailulauseet. Ehtolausekkeet. Vertailulauseet. Vertailulauseet. if-lauseke. if-lauseke. Javan perusteet 2004 Vertailulauseet Ehtolausekkeet Ehdot, valintalausekkeet Boolean-algebra == yhtäsuuruus!= erisuuruus < pienempi suurempi >= suurempi tai yhtäsuuri Esimerkkejä: int i=7; int j=10;

Lisätiedot

Ohjelmoinnin peruskurssien laaja oppimäärä

Ohjelmoinnin peruskurssien laaja oppimäärä Ohjelmoinnin peruskurssien laaja oppimäärä Luento 8: Tulkki: proseduurit, abstrakti syntaksi, quote ja cond (mm. SICP 44.1.5 osin) Riku Saikkonen 15. 11. 2011 Sisältö 1 Argumentittomat proseduurit ja käyttöliittymä

Lisätiedot

L models. Käyttöohje. Ryhmä Rajoitteiset

L models. Käyttöohje. Ryhmä Rajoitteiset Teknillinen korkeakoulu T-76.115 Tietojenkäsittelyopin ohjelmatyö Lineaaristen rajoitteiden tyydyttämistehtävän ratkaisija L models Käyttöohje Ryhmä Rajoitteiset Versio Päivämäärä Tekijä Muutokset 0.1

Lisätiedot

815338A Ohjelmointikielten periaatteet 2015-2016. Harjoitus 5 Vastaukset

815338A Ohjelmointikielten periaatteet 2015-2016. Harjoitus 5 Vastaukset 815338A Ohjelmointikielten periaatteet 2015-2016. Harjoitus 5 Vastaukset Harjoituksen aiheena ovat aliohjelmat ja abstraktit tietotyypit sekä olio-ohjelmointi. Tehtävät tehdään C-, C++- ja Java-kielillä.

Lisätiedot

Sisällys. 7. Oliot ja viitteet. Olion luominen. Olio Java-kielessä

Sisällys. 7. Oliot ja viitteet. Olion luominen. Olio Java-kielessä Sisälls 7. Oliot ja viitteet Olio Java-kielessä. Olion luominen, elinikä ja tuhoutuminen.. Viitteiden vertailu. Varautuminen null-arvoon. Viite metodin paluuarvona.. Muuttumattomat ja muuttuvat merkkijonot.

Lisätiedot

Opintojakso TT00AA11 Ohjelmoinnin jatko (Java): 3 op Pakkaukset ja määreet

Opintojakso TT00AA11 Ohjelmoinnin jatko (Java): 3 op Pakkaukset ja määreet Opintojakso TT00AA11 Ohjelmoinnin jatko (Java): 3 op Pakkaukset ja määreet Pakkaukset ja määreet Toisiinsa liittyvät luokkatiedostot voidaan koota pakkauksiksi. Luo hierarkiaa ja järjestystä ohjelmistotuotteeseen.

Lisätiedot

Näin järjestän ohjelmointikurssin, vaikka en ole koskaan ohjelmoinut www.helsinki.fi

Näin järjestän ohjelmointikurssin, vaikka en ole koskaan ohjelmoinut www.helsinki.fi Näin järjestän ohjelmointikurssin, vaikka en ole koskaan ohjelmoinut Ohjelmointikurssin järjestäminen Helsingin yliopiston Ohjelmoinnin MOOC-kurssimateriaalin avulla 15.4.2016 1 Linkki Tietojenkäsittelytieteen

Lisätiedot

POLKU LUOKKAKAAVIOISTA TAULUJEN TOTEUTUKSEEN

POLKU LUOKKAKAAVIOISTA TAULUJEN TOTEUTUKSEEN POLKU LUOKKAKAAVIOISTA TAULUJEN TOTEUTUKSEEN KIRJAN HOVI, HUOTARI, LAHDENMÄKI: TIETOKANTOJEN SUUNNITTELU & INDEKSOINTI DOCENDO (2003, 2005) LUKU 7 JOUNI HUOTARI & ARI HOVI IIO30100 TIETOKANTOJEN SUUNNITTELU

Lisätiedot

12. Monimuotoisuus 12.1

12. Monimuotoisuus 12.1 12. Monimuotoisuus 12.1 Sisällys Johdanto. Periytymismekanismi määrittää alityypityksen. Viitteiden sijoitus ja vertailu. Staattinen ja dynaaminen luokka. Parametrinvälitys eräs monimuotoisuuden sovellus.

Lisätiedot

Ohjelmointi 2 / 2010 Välikoe / 26.3

Ohjelmointi 2 / 2010 Välikoe / 26.3 Ohjelmointi 2 / 2010 Välikoe / 26.3 Välikoe / 26.3 Vastaa neljään (4) tehtävään ja halutessa bonustehtäviin B1 ja/tai B2, (tuovat lisäpisteitä). Bonustehtävät saa tehdä vaikkei olisi tehnyt siihen tehtävään

Lisätiedot

1. Omat operaatiot 1.1

1. Omat operaatiot 1.1 1. Omat operaatiot 1.1 Sisällys Yleistä operaatioista. Mihin operaatioita tarvitaan? Oman operaation määrittely. Yleisesti, nimeäminen ja hyvä ohjelmointitapa, määreet, parametrit ja näkyvyys. HelloWorld-ohjelma

Lisätiedot

Javan perusteita. Janne Käki

Javan perusteita. Janne Käki Javan perusteita Janne Käki 20.9.2006 Muutama perusasia Tietokone tekee juuri (ja vain) sen, mitä käsketään. Tietokone ymmärtää vain syntaksia (sanojen kirjoitusasua), ei semantiikkaa (sanojen merkitystä).

Lisätiedot

Onnistunut SAP-projekti laadunvarmistuksen keinoin

Onnistunut SAP-projekti laadunvarmistuksen keinoin Onnistunut SAP-projekti laadunvarmistuksen keinoin 07.10.2010 Patrick Qvick Sisällys 1. Qentinel 2. Laadukas ohjelmisto täyttää sille asetetut tarpeet 3. SAP -projektin kriittisiä menestystekijöitä 4.

Lisätiedot

Tietokannanhoitaja DBA (Database Administrator) ja tietokannan hallinta

Tietokannanhoitaja DBA (Database Administrator) ja tietokannan hallinta Tietokannanhoitaja DBA (Database Administrator) ja tietokannan hallinta Jouni Huotari Martti Laiho (materiaali on osa virtuaaliammattikorkeakoulun Tietokantaosaaja-opintokokonaisuutta) opintokokonaisuutta)

Lisätiedot

Kurssin hallinta -työväline

Kurssin hallinta -työväline Kurssin hallinta -työväline Kurssin hallinta -työvälineellä muokataan kursseja A&Ooppimisympäristöalustalla Kurssi koostuu - ohjelmasta (linkit työkaluihin& muihin resursseihin), - materiaaleista, - keskusteluryhmästä,

Lisätiedot

T Syksy 2004 Logiikka tietotekniikassa: perusteet Laskuharjoitus 7 (opetusmoniste, kappaleet )

T Syksy 2004 Logiikka tietotekniikassa: perusteet Laskuharjoitus 7 (opetusmoniste, kappaleet ) T-79144 Syksy 2004 Logiikka tietotekniikassa: perusteet Laskuharjoitus 7 (opetusmoniste, kappaleet 11-22) 26 29102004 1 Ilmaise seuraavat lauseet predikaattilogiikalla: a) Jokin porteista on viallinen

Lisätiedot

WWW-sivut HTML-kielellä esitettyä hypertekstiaineistoa

WWW-sivut HTML-kielellä esitettyä hypertekstiaineistoa WWW ja tietokannat WWW-sivut HTML-kielellä esitettyä hypertekstiaineistoa tekstiä, kuvia, hyperlinkkejä Staattiset sivut kirjoitettu kerran, muuttaminen käsin ongelmana pysyminen ajantasalla Ylläpito hankalaa,

Lisätiedot

Standardi IEC Ohjelmisto

Standardi IEC Ohjelmisto Sundcon Oy Standardi IEC 61508 3 Ohjelmisto muutokset Matti Sundquist Sundcon Oy www.sundcon.fi Standardi IEC 61508 3 (1) Standardissa di esitetään vaatimukset niiden tietojen ja menettelytapojen valmisteluun,

Lisätiedot

Ohjelmointikielet ja -paradigmat 5op. Markus Norrena

Ohjelmointikielet ja -paradigmat 5op. Markus Norrena Ohjelmointikielet ja -paradigmat 5op Markus Norrena Ko#tehtävä 4 Viimeistele "alkeellinen kuvagalleria". Käytännössä kaksi sivua Yksi jolla voi ladata kuvia palvelimelle (file upload) Toinen jolla ladattuja

Lisätiedot

CT60A4150 OHJELMISTOTESTAUKSEN PERUSTEET. Jussi Kasurinen (etu.suku@lut.fi) Kevät 2016

CT60A4150 OHJELMISTOTESTAUKSEN PERUSTEET. Jussi Kasurinen (etu.suku@lut.fi) Kevät 2016 CT60A4150 OHJELMISTOTESTAUKSEN PERUSTEET Jussi Kasurinen (etu.suku@lut.fi) Kevät 2016 VIIME KERRALLA MENETELMIÄ Musta laatikko Valkea laatikko Harmaa laatikko Regressio Automaatio Rasitus (kuormitus)

Lisätiedot

Sisällys. 9. Periytyminen Javassa. Periytymismekanismi Java-kielessä. Periytymismekanismi Java-kielessä

Sisällys. 9. Periytyminen Javassa. Periytymismekanismi Java-kielessä. Periytymismekanismi Java-kielessä Sisällys 9. Periytyminen Javassa Periytymismekanismi Java-kielessä. Piirteiden näkyvyys periytymisessä. Metodien korvaaminen ja super-attribuutti. Attribuutin peittäminen periytymisen kautta. Rakentajat

Lisätiedot

Matematiikan johdantokurssi, syksy 2016 Harjoitus 11, ratkaisuista

Matematiikan johdantokurssi, syksy 2016 Harjoitus 11, ratkaisuista Matematiikan johdantokurssi, syksy 06 Harjoitus, ratkaisuista. Valitse seuraaville säännöille mahdollisimman laajat lähtöjoukot ja sopivat maalijoukot niin, että syntyy kahden muuttujan funktiot (ks. monisteen

Lisätiedot

Tutkimusmenetelmät-kurssi, s-2004

Tutkimusmenetelmät-kurssi, s-2004 Algoritmitutkimuksen menetelmistä Tutkimusmenetelmät-kurssi, s-2004 Pekka Kilpeläinen Kuopion yliopisto Tietojenkäsittelytieteen laitos Algoritmitutkimuksen menetelmistä p.1/20 Sisällys Tänään Tietojenkäsittelytiede

Lisätiedot

Oppimistavoitteet kurssilla Rinnakkaisohjelmointi

Oppimistavoitteet kurssilla Rinnakkaisohjelmointi 17.5.2006 1/5 Oppimistavoitteet kurssilla Rinnakkaisohjelmointi Rinnakkaisuus ja rinnakkaisuuden soveltaminen tietojenkäsittelyjärjestelmissä Kurssin Tietokoneen toiminta perusteella ymmärtää, miten ohjelman

Lisätiedot

Testausoppeja toimialavaihdoksesta

Testausoppeja toimialavaihdoksesta Testausoppeja toimialavaihdoksesta Maaret Pyhäjärvi Email: Gsm: 040-8233777 Erkki Pöyhönen & Maaret Pyhäjärvi Nimeä Attribution (Finland) http://creativecommons.org/licenses/by/1.0/fi/

Lisätiedot

Työn ositusmalleista. Luennon tavoitteista. Motivointia. Walker Royce, Software Project Management, A Unified Framework

Työn ositusmalleista. Luennon tavoitteista. Motivointia. Walker Royce, Software Project Management, A Unified Framework Työn ositusmalleista Luennon tavoitteista Luennon sisällöstä Motivointia Lähteinä: Walker Royce, Software Project Management, A Unified Framework 1 Tavoitteista Luentojen jälkeen opiskelijan tulisi osata:

Lisätiedot

Analyysi, staattinen mallintaminen, kohdealueen malli ja luokkakaavio

Analyysi, staattinen mallintaminen, kohdealueen malli ja luokkakaavio Analyysi, staattinen mallintaminen, kohdealueen malli ja luokkakaavio Analyysi Tarkentaa ja jäsentää vaatimusmäärittelyä, vastaa kysymykseen MITÄ järjestelmän tulisi tehdä. Suoritetaan seuraavia tehtäviä:

Lisätiedot

Hirviö. Design Patterns

Hirviö. Design Patterns Hirviö SEPA-päiväkirja Design Patterns Anssi Kalliolahti Liia Sarjakoski 8. helmikuuta 2005 1 Sisältö 1 Johdanto 3 2 Menetelmän käytäntöön soveltaminen 3 3 Kokemuksia ja muutoksia 3 3.1 PP..........................................

Lisätiedot

Harjoitus 7: NCSS - Tilastollinen analyysi

Harjoitus 7: NCSS - Tilastollinen analyysi Harjoitus 7: NCSS - Tilastollinen analyysi Mat-2.2107 Sovelletun matematiikan tietokonetyöt Syksy 2006 Mat-2.2107 Sovelletun matematiikan tietokonetyöt 1 Harjoituksen aiheita Tilastollinen testaus Testaukseen

Lisätiedot