Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

'* ' betyder hvilken som helst

Funktionstest

Funktionstesten har til formål at bevise at NAS2's funktionalitet er som ønsket og at der ikke går data tabt ved større data volumen på NAS2. Der hvor større data volumen er kritisk er i forhold til notification broker og pull point og det er derfor kun disse to funktioner der testes med større data volumen. Resterende funktioner/user stories testes via NAS2 integrationstest. 

User stories

Testen den dækker nedenstående user stories

  • NAS-PPF-1: Oprette et pullpoint
  • NAS-IM-1: Opret id liste
  • NAS-SM-1: Oprette subscription
  • NAS-NB-1: Aflevering af advisering
  • NAS-PP-1: Afhentning af adviseringer
  • NAS-IM-2: Opdater id liste
  • NAS-PP-2: Slette et pullpoint
  • NAS-IM-3: slet id liste
  • NAS-SM-2: Nedlægge subscription

Test forløb

Testen deles op i to dele. En del hvor der verificeres at notifikationer ikke går tabt og det er de rigtige notifkationer der leveres til de enkelte pull points. Den anden del er en verifikation ved hjælp af en integrationstest. Den test har til formål at verificere at det er muligt at udføre alle de user stories der er beskrevet i afsnit 3.1. 

Verifikations test

Formålet med denne del af testen er at bevise at der ikke går notifikationer tabt og at det er de rigtige notifikationer der levres til de enkelte pull points når systemet belastes med mange notifikationer. 

I NAS2 projektet er der udviklet et selvstændigt program der kan kalde de forskellige services. Udfra en input fil kan det styres hvilke subscriptions, id lister osv. der skal oprettes samt hvor mange notifikationer der skal sendes. Programmet logger også hvilke adviser der er sendt samt hvilke der er hentet ud via pull point servicen. 

Inden FMK afvikler deres performance test skal de oplyse hvilke topics der sendes notifikationer på. Disse er dokumenteret på https://wiki.fmk.netic.dk/doku.php?id=fmk:advis:topic.

Fra NAS' side udvikles der et selvstændigt program med nedenstående egenskaber. 

  1. Programmet skal oprette pull points svarende til det antal topics der er. Der skal oprettes en subscription på hvert topic og der skal ikke være nogen ID liste tilknyttet. 
  2. Programmet skal oprette X pull points for hvert topic. For hvert af disse pull points skal der oprettes en subscription med en tilhørende ID liste. ID listerne skal ikke have nogle ID'er tilknyttet.  
  3. Programmet skal have mulighed for at opdatere en eksisterende ID liste. 
  4. Programmet skal kalde GetMessages på de pull points der er oprettet indtil der ikke er flere beskeder. Hver besked skal logges til en fil. 
  5. Det skal være muligt at afvikle ovenstående 3 steps selvstændigt. 

Step 1 og 2 skal afvikles inden FMK må gennemføre deres test. Efter step 3 er afviklet og alle beskeder er hentet skal nedenstående udføres. 

  1. For de pull points der blev oprettet i step 1 skal det verificeres at alle beskeder er modtaget. Det gøres ved at sammenligne de ID'er programmet har logget med det FMK har leveret. Alle ID'er FMK har oplyst skal være modtaget. 
  2. For de pull points der blev oprettet i step 2 skal det verificeres at de beskeder der er modtaget matcher med dem der er i den givne ID liste og at det matcher med det FMK har leveret. 

NAS integrationstest

