softify.pro Flow — COCOn testaama

21.08.2026

Control. Clarity. Flow.

Jokainen vakavasti otettava ohjelmistotuote kehittää lopulta toisen tuotteen tuotteen taakse.

Asiakkaat eivät ehkä koskaan näe sitä. Vierailijat eivät ehkä koskaan tiedä sen olemassaolosta. Mutta ylläpitäjät, operaattorit ja kehittäjät ovat siitä riippuvaisia joka päivä.

softify.pro Flow'lle tuo sovellus on Administration — operatiivinen konsoli, joka vastaa käyttäjien, roolien, käyttöoikeustasojen, tunnistautumistilojen, tietokantaympäristöjen ja muun asetusten hallinnasta, joka pitää Flow-asennuksen hallinnassa.

Sen kirjautumisnäytöllä on kolme sanaa:
Control. Clarity. Flow.

Ne valittiin alun perin kuvaamaan kokemusta, jonka halusimme ylläpitäjillä olevan järjestelmää käyttäessään.

Mutta ne kuvaavat yllättävän hyvin myös sitä, miten uskomme ohjelmistoa tulisi testata.

Tämä teki softify.pro Flow — Administrationista ilmeisen ehdokkaan todelliseen COCO-testiin.
Ei laboratoriodemonstraatiota.
Ei kokoelmaa erillisiä painikkeita, jotka on valmisteltu erityisesti tekoälydemoa varten.
Todellinen alustariippumaton työpöytäsovellus, jossa on aitoa sovelluslogiikkaa, useita ikkunoita, useita tietokantataustajärjestelmiä, tunnistautuminen, käyttöoikeudet, lokalisointi ja riittävästi tilaa, jotta näennäisen pienet regressiot ovat vaikeasti havaittavissa manuaalisesti.

Tässä esitettyä julkista demonstraatiota varten COCO työskenteli yksinomaan generoidun demodatan kanssa. Sovellus oli lisensoitu kuvitteelliselle yritykselle Presentation GmbH, eikä mitään tuotannon asiakastietoja, tunnuksia tai henkilötietoja käytetty.

Tavoite oli yksinkertainen:
anna COCOn lähestyä sovellusta kuten testaaja tekisi ja selvittää, käyttäytyykö koko hallinnollinen työnkulku edelleen niin kuin ohjelmisto väittää.

The Challenge

Ensi silmäyksellä hallintasovelluksen testaaminen näyttää yksinkertaiselta.

Avaa se.
Kirjaudu sisään.
Klikkaa läpi useita ikkunoita.
Tarkista, että kaikki näyttää oikealta.

Tämä oletus muuttuu nopeasti sovelluksen kasvaessa.

softify.pro Flow — Administration ei ole yksi staattinen lomake. Se on kokoelma toisiinsa kytkeytyneitä operatiivisia näkymiä yhden sovelluskuoren sisällä.

Muun muassa ylläpitäjä voi työskennellä seuraavien kanssa:

  • käyttäjätilit
  • roolit ja käyttöoikeustasot
  • tunnistautumistiedot
  • kaksivaiheisen tunnistautumisen tila
  • käyttöjärjestelmätiedot
  • verkko- ja IP-tiedot
  • tietokannan asetukset
  • lajittelu- ja esitysasetukset
  • reaaliaikainen kielen valinta
  • sovellus- ja lisenssitiedot

Käyttöliittymä tukee tällä hetkellä yhtätoista kieltä. Sovellus toimii myös MySQL- ja PostgreSQL-tietokantataustajärjestelmillä. Yksittäin mikään näistä ominaisuuksista ei ole epätavallinen testausongelma.

Vaikeus syntyy niiden yhdistelmistä.
Käyttäjätaulukko saattaa toimia oikein englanniksi mutta näyttää vanhentuneen sarakenimen kroatiaksi.
Lajittelu saattaa toimia oikein MySQL-yhteydessä mutta käyttäytyä eri tavalla PostgreSQL-vaihdon jälkeen.

