Table of Contents

Vsetko ohladom testov

Metadata: unit test, cppunit, testy, kvalita

Vstupne data

Novo generovane data sa nachadzaju na ceste:

192.168.241.25/Dokumentacia/Projekty_ISO/02_PlatobnySystem-Intel/To/Test/__DATAtest/
 a
192.168.241.25/DokumentaciaTD/VyvojovyUsekArchiv/VyvojSW/TransFare/IntegrationTesting/

Aktualne pouzivane data sa nachadzaju v git repozitari vozidlovej aplikacie 'vehiclesystemapps.git', v priecinku: AppCore/src/tests/data

Z tejto cesty treba data rozbalit este na Phoenix: <code> /usr/local/emtest/platforms/templates/testing/cpdata/ </code>
V pripade potreby zmien konfiguracie testov sa zmeny vykonavaju na Phoenixe aby sa prejavili na vsetkych PC

Rozbehnutie unit testov na PC: je potrebne mat vytvorene priecinky testing na ceste /opt/devel/etc/ a /opt/devel/var/lib/

ln -s CESTA_K_STIAHNUTYM_ZDROJAKOM/AppCore/src/tests/configs/ /opt/devel/etc/testing/ETIL
ln -s CESTA_K_STIAHNUTYM_ZDROJAKOM/AppCore/src/tests/data /opt/devel/var/lib/testing/cpdata


Popis liniek

Linka Spoj Popis
100002 kombinovna PAL s usekom MHD - zastavky ZA nastavena TS MHD s nahradnou Primestska , zvysok Primestska
102 MHD pasmovy tarifny system s usekmi 1-1, 1-2, 2-2.
102418 BID zonovy usek s prechodom do neIDS BID useku.
102414 33 'Bac,razc' do 'Rohovce,posta' - 4km + navazny 102414/42 'Rohovce, posta' do 'Bac OU' 5km = 9km /0,9e. Nastavena odchylka na vsetky linky z 'Bac, razc' - 'Bac OU' 1 riadok 0,7e
506401 1
506402 1

Popis odchyliek

V systeme je nastavena odchylka pre zastavky z 'Bac, razc''Bac OU'.

Popis fungovania odchyliek:

 DokumentaciaTD/VyvojovyUsek/VyvojSW/TransFare/OnboardComputer_Slave_Common/SpolocneVlastnostiCitackyAPalubnehoPocitaca_VERZIA.pdf 

Na zastavkach su nastavene nasledovne odchylky:

Typ odchylky Riadok cennika Linka Spoj Zastavky Tarif. skupina Cennik
Odchylka na linku, spoj a zast. riadok 4 - 1.10eur 102414 33 'Báč,, rázc.' → 'Báč,,OcÚ' PAL/11 Primesto/801000027
Odchylka na linku riadok 3 - 0.90eur 102414 lubovolny(napr. 39) 'Báč,, rázc.' → 'Báč,,OcÚ' PAL/11 Primesto/801000027
Vseobecna odchylka na zastavky riadok 2 - 0.80eur lubovolna(napr. 102418) lubovolny(napr. 235) 'Báč,, rázc.' → 'Báč,,OcÚ' PAL/11 Primesto/801000027

Changelog vstupnych dat
















Konfiguracne subory integracneho testovania

Aktualne pouzivane testy sa nachadzaju v git repozitari vozidlovej aplikacie 'vehiclesystemapps.git', v priecinku: AppCore/src/tests/configs.
Kazdy test ma definovane vstupne data vo forme XML (konfiguracia testu), kde su zadane elementarne vstupy pre vydaj (napr Linka, Spoj, CisloTarifnehoListka, nastupna a vystupna zastavka, … - vsetko sekcia <Input>). Kartove testy maju navyse v tychto vstupnych datach definovanu cestu k suboru s datami karty (<CardDataFilePath>).
Vo vstupnych datach mozu byt v sekcii <Output> definovane dalsie parametre, ktore sa mozu spatne kontrolovat napr. po vydaji listka (moze sa kontrolovat napr. cena listka, …).

Priklad konfiguracie testu:

