Testing-av-QC1-sjekker.

Dokumentasjon og Veiledning.

Oversikt:

A)

Kravspesifikasjon utarbeides.
Ut fra denne lages Algoritme og Test-skjema.
(link til eksempel på Test-skjema)

B)

3 DB tabeller skal vanligvis ha nye / endrete rader: algorithms, checks, station_param.

C)

Hele Test-systemet ligger på en Virtuell Maskin (VM) der man kan logge seg på fra alle arbeidsstasjoner.
Katalog-strukturen til Test-systemet ser slik ut (eksempel):
Dev-Kvalobs-QC1 --+ QC1-Doc --+ Veiledninger
+ T-QC1-3 --+ QC1-3b ---+ RUN-TIME-TEST
+ Source-Code
+ System-Konsistens
+ Test-Run-kvQabase ---+ Res-10

Framgangsmåte steg for steg:

1) Starter med å lage kildekoden på Source-Code katalogen ( Dev-Kvalobs-QC1/T-QC1-3/QC1-3b/Source-Code )

Ta backup ved hver endring ( kopier det området du jobber i til en annen maskin med samme katalogstruktur)
( Eksempel: myuser@pcxxxx:/disk1/Dev-Kvalobs-QC1/T-QC1-3$ scp -r kvalobs@157.249.169.135:~/bin/Dev-Kvalobs-QC1/T-QC1-3 . )
Lager test-skjema ved navn: (f.Eks. Test-Skjema-QC1-3b-60-20-10-01.ods) som skal passe med det vi skal teste.
Fyll ut kolonnene Test-Update, Antall Timer, Krav. La kolonnene Test, Cfailed (Test), Status stå tomme.

Kildekodens indre logikk kan testes på RUN-TIME-TEST katalogen ( bin/Dev-Kvalobs-QC1/T-QC1-3/QC1-3b/RUN-TIME-TEST )
Kildekoden må legges inn i algorithms tabellen i Kvalobsdatabasen. Det gjøres slik:
https://wiki.met.no/kvalobs/kvalobs/oppdatering-metadata#manuell_testing_av_egne_innlagte_metadata_test-maskin

2) Går inn på katalogen System-Konsistens.

Bestemmer hvilke parametre, verdier og tidsoppløsning vi vil bruke i testingen.
I eksemplet her har vi valgt: stationid = 18700 (Blindern), paramid = 211 (TA), tidsperiode: fom 2013-01-01 08 tom 2013-01-02 10.
Etter at oppdatering av kvalobs metadata er kjørt, oppdateres tabellene data, checks og station_param med sql-script.
Eksempel: Gå inn på: kvalobs@xxxx:~/bin/Dev-Kvalobs-QC1/T-QC1-3/QC1-3b/System-Konsistens/ og kjør:
psql -f DELETE-INSERT-Data-QC1-3b-211-60.sql > DELETE-INSERT-Data-QC1-3b-211-60.log
psql -f DELETE-INSERT-Checks-QC1-3b-FREEZE_CHECK-60-10-01.sql > DELETE-INSERT-Checks-QC1-3b-FREEZE_CHECK-60-10-01.log
psql -f DELETE-INSERT-Station_param-QC1-3b-FREEZE_CHECK-60-10-01.sql > DELETE-INSERT-Station_param-QC1-3b-FREEZE_CHECK-60-10-01.log

3) Står på samme katalog (System-Konsistens) og kjører: Tabell-Konsistens-QC1-3b.sh (husk å endre innholdet i shell-scriptet ved behov).

Resultatet kommer på Tabell-Konsistens-QC1-3b.txt (gå gjennom denne resultat-filen og sjekk at alt er i orden med tabellene).
f.eks. må paramid finnes i param tabellen, det må være minst en rad i obs_pgm, signaturene i algorithms og checks-tabellene må stemme.
Om alt er i orden kan man gå til punkt 4.

4) Går til katalogen Test-Run-kvQabase. Her ligger katalogene Res-10, Res-20, Res-30, Res-60. Res står for tidsoppløsning.

Det vil si at vi kjører en testrunde for hver av tidsoppløsningene 10, 20 30 og 60 minutter på hver sin katalog
(Kjører test på de tidsoppløsningene som er relevante for sjekken).

5) Går til den katalogen du skal kjøre på (f.eks. Res-60).

Hvis det er logger / logg-kataloger her, utføres kommandoene:
rm -r testrun.log
rm *.log
Det skal nå ligge 2 viktige filer på denne katalogen:
Test-Run-kvQabase-QC1-3b-211-60.sh ( shell script )
Select-Data-QC1-3b-211-60.sql ( sql script )
Åpner shell scriptet Test-Run-kvQabase-QC1-3b-211-60.sh i en editor ( f.eks. emacs ).
3 rader gjentas for hvert nytt tidspunkt som kvQabased kjører på:

kvQabased -d kvalobs -p 5435 --station 18700 --obstime '2013-01-01 08:00:00' --typeid 330 --qcx 'QC1-3b-211' --runlogfile kvQabased.log --logdir=testrun.log
cat testrun.log/18700/2013-01-01/log.kl08.330.log > Test-Run-kvQabase-QC1-3b-211-60.log
psql -f Select-Data-QC1-3b-211-60.sql > Select-Data-QC1-3b-211-60.log

Den 1. raden må endres ved behov slik at kvQabase stemmer med testdata-settet og metadataene.
Den 2. raden må endres ved behov slik at checks-loggfilenes navn stemmer med stationid, dato, kl, typeid.
Den 3. raden må endres ved behov slik at sql-scriptets navn og innhold stemmer med stationid, paramid, dato, kl, typeid, tidsoppløsning.
Det samme gjelder for navnene på de store historiske loggfilene.
Om alt stemmer, gå til punkt 6)

6) Kjører shell-scriptet: Test-Run-kvQabase-QC1-3b-211-60.sh

7) Sjekk utfra loggene om alt er kjørt. Går deretter inn på Select-Data-QC1-3b-211-60.log for å fylle ut kolonnene Test, Cfailed (Test), Status.

Sjekk at flaggverdiene i Flag kolonnen Test er lik flaggverdiene i Flag kolonnen Krav i Test-Skjema-QC1-3b-60-20-10-01.ods.
Sjekk også at Cfailed (Test) er fylt ut med QC1-3b-211 når kolonnen Test har høyere verdi enn 1.
Hvis alt stemmer her kan den nye sjekken (eller den nye versjonen av sjekken) settes i drift.