Kielenvaihto saattaa päivittää useimmat käyttöliittymäelementit mutta jättää yhden tilaviestin kääntämättä. Sovellus saattaa vaihtaa tietokantaa onnistuneesti mutta säilyttää vanhentunutta tietoa edellisestä yhteydestä. Uusi julkaisu saattaa tuoda uuden toiminnon, kun taas Tietoja-ikkuna kuvaa yhä edellistä. Ohjelman ei tarvitse kaatua, jotta mikä tahansa näistä tilanteista olisi regressio. Itse asiassa jotkin hankalimmista ohjelmistovirheistä ovat juuri niitä, joissa kaikki näyttää toimivan.

Sovellus käynnistyy.
Ikkuna avautuu.
Painike reagoi.
Mutta jokin pinnan alla ei ole enää aivan kohdallaan.
Siksi toistuva regressiotestaus on tärkeää.

Ja se on myös juuri sitä työtä, jossa ihmiset muuttuvat yhä huonommiksi toistettuaan samaa sekvenssiä kymmeniä kertoja.

Why Manual Testing Becomes Expensive

Jonkin testaaminen kerran on helppoa.
Sen testaaminen luotettavasti jokaisen relevantin julkaisun jälkeen on eri asia.

Tarkastele vain kolmea ulottuvuutta: 11 käyttöliittymäkieltä × 2 tietokantataustajärjestelmää × useita sovelluksen työnkulkuja.

Yhdistelmien määrä kasvaa nopeasti.
Lisää erilaiset käyttäjäroolit, tunnistautumistilat, lajittelukäyttäytyminen, asetusmuutokset ja käyttöympäristöt, ja testimatriisista tulee liian suuri satunnaiseksi manuaaliseksi tarkistuslistaksi.

Tässä regressiotestaus usein alkaa rapautua.
Ei tahallaan.
Julkaisun määräaika lähestyy.
Joku muistaa, että sovellus testattiin viime viikolla.
Kehittäjä tarkistaa nopeasti tärkeimmän näytön.

Saksa toimii.
Englanti toimii.
MySQL toimii.
Oletukseksi tulee:
"Loput ovat luultavasti kunnossa."

Yleensä ovatkin.
Siihen julkaisuun asti, kun eivät ole.
COCO on olemassa osittain juuri poistaakseen tämän oletuksen prosessista.

What COCO Actually Did

COCO käynnisti softify.pro Flow — Administrationin kylmästä sovellustilasta, tukeutumatta aiemmin valmisteltuun näyttöön tai manuaalisesti sijoitettuun työnkulkuun.

Ensimmäinen vuorovaikutus oli sama, joka esitetään ihmisylläpitäjälle: kirjautumisikkuna.

COCO tunnisti tunnistautumisliittymän, joka sisälsi:

  • käyttäjänimen
  • salasanan
  • kaksivaiheisen tunnistautumisen koodin

ja rivin suoraan softify.pro Flow -tunnisteen alla:
Control. Clarity. Flow.

Siitä eteenpäin COCO jatkoi määritellyn regressioistunnon läpi. Tarkoituksena ei ollut pelkästään selvittää, voitaisiinko sovellus avata.

Tarkoituksena oli varmistaa, pysyikö sovelluksen tila sisäisesti johdonmukaisena COCOn ollessa vuorovaikutuksessa sen kanssa.

Authentication Is Only the Beginning

Kirjautumisen testaus on yksi ilmeisimmistä automaation ehdokkaista, mutta onnistunut tunnistautuminen yksinään kertoo hyvin vähän hallintasovelluksen muusta osasta.

Sisällä ollessaan COCO siirtyi varsinaiseen käyttöympäristöön. Se tarkasti käyttäjähallintaliittymän ja varmisti, että odotetut tiedot olivat läsnä.

Tähän kuului tietoja kuten:

  • käyttäjänimet
  • peitetyt salasanat
  • 2FA-indikaattorit
  • määritetyt roolit
  • käyttöjärjestelmätiedot
  • IP-osoitteet

COCO oli sen jälkeen vuorovaikutuksessa taulukon kanssa pelkän tarkkailun sijaan.
Käyttäjälista lajiteltiin käyttäjänimen mukaan.
Tuloksena syntynyt järjestys tarkastettiin.
Tärkeä osa ei ollut se, tuottiko sarakeotsikon klikkaaminen jonkin näkyvän muutoksen.

COCO varmisti, että tuloksena syntynyt taulukon tila vastasi pyydettyä toimintoa.

Tällä erolla on väliä.
Toiminnallinen testi kysyy:
"Vastasiko painike?"

