AgilElephant I2 Tekijä: Heikki Salminen Omistaja: ElectricSeven Aihe: Sivu 1 / 8
Dokumentti Historia Muutoshistoria Revision Numero Revision Päiväys Yhteenveto muutoksista Revision tekijä 1.0 7.2.2004 Ensimmäinen versio Heikki Salminen 1.1 7.2.2004 Täydennetty versio Heikki Salminen Hyväksyjät Tämä dokumentti vaatii seuraavien henkilöiden hyväksymiset Nimi Juha Kaarlas Tehtävä Projektipäällikkö Jakelu Tämä dokumentti jaetaan seuraaville henkilöille Nimi Projektiryhmä Tehtävä Aihe: Sivu 2 / 8
Sisällysluettelo 1. Muutokset suunnitelmiin...4 2. Tulosten yhteenveto...5 2.1 Tavoitteiden saavuttaminen...5 2.2 Löydetyt viat...5 2.3 Tuotteen laatu...6 Aihe: Sivu 3 / 8
1. Muutokset suunnitelmiin Automatisoitujen yksikkötestien kanssa ollaan tällä hetkellä selvästi suunnitelmasta jäljessä. Vaiheiden I1 ja I2 väliin suunniteltu yksikkötestejä parantava vaihe ei toteutunut suunnitelman mukaisena. Yksikkötestejä on toteutettu kohtalaisesti, mutta niiden kattavuus on huonompi kuin mitä asiakas todennäköisesti tulee vaatimaan. Siksi niitä on tarkoitus parantaa ja laajentaa FD-vaiheen alussa. Kohtalaisen suuri osa toteutetuista EJB-luokista on edelleen saatu katettua yksikkötesteillä. Testitapaukset eivät kata läheskään kaikkia metodeja, mutta kaikki olennaisimmat ja monimutkaisimmat toiminnot saatiin katettua. Yksikkötesteillä ei enää löydetty uusia vikoja (ilmeisesti testien ajamisesta omassa kehitysympäristössä ennen koodin CVS-commitointia on tullut kaikille rutiini, joten viat eivät pääse julkisuuteen) ja ennaltaehkäisevää vaikutusta on tässä vaiheessa vaikea arvioida. Osa järjestelmän riskialttiista toiminnoista (mm. muutamien loogisten objektien muokkaaminen tai poistaminen) on edelleen toteuttamatta. Toteutetut toiminnot muodostavat järkevän loogisen kokonaisuuden ja niiden toiminnallinen testaaminen on mahdollista ja mielekästä. Kaikki toteutetut toiminnot on saatu katettua käsin tehtävällä toiminnallisella testauksella joko hyvin tai kohtalaisesti. Toteutettujen toimintojen laatu oli edelleen kohtalaisen hyvä. Niistä löydettiin jonkin verran vikoja, mutta ne eivät olleet vakavia. Järjestelmästä on toistaiseksi löydetty vain kolme vakavaa bugia ja nekin korjattiin todella nopeasti. Bugit eivät ole häirinneet testausta ja testausajasta bugien raportoimiseen kului vain häviävän pieni osa. Bugzilla-järjestelmä otettiin käyttöön tässä vaiheessa. Sen kanssa ei ilmennyt ongelmia. HttpUnitilla tehtävään automatisoituun korkean tason testaukseen ei selvästikään jää aikaa. Sen toteuttaminen poistetaan suunnitelmasta. Katselmointien osalta oltiin I1-vaiheen lopussa selvästi jäljessä suunnitelmasta. Siksi I2-vaiheen alussa katselmointioheistusta kevennettiin selvästi. Siitä huolimatta katselmointien tilanne ei merkittävästä parantunut tämän vaiheen aikana. Toisaalta nyt näyttää siltä, että niistä ei olisi ollut merkittävää hyötyä. Järjestelmässä on edelleen vain vähän vikoja ja niitä ei ole vaikea löytää testauksella. Siinä mielessä laajojen ja järjestelmällisten katselmointien käyttö olisi ollut ylimitoitettua. Jatkosuunnitelma katselmointien osalta päätetään vasta FD-vaiheen alussa. Aihe: Sivu 4 / 8
2. Tulosten yhteenveto Testauksessa havaitut viat olivat pääosin pieniä ja merkittävät viat korjattiin lähes välittömästi. 2.1 Tavoitteiden saavuttaminen Testaussuunnitelmassa kirjatut tavoitteet yksittäiselle iteraatiolle olivat: 1. Iteraation päättyessä tuotteeseen ei jää lainkaan löydettyjä mutta korjaamattomia tai tarkastamattomia vakavuusluokkien blocking ja critical vikoja 2. Iteraation aikana tuotteesta löydetään korkeintaan kolme vakavuusluokkien blocking ja critical vikaa 3. Järjestelmän ytimen muodostaville luokille ja tärkeimmän iteraatiossa toteutetun toiminnallisuuden toteuttaville luokille saadaan tehtyä yksikkötestit 4. Iteraation päättyessä kaikki toteutetut yksikkötestit menevät läpi virheettömästi 5. Iteraatiossa toteutetun toiminnallisuuden kattavat testitapaukset saadaan suunniteltua 6. Vähintään 75% suunnitelluista testitapauksista saadaan suoritettua Tavoitteiden saavuttamisesta voidaan todeta seuraavaa: 1. Saavutettiin: blocking- tai critical-luokan vikoja ei löytynyt yhtään iteraation aikana 2. Saavutettiin: blocking- tai critical-luokan vikoja ei löytynyt yhtään iteraation aikana. 3. Ei saavutettu kokonaan: yksikkötestejä ei ehditty toteuttaa suunnitellussa laajuudessa, vain osalle EJB-apista. 4. Saavutettiin: Ne yksikkötestit jotka ehdittiin toteuttaa, menevät läpi. 5. Saavutettiin: Testitapaukset ovat dokumentoituja ja eräitä pieniä poikkeuksia lukuunottamatta kattavia. 6. Saavutettiin: Kaikki suunnitellut testitapaukset suoritettiin vähintään kerran, osa kahdesti. Tämä ei tietenkään koske niitä suunniteltuja testitapauksia, joita vastaavaa toiminnallisuutta ei ole vielä implementoitu. 2.2 Löydetyt viat Bugzillan tilasto 8.2.2005 klo 0:00 oli seuraava: New Fixed Yht. Trivial 2 0 2 Minor 4 1 5 Normal 6 3 9 Major 0 3 3 Critical 0 0 0 Blocker 0 0 0 Yht. 12 7 Aihe: Sivu 5 / 8
Vikoja löydettiin siis 19, mutta mikään niistä ei ollut vakava. Jo kaikki major-luokan viat saatiin korjattua. Järjestelmään jäi 12 tunnettua vikaa korjattavaksi FD-vaiheen aikana. Kaikkiaan virheistä korjattiin 37%. Lisäksi Bugzillaan kirjattiin 3 raporttia, jotka merkittiin virheellisiksi (ne eivät ole mukana edellä esitetyssä). Sama luokiteltuna komponentin (eli järjestelmän arkkitehtuurikerroksen) mukaan: Komponentti lkm Hibernate classes 1 Logic beans 3 Shared code 1 Web frontend 14 Yht. 19 Selvästi suurin osa vioista oli siis web-käyttöliittymäkerroksessa. Siinä olevat viat on myös helpoin korjata. Lisäksi arviomme mukaan kaikki hankalasti korjattavat viat on jo korjattu eli FD-vaiheeseen siirretään vain helppoja vikoja. Testitapaukset menivät läpi ensimmäisellä testauskierroksella (3.-7.2.2005) seuraavasti: Lyhenne Toiminnallisuus OK Virhe Yht. Ei impl. Yht. Virhe % Ei impl. % bi Backlogit 5 7 12 6 18 58 % 33 % ko Käyttäjät 1 0 1 3 4 0 % 75 % se Tuntiseuranta 0 1 1 0 1 100 % 0 % tu Tuotteet 2 6 8 0 8 75 % 0 % cc Projektit/iteraatiot 8 5 13 5 18 38 % 28 % pf Portfoliot 5 3 8 4 12 38 % 33 % Yht. 21 22 43 18 61 51 % 30 % Lyhenteet vastaavat testisuunnitelman toiminnallisuusalueita. Taulukkoon on laskettu virheeseen johtaneiden testitapausten osuus suoritetuista tapauksista ja suorittamatta jätettyjen (ei vielä implementoitu) tapausten osuus kaikista suunnitelluista tapauksista. Yhteensä siis noin puolet testitapauksista löysi virheen. Koska testitapaukset olivat laajoja ja löysivät pääosin yksittäisiä vaatimattomia vikoja, pidämme tulosta kuitenkin hyvänä. Toisen testitapauskierroksen (7.2.2005, bugikorjausten verifiointia) jälkeen tulos parani selvästi: Lyhenne Toiminnallisuus OK Virhe Yht. Ei impl. Yht. Virhe % Ei impl. % bi Backlogit 7 5 12 6 18 42 % 33 % ko Käyttäjät 1 0 1 3 4 0 % 75 % se Tuntiseuranta 1 0 1 0 1 0 % 0 % tu Tuotteet 5 3 8 0 8 38 % 0 % cc Projektit/iteraatiot 8 5 13 5 18 38 % 28 % pf Portfoliot 7 1 8 4 12 13 % 33 % Yht. 29 14 43 18 61 33 % 30 % 2.3 Tuotteen laatu Mielestämme funktionaaliset testit olivat niin suunnitelmallisia ja kattavia, että niiden tulosten perusteella voidaan tehdä perusteltuja päätelmiä tuotteen tämänhetkisestä laadusta. Lisäksi tuote oli kohtalaisen stabiilissa tilassa testausten aikana ja siihen tehtiin muutoksia enää vähän. Aihe: Sivu 6 / 8
Tulosten perusteella tuotteen laatu on edelleenkin varsin hyvä. Vikoja löytyi kohtalaisen vähän ja ne eivät olleet vakavia. Lisäksi ne oli helppo paikantaa ja korjata. Järjestelmän eri arkkitehtuuriosien välinen ero on selvä. Vioista suurin osa on web-kerroksessa, jossa on vain kohtalaisen vähän koodia. Tästä voidaan päätellä, että monimutkaiset sovelluslogiikkaosat on tehty ja testattu huolellisemmin. Lisäksi tästä voidaan päätellä, että automaattisista yksikkötesteistä oli hyötyä, sillä yksikkötestit kattoivat vain logiikkaosan. Ilmeisesti suurin osa web-kerroksen virheistä on yksinkertaisia laiminlyöntejä tai huolimattomuusvirheitä. Eri toiminnallisuuksien väliset erot ovat todennäköisesti sattumaa. Tulosten perusteella backlogien, tuotteiden ja projektien/iteraatioiden käsittelyssä oli keskimääräistä enemmän vikoja. Toisaalta näistä backlogit ja projektit/iteraatiot ovat järjestelmän suurimpia toimintoja, joten niiden virhetiheydestä ei voida päätellä mitään. Tulosten perusteella voidaan päätellä ainoastaa se, että tuotteiden käsittelyn virhetiheys oli keskimääräistä suurempi ja portfolioiden keskimääräistä pienempi. Aihe: Sivu 7 / 8
3. Vikaluettelo Tässä vielä listaus kaikista Bugzillaan kirjatuista raporteista, joita ei ole merkitty virheellisiksi: Id Vakavuus Tila Kuvaus 1 min Korjattu Illegal issueid passed to viewissue.jsp displays a page w... 2 nor Avoin newissue.jsp does not show large values for estimated eff... 3 maj Korjattu Kahden backlog item -instanssin siirtäminen samaan backl... 4 nor Korjattu Modify iteration shows wrong iteration leader 5 nor Korjattu Release modifying shows wrong release leader 6 nor Korjattu Type of release doesn't get changed when modifying release 7 min Avoin Statusmuutokset product backlogissa aiheuttavat pelottavan 8 nor Avoin Instance itemin yhden iteraation tuntien nollaaminen muut... 9 min Avoin HTML-tagien lisääminen esim. kommentteihin tai descript... 10 nor Avoin effort-muokkaussivulla saman itemin tiedot toistuvat 11 maj Korjattu Horizon type and release type are mixed when modifying re... 12 min Avoin Kaksi tuotetta samalla keyllä tuottaa JDBC errorin 14 maj Korjattu Tuotteen poistaminen sotkee releasen ja iteraation backlogit 15 nor Avoin Tuotetta releasesta poistettaessa itemit jäävät releas... 16 tri Avoin Releasen/iteraation luonnissa väärä virheilmoitus (tai... 17 nor Avoin Releasen/iteraation päivämäärät voi tuhota 18 tri Avoin Releasen/iteraation virheilmoitukset puutteellisia 19 min Avoin Päivämäärissä SQL-yhteesnopivuusongelma 22 nor Avoin Graafinen portfolio on järkyttävän leveä Aihe: Sivu 8 / 8