feat(tests): add testing chapter

This commit is contained in:
Kristofers Solo 2024-12-30 00:19:42 +02:00
parent eb71f9261b
commit db6ce3325a
2 changed files with 61 additions and 7 deletions

View File

@ -12,17 +12,17 @@ hex_grid:
type: Web type: Web
title: Hexagonal Grids title: Hexagonal Grids
author: Red Blob Games author: Red Blob Games
url: {value: 'https://www.redblobgames.com/grids/hexagons/', date: 2024-09-10} url: {value: "https://www.redblobgames.com/grids/hexagons/", date: 2024-09-10}
bevy_examples: bevy_examples:
type: Web type: Web
title: Bevy Examples title: Bevy Examples
author: author:
url: {value: 'https://bevyengine.org/examples/', date: 2024-09-10} url: {value: "https://bevyengine.org/examples/", date: 2024-09-10}
bevy_cheatbook: bevy_cheatbook:
type: Web type: Web
title: Unofficial Bevy Cheat Book title: Unofficial Bevy Cheat Book
author: author:
url: {value: 'https://bevy-cheatbook.github.io/', date: 2024-09-10} url: {value: "https://bevy-cheatbook.github.io/", date: 2024-09-10}
lvs_68: lvs_68:
type: Book type: Book
title: Programmatūras prasību specifikācijas ceļvedis title: Programmatūras prasību specifikācijas ceļvedis
@ -131,3 +131,14 @@ bevy-inspector-egui:
title: Bevy Inspector Egui bibliotēkas dokumentācija title: Bevy Inspector Egui bibliotēkas dokumentācija
author: author:
url: https://docs.rs/bevy-inspector-egui/0.28.0/bevy_inspector_egui/ url: https://docs.rs/bevy-inspector-egui/0.28.0/bevy_inspector_egui/
the-rust-performance-book:
type: Web
title: The Rust Performance Book
author: Nicholas Nethercote
date: 2020-11
url: https://nnethercote.github.io/perf-book
cargo-tarpaulin:
type: Web
title: Tarpaulin
author: xd009642
url: https://crates.io/crates/cargo-tarpaulin

View File