Hyödyllinen regressiotesti kysyy:
"Päätyikö sovellus oikeaan tilaan?"

Testing the Database Boundary

softify.pro Flow tukee useampaa kuin yhtä tietokantataustajärjestelmää.

Tämä tekee tietokannan vaihdosta erityisen tärkeän regressiorajan.
COCO vaihtoi aktiivisen taustajärjestelmän MySQL:stä PostgreSQL:ään.

Vaihdon jälkeen se tarkasti käyttäjätiedot uudelleen.
Testi etsi enemmän kuin onnistunutta yhteyttä.
Se tarkisti, jatkoiko sovellus odotettujen tietueiden näyttämistä ja pysyivätkö käyttöliittymän kautta näytetyt tiedot johdonmukaisina.

COCO vaihtoi sitten takaisin.

Tämäntyyppinen siirtymä on helppo aliarvioida.
Käyttöliittymä voi pysyä visuaalisesti samana, vaikka sen alla oleva tallennuskerros muuttuu kokonaan.
Ylläpitäjän näkökulmasta tuon siirtymän pitäisi tuntua lähes tylsältä.
Samojen käyttäjien pitäisi edelleen olla ymmärrettäviä.
Samojen roolien pitäisi edelleen olla järkeviä.

Saman käyttöliittymäkäyttäytymisen pitäisi edelleen päteä.

Tuo näennäisen tapahtumaton jatkuvuus on juuri se, mikä pitää todistaa.

Eleven Languages, One Application State

Lokalisointi on toinen alue, jolla pinnallinen testaus on erityisen vaarallista.

On suhteellisen helppoa varmistaa, että sovellus voi käynnistyä toisella kielellä.
Paljon arvokkaampaa on varmistaa, mitä tapahtuu, kun kieli vaihtuu sovelluksen ollessa jo käynnissä ja pitäessä tilaa yllä.

COCO vaihtoi käyttöliittymän kielen reaaliajassa.

Istunto sisälsi siirtymiä kielten välillä, kuten:
saksa → englanti → kroatia
hallintanäkymän pysyessä aktiivisena.

COCO tarkkaili, muuttuivatko käyttöliittymäelementit oikein paikallaan:

  • taulukon otsikot
  • ohjaimet
  • painikkeet
  • merkinnät
  • tilaviestit

Myös taustalla olevan taulukon ja sovelluksen tilan piti selvitä tuosta siirtymästä.
Tällä on merkitystä, koska monikielinen ohjelmisto koostuu enemmästä kuin käännetyistä merkkijonoista.
Kielenvaihdot voivat paljastaa:

  • unohdettuja resursseja
  • vanhentuneita merkintöjä
  • asetteluongelmia
  • kääntämättömiä tilaviestejä
  • koodausongelmia
  • tilan nollautumisia
  • ohjainten uudelleenluontiongelmia

Ikkuna, joka näyttää oikealta, kun se käynnistetään suoraan kroatiaksi, voi silti käyttäytyä väärin, kun käyttäjä vaihtaa saksasta kroatiaan aktiivisen istunnon aikana.

Se on ero näyttökuvan tarkistamisen ja työnkulun testaamisen välillä.

Restoring Application State

COCO palautti sen jälkeen sovelluksen oletuslajitteluasetukset.

Jälleen testi ei päättynyt itse klikkaukseen.

Tuloksena syntynyt järjestys ja sovelluksen tilaosassa esitetty vahvistus arvioitiin. Tämäntyyppinen tarkistus saattaa vaikuttaa merkityksettömältä verrattuna tunnistautumisen tai tietokantapääsyn testaamiseen.

Ei se ole.

Yritysohjelmistot kerryttävät satoja tällaisia pieniä tilasiirtymiä.
Käyttäjät luottavat niihin tietoisesti ajattelematta niitä.
Ohjelmisto tuntuu luotettavalta juuri siksi, että nämä vuorovaikutukset pysyvät ennustettavina.
Regressiotestaus on olemassa suojaamaan tuota ennustettavuutta.

Testing the Information Around the Software

COCO avasi myös sovelluksen Tietoja-ikkunan.

Miksi testata Tietoja-ikkunaa?

Koska ohjelmistodokumentaatio alkaa itse ohjelmiston sisältä.
Version numeron, ominaisuuskuvauksen ja lisenssitietojen, jotka esitetään operaattorille, pitäisi vastata todella käynnissä olevaa sovellusta.

Sovellus voi toimia täydellisesti, vaikka se näyttäisi vanhentuneita versiotietoja tai kuvaisi ominaisuuksia, jotka eivät enää vastaa julkaisua.

Se ei kaada tietokantaa.
Se tekee jotain hienovaraisempaa:
se vähentää luottamusta.

Yritysohjelmistoissa operatiivinen tarkkuus sisältää myös nämä näennäisen pienet yksityiskohdat. Siksi COCO tarkisti myös nämä.

Control.

softify.pro Flow -sloganin ensimmäinen sana on myös testiympäristön ensimmäinen periaate.

Control tarkoittaa tietämistä siitä, mitä testataan, mitä tilaa vasten ja millä datalla.

Julkinen COCO-demonstraatio ei käytä asiakkaiden tuotantotietueita.

Se toimii tarkoituksella valmistellulla demodatalla, jonka odotettu tila tunnetaan.

Tämä tekee tuloksista toistettavia.

Se tarkoittaa myös, että testiajojen välisiä eroja voidaan tutkia sen sijaan, että ne selitettäisiin satunnaisiksi muutoksiksi tuotantotiedoissa.

Vielä tärkeämpää on, että COCO on suunniteltu itse isännöidyksi tekoälytestausjärjestelmäksi.

Testaustodisteet, sovelluksen näyttökuvat ja sisäiset työnkulkutiedot voivat pysyä infrastruktuurin sisällä asiakkaan tai operaattorin omassa hallinnassa sen sijaan, että ne lähetettäisiin oletusarvoisesti ulkopuoliselle kolmannen osapuolen pilvipalvelulle.

Sisäisille liiketoimintasovelluksille tämä ei ole pelkästään infrastruktuuripreferenssi.
Se voi olla osa itse testausvaatimusta.

Clarity.

Automaatio ei ole erityisen hyödyllistä, jos sen lopputulos on: FAILED
jota seuraa satoja rivejä teknistä tulostetta, jonka jonkun on manuaalisesti koottava ymmärtääkseen, mitä tapahtui.

COCO on suunniteltu säilyttämään ymmärrettävä todistusketju.

Raportti kuvaa:

  • mitä testattiin
  • mikä vuorovaikutus tapahtui
  • missä järjestyksessä se tapahtui
  • mitä COCO havaitsi
  • mikä tila oli odotettu
  • missä käyttäytyminen erosi, kun jokin epäonnistui

Näyttökuvat ja suoritustodisteet voivat liittyä tähän sekvenssiin.
Tarkoituksena ei ole piilottaa teknisiä yksityiskohtia.

Tarkoituksena on tehdä tuloksesta ymmärrettävä ennen kuin jonkun täytyy avata debuggeri.

Insinöörin pitäisi pystyä vastaamaan:
Mitä tapahtui? ennen kuin kysyy:
Missä koodissa se tapahtui?

Tämä ero lyhentää tutkintaa dramaattisesti, kun regressio ilmenee.

Flow.

Perinteinen käyttöliittymän automaatio ajattelee usein elementteinä.

Etsi valitsin.
Klikkaa valitsinta.
Etsi toinen valitsin.
Tarkista arvo.

Tämä lähestymistapa pysyy hyödyllisenä, mutta sovelluksia ei koeta valitsinkokoelmina.

Ihmiset kokevat työnkulkuja.

Kirjaudu sisään.
Avaa hallinta.
Etsi käyttäjä.
Muuta asetusta.
Vaihda tietokantaa.
Vaihda kieltä.
Varmista tulos.

Jatka työskentelyä.

COCO käsittelee siis sekvenssiä prosessina eikä satunnaisena ohjainkokoelmana.

Se seuraa, mitä käyttäjä yrittää saavuttaa, ja arvioi sovellusta kontekstissa.

Tästä tulee erityisen arvokasta testattaessa todellista liiketoimintaohjelmistoa, koska virheet tapahtuvat usein näyttöjen tai tilojen välillä, eivät yksittäisen painikkeen sisällä.

Logistinen työnkulku voi sisältää tilauksen, varastovarauksen, keräilytoiminnon, lähetteen ja toimitusvahvistuksen.
Jokainen yksittäinen näyttö voi vaikuttaa oikealta, vaikka koko prosessi olisi väärin.
Sama periaate pätee tässä pienemmässä mittakaavassa.
Hallintaikkuna ei ole tuote.

