1
0
Fork 0
This repository has been archived on 2025-03-30. You can view files and clone it, but you cannot make any changes to it's state, such as pushing and creating new issues, pull requests or comments.
markov-music-generator/dokumentaatio/testausdokumentti.md

43 lines
2.7 KiB
Markdown
Raw Normal View History

2022-09-24 11:05:39 +03:00
# Testausdokumentti
2022-10-01 21:16:35 +03:00
## Koodin testaus
### Testien toteutus
2022-10-08 18:30:22 +03:00
Automaattinen yksikkötestaus on toteutettu pytest-kirjastolla ja testikattavuuden raportoinnin hoitaa coverage-kirjasto. Aiheen kannalta keskeistä subjektiivista testausta olen toteuttanut generoimalla melodioita ohjelman avulla.
2022-09-24 11:05:39 +03:00
2022-10-01 21:16:35 +03:00
### Ohjeet
2022-09-24 11:05:39 +03:00
Ennen testien suorittamista tulee pytest- ja coverage-kirjastot olla asennettuna käytössä olevassa ympäristössä. Testit saa suoritettua kommennolla
`pytest src`
projektin juurikansiosta. Testikattavuusraportin voi luoda juurikansiosta komennolla
` coverage run --branch -m pytest src && coverage html`
Tämän jälkeen raportti löytyy tiedostosta `htmlcov/index.html`.
2022-10-08 18:30:22 +03:00
![Testikattavuusraportti. Kokonaiskattavuus 99%](https://github.com/ArcticCoder/markov-music-generator/blob/main/dokumentaatio/kattavuus.png?raw=true)
2022-10-01 21:16:35 +03:00
## Subjektiivinen testaus
2022-10-08 18:30:22 +03:00
Viikko 4: Generoin koodin nykyisellä versiolla 4:nnen asteen Markovin ketjulla lyhyen melodian. Vertailukohtana generoin täysin sattumanvaraisen melodian. Mielestäni ero on huomattava, varsinkin kun otetaan huomioon Markovin ketjujen yksinkertaisuus.
2022-10-01 21:16:35 +03:00
2022-10-08 18:30:22 +03:00
Viikko 5: Toteutin tällä viikolla manuaalisen rytmin määrittämisen. Generoin 80 lyhyen melodian yksinkertaisella kahden tahdin välein toistuvalla rytmillä. Yllätin siitä kuinka paljon yksinkertainenkin rytmi "elävöitti" generoitua melodiaa.
2022-10-15 18:46:05 +03:00
Viikko 6: Testasin tällä viikolla kattavammin eri asteilla. Rajoitin asteen alle 5, sillä huomasin että tätä suuremmilla asteilla monessa tilanteessa oli vain yksi vaihtoehto seuraavalle nuotille, joka viittaa siihen että opetusdatan määrä ei ole riittävän suuri. Poistin myös tämän takia aiemmat testit. Lisäksi toteutin mekanismin, jolla olemassaolevan MIDI tiedoston 1. raidan nuotin voidaan korvata Markovin ketjun antamilla nuoteilla. Nämä "muunnokset" löytyvät myös alta. Näissä oli käytössä 4. asteen ketju.
2022-10-08 18:30:22 +03:00
2022-10-15 16:03:58 +03:00
[Aste 1](https://github.com/ArcticCoder/markov-music-generator/blob/main/dokumentaatio/aste_1.mp3)
[Aste 2](https://github.com/ArcticCoder/markov-music-generator/blob/main/dokumentaatio/aste_2.mp3)
[Aste 3](https://github.com/ArcticCoder/markov-music-generator/blob/main/dokumentaatio/aste_3.mp3)
[Aste 4](https://github.com/ArcticCoder/markov-music-generator/blob/main/dokumentaatio/aste_4.mp3)
[Aste 4, ei rytmiä](https://github.com/ArcticCoder/markov-music-generator/blob/main/dokumentaatio/aste_4_rytmiton.mp3)
2022-10-01 21:16:35 +03:00
2022-10-15 18:46:05 +03:00
[MIDI muunnos 1](https://github.com/ArcticCoder/markov-music-generator/blob/main/dokumentaatio/muunnos1.mp3)
[MIDI muunnos 2](https://github.com/ArcticCoder/markov-music-generator/blob/main/dokumentaatio/muunnos2.mp3)
2022-10-01 21:16:35 +03:00
[Sattuma](https://github.com/ArcticCoder/markov-music-generator/blob/main/dokumentaatio/testi-sattuma.mp3)