<?xml version="1.0" encoding="utf-8"?>
<Test>
    <Input>
        <Line>2</Line> <!-- obligatory -->
        <Trip>1</Trip> <!-- obligatory -->
        <ProtectNumber>9999</ProtectNumber> <!-- obligatory -->
        <TariffTicketNumber>1</TariffTicketNumber> <!-- obligatory -->
        <TicketCount>1</TicketCount> <!-- obligatory -->
        <IssueType>1</IssueType> <!-- obligatory -->
        <PaymentType>1</PaymentType> <!-- obligatory -->
        <OperationType>0</OperationType> <!-- obligatory -->
        <Tariff></Tariff> <!-- obligatory -->
        <TariffGroup>1</TariffGroup> <!-- obligatory -->
        <CardWriteOperations>6</CardWriteOperations>

        <TripOrderCheckinBusStop>0</TripOrderCheckinBusStop>
        <TripOrderCheckoutBusStop>1</TripOrderCheckoutBusStop>
        <TripOrderOfBusStopForCheckOut>0</TripOrderOfBusStopForCheckOut>
        <CreditRecharge></CreditRecharge>
        <TicketCount>1</TicketCount>
        <CancelationStatisticTicketNumber></CancelationStatisticTicketNumber>
        <DeviceSerialNumber>18</DeviceSerialNumber>
        <AdvertisementEnabled></AdvertisementEnabled>
        <CrossTransfer>18</CrossTransfer>
        <MultipleTickets></MultipleTickets>
        <ZoneList>
            <Zone>15</Zone>
        </ZoneList>
        <CheckInZone></CheckInZone>
        <CheckOutZone></CheckOutZone>
        <CheckOutZoneBusStopID></CheckOutZoneBusStopID>
        <CheckInZoneBusStopID></CheckInZoneBusStopID>
        <PassNumber></PassNumber>
        <PriceListRow></PriceListRow>
        <FlagShowConfirmationMessageOnPortableEP></FlagShowConfirmationMessageOnPortableEP>
        <FlagAllowIssueOnPortableEP></FlagAllowIssueOnPortableEP>
        <FlagTransferForAllTicketsOnCard></FlagTransferForAllTicketsOnCard>
        <FlagProlongTicketsTimeValidity></FlagProlongTicketsTimeValidity>
        <FlagRepeatedCheckIn></FlagRepeatedCheckIn>
        <FlagExplicitlySelectedTariff></FlagExplicitlySelectedTariff>
        <ReclamationUID></ReclamationUID>
        <TimeTicketCounter></TimeTicketCounter>
        <OneWayTicketCardPositioning></OneWayTicketCardPositioning>
        <SelectedCommercialDiscount></SelectedCommercialDiscount>
        <CardDataFilePath>ETIL/CardIssue/CardStatistic/image</CardDataFilePath>
    </Input>
    <Output>
        <DistanceKM>1</DistanceKM>
    </Output>
</Test>



TestManager

TestManager je zodpovedny za vyhladavanie a zaregistrovanie vsetkych testov. Prehladava podpriecinky v etc/testing/ETIL, ktore obsahuju .xml subory a ich nazov je definovany nazov konkretneho testu (TestManager ma tieto nazvy definovane v mape napevno).

Pri registracii testov sa definuju makrom CPPUNIT_TEST() nazvy metod triedy, ktore sa maju vykonat pre samotne testovanie.
Trieda, ktora implementuje testy moze obsahovat viacero testov (trieda == balik testov).
Pred spustenim tychto metod sa vola metoda setUp(), ktora vycita vstupne data z konfiguracneho suboru testu,
podla nich nastavi potrebne parametre vydaja a tarifne nastavenia, vytvori novu statistiku, inicializuje vydaj (IssueIn()) a inicializuje TicketIssueLogic.
Po testovani sa vola metoda tearDown(), v ktorej prebehne vytvorenie a naplnenie koncoveho listka statistiky a obnovia sa povodne tarifne nastavenia.

Priklad ako vyzera registracia triedy s testami:

CPPUNIT_TEST_SUITE ( TestStatisticContinuousTrip );                     // definovanie balika testov - nazvu triedy
CPPUNIT_TEST ( CheckStatisticContinuousTrip );                          // definovnie 1.testu (metoda triedy TestStatisticContinuousTrip)
CPPUNIT_TEST ( CheckStatisticForCombinedTicketOnContinuousTrip );       // definovnie 2.testu (metoda triedy TestStatisticContinuousTrip)
CPPUNIT_TEST_SUITE_END();                                               // koniec test suite