For verifikation af at det er muligt at udføre de enkelte user stories er der oprettet en integrations test der hedder NasAnvenderScenarieTest. Denne test udfører nedenstående. Testen afvikles når integrationstesten afvikles mod NAS systemet.

  1. Kalder CreatePullPoint på PullPointFactory.
  2. Kalder CreateIDList på IDList med ID'erne "ID1" og "ID2". 
  3. Kalder Subscribe på SubscriptionManager.
  4. Kalder Notify på NotificationBroker med "ID1", "ID2" og "ID3".
  5. Kalder GetMessages på PullPoint. 
  6. Verificerer at der kun er modtaget to beskeder og at de har ID'erne "ID1" og "ID2".
  7. Kalder CretaeIDList på IDList med ID'erne "ID2" og "ID3". 
  8. Kalder Notify på NotificationBroker med "ID1", "ID2" og "ID3".
  9. Verificerer at der kun er modtaget to beskeder og at de har ID'erne "ID2" og "ID3".
  10. Kalder Unsubscribe på SubscriptionManager
  11. Kalder DestroyIDList på IDList. 
  12. Kalder DestroyPullPoint på PullPoint.

Afvikling af test program

Det selvstændige program til at hente adviseringer afvikles som beskrevet nedenfor. 

  1. Oprettelse og/eller opdatering af ID liste.
    mvn -Pverification -Dverification.mode=idlist -Dverification.idlist.endpoint=http://localhost:8090/idlist -Dverification.input=/path/to/file/idlist.txt
    Indholdet i verification.input filen skal være som nedenstående. 
    /*
    * Id list filen den skal være formateret som nedenstående.
    *
    * navn:idliste_navn:id_type
    * id:id_no_1
    * id:id_no_2
    * navn:en_anden_liste
    * id:id_no_4
    * id:id_no_5
    */
  2. Oprettelse af pull point og subscription.
    mvn -Pverification -Dverification.mode=subscribe -Dverification.subscriptionmanager.endpoint=http://localhost:8090/subscriptionmanager -Dverification.pullpointfactory.endpoint=http://localhost:8090/pullpointfactory -Dverification.input=/path/to/input/subscription.txt -Dverification.output=/path/to/output/subscription_output.txt
    Indholdet i verification.input skal være som nedenstående. Output filen indeholder liste med pull point id'er. 
    /**
    * Input filen skal være formateret som nedenstående
    * topic:id_liste_navn
    *
    * Id liste navn er optional og hvis det er udeladt oprettes der en subscription uden tilknyttet id liste.
    */
  3. Afhentning af adviseringer. 
    mvn -Pverification -Dverification.mode=getmessages -Dverification.pullpoint.endpoint=http://localhost:8090/pullpoint -Dverification.input=/path/to/input/pullpoint.txt -Dverification.output=/path/to/output/pullpoint_output.txt
  4. Indholdet i verification.input være et pull point id pr. linie. Output filen indeholder en linie pr afhentet advisering med ID og pull point id. 

Tidsplan for FMK performance test

Nedenstående tidsplan tager udgangspunkt i at NS2 er klar i test2 miljøet i uge 38. Hvis NAS2 ikke er tilgængelig i test2 miljøet skubbes tidsplanen tilsvarende. 

DatoAktivitetHvem
16/9Opretter nødvendige topicsArosii/Netic
17/9Opretter pull points, id lister og subscriptionsKvalitetsIT
18/9FMK Test afviklesFMK
19/9Udtræk af antal adviser afsendtFMK
19/9Udtræk af topic, id-type og id fra notification broker audit log.Netic
20/9Opdatere id lister samt kalde de oprettede pull pointsKvalitetsIT
Uge 39Analysere data resultatKvalitetsIT


Funktionstest - Gammel udgave

User stories

Testen den dækker nedenstående user stories

  • NAS-PPF-1: Oprette et pullpoint
  • NAS-IM-1: Opret id liste
  • NAS-SM-1: Oprette subscription
  • NAS-NB-1: Aflevering af advisering
  • NAS-PP-1: Afhentning af adviseringer
  • NAS-IM-2: Opdater id liste
  • NAS-PP-2: Slette et pullpoint
  • NAS-IM-3: slet id liste
  • NAS-SM-2: Nedlægge subscription

Test forløb