Sen läpi kulkeva työnkulku on.

Evidence Instead of Assumption

Yksi COCOn tärkeimmistä tehtävistä ei ole klikkaaminen. Se on sen muistaminen, mitä tapahtui.
Ihmisen tekemä regressiotestaus päättyy usein lausuntoon, kuten:
"Testasin sen, ja kaikki näytti hyvältä."

Se voi olla täysin paikkansapitävä.
Mutta useita viikkoja myöhemmin, kun ongelma ilmenee, hyödylliset kysymykset ovat erilaisia:

  • Mikä julkaisu testattiin?
  • Mikä tietokanta?
  • Mikä kieli?
  • Mikä käyttäjätila?
  • Mitä tapahtui ennen ongelmaa?
  • Mikä tarkalleen oli näkyvissä?

Missä järjestyksessä toimenpiteet suoritettiin?
COCOn testiajot on suunniteltu jättämään todisteita.

Tämä muuttaa testituloksen mielipiteestä joksikin, jota voidaan tarkastella.
Onnistuneesta ajosta tulee siten hyödyllinen myös se.
Se luo tunnetun vertailutilan, johon myöhempää käyttäytymistä voidaan verrata.

COCO Is Not the Decision Maker

Tavassa, jolla käytämme tekoälyä ohjelmistotestaukseen, on tärkeä raja.
COCOn ei ole tarkoitus korvata insinöörivastuuta.

Se ei päätä, millainen liiketoimintasäännön pitäisi olla.

Se testaa käyttäytymistä sovellukselle määriteltyjä skenaarioita, vaatimuksia ja odotuksia vasten.
Herkissä päätöksissä, jotka koskevat käyttöoikeuksia, hintoja, varastoa, taloudellisia transaktioita tai muita kriittisiä liiketoimintatiloja, oikean käyttäytymisen määrittely pysyy ihmisen vastuulla.

Tällä erolla on väliä.
Tekoäly on erinomainen toistamaan yksityiskohtaisen testin menettämättä keskittymistä.
Se on erinomainen keräämään todisteita.
Se voi tarkastaa näyttöjä, verrata odotettua ja havaittua käyttäytymistä ja selittää eroavaisuuksia.
Mutta yritys määrittelee edelleen, mitä oikea tarkoittaa.

COCO tekee tuon määritelmän testattavaksi.

The Test Nobody Wants to Repeat

On yksinkertainen syy, miksi automaatio tuo tässä lisäarvoa.
Ihmistestaaja voi ehdottomasti suorittaa tämän regressioistunnon.
Ensimmäinen kieli saa täyden huomion.
Todennäköisesti myös toinen.
Sitten vielä yksi.
Sitten vielä yksi.
MySQL on jo tarkistettu.
PostgreSQL on vielä tarkistettava.
Lajittelutesti on jo suoritettu useita kertoja.
Tietoja-ikkuna ei ole muuttunut kuukausiin.

On perjantai-iltapäivä.

Ja ihmisen huomio tekee sitä, mitä ihmisen huomio luonnostaan tekee.
Se alkaa optimoida.
COCO ei.
COCOn omin sanoin:

  • En kyllästy klikkaamaan samaa painiketta yhdellätoista kielellä. En jätä PostgreSQL-vaihetta väliin vain siksi, että on perjantai-iltapäivä. En oleta lajittelun pitäneen vain siksi, että se toimi edellisessä julkaisussa.

COCOlle jokaista regressioistuntoa voidaan käsitellä kuin se olisi ensimmäinen.
Tämä ei ole älykkyyttä, joka korvaa ihmistestaajan.
Se on automaatiota, joka suojaa ihmistestaajaa siltä testauksen osalta, jossa ihmisen huomio on vähiten arvokasta.

From Repetitive Testing to Engineering Evidence

COCOn laajempi tarkoitus ei ole maksimoida automatisoitujen toimintojen määrää.
Tuhat automatisoitua klikkausta on merkityksetöntä, jos kukaan ei ymmärrä, mitä ne todistavat. Hyödyllinen lopputulos on todisteiden tukema luottamus.

