Stories for automatisert testing

Ein oversikt over stories for å få på plass automatisert testing av Cerebrum.

Er lagt til i UAIT backlog 254-270.

1   Første runde

Stories er organisert hierarkisk, og forsøkt arrangert i omtrentleg kronologisk rekkefølge:

  • Som utviklar treng eg at den eksisterande infrastrukturen for automatisert testing er fullført, så vi kan begynne med autotesting som standard.

    • Som utviklar vil eg at opplegget med ansible og testregimet i Jenkins vert fullført. Dette gjeld spesielt feilhandteringa i Jenkins, så den gir Stash eitt samla svar for alle testar.
    • Som utviklar treng eg at eksisterande testar migrerast til å bruke ansible og nytt regime.
    • Som utviklar treng eg litt tid på å forstå og sette meg inn i bruken av ansible og autotestinga.
  • Som utviklar vil eg ha innført ein standard kodestil i Cerebrum, for å gjere det enklare å vidareutvikle Cerebrum.

  • Som utviklar vil eg ha definert og beskreve kva dei ulike elementa i Cerebrum er og korleis dei skal brukast. Kva er til dømes ein mixin, ein modul, og korleis bruke standardfunksjonalitet i core?

  • Som utviklar treng eg at det køyrast automatisert testing per Cerebrum-instans. I dag har vi berre testoppsett for minimal Cerebrum, TSD-miljøet og nokre integrasjonar, men vi treng også autotesting for partnerane sine oppsett.

  • Som utviklar ønsker eg at Cerebrum refaktoriserast, for å gjere det enklare å lage automatiske testar.

    • Som utviklar vil eg at ein minimal Cerebrum, med standardinnstillingar, fungerer utan feil, for å gjere det enklare å teste. Med minimal meinast å berre bruke default_config.py, med standard CLASS_CONSTANTS, CLASS_DATABASE etc, men dette feiler per i dag.
    • Som utviklar ønsker eg at Cerebrum har støtte for konfigurasjon i ei rein konfig-fil, i staden for i cereconf.py. cereconf inneheld bl.a. køyrande kode, som gjer det vanskeleg å skille kode frå konfig og difor vanskeleg å lage testar for.
    • Som utviklar ønsker eg å migrere over all konfigurasjon frå dagens cereconf.py til ei rein konfigurasjonsfil. Dette for å gjere Cerebrum mindre komplisert og enklare å teste.
    • Som utviklar ønsker eg at Cerebrum skal få støtte for modulhandtering, så ein kan separere modular og mixins frå Cerebrum core. I dag er modular og mixins samanfletta med core og kan ikkje lenger skillast ut utan å brekke Cerebrum - dette gjer det meir komplisert å utvikle på Cerebrum.
    • Som utviklar ønsker eg at eksisterande modular refaktorerast så dei vert ekte modular, og kan skillast frå Cerebrum core. Dette er ein stor jobb og mange modular, så den må delast opp seinare.
  • Som utviklar ønsker eg ei automatisk vurdering av kodekvaliteten til Cerebrum, så vi kan sjå framgang og har noko å strekke oss etter. Dette kan til dømes gjerast tilgjengeleg for utviklarane med nattleg rapportering eller ein graf.

  • Som utviklar ønsker eg ein test-infrastruktur som er enkel å sette opp lokalt, så det er lett å fortløpande teste nye endringar i Cerebrum.

  • Som utviklar ønsker eg at alt som er fellesfunksjonalitet vert autotesta, så vi kan stole på at det fungerer.

    • Som utviklar ønsker eg at det grunnleggande i Cerebrum core vert autotesta. Noko er allereie gjort her.
    • Som utviklar ønsker eg at funksjonaliteten i Utils.py vert autotesta. Dette krever refaktorisering.
    • Som utviklar ønsker eg at webservice-funksjonaliteten vert autotesta.
    • Som utviklar ønsker eg at alle nye og viktige integrasjonar vert autotesta for den mest grunnleggande funksjonaliteten.

2   Seinare stories

Stories som vi bør vente med å starte på:

  • Som utviklar ønsker eg å innføre køyrereglar for autotesting. Vi har for lite erfaring med testing til å kunne definere noko slikt no.
  • Som utviklar ønsker eg sjå på kor vi vil med integrasjons- og systemtesting. Dette er uklart for oss, og gjerast no manuelt.
Av fhl, jokim
Publisert 26. jan. 2015 06:50