Testen deles op i to dele. En del hvor der verificeres at FMK kan aflevere de adviseringer de afleverer i dag uden at få fejl og at det er muligt at hente alle adviseringer ud igen uden at få fejl. Den anden del er en verifikation ved hjælp af en integrationstest. Den test har til formål at verificere at det er muligt at udføre alle de user stories der er beskrevet i afsnit 3.1. 

...

  1. For de pull points der blev oprettet i step 1 skal det verificeres at alle beskeder er modtaget. Det gøres ved at sammenligne de ID'er programmet har logget med det FMK har leveret. Alle ID'er FMK har oplyst skal være modtaget. 
  2. For de pull points der blev oprettet i step 2 skal det verificeres at de beskeder der er modtaget matcher med dem der er i den givne ID liste og at det matcher med det FMK har leveret. 

NAS integrationstest

For verifikation af at det er muligt at udføre de enkelte user stories er der oprettet en integrations test der hedder NasAnvenderScenarieTest. Denne test udfører nedenstående. Testen afvikles når integrationstesten afvikles mod NAS systemet.

  1. Kalder CreatePullPoint på PullPointFactory.
  2. Kalder CreateIDList på IDList med ID'erne "ID1" og "ID2". 
  3. Kalder Subscribe på SubscriptionManager.
  4. Kalder Notify på NotificationBroker med "ID1", "ID2" og "ID3".
  5. Kalder GetMessages på PullPoint. 
  6. Verificerer at der kun er modtaget to beskeder og at de har ID'erne "ID1" og "ID2".
  7. Kalder CretaeIDList på IDList med ID'erne "ID2" og "ID3". 
  8. Kalder Notify på NotificationBroker med "ID1", "ID2" og "ID3".
  9. Verificerer at der kun er modtaget to beskeder og at de har ID'erne "ID2" og "ID3".
  10. Kalder Unsubscribe på SubscriptionManager
  11. Kalder DestroyIDList på IDList. 
  12. Kalder DestroyPullPoint på PullPoint.

Afvikling af test program

Det selvstændige program til at hente adviseringer afvikles som beskrevet nedenfor. 

  1. Oprettelse og/eller opdatering af ID liste.
    mvn -Pverification -Dverification.mode=idlist -Dverification.idlist.endpoint=http://localhost:8090/idlist -Dverification.input=/path/to/file/idlist.txt
    Indholdet i verification.input filen skal være som nedenstående. 
    /*
    * Id list filen den skal være formateret som nedenstående.
    *
    * navn:idliste_navn:id_type
    * id:id_no_1
    * id:id_no_2
    * navn:en_anden_liste
    * id:id_no_4
    * id:id_no_5
    */
  2. Oprettelse af pull point og subscription.
    mvn -Pverification -Dverification.mode=subscribe -Dverification.subscriptionmanager.endpoint=http://localhost:8090/subscriptionmanager -Dverification.pullpointfactory.endpoint=http://localhost:8090/pullpointfactory -Dverification.input=/path/to/input/subscription.txt -Dverification.output=/path/to/output/subscription_output.txt
    Indholdet i verification.input skal være som nedenstående. Output filen indeholder liste med pull point id'er. 
    /**
    * Input filen skal være formateret som nedenstående
    * topic:id_liste_navn
    *
    * Id liste navn er optional og hvis det er udeladt oprettes der en subscription uden tilknyttet id liste.
    */
  3. Afhentning af adviseringer. 
    mvn -Pverification -Dverification.mode=getmessages -Dverification.pullpoint.endpoint=http://localhost:8090/pullpoint -Dverification.input=/path/to/input/pullpoint.txt -Dverification.output=/path/to/output/pullpoint_output.txt
  4. Indholdet i verification.input være et pull point id pr. linie. Output filen indeholder en linie pr afhentet advisering med ID og pull point id. 

Tidsplan for FMK performance test

Nedenstående tidsplan tager udgangspunkt i at NS2 er klar i test2 miljøet i uge 38. Hvis NAS2 ikke er tilgængelig i test2 miljøet skubbes tidsplanen tilsvarende. 

...