@ -629,9 +629,9 @@ testēšana, izmantojot gan automatizētus rīkus, gan manuālu pārbaudi.
Statiskā testēšana ir svarīga daļa no projekta kvalitātes nodrošināšanas. Statiskā testēšana ir svarīga daļa no projekta kvalitātes nodrošināšanas.
"Clippy"@clippy tiek izmantots koda analīzei, meklējot potenciālas problēmas un "Clippy"@clippy tiek izmantots koda analīzei, meklējot potenciālas problēmas un
neoptimālus risinājumus. Papildus noklusētajiem noteikumiem, tika aktivizēti neoptimālus risinājumus. Papildus noklusētajiem noteikumiem, tika aktivizēti
stingrāki koda kvalitātes pārbaudes līmeņi: "pedantic" režīms nodrošina stingrāki koda kvalitātes pārbaudes līmeņi: "`pedantic`" režīms nodrošina
padziļinātu koda stila pārbaudi, "nursery" aktivizē eksperimentālās pārbaudes, padziļinātu koda stila pārbaudi, "`nursery`" aktivizē eksperimentālās pārbaudes,
un "unwrap_used" un "expect_used" brīdina par potenciāli nedrošu kļūdu un "`unwrap_used`" un "`expect_used`" brīdina par potenciāli nedrošu kļūdu
apstrādi. Šie papildu noteikumi palīdz uzturēt augstāku koda kvalitāti un apstrādi. Šie papildu noteikumi palīdz uzturēt augstāku koda kvalitāti un
samazināt potenciālo kļūdu skaitu. samazināt potenciālo kļūdu skaitu.
@ -645,10 +645,52 @@ fails) vai „h“ (galvenes fails) un darbina statiskās analīzes rīku ar kat
izpildes rezultātu attēlā 4.3.). */ izpildes rezultātu attēlā 4.3.). */
== Dinamiskā testēšana == Dinamiskā testēšana
#todo("uztakstīt dinamisko testēšanu")
Lai novērtētu programmatūras uzvedību darbības laikā, tika veikta dinamiskā
testēšana. Šī testēšanas pieeja apvieno gan manuālu testēšanu, izmantojot
lietotāja saskarnes mijiedarbību, gan automatizētus testu komplektus, lai
nodrošinātu visaptverošu spēles funkcionalitātes pārklājumu.
=== Manuālā integrācijas testēšana === Manuālā integrācijas testēšana
Integrācijas testēšana ir veikta manuāli, mijiedarboties ar spēles saskarni.
Katrs testa scenārijs ir dokumentēta strukturētas tabulas formātā, ievērojot
būtisku informāciju, piemēram, test nosaukumu, unikālo identifikatoru, aprakstu,
izpildes soļus, gaidāmo rezultātu un faktisko rezultātu (veiksmīga testa
gadījumā apzīmēts ar "Ok", bet neveiksmīgu -- ar "Err").
Izvēlētie testu gadījumi ir detalizēti aprakstīti #todo("tab") tabulā.
=== Automatizēti testi === Automatizēti testi
Automatizētā testēšanas sistēma plaši pārklāj bibliotēku "hexlab", jo tā ir
paredzēta publiskai lietošanai@hexlab.
Testēšanas stratēģijā ir ieviesti vairāki pārbaudes līmeņi: dokumentācijas testi
no drošina piemēra koda pareizību, moduļu testi pārbauda iekšējo
funkcionalitāti, savukārt testu mapē esošie vienībtesti un integrācijas testi
pārbauda sarežģītākus gadījumus.
Izmantojot "cargo-tarpaulin", testu pārklājums ir $81,69%$ (116 no 142
iekļautajām rindiņām), tomēr šis rādītājs pilnībā neatspoguļo faktisko
pārklājumu, jo rīkam ir ierobežojumi attiecībā uz "inline#footnote[https://doc.rust-lang.org/nightly/reference/attributes/codegen.html?highlight=inline]"
funkcijām un citi tehniski ierobežojumi @cargo-tarpaulin.
#todo("double check which tests are actually impemented")
Arī spēles kods saglabā stabilu testēšanas stratēģiju.
Dokumentācijas testi tiek rakstīti tieši koda dokumentācijā, kalpojot diviem
mērķiem -- tie pārbauda koda pareizību un vienlaikus sniedz skaidrus lietošanas
piemērus turpmākai uzturēšanai.
Šie testi ir īpaši vērtīgi, jo tie nodrošina, ka dokumentācija tiek sinhronizēta
ar faktisko koda uzvedību.
Moduļu testi ir stratēģiski izvietoti līdzās implementācijas kodam tajā pašā
failā, nodrošinot, ka katras komponentes funkcionalitāte tiek pārbaudīta
izolēti.
Šie testi attiecas uz tādām svarīgām spēles sistēmām kā spēlētāju kustība,
sadursmju noteikšana, spēles stāvokļa pārvaldība u.c.
Visi testi tiek automātiski izpildīti kā nepārtrauktas integrācijas procesa
daļa, nodrošinot tūlītēju atgriezenisko saiti par sistēmas stabilitāti un
funkcionalitāti pēc katras koda izmaiņas.
= Programmas projekta organizācija = Programmas projekta organizācija
Kvalifikācijas darba prasības paredz, ka programmatūru un dokumentāciju autors Kvalifikācijas darba prasības paredz, ka programmatūru un dokumentāciju autors
@ -684,6 +726,7 @@ standarta prasības.
// specifikāciju@omg-uml. // specifikāciju@omg-uml.
== Konfigurācijas pārvaldība == Konfigurācijas pārvaldība
Pirmkods tiek pārvaldīts, izmantojot "git"@git versiju kontroles sistēmu. Pirmkods tiek pārvaldīts, izmantojot "git"@git versiju kontroles sistēmu.
Repozitorijs tiek izvietots platformā "GitHub". Repozitorijs tiek izvietots platformā "GitHub".
Rīku konfigurācija ir definēta vairākos failos: Rīku konfigurācija ir definēta vairākos failos: