This is an old revision of the document!


Testing-av-QC1-sjekker.

ubuntu bruker:

ssh ubuntu@<mintestmaskin>
sudo apt-get update

sudo apt install emacs
sudo apt install nedit

sudo chmod g+w /usr/share/kvalobs
sudo chown root:kvalobs /usr/share/kvalobs
sudo chown kvalobs:kvalobs /usr/share/kvalobs/metadata

sudo apt install kvalobs-metadata

kvalobs bruker:

ssh -YA kvalobs@<mintestmaskin>
git clone git@gitlab.met.no:obs/kvalobs/kvoss_intern.git
echo "export PGHOST=localhost" >> .bashrc
echo "export METADIR=$HOME/kvoss_intern/kvmeta" >> .bashrc
echo "export PERL5LIB=/usr/lib/kvalobs-metadata/lib/perl" >> .bashrc
. .bashrc

A)

 Kravspesifikasjon utarbeides. 
 Ut fra denne lages Algoritme og Test-skjema. 
 Test-skjemaene ligger på: kvalobs@kvtest-algorithms:~/bin/Dev-Kvalobs-QC1/QC1-Doc/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         
                                        

0) Innlogging på testmaskinen: ssh -YA kvalobs@157.249.169.135
Installer de metadataene du trenger for alle tabeller untatt algorithms, checks og station_param:

  kvget-metadata-base

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.
 
 Kildekoden må legges inn i algorithms tabellen i Kvalobsdatabasen. Det gjøres slik: 
 
 Gå til katalogen $METADIR: cd $METADIR
 
 Oppdater metadata fra git: git pull
 
 Hvis vi får CONFLICT ( dette betyr konflikt) skal en slette disse filene og deretter gjøre en ny git pull.
 
 Dersom det er filer du jobber med så må de tas vare på utenfor repositoriet og kopieres inn på riktig sted.
 
 Hvis du har en endring, kopierer du den inn her:
 
 ( f.eks: scp FREEZE_CHECK.pl kvalobs@xxx:~/kvoss_intern/kvmeta/algorithms$ )
 
 Overfør de nye metadataene til /usr/share/kvalobs/metadata med skriptet: kvinstall_metadata
  
 Dersom du bare skal installere algoritmene bruk: /usr/lib/kvalobs-metadata/bin/run_algorithm_all
  
 ( Innstaller de nye metadataene med: /usr/lib/kvalobs-metadata/bin/run_metadata )
 

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 som lager nye testdata og metadata.
 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
 (Husk å oppdatere disse scriptene ved behov.)

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 *.log

 Som gjennomgående eksempel nedover her brukes sjekken "QC1-3b-211".
 Dette må endres til aktuell sjekk.
 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 sql scriptet Select-Data-QC1-3b-211-60.sql i en editor ( f.eks. emacs ).
 Endre stationid, obstime, paramid, typeid etter behov.
 
 Åpner shell scriptet Test-Run-kvQabase-QC1-3b-211-60.sh i en editor ( f.eks. emacs ).
 2 rader gjentas for hvert nytt tidspunkt som kvQabased kjører på:
 F.eks.
 kvQabased -d kvalobs -p 5432 --station 18700 --obstime '2013-01-01 08:00:00' --typeid 330 --qcx 'QC1-3b-211' 
 
 Loggene legger seg under /var/log/kvalobs/checks/
 
 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 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 det er avvik mellom Krav og Test eller andre avvik, må feilsøk startes opp, f.eks.:
 Sjekk på nytt at alle relevante parametre i alle script stemmer overens.
 Se i loggen Select-Data-QC1-3b-211-60.log
 Se i loggen Test-Run-kvQabase-QC1-3b-211-60.log
 Kildekodens indre logikk kan testes på RUN-TIME-TEST katalogen ( bin/Dev-Kvalobs-QC1/T-QC1-3/QC1-3b/RUN-TIME-TEST )
 
 Sjekk at alle relevante oppdateringer i metadata tabellene (algorithms, checks, station_param mm.) som settes i drift er helt likt med det som er kjørt i test.
 
 Hvis alt stemmer kan den nye sjekken (eller den nye versjonen av sjekken) settes i drift.
 
 F.eks. algoritme: (evn ta backup av gammel versjon på lokal maskin og ta vare på denne backupen i en helt annen katalog på egen maskin). Kopier den aktuelle oppdaterte/nye algoritmen fra testmaskinen. ~/bin/Dev-Kvalobs-QC1/T-QC1-3/T-QC1-3b-211/Source-Code over til lokalt git-repository på egen maskin (eks ~/kvoss_intern/kvmeta/algorithms på lokal maskin).
 (Stå på egen maskin og ta scp). 
 Skriv så git commit -m "ønsket beskrivelse" algoritmen. 
 Gjenta prosessen med evt. oppdatert/ny checks og evt. oppdatert/ny station_param.
 
 Når alt er klart til å settes i drift:
 Skriv "git push" fra aktuell katalog. Algoritmen er nå i drifts-git-repository og vil bli lagt inn i databasen ved neste Kvalobs-oppdatering (normalt 11.20 norsk tid hver dag)
 
This website uses cookies. By using the website, you agree with storing cookies on your computer. Also you acknowledge that you have read and understand our Privacy Policy. If you do not agree leave the website.More information about cookies
  • kvalobs/kvalobs/qc1_utvikling_testing_og_verifisering.1695038540.txt.gz
  • Last modified: 2023-09-18 12:02:20
  • by terjeer