Priebeh testovania

Samotne testovanie napr. v modelovaj situacii kontroly konkretnych parametrov statistiky po vydaji listka (predpokladajme ze uz metoda setUp() prebehla):

Pri testovani je bezne, ze pre jeden balik testov existuje vacsi pocet konfiguracnych suborov, ktore zohladnuju rozne scenare.

Vysledky vsetkych testov sa okrem zapisania na standardny vystup zapisuju do suboru TestResults.xml.

Existujuce testy

Card test suites

Testy na storno listka z karty. Pre kazdy pripad sa preda listok a nasledne vystornuje. Jednotlive testy menia nastavenia TS40 (storno JL v primeste) a TS149 (storno JL v MHD).

Kontroluju sa polozky:

Testovane situacie:

OWT na karte su zapisane v strukture EOneWayTicketZone:

  1. test_case_01 - Spoj 2/1, zastavky 1-2, CTL 1, TS40=1, TS149=1, na karte nie je ziaden listok
  2. test_case_02 - Spoj 2/1, zastavky 1-2, CTL 1, TS40=1, TS149=1, na karte je listok majitela a spolucestujuceho zo spoja 9/7
  3. test_case_03 - Spoj 2/1, zastavky 1-2, CTL 2, TS40=1, TS149=1, na karte je listok majitela zo spoja 2/1
  4. test_case_04 - Spoj 2/1, zastavky 1-2, CTL 2, TS40=1, TS149=1, na karte je listok majitela zo spoja 2/1, dokupuju a stornuju sa viaceri spolucestujuci
  5. test_case_11 - TS40=2, TS149=2, inak to iste ako test_case_01
  6. test_case_12 - TS40=2, TS149=2, inak to iste ako test_case_02
  7. test_case_13 - TS40=2, TS149=2, inak to iste ako test_case_03
  8. test_case_14 - TS40=2, TS149=2, inak to iste ako test_case_04

OWT na karte su zapisane v strukture EOneWayTicketZoneList:

  1. test_case_21 - struktura EOneWayTicketZoneList, inak to iste ako test_case_01
  2. test_case_22 - struktura EOneWayTicketZoneList, inak to iste ako test_case_02
  3. test_case_23 - struktura EOneWayTicketZoneList, inak to iste ako test_case_03
  4. test_case_24 - struktura EOneWayTicketZoneList, inak to iste ako test_case_04
  5. test_case_31 - struktura EOneWayTicketZoneList, inak to iste ako test_case_11
  6. test_case_32 - struktura EOneWayTicketZoneList, inak to iste ako test_case_12 - iba majitel
  7. test_case_33 - struktura EOneWayTicketZoneList, inak to iste ako test_case_13
  8. test_case_34 - struktura EOneWayTicketZoneList, inak to iste ako test_case_14

Test na kontrolu statistiky po vydaji z karty. Kontroluju sa polozky:

Testovane situacie:

  1. Spoj 2/1 (PAD), vydaj z prvej na druhu zastavku
  2. Spoj 2/1 (PAD), vydaj z prvej na piatu zastavku
  3. Spoj 100001/1 (MHD), vydaj z prvej na stvrtu zastavku

Testujeme zapis listka spolucestujuceho na kartu:

Testovane situacie: spoj 506401/1

  1. Dokupenie spolucestujuceho, ak je na karte zapisany listok majitela. Listok spolucestujuceho sa zapise na samostatny ticketIndex.
  2. Dokupenie spolucestujuceho, ak je na karte zapisany listok majitela a jedneho spolucestujuceho. Pri separatnom zapise sa ma pouzit samostatny ticketIndex. Pri spolocnom zapise sa pouzije ticketIndex prveho spolucestujuceho, pricom sa zvysi pocet listkov.
  3. Dokupenie spolucestujuceho, ak je na karte zapisany listok majitela a dvoch spolucestujucich. Pri separatnom zapise sa ma pouzit samostatny ticketIndex. Pri spolocnom zapise sa pouzije ticketIndex prvych dvoch spolucestujucich, pricom sa zvysi pocet listkov.

Test na predlzenie casoveho listka, pokial je na karte regionalna zlava.

Testovane situacie:

  1. Predlzenie casoveho listka na zony (100,101), pokial je na karte regionalna zlava BID SeniorPass. Spoj 102414/5.

Test na krizove prestupy. Pri krizovom prestupe sa neplati plna cena za listok, ale berie sa do uvahy uz zaplatena cena za predosly spoj.

Testovane situacie:

  1. Jednoduchy krizovy prestup (bez navaznych spojov) zo spoja 100001/6 na 3/1 na zastavke “Brodno,ZST”
  2. ten isty spoj so spolucestujucimi
  3. ten isty spoj, ak je na karte listok z nastavenym flagom “wasInterchange”. Preda sa listok v plnej cene.
  4. Krizovy prestup z navazneho spoja na jednoduchy spoj (zo spoja 2/2+3/1 na 100001/5 na zastavke “Brodno,ZST”)
  5. Krizovy prestup z jednoducheho spoja na navazny spoj (zo spoja 3/1 na 100001/5+100002/3 na zastavke “Brodno,ZST”)

Navrhy testov na dorobenie:

Test na optimalizaciu listka pri vystupeni z vozidla (checkout). Na optimalizovanom listku sa upravi tarifa, cena a zastavky.

Testovane situacie:

  1. Optimalizacia listka na spoji 12/1, na karte je len listok majitela
  2. Optimalizacia listka na spoji 12/1, na karte je listok majitela aj spolucestujucich
  3. Optimalizacia listka na spoji 12/1, na karte je jazda majitela na PCL a listky spolucestujucich

Test na predlzovanie jednorazoveho listka (dokupovanie minut).

Testovane situacie:

  1. Dokupovanie minut na spoji 12/1, na karte je jazda majitela na PCL a listky dvoch spolucestujucich. Mali by sa predat tri listky, listok pre majitela ma nulovu cenu.
  2. Dokupovanie minut na spoji 12/1, na karte je len listok majitela. Mal by sa predat jeden listok za plnu cenu.
  3. Dokupovanie minut na spoji 12/1, na karte je listok majitela a listky dvoch spolucestujucich. Mali by sa predat tri listky, vsetky za plnu cenu.
  4. Dokupovanie minut na spoji 12/1, na karte je listok majitela a listky dvoch spolucestujucich, predlzujeme len listok majitela. Mal by sa predat jeden listok, listky spolucestujucich by sa mali zneplatnit.

Test na postupny prestup spolucestujucich (prestup sa vykonava len pre jedneho cestujuceho naraz). Kazdy spolucestujuci je zapisany na samostatnom ticketIndexe.

Testovane situacie: vykonava sa prestup na spoj 3/2, na karte je listok majitela a dvoch spolucestujucich zo spoja 3/1 (plny a polovicny)

  1. Majitel ani spolucestujuci este nevykonali prestup - vykona sa len prestup majitela.
  2. Majitel uz vykonal prestup, predavame plnu tarifu - vykona sa len prestup plneho spolucestujuceho.
  3. Majitel uz vykonal prestup, predavame polovicnu tarifu - vykona sa len prestup polovicneho spolucestujuceho.
  4. Majitel a plny spolucestujuci uz vykonali prestup, predavame polovicnu tarifu - vykona sa prestup len polovicneho spolucestujuceho.
  5. Majitel a polovicny spolucestujuci uz vykonali prestup, predavame plnu tarifu - vykona sa prestup len plneho spolucestujuceho.
  6. Vsetci uz vykonali prestup, predavame plnu tarifu - preda sa listok pre dalsieho spolucestujuceho.

!!! Pozor, ak testy z modulu TestCardOneWayTicketAcceptance neprechadzaju, treba brat na zretel fakt, ze casova akceptacia platneho listka je zavisla od casov na zastavkach podla cestovnych poriadkov
Aktulne je nastavena linka 102414, spoj 1, cca 00:00 - 6:50 test neprechadza

Testy na kontrolu typ karty - typ zlavy a prenosnu penazenku

Vydavame listok na spoj 2/1 (aj ked je capping primarne urceny pre MHD, je ho mozne nastavit na akukolvek tarifu - linka 2 je PAD), z prvej (index 0) na druhu zastavku (index 1), plna cena podla typu kartu je 59 centov Test case-y vychadzaju z testovacich scenarov z RM tasku 11001 (https://redmine.transdata.sk/issues/11001)

Cash test suites

Presale card test suites