Ohjelmaa on testattu sekä automatisoiduin yksikkö- ja integraatiotestein unittestilla sekä manuaalisesti tapahtunein järjestelmätason testein.
Sovelluslogiikasta vastaavaa TodoService
-luokkaa testataan TestTodoService-testiluokalla. TodoService
-olio alustetaan, niin että sille injektoidaan riippuvuksiksi repositorio-oliot, jotka tallentevat tietoa muistiin pysyväistallennuksen sijaan. Tätä varten testissä on käytössä luokat FakeTodoRepository
ja FakeUserRepository
.
Repositorio-luokkia TodoRepository
ja UserRepository
testataan ainoastaan testeissä käytössäolevilla tiedostoilla. Tiedostojen nimet on konfiguroitu .env.test-tiedostoon. TodoRepository
-luokkaa testataan TestTodoRepository-testiluokalla ja UserRepository
-luokkaa TestUserRepository-testiluokalla.
Käyttöliittymäkerrosta lukuunottamatta sovelluksen testauksen haarautumakattavuus on 95%
Testaamatta jäivät build.py- ja initialize_database.py-tiedostojen suorittaminen komentoriviltä. Nämä olisi myös voinut jättää testikattavuuden ulkopuolelle. Lisäksi testaatamatta jäivät mm. tilanteet, joissa haetaan kirjautumattoman käyttäjän tekemättömät tehtävät ja uloskirjautuminen.
Sovelluksen järjestelmätestaus on suoritettu manuaalisesti.
Sovellus on haettu ja sitä on testattu käyttöohjeen kuvaamalla tavalla sekä macOS- että Linux-ympäristöön. Testauksessa on käytetty myös eri konfiguraatioita .env-tiedoston kautta.
Sovellusta on testattu sekä tilanteissa, joissa käyttäjät ja työt tallettavat tiedostot ovat olleet olemassa ja joissa niitä ei ole ollut jolloin ohjelma on luonut ne itse.
Kaikki määrittelydokumentin ja käyttöohjeen listaamat toiminnallisuudet on käyty läpi. Kaikkien toiminnallisuuksien yhteydessä on syötekentät yritetty täyttää myös virheellisillä arvoilla kuten tyhjillä.
Sovellus ei anna tällä hetkellä järkeviä virheilmoituksia, seuraavissa tilanteissa:
- Konfiguraation määrittelemiin tiedostoihin ei ole luku/kirjoitusoikeuksia
- SQLite tietokantaa ei ole alustettu, eli
python -m poetry run invoke build
-komentoa ei ole suoritettu