softify.pro Flow'lle tämä tarkoittaa kykyä sanoa, että julkaisu on testattu niillä operatiivisilla alueilla, joilla on merkitystä:

  • tunnistautuminen
  • käyttäjähallinta
  • rooli- ja käyttöoikeustiedot
  • kaksivaiheisen tunnistautumisen tila
  • lajittelukäyttäytyminen
  • MySQL-toiminta
  • PostgreSQL-toiminta
  • reaaliaikainen lokalisointi
  • tilapalaute
  • sovellustiedot
  • lisenssitiedot

ja että tulos säilytetään muodossa, jota voidaan tarkastella jälkikäteen.
Sama periaate skaalautuu kauas tämän sovelluksen ulkopuolelle.
Kirjautumisprosessi voidaan testata tällä tavalla.
Varausprosessi voidaan testata tällä tavalla.
Logistiikkaprosessi voidaan testata tällä tavalla.
Alustariippumaton työpöytäsovellus voidaan testata tällä tavalla.
Näytöt muuttuvat.
Liiketoimintasäännöt muuttuvat.
Periaate ei:
määrittele odotettu työnkulku, suorita se johdonmukaisesti, kerää todisteet ja tee tuloksesta ymmärrettävä.

Why We Test Our Own Software With COCO

On vielä yksi syy, miksi softify.pro Flow on tärkeä COCO-tapaustutkimuksena.

Se on oma ohjelmistomme.
Tämä poistaa mukavan etäisyyden, joka joskus on olemassa teknologiaesittelyn ja sitä esittelevien ihmisten välillä.

Jos COCOn on tarkoitus testata yritysohjelmistoja, sen on oltava tarpeeksi hyödyllinen, jotta luotamme siihen ohjelmistoissa, joita itse kehitämme ja julkaisemme.

Flow toimii siksi sekä tuotteena että koekenttänä.
Uusia testausvalmiuksia voidaan harjoitella todellista sovellusta vasten.
Odottamaton käyttäytyminen voi paljastaa heikkouksia sovelluksessa, testisuunnitelmassa tai itse COCOssa.

Kumpikin puoli parantaa toista.
Tämä palautesilmukka on paljon arvokkaampi kuin keinotekoisten, vain onnistumaan suunniteltujen demonstraatioiden rakentaminen. Testausjärjestelmän ei pitäisi vaikuttaa vakuuttavalta siksi, että demonstraatio oli helppo.
Sen pitäisi tulla vakuuttavaksi siksi, että se jatkaa pienten asioiden löytämistä, joita ihmiset lopulta lakkaisivat tarkistamasta.

The Result

softify.pro Flow — Administrationilla on nyt dokumentoitu ja toistettava regressioprosessi, jonka COCO voi suorittaa ennen relevantteja julkaisuja.

Testi kattaa molemmat tuetut tietokantaympäristöt ja sovelluksen yksitoistakielisen käyttöliittymän seuraten sovellusta niin kuin ylläpitäjä sitä käyttäisi, sen sijaan että kohtelisi jokaista näyttöä erillisenä testikohteena.

COCO tuottaa todistusketjun, joka osoittaa, mitä testattiin, mitä havaittiin ja missä järjestyksessä istunto eteni.

Nämä todisteet voivat pysyä paikallisessa hallinnassa.
Kehittäjät saavat toistettavan lähtökohdan, kun jokin muuttuu.
Ihmistestaajat käyttävät vähemmän aikaa ennustettavien vuorovaikutusten toistamiseen ja enemmän aikaa tilanteiden tutkimiseen, jotka todella vaativat harkintaa.

Ja softify.pro Flow saa jotain arvokkaampaa kuin vihreän PASS-merkin.

Se saa todisteen siitä, että kirjautumisnäytöllä luvattu kokemus jatkaa olemassaoloaan sen jälkeen, kun sen taustalla oleva koodi on muuttunut.

Control. Tiedä, mitä testataan, ja pidä ympäristö hallinnassa.

Clarity. Ymmärrä, mitä tapahtui, ilman että joudut rekonstruoimaan läpinäkymätöntä automaatiolokia.

Flow. Testaa sovellusta prosessina, jota ihmiset todella käyttävät.

Control. Clarity. Flow.

Se kirjoitettiin ohjelmistolle.
Sen huomattiin kuvaavan yhtä hyvin myös sen takana olevaa testausfilosofiaa.