Dokumendiregister | Rahandusministeerium |
Viit | 12.2-10/25-2/2-18 |
Registreeritud | 06.02.2025 |
Sünkroonitud | 07.02.2025 |
Liik | Väljaminev kiri |
Funktsioon | 12.2 RIIGIHANGETEALANE TEGEVUS |
Sari | 12.2-10 Riigihangete vaidlustusmenetluse toimikud |
Toimik | 12.2-10/25-2 |
Juurdepääsupiirang | Avalik |
Juurdepääsupiirang | |
Adressaat | Wisercat Estonia OÜ , Rahandusministeeriumi Infotehnoloogiakeskus, Nortal AS |
Saabumis/saatmisviis | Wisercat Estonia OÜ , Rahandusministeeriumi Infotehnoloogiakeskus, Nortal AS |
Vastutaja | Mari-Ann Sinimaa (Rahandusministeerium, Kantsleri vastutusvaldkond, Ühisosakond, Dokumendihaldustalitus) |
Originaal | Ava uues aknas |
<
OTSUS Vaidlustusasja number
2-25/277106
Otsuse kuupäev 05.02.2025 Vaidlustuskomisjoni liige Taivo Kivistik Vaidlustus Wisercat Estonia OÜ vaidlustus Rahandusministeeriumi
Infotehnoloogiakeskuse riigihankes „Struktuuritoetuse registri arendus- ja hooldusteenus“ (viitenumber 277106) Nortal AS-i pakkumuse vastavaks ja edukaks tunnistamise otsustele
Menetlusosalised Vaidlustuse läbivaatamine
Vaidlustaja, Wisercat Estonia OÜ, esindaja vandeadvokaat Kaidi Reiljan-Sihvart Hankija, Rahandusministeeriumi Infotehnoloogiakeskus, esindaja Kairi Osolainen Kolmas isik, Nortal AS, esindaja vandeadvokaat Mart Parind Kirjalik menetlus
RESOLUTSIOON RHS § 197 lg 1 p-i 4 ja § 198 lg-de 3 ja 8 alusel 1. Jätta rahuldamata Wisercat Estonia OÜ vaidlustus Rahandusministeeriumi Infotehnoloogiakeskuse riigihankes „Struktuuritoetuse registri arendus- ja hooldusteenus“ (viitenumber 277106). 2. Mõista Wisercat Estonia OÜ-lt Nortal AS-i kasuks välja Nortal AS-i lepingulise esindaja kulud 4050 eurot (käibemaksuta). 3. Jätta Wisercat Estonia OÜ poolt vaidlustusmenetluses kantud kulud tema enda kanda. EDASIKAEBAMISE KORD Halduskohtumenetluse seadustiku § 270 lg 1 alusel on vaidlustuskomisjoni otsuse peale halduskohtule kaebuse esitamise tähtaeg 10 päeva arvates vaidlustuskomisjoni otsuse avalikult teatavaks tegemisest. ASJAOLUD JA MENETLUSE KÄIK 1. 24.07.2024. a avaldas Rahandusministeeriumi Infotehnoloogiakeskus (edaspidi ka Hankija) avatud hankemenetlusega riigihanke „Struktuuritoetuse registri arendus- ja hooldusteenus“ (viitenumber 277106) (edaspidi Riigihange) hanketeate ja tegi kättesaadavaks teised riigihanke alusdokumendid (edaspidi koos nimetatult RHAD), sh Nõuded proovitöö teostamiseks (edaspidi Nõuded), Vastavustingimused ja Hindamismetoodika kirjeldus (edaspidi Hindamismetoodika). Pakkumuste esitamise tähtpäevaks, 11.09.2024. a, esitasid pakkumuse 10 pakkujat, sh Wisercat Estonia OÜ ja Nortal AS. 2. 23.12.2024. a otsusega tunnistas Hankija muuhulgas vastavaks ja edukaks Nortal AS-i pakkumuse.
2 (40)
02.01.2025. a laekus Riigihangete vaidlustuskomisjonile (edaspidi vaidlustuskomisjon) Wisercat Estonia OÜ (edaspidi ka Vaidlustaja) vaidlustus Hankija otsustele tunnistada vastavaks ja edukaks Nortal AS-i (edaspidi ka Kolmas isik) pakkumus. 3. Kooskõlas riigihangete seaduse (edaspidi RHS) § 195 lg-ga 2 ja § 196 lg-dega 1 ja 3 teatas vaidlustuskomisjon 13.01.2025 kirjaga nr 12.2-10/2 menetlusosalistele, et vaatab vaidlustuse läbi esitatud dokumentide alusel kirjalikus menetluses, tegi teatavaks otsuse avalikult teatavaks tegemise aja ning andis täiendavate seisukohtade ja dokumentide esitamiseks aega kuni 16.01.2025 ja neile vastamiseks 21.01.2025. Vaidlustaja taotluse alusel pikendati nimetatud tähtaegasid kuni 20.01.2025 ning 23.01.2025. Vaidlustuskomisjoni määratud esimeseks tähtpäevaks esitasid täiendava seisukoha ja menetluskulude nimekirja Vaidlustaja ja Kolmas isik. Teiseks tähtpäevaks esitasid täiendava seisukoha ja menetluskulude nimekirja Hankija ja Kolmas isik. Vaidlustuskomisjon jätab tähelepanuta menetlusosaliste repliigid, mis on esitatud pärast 20.01.2025. a seisukohtadele vastamiseks määratud tähtaega (23.01.2025. a), kuna need ei ole esitatud tähtaegselt. 4. Käesolevas vaidlustusasjas on menetlusosalised oma menetlusdokumentides ulatuslikult kajastanud Kolmanda isiku ja Vaidlustaja proovitöid ning nendega seonduvat, sealhulgas sisaldavad menetlusosaliste seisukohad teavet, mida Kolmas isik ja Vaidlustaja peavad oma ärisaladuseks. RHS ei näe ette, et kogu vaidlustusmenetluse saaks kinniseks kuulutada, vaidlustuskomisjoni otsus tuleb üles laadida riigihangete registrisse. Kolmanda isiku ja Vaidlustaja ärisaladuse kaitseks on vaidlustuskomisjon koostanud käesolevast otsusest kolm versiooni: 1) otsuse täielik versioon, millest ärisaladusi sisaldavaid osi eemaldatud pole, tehakse teatavaks üksnes Hankijale; 2) otsuse versioon, mille jaotisest Menetlusosaliste põhjendused on menetlusosaliste ärisaladust sisaldavad osad välja jäetud ning tähistatud märkega [Kolmanda isiku ärisaladus] või [Vaidlustaja ärisaladus] ning jaotisest Vaidlustuskomisjoni põhjendused on välja jäetud Vaidlustaja pakkumuse hindamist käsitlev osa, mis sisaldab teavet, mida Vaidlustaja peab oma ärisaladuseks, tehakse teatavaks Kolmandale isikule ja laaditakse üles riigihangete registrisse; 3) otsuse versioon, mille jaotisest Menetlusosaliste põhjendused on menetlusosaliste ärisaladust sisaldavad osad välja jäetud ning tähistatud märkega [Kolmanda isiku ärisaladus] või [Vaidlustaja ärisaladus], kuid mille jaotises Vaidlustuskomisjoni põhjendused on ka Vaidlustaja ärisaladust sisaldav osa, edastatakse Vaidlustajale. MENETLUSOSALISTE PÕHJENDUSED 5. Vaidlustaja, Wisercat Estonia OÜ, vaidlustuses ja 20.01.2025. a esitatud täiendavates seisukohtades põhjendatakse taotlusi alljärgnevalt. 5.1. Kolmanda isiku pakkumus sai hindamisel kokku 99,44 väärtuspunkti. AS-i Helmes pakkumus sai teisena 89,03 punkti ning Vaidlustaja pakkumus sai 86,20 punkti. Vaidlustaja vaidlustab Hankija otsused Kolmanda isiku pakkumuse vastavaks ja edukaks tunnistamiseks. Kolmanda isiku pakkumus oleks tulnud tagasi lükata. Isegi, kui Kolmanda isiku pakkumus oleks vastav, on õigusvastane otsus Kolmanda isiku pakkumuse edukaks tunnistamiseks, kuna pakkumuste õiguspärase hindamise korral oleks pidanud saama kõige rohkem punkte ja seega edukaks tunnistatama Vaidlustaja pakkumus. Vaidlustajal puudub vajadus vaidlustada AS-i Helmes suhtes tehtud otsuseid, kuna vaidlustuse rahuldamise korral osutuks igal juhul edukaks Vaidlustaja pakkumus. 5.2. Nõuete kohaselt koosnes pakkujate poolt esitamisele kuulunud arenduse proovitöö: 1) rakendusest, mis kuvab kasutajale projekti kuludokumentide loendit (s.o sisulist funktsionaalsust täitvast rakendusest ehk põhirakendusest); 2) andmebaasist; 3) integratsioonitestidest etteantud testjuhtudega (s.o testrakendusest). Seejuures pidi testrakendus mh võimaldama nii sisulist funktsionaalsust täitva rakenduse (põhirakenduse) funktsionaalsuse kui ka kiiruse testimist, s.o põhirakenduse testimist. Nõuded sätestavad tingimused nii põhi- kui ka testrakendusele. Seega peab ka testrakendus, mille kaudu sisulise rakenduse funktsionaalsust ja kiirust testitakse, vastama RHAD-i nõuetele ja võimaldama põhirakenduse nõuetekohast testimist. Kolmanda isiku pakkumus ei ole vastav,
3 (40)
kuna proovitöö osaks olev testrakendus ei vasta Nõuetele. Kolmanda isiku pakkumuse mittevastavus 5.3. Testrakenduse mittevastavus nr 1 (ridade valimine). 5.3.1. Nõuete alamjaotus „Rakenduse integratsioonitestid“ sätestab nõude Seleniumi end- to-end automaattestide loomiseks, mille abil on võimalik mõõta automaattestis realiseeritavate toimingutes kirjeldatud tegevuste summaarset ajakulu. Seejuures on sätestatud nõue, et testimisel emuleeritakse tavakasutaja toimingud Seleniumi testi abil, kusjuures lubatud ei ole toimingud, mida kasutaja teha ei saa või mille tegemiseks tavakasutajal andmed puuduvad. Samuti on sätestatud nõue, et toimingute tegemiseks kuluv summaarne aeg tuleb mõõta millisekundi täpsusega. 5.3.2. Kolmanda isiku proovitöö testimise logifaili testlugudest nr 8, 20 ja 21 automaattestis realiseeritavate toimingute nr 8, 20 ja 21 kohta nähtub, et ridade selekteerimisel ei arvesta Kolmanda isiku testrakendus, et tavakasutaja näeb testitavas rakenduses sisalduvaid ridu lehekülgede kaupa. Nimelt on testrakenduse logifaili identifikaatoril 184 näha, et sisestatakse korraga kõik nõutud read 126, 26535, 41223-41250, 83610-83620, 91425, 91428, 91431, identifikaatoril 203 on näha, et on sisestatakse numbrivälja rea 30001 number (ilma tavakasutaja kombel vastavale reale liikumata) ning identifikaatoril 403 on näha, et sisestatakse korraga kõik nõutud read 126, 26535, 41223-41250, 83610-83620, 91425, 91428, 91431. Seega ei ole tavakasutajal võimalik näha testitavas rakenduses olevatel ridadel sisalduvaid andmeid ilma liikumata õigele lehele, kus vastav rida asub. Kolmanda isiku testrakenduses kasutatakse andmete valimisviisi, kus kasutaja lihtsalt sisestab nö pimesi ridade numbreid ja vahemikke ilma andmeid nägemata. Ridade selekteerimisega seotud toimingute tegemiseks tuleb nõuetekohase testrakenduse puhul arvestada ka vastavatele lehtedele liikumise toimingutega. User experience’i kohaselt, kui tabelis on palju andmed ja kuvatakse lehele rohkem kui 300 rida, siis brauser ei pea vastu, kuna iga html elemendi renderdamine tarbib operatiivmälu ressursse. Seega on hea tava kohaselt vajalik paginatsioon ehk lehekülgedele liikumine. Paginatsiooni nõutavusele viitab ka Nõuete tingimus, mille kohaselt peab kasutajal olema võimalik andmeid lehitseda. Seega on Kolmanda isiku testrakendus, mis eeltoodud toimingutega ei arvesta, seatud nõuetega sisulises vastuolus (s.o põhineb toimingutel, mille tegemiseks tavakasutajal puuduvad andmed). Ühtlasi viib Kolmanda isiku testrakenduse kõnealune mittevastavus selleni, et kuivõrd Kolmanda isiku testrakenduses ei ole automaattestis realiseeritavates toimingutes kirjeldatud tegevuste tegemisel õigetele lehtedele liikumise toimingutega (ja nende tegemiseks kuluva ajaga) arvestatud, ei ole ka summaarse ajakulu arvestamisel arvestatud vastavatele toimingutele kuluva ajaga – seega ei ole Kolmanda isiku proovitöö puhul testrakenduse kaudu võimalik nõutud tegevuste summaarset ajakulu tingimuste kohaselt mõõta. 5.4. Testrakenduse mittevastavus nr 2 (toimingu õnnestumise kontrollimine). 5.4.1. Nõuete alamjaotus „Rakenduse integratsioonitestid“ sätestab nõude Testrakendus peab kirjutama andmebaasi eraldi tabelisse automaattestis tehtud toimingute tulemused ja toimingute käigus kasutatud sisendandmed (nõue nr 11). Teabevahetuses on Hankijalt küsitud selle nõude kohta selgitusi, mh: 1) Mida mõistetakse toimingute tulemuste all (ehk info mida peab automaattestide logi tabelisse kirjutama) (küsimus 7b); ja 2) Kas tulem on lihtsalt tegevuse jaoks kulunud aeg? (küsimus 7bi). 26.08.2024. a vastuses selgitas Hankija nõuet järgmiselt: 1) 7b) Kas toiming õnnestus või mitte ning kaua toiming aega võttis 2) 7bi) Lisaks ajale on vaja teada kas toiming õnnestus või mitte. Ebaõnnestumise korral tuleb juurde lisada põhjus miks ei õnnestunud1 . Seega sätestab RHAD automaattestis tehtud toimingute andmebaasis kajastamise nõude, milleks tuleb toimingute õnnestumise kontroll eraldi sammuna ehk toiminguna läbi viia. 5.4.2. Kolmanda isiku proovitöö testimise kohta Hankija esitatud tõenditest (sh logist) ei nähtu toimingu õnnestumise kontrolli läbiviimist, s.o et vastavat sammu oleks üldse teostatud. Seega ei vasta Kolmanda isiku testrakendus eelkirjeldatud nõudele. Kuivõrd Kolmanda isiku
1 Vt riigihangete register, sõnumi ID: 877859.
4 (40)
testrakenduses ei ole automaattestis realiseeritavates toimingutes kirjeldatud tegevuste tegemisel ka toimingu õnnestumise kontrolli toimingutega arvestatud, ei ole summaarse ajakulu arvestamisel arvestatud ka vastavatele toimingutele kuluva ajaga. Seega ei ole Kolmanda isiku proovitöö puhul ka eeltoodud põhjusel võimalik nõutud tegevuste summaarset ajakulu tingimuste kohaselt mõõta. 5.5. Testrakenduse mittevastavus nr 3 (logi ja mõõtmistulemuste kajastamine konsoolis)2 . 5.6. Testrakenduse mittevastavus nr 4 (rakenduse sätete kajastamine). 5.6.1. Nõuete alamjaotus „Rakenduse integratsioonitestid“ sätestab nõude Testrakendus kirjutab väljundisse (konsooli) oma logi ja mõõtmistulemused, mis kajastavad tegevusseisundeid, mõõdetavaid aegu, vigu ja muud testrakenduse sees toimuvat infot nagu näiteks sätted, millega rakendus käivitati (nõue nr 10). Seega peab nõutud väljundisse olema kirjutatud ka muu rakenduse sees toimuv info, sh sätted, millega rakendus käivitati. 5.6.2. Lisaks asjaolule, et Kolmanda isiku testrakendus ei kirjuta logi ja mõõtmistulemusi nõutud väljundisse (konsooli), ei nähtu proovitöö salvestiselt (vt salvestis Nortal AS 1 masin – Copy.mp4) ega ka Kolmanda isiku testrakenduse logifailist, et Kolmanda isiku testrakendus kajastaks konsoolis või ka eraldi logifailis muud rakenduses toimuvat, sh rakenduse käivitamise sätteid. Seega ei vasta Kolmanda isiku testrakendus ka selles osas RHAD-is sätestatud nõuetele. 5.7. Testrakenduse mittevastavus nr 5 (logis toimingute mõõtmistulemuste kajastamine, logiandmete vastuolu summaarse ajakuluga). 5.7.1 Nõuete alamjaotus „Rakenduse integratsioonitestid“ sätestab nõude Testrakendus kirjutab väljundisse (konsooli) oma logi ja mõõtmistulemused, mis kajastavad tegevusseisundeid, mõõdetavaid aegu, vigu ja muud testrakenduse sees toimuvat infot nagu näiteks sätted, millega rakendus käivitati (nõue nr 10). Antud nõudest tuleneb eesmärgipäraselt, et logis peavad olema adekvaatselt kajastatud nõutavad andmed, sh mõõdetavad ajad. 5.7.2. Lisaks asjaolule, et Kolmanda isiku testrakendus ei kirjuta logi ja mõõtmistulemusi nõutud väljundisse (konsooli), nähtub nõuetele mittevastavasse väljundisse kirjutatud logist, et üks Kolmanda isiku testrakenduses läbi viidud toiming on toimunud ca 3 minutit erineval ajal, kui on toimunud kõik ülejäänud toimingud (logifailis vastavalt 09:21 vs 09:24). Seega olukorras, kus Hankija on lugenud Kolmanda isiku testrakenduses läbi viidud automaattestis realiseeritavate toimingute summaarseks ajakuluks vaid 16572 millisekundit, kuid logi kohaselt on toimingute läbiviimine toimunud lausa ca 3 minuti jooksul, ei kajasta kas logi adekvaatseid andmeid (s.o Kolmanda isiku logi ei vasta nõuetele) või ei ole testrakenduse kaudu võimalik Kolmanda isiku proovitöö puhul nõutud tegevuste summaarset ajakulu tingimuste kohaselt mõõta (s.o Kolmanda isiku testrakenduse mõõtetulemus ei vasta nõuetele ega ole seega õige). 5.7.3. Kuigi Kolmanda isiku testrakenduse logifailis on real ID 208 toodud koondtulemus Kõik sammud kokku 11826 millisekundit, ei vasta see logis toodud eelnevate toimingute summaarsele ajakulule, s.o logis deklareeritud vastav koondtulemus on 83 millisekundit väiksem. Ka see kinnitab, et testrakenduse kaudu ei ole võimalik Kolmanda isiku proovitöö puhul nõutud tegevuste summaarset ajakulu tingimuste kohaselt mõõta ning Kolmanda isiku testrakendus ei vasta RHAD-i-s sätestatud nõuetele. 5.8. Testrakenduse mittevastavus nr 6 (rakenduse käivitamine). 5.8.1. Nõuete alamjaotus „Rakenduste integratsioonitestid“ sätestab testrakendusele kehtivate nõuetena: - 4. Funktsionaalsuse testimiseks on käsurealt käivitava java-konsoolirakendus (testrakendus), mille ühe jar-faili sees on kõik käivitamiseks vajalikud artefaktid ja sõltuvused;
2 Kuna 20.01.2025. a täiendavates seisukohtades loobus Vaidlustaja sellele väidetavale mittevastavusele tuginemisest, seda käesolevas otsuses ei käsitleta.
5 (40)
- 6. Testrakendus töötab Docker-konteineris, mille Dockerfile ja Docker compose on tarnega kaasas ning Docker konteinerit ja selles töötavat testrakendust peab saama käivitada avalikku võrku kasutades; - 9. Testrakendus on käsureavõtmetega, mis lisatakse juhendisse, hallatav käsurealt; - 13. Käsureal peab saama hallata rakenduse järgmiseid sätteid: d) ’ --- headless’ võimalus lülitada välja ja sisse Chrome UI (vaikimisi Chrome UI väljas). e) Võimalus käivitada rakendus DEBUG-režiimis (vaikimisi DEBUG väljas). Hankijale on seoses testrakendusega esitatud teabevahetuses küsimused: 1) 3. Seniste nõuete ja vastuste põhjal on teada, et testitav rakendus jookseb Dockeri konteineris ühes masinas ja testid jooksevad teises konteineris teises masinas. Mõlemat masina spetsifikatsioon on 8 vCPU, 16GB RAM, 10 GB SSD ja kasutatav operatsioonisüsteem Windows 10:[---] 2) 3 b) Kas tegemist on Virtual Machine(VM)-ga? 05.09.2024. a vastas Hankija: 3b) Pakkuja jaoks ei tohiks olla vahet kas tegemist on VM-ga või mitte. Oluline on see, et kõikide pakkujate võrdlemiseks kasutatakse samasuguseid keskkondi3 . Samuti on teabevahetuses esitatud Hankijale küsimus: Testid käivitatakse vähemalt kahes RmIT hallatavas seadmes, mille spetsifikatsioonid on toodud „Nõuded ja arhitektuur“ peatükis ning mis on samad kõigi pakkujate jaoks. - kas testid ja rakendus käivitatakse samas seadmes (spetsifikatsiooniga 8 vCPU, 16GB RAM, 10 GB SSD) või käivitatakse testid ühes ja rakendus teises? 19.08.2024. a vastas Hankija: 1) Jah. Rakendus ja testid käivitatakse erinevates masinates4 . 5.8.2. Kolmanda isiku proovitöö testimise salvestisel (vt lingil salvestis Nortal AS 2 masin – Copy.mp4), s.o masina nr 2 videos ajahetkel 2:28 selgitab administraator, et on avastanud vea, et Kolmanda isiku testrakendust ei ole testitud võrguväliselt teisest masinast. 3:06 annab administraator teada, et pidi lisama docker-compose.yml faili täiendava rea testimiseks vajalike portide kohta „4444:4444“ ning vastasel korral ei oleks ta väljast saanud Sleniumile ligi. Samuti selgitab administraator, et kui ta sai rakendusele ligi, kukkus see maha, mistõttu pidi ta ise tegema seoses Dockerkonteineriga veel eraldi „triki“ (kokku ehitama). Minutil 5:00 selgitab administraator, et algselt Kolmanda isiku rakendus (sfos-integration-tests) ei käivitunud ilma temapoolsete muudatusteta. Ajahetkel 6:11 teatab administraator, et pidi muutma ka .java faili, kuna tarkvara käivitumiseks vajalike parameetrite sisestamine oli muidu võimatu. Seega kinnitab vastav testimise salvestis, et ilma administraatori poolt kirjeldatud muudatusteta ei olnud Kolmanda isiku proovitööd võimalik käivitada ega nõutud automaatteste käivitada (testida) mh selliselt, et rakendus ja testid käivitatakse erinevates masinates. Seejuures Java konsoolirakendust ei olnud võimalik käsurealt ilma administraatori enda poolt välja mõeldud muudatusteta ning Docker-konteineri kaudu avalikku võrku kasutades Kolmanda isiku paigaldus- ja kasutusjuhendis toodud käsureavõtmega käivitada. Eeltoodust tulenevalt ei vasta Kolmanda isiku testrakendus nõuetele nr 4, 6, 9 ja 13 ning on sellega RHAD-is sätestatud nõuetele mittevastav. Tähtsust ei oma, et Hankija masina nr 2 testitulemusi ei arvestanud – testrakendus pidi olema käivitatav ja kasutatav Hankija tingimuste kohaselt, sh pilveseadme (Virtual Machine) kaudu käivitamisel, ning selliselt, et rakendus ja testid käivitatakse erinevates masinates. Masinas nr 2 tehtud testimine näitas, et Kolmanda isiku testrakendus nendele nõuetele ei vastanud. 5.9. Testrakenduse mittevastavus nr 7 (paigaldus- ja kasutusjuhendi puudumine). 5.9.1. Vastavustingimuste kohaselt peab pakkuja esitama Nõuetes toodud tingimustele vastava ja hindamisele kuuluva proovitöö lähtekoodi koos paigaldus- ja kasutusjuhendiga. Paigaldus- ja/või kasutusjuhendi mitteesitamisel lükatakse pakkumus tagasi. Nõuded sätestavad: 8. Tarne arhiivis on dokumentatsioon ja juhendid, ka rakenduste ehitamise juhend ning valikud sõltuvused, mis pole saadavad avalikust võrgust. Nõuete alamjaotus „Rakenduste integratsioonitestid“ sätestab: 8. Testrakendusega koos antakse üle ka paigaldus- ja kasutusjuhend. Kuivõrd testrakendus ise peab vastama „Rakenduse integratsioonitestides“ sätestatud nõuetele, peab ka testrakenduse paigaldus- ja kasutusjuhend lähtuma testrakendusele seatud nõuetest ehk olema piisav testrakenduse paigaldamiseks ja kasutamiseks.
3 Vt riigihangete register, sõnumi ID: 880593. 4 Vt riigihangete register, sõnumi ID: 876721.
6 (40)
5.9.2. Kolmanda isiku proovitööd ei olnud võimalik käivitada ega nõutud automaatteste käivitada (testida) ilma Hankija administraatori kirjeldatud omaalgatuslike muudatusteta. Selleks, et Hankija saaks Kolmanda isiku proovitööd Riigihankes nõutud tingimustel, sh avalikku võrku kasutades, Java rakendusest ning Docker-konteineri kaudu käivitada ja testida selliselt, et rakendus ja testid käivitatakse erinevates masinates, pidi Hankija tegema Kolmanda isiku proovitöö konfiguratsioonifailis olulisi muudatusi. Selliste muudatuste tegemist ei olnud salvestise kohaselt Kolmanda isiku testrakenduse paigaldus- ja kasutusjuhendis kirjeldatud. Seejuures Kolmanda isiku proovitöö testimise salvestisel (vt lingil salvestis Nortal AS 2 masin – Copy.mp4), s.o masina nr 2 videos ajahetkel 2:28 selgitab administraator, et Kolmanda isiku testrakenduse võrguväliselt teisest masinast testimise kohta puuduvad Kolmanda isiku dokumentatsioonis juhised. Samuti 3:06 annab administraator teada, et draiveri pordid olid Kolmanda isiku dokumentatsioonis publitseerimata (administraator pidi need ise Kolmanda isiku lähtekoodi lisama), vastasel korral ei oleks ta väljast saanud Seleniumile ligi. Seega isegi juhul, kui Kolmanda isiku testrakendus ise oleks Nõuete p-i 8 ja alamjaotuse „Rakenduste integratsioonitestide“ nõuetele nr 4, 6, 9 ja 13 vastav (mida ta ei ole), on selge, et Kolmanda isiku proovitöö paigaldus- ja kasutusjuhend ei kirjelda proovitöö käivitamist ja testimist nõutud tingimustel (sh selliselt, et rakendus ja testid käivitatakse erinevates masinates), mistõttu on Vastavustingimustes toodud nõue paigaldus- ja kasutusjuhendi esitamiseks sisuliselt täitmata. Eelnevast tulenevalt tuleb lugeda, et nõutavat paigaldus- ja kasutusjuhendit ei ole esitatud. 5.10. Eeltoodud asjaoludest nähtub, et Kolmanda isiku pakkumuse vastavaks tunnistamine on õigusvastane, kuivõrd Kolmanda isiku pakkumus ei vasta RHAD-is proovitöö testrakendusele sätestatud tingimustele. Tegemist on testrakendusega, mis ei võimalda nõuete mittevastavuse tõttu sisulist funktsionaalsust teostavat rakendust nõuetekohaselt testida. Hankija oleks pidanud Kolmanda isiku pakkumuse RHS § 114 lg 1 alusel tagasi lükkama. 5.11. RHS § 117 lg 1 alusel kuulub hindamisele vaid vastavaks tunnistatud pakkumus. Kuna Kolmanda isiku pakkumuse vastavaks tunnistamine on õigusvastane ning Kolmanda isiku pakkumus ei saa seetõttu edasises hankemenetluses osaleda, tuleb tunnistada kehtetuks ka otsus Kolmanda isiku pakkumuse edukaks tunnistamiseks. Kolmanda isiku pakkumuse hindamine 5.12. Kolmanda isiku pakkumuse edukaks tunnistamine on õigusvastane ka juhul, kui eeltoodud mittevastavused ei anna alust pakkumuse tagasi lükkamiseks – Hankija on pakkumuse hindamise kriteeriume Kolmanda isiku ja Vaidlustaja proovitööde osas RHS § 117 lg 1 alusel ebaõigesti rakendanud. Pakkumuste hindamise kriteeriumid on: 1) pakkumuse maksumus põhimõttel „vähim on parim“ (osakaaluga 40); ja 2) hankija hinnatav proovitöö kvaliteet (osakaaluga 60). „Hindamismetoodika kirjelduse“ p-i 3 kohaselt pidi proovitöö kvaliteedi kriteeriumi alusel andma proovitöö kriteeriumidele kokku 0 kuni 100 punkti järgmiselt: Kriteerium Maksimumpunktid 1. Dokumenteerimine 20 2. Arhitektuuri põhimõtete jälgimine 20 3. Funktsionaalsus 30 4. Testide mõõtmistulemused (kiirus) 30 Kokku 100 „Hindamismetoodika kirjelduse“ p-i 3.5 kohaselt maksimaalsed väärtuspunktid (60) omistatakse proovitöö eest kõrgeima punktisumma saanud pakkumus(t)ele. Ülejäänud hinnatavate proovitööde väärtuspunktid arvutatakse järgmise valemi järgi: „punktimäär“ = „hinnatava proovitöö punktide summa“ ÷ „enim punkte saanud proovitöö punktide summa“ x 60. 5.13. Kolmanda isiku pakkumus sai töötunni maksumuse kriteeriumi alusel 39,44 väärtuspunkti ning tema proovitööd hinnati kõigis proovitöö kriteeriumides maksimaalsete punktidega (s.o kokku 100 punkti) ehk tema pakkumus sai proovitöö eest kokku 60 väärtuspunkti. Kokku anti kahe kriteeriumi alusel Kolmanda isiku pakkumusele 99,44 väärtuspunkti (39,44 + 60). Vaidlustaja pakkumus sai töötunni maksumuse kriteeriumis maksimaalsed 40 väärtuspunkti. Proovitöö kõigis kriteeriumides kokku anti Vaidlustaja pakkumusele 77 punkti ehk 46,20 väärtuspunkti. Kokku sai Vaidlusaja pakkumus seega 86,20
7 (40)
punkti (40 + 46,20). Isegi kui ei esineks aluseid Kolmanda isiku pakkumuse tagasilükkamiseks, on hindamiskriteeriumide õiguspärase rakendamise korral majanduslikult soodsaim pakkumus 100 punktiga Vaidlustaja pakkumus. Kolmanda isiku pakkumusele on proovitöö kriteeriumis antud õigusvastaselt 50 punkti (30 + 20 punkti) rohkem ning Vaidlustaja pakkumusele on proovitöö kriteeriumis ebaõigesti antud 23 punkti (3 + 20) vähem. 5.14. Kolmanda isiku proovitööd on testide mõõtmistulemuste (kiiruse) kriteeriumis ebaõigesti hinnatud. Kolmanda isiku proovitöö sai testide mõõtmistulemuste (kiiruse) kriteeriumis maksimaalsed 30 punkti. 5.14.1. Kolmanda isiku proovitöö mõõtmistulemusi ei saa arvestada. Hindamismetoodika kirjelduse p 3.8 sätestab testide mõõtmistulemuste (kriteeriumi) puhul: Mõõtmistulemused lähevad arvesse ainult juhul, kui proovitöös toodud funktsionaalsuse testides on saadud vähemalt 5 punkti ning kõik proovitöös nõutud automaattesti toimingud on korrektselt realiseeritud. Juhul kui automaattesti toimingud ei ole realiseeritud vastavalt proovitöö nõuetes toodule, siis omistatakse käesolevale kriteeriumile 0 punkti. Seoses eespool kirjeldatud testrakenduste mittevastavustega 1 (ridade valimine) ja 2 (toimingu õnnestumise kontrollimine) jättis Kolmanda isiku proovitöö testrakendus automaattestis realiseeritavates toimingutes kirjeldatud tegevuste tegemisel selleks vajalike toimingutega (ridade valimine, toimingu õnnestumise kontrollimine) ja nende tegemiseks kuluva ajaga arvestamata. Lihtsustatult tähendab see, et kui automaattestis realiseeritavate konkreetsete toimingute tegemiseks oli tavakasutajal vaja teha näiteks 10 toimingut, siis Kolmanda isiku testrakendus arvestas neist vaid 7 toimingu tegemisega ning selleks kulunud ajaga. Vaidlustaja ei dubleeri eelpool kirjeldatud mittevastavusi ja palub neist ka siinkohal lähtuda. Juhul, kui eelnimetatud mittevastavused ei ole käsitletavad pakkumuse mittevastavuse alustena ega too kaasa pakkumuse tagasi lükkamist, on Kolmanda isiku pakkumust testide mõõtmistulemuste (kiiruse) kriteeriumis igal juhul õigusvastaselt hinnatud, kuivõrd kõnealuste ridade valimise ja toimingu õnnestumise kontrollimisega seotud vajalike toimingutega arvestamata jätmine tähendab, et proovitöös nõutud automaattesti toimingud ei ole Kolmanda isiku proovitöös korrektselt realiseeritud. Seega ei ole ka nõutud toimingute tegemiseks tegelikult kuluv aeg Kolmanda isiku testrakenduse alusel tuvastatav ning mõõtmistulemust (16572 millisekundit) ei või „Hindamismetoodika kirjelduse“ kohaselt arvestada. Seega tuli Kolmanda isiku proovitööle antud 30 punkti asemel hindamismetoodika kohaselt anda 0 punkti. 5.14.2. Kolmanda isiku testrakenduse genereeritud testide mõõtmistulemused on logiandmetega vastuolus. Kuigi Kolmanda isiku testrakenduse kohaselt oli Kolmanda isiku automaattestis realiseeritavate toimingute summaarseks ajaks 16572 millisekundit, siis testrakenduse koostatud logis toodud toimingute aegade kohaselt on nõutavaid toiminguid läbi viidud kolme minuti jooksul (kell 09:21 ja 09:24). Seega on põhjendatud alus ka arvata, et testimise tulemused ei pruugi olla õiged ning nendega ei või arvestada. 5.14.3. Logi ja mõõtmistulemuste konsoolis kajastamata jätmine, rakenduse sätete kajastamata jätmine. Vaidlustaja leiab, et Kolmanda isiku testrakenduse mittevastavuse puhul ülal kirjeldatud nõuetele 1 (ridade valimine), 2 (toimingu õnnestumise kontrollimine), 3 (logi ja mõõtmistulemuste kajastamine konsoolis), 4 (rakenduste sätete kajastamine) ja 5 (logis toimingute mõõtmistulemuste kajastamine, logiandmete vastuolu summaarse ajakuluga), on tegemist vastavusnõuete rikkumisega, mis toovad kaasa pakkumuse tagasi lükkamise. Kui vaidlustuskomisjon leiab, et vastavaid nõudeid käsitleda hindamiskriteeriumide osana, tuleb ka Kolmanda isiku proovitöö mittevastavusi logi ja mõõtmistulemuste konsoolis esitamata jätmise ning rakenduse sätete kajastamata jätmise osas arvestada „Hindamismetoodika kirjelduse“ p-i 3.8 kriteeriumi 4 rakendamisel, mistõttu ei saa Kolmanda isiku proovitööle vastavas kriteeriumis anda rohkem kui 0 punkti. 5.14.4. Juhul, kui Vaidlustaja esile toodud Kolmanda isiku pakkumuse mittevastavused ei anna alust pakkumuse tagasi lükkamiseks, on Kolmanda isiku proovitööd testide mõõtmistulemuste (kiiruse) osas hinnatud õigusvastaselt ning Kolmanda isiku pakkumusele on vastavas kriteeriumis ebaõigesti antud 30 punkti. Kolmanda isiku pakkumusele ei saa vastavas kriteeriumis üldse punkte anda (so tuleb anda 0 punkti). 5.15. Kolmanda isiku proovitööd on ka dokumentatsiooni kriteeriumis ebaõigesti hinnatud 20
8 (40)
punktiga. Isegi kui Kolmanda isiku pakkumus oleks vastav, ei saa Kolmanda isiku pakkumusele selles kriteeriumis punkte anda. 5.15.1. Kolmanda isiku dokumentatsiooni järgides ei ole võimalik komponentide paigaldus või funktsionaalsuse kasutamine. Kolmanda isiku proovitööd ei olnud võimalik ilma Hankija administraatori kirjeldatud omaalgatuslike muudatusteta käivitada ega nõutud automaatteste käivitada (testida). Selleks, et Hankija saaks Kolmanda isiku proovitööd Riigihankes nõutud tingimustel, sh avalikku võrku kasutades Java rakendusest ning Docker-konteineri kaudu, käivitada ja testida selliselt, et rakendus ja testid käivitatakse erinevates masinates, pidi Hankija tegema Kolmanda isiku proovitöö konfiguratsioonifailis olulisi muudatusi, milliste tegemist ei olnud testsalvestise kohaselt Kolmanda isiku proovitöö paigaldus- ja kasutusjuhendis kirjeldatud. Vaidlustaja on üksikasjalikult kirjeldanud testrakendusele ja selle paigaldus- ja kasutusjuhendile „Rakenduste integratsioonitestide“ p-ides 4, 6, 8, 9 ja 13 esitatud nõudeid ja nende rikkumist ning palub ülal toodust lähtuda. Juhul, kui vaidlustuskomisjon leiab, et tegemist ei ole vastavustingimusele mittevastavusega, nähtub viidatud rikkumistest, et Kolmanda isiku testrakenduse juhenddokumentatsioon ei olnud piisav, et selle kohaselt oleks õnnestunud kõigi komponentide paigaldamine või funktsionaalsuse kasutamine. Dokumentatsiooni hindamisel ei oma tähtsust, et Hankija proovitööde testimisel masina nr 2 testitulemusi ei arvestanud – proovitöö dokumentatsioon peab Hankija poolt testrakenduse käivitamiseks ja kasutamiseks ette nähtud nõuete täitmiseks olema piisav ja täielik. Sh peab juhendmaterjal olema piisav ja täielik, kui rakendusi käivitatakse pilveseadme kaudu ning selliselt, et rakendus ja testid käivitatakse erinevates masinates. 5.15.2. Hindamismetoodika kirjelduse kohaselt dokumenteerimise kriteeriumis eeldab maksimumpunktide (20 punkti) andmine mh, et paigaldus- ja seadistusjuhendid on loogilise ülesehitusega ja lihtsalt mõistetavad ning et juhendite järgi õnnestub kõikide komponentide paigaldamine ja kõikide funktsionaalsuste testimine. Hindamismetoodika kirjelduse kohaselt ei anta proovitöö dokumenteerimisele punkte (s.o antakse 0 punkti), kui dokumentatsiooni järgides ei ole võimalik komponentide paigaldus või funktsionaalsuse kasutamine. Kuivõrd Kolmanda isiku proovitöö paigaldus- ja kasutusjuhendi kohaselt ei olnud võimalik testrakendust kõigil ette nähtud tingimustel käivitada, ei ole tegemist ebaolulise puudusega vaid selgelt puudusega, mis takistas testrakenduse käivitamist ja testimist. Seega on Kolmanda isiku pakkumusele on proovitöö dokumentatsiooni kriteeriumis ebaõigesti antud 20 punkti. Vaidlustaja pakkumuse hindamine 5.16. Vaidlustaja pakkumust on ebaõigesti hinnatud, vähendades testide mõõtetulemuste (kiiruse) kriteeriumis Vaidlustaja proovitööle antavaid punkte. Hankija on jätnud Vaidlustaja pakkumusele proovitöö testide mõõtetulemuste (kiiruse) hindamiskriteeriumis ebaõigesti 3 punkti andmata, andes 30 punkti asemel 27 punkti. Kuna Kolmanda isiku pakkumuse puhul ei saa proovitöö testide mõõtmistulemusi arvestada ning pakkumusele tuleb vastavas osas anda 0 punkti. „Hindamismetoodika kirjelduse“ p-i 3.8 kriteeriumi 4 kohaselt jagatakse testide mõõtetulemuste (kiiruse) kriteeriumis punkte lähtuvalt pingereast, s.o esimene saab maksimumpunktid ning iga järgmine pakkuja 10% vähem. Kolmanda isiku pakkumuse mittevastavana tagasi lükkamine, samuti Kolmanda isiku proovitöö mõõtmistulemuste arvesse võtmata jätmine ja tema pakkumusele vastavas kriteeriumis punktide andmata jätmine toob ühtlasi kaasa selle, et maksimaalsed punktid (30 punkti) tuleb vastavas kriteeriumis anda Vaidlustaja pakkumusele kui algselt Kolmanda isiku järel II kohal olnud pakkumusele. 5.17. Vaidlustaja pakkumust on ebaõigesti hinnatud, vähendades funktsionaalsuse kriteeriumis Vaidlustaja proovitööle antavaid punkte. Hankija on ebaõigesti andnud 30 punkti asemel 10 punkti. Hankija on valesti leidnud, et Vaidlustaja proovitöö funktsionaalsuses esineb kaks puudust. Vaidlustaja proovitöö funktsionaalsuses puudusi ei esine, mistõttu tuleb Vaidlustaja proovitööle anda maksimumpunktid (30 punkti). 5.17.1. Vaidlustaja proovitöös ei esine Hankija poolt välja toodud puudust nr 1. Vaidlustaja proovitöö hindamise kokkuvõtte kohaselt esineb Hankija hinnangul proovitöös puudus kuludokumendi summa kuvamisel [Vaidlustaja ärisaladus]. Nõue: Nõuded, alamjaotis „Arendustöö „Kuludokumentide kuvamine, valimine ja seisundite
9 (40)
muutmine“ Abikõlblik summa - Kuvatakse kuludokumendi abikõlblik summa numbrina, täpsusega kaks kohta peale koma. Tegevused valitud ridadega • Valitud ridadega peab saama teostada korraga abikõlbliku summa arvutamise toiminguid. Abikõlbliku summa arvutamisel küsitakse kasutajalt % mis osas valitud read on abikõlblikud ning selle abil arvutatakse igale reale dokumendi kogusumma – s.t. sendi täpsusega abikõlblik summa. [Vaidlustaja ärisaladus] Seega on Hankija Vaidlustaja proovitööd ebaõigesti hinnanud ning hindamismetoodika kohaselt tuleb kõnealuse puuduse puudumise tõttu lisada Vaidlustaja proovitöö punktidele 10 punkti. 5.17.2. Vaidlustaja proovitöös ei esine puudust nr 2. Vaidlustaja proovitöö hindamise kokkuvõtte kohaselt leiab Hankija, et kasutajaliideses ei ole võimalik teostada etteantud kohast kõikide järgnevate ridade valikut. Dialoogiaknas puudub valik „kõik read“. Hankija järeldus on ebaõige. Nõue: Nõuded, alamjaotis „Arendustöö „Kuludokumentide kuvamine, valimine ja seisundite muutmine“ Valiku tegemine: 1. Vali etteantud kohast alates „10, 20, 50, 100, 1 000, 10 000” rida või „kõik read“; Hankija on teabevahetuses andnud vastavale nõudele selgituse, mille kohaselt valik „kõik read“ tähendab kõikide kuludokumentide ridade valimise võimalust kogu tabeli ulatuses. 5.17.3. Kuna Hankija selgitas teabevahetuses5 , et “vali kõik read” puhul tuleb lähtuda variandist a) ehk peab valima kõik read, mitte mingist kindlast kohast edasi, siis on vastav funktsionaalsus Vaidlustaja proovitöös nõuetekohaselt realiseeritud [Vaidlustaja ärisaladus]. Eeltoodust nähtuvalt on Vaidlustaja proovitöö funktsionaalsus realiseeritud vastavuses Hankija tingimusega (sh selle kohta antud selgitusega) ning puudust ei esine. Seega on Hankija Vaidlustaja proovitööd ka vastavas osas ebaõigesti hinnanud ning Vaidlustaja proovitöö punktidele tuleb lisada 10 punkti. 5.17.4. Eeltoodust ilmneb, et Vaidlustaja pakkumusele tuleb anda proovitöö funktsionaalsuse kriteeriumis täiendavalt 20 punkti ehk kokku maksimumpunktid (30 punkti). 5.18. Hankija õiguspärase tegevuse korral: 1) tulnuks Kolmanda isiku pakkumus mittevastavana tagasi lükata. Pakkumuse vastavuse ja selle hindamise korral ei saa hindamiskriteeriumide õiguspärasel rakendamisel anda Kolmanda isiku pakkumusele proovitöö kriteeriumis rohkem kui 50 punkti (so 30 väärtuspunkti); 2) Vaidlustaja pakkumusele tuleb hindamiskriteeriumide õiguspärase rakendamise korral anda proovitöö kriteeriumis maksimaalsed 100 punkti (s.o 60 väärtuspunkti) ning seega ka kriteeriumide kogumis maksimaalsed 100 väärtuspunkti (40 + 60); 3) majanduslikult soodsaim on seega 100 väärtuspunktiga Vaidlustaja pakkumus ning Kolmanda isiku pakkumuse edukaks tunnistamise otsus tuleb õigusvastasuse tõttu kehtetuks tunnistada. 5.19. Lähtudes Tallinna Ringkonnakohtu otsuse 3-18-657 p-st 13, milles kohus leidis, et kuigi pakkumuse vastavuse ja pakkuja kvalifikatsiooni kontrollid on põhimõtteliselt teineteisest lahutatavad ning võivad toimuda erinevatel aegadel ja erinevas järjekorras (vt RHS § 52 lg-d 2 ja 3), on õigusselguse huvides põhjendatud lähenemine, et kui kehtetuks tunnistatakse juba üks hankija otsus, mille tagajärjel ei saaks asjaomane pakkuja / pakkumus enam hankemenetluses osaleda, tunnistatakse ühtlasi kehtetuks ka sellele ajaliselt järgnevad hankija otsused vastava pakkuja või pakkumuse kohta. Eeltoodust tulenevalt tuleb otsuste etapiviisilisusest lähtuvalt kehtetuks tunnistada ka hankija järjestikused või edasised otsused Kolmanda isiku kõrvaldamata jätmise ja kvalifitseerimise kohta. 5.20. 20.01.2025. a esitas Vaidlustaja täiendavad seisukohad. 5.20.1. Hankija ja Kolmanda isiku vastuväited vaidlustusele on ebaõiged. RHAD-is on
5 Vt riigihangete register, sõnumi ID: 880623.
10 (40)
sätestatud vastavustingimus, mis tuli pakkumuses täita. Kolmanda isiku pakkumus ei vasta RHAD-is esitatud tingimustele ja tuleks RHS § 114 lg 2 alusel tagasi lükata. 5.20.2. Hankija on sätestanud vastavustingimusena proovitöö esitamise (Vastavustingimuste p 5): Pakkuja peab esitama dokumendis „Nõuded proovitöö teostamiseks“ toodud nõuetele vastava ja hindamisele kuuluva proovitöö lähtekoodi koos paigaldus- ja kasutusjuhendiga. Vaidlustaja ei nõustu Hankija seisukohaga, et Vastavustingimuste p 5 sätestas ainult nõude proovitöö lähtekoodi koos paigalduse-ja kasutusjuhendiga esitamiseks. Hankija käsitlusest nähtub, et pakkumuse võib vastavaks tunnistada, kui pakkuja on esitanud suvalised või isegi tühjad failid pealkirjaga „Proovitöö lähtekood“ ja „Proovitöö paigaldus- ja kasutusjuhend“. Selline lähenemine ei lähtu RHAD-ist ning muudab vastavustingimuse sisutühjaks. 5.20.3. Hankija on vastuses vaidlustusele seisukohal, et Kolmas isik esitas nõuetekohase paigaldus-ja kasutusjuhendi, tuues välja, mida need dokumendid muuhulgas sisaldavad. Sellega nähtub ka Hankija enda seisukohast, et nõue oli ikkagi ka dokumentide sisule ja tegemist ei olnud pelgalt formaalse dokumendi esitamise nõudega. Vastavustingimuste p-i 5 tuleb käsitleda terviklikult, mistõttu peavad nii pakkuja esitatud proovitöö lähtekood kui ka paigaldus- ja kasutusjuhend vastama Nõuetes toodud nõuetele. 5.20.4. Lähtekood (kõnekeeles kood) on programmeerimiskeeles kirjutatud tekst, mis kirjeldab arvutile antavaid käske. Seejuures proovitöö lähtekood viitab koodile, mida palutakse pakkujal kirjutada või lahendada, et hinnata pakkuja oskusi ja sobivust konkreetsele hankeesemele. Seega testrakendus, mis on proovitöö lähtekoodi osa, pidi vastama ka Nõuetes sätestatud tingimustele, et Hankijal oleks üldse midagi hinnata. Samuti nähtub viidatud vastavustingimusest, et ka proovitöö kasutus- ja paigaldusjuhend pidi vastama Nõuetes sätestatud tingimustele, et Hankija saaks seda hinnata. 5.20.5. Vastavustingimus peab olema üheselt mõistetav. Hanketingimusi tuleb tõlgendada mitte ainult Hankija arusaamast lähtuvalt, vaid ka pakkujate arusaama arvesse võttes. Vaatamata sellele, et Vastavustingimuste p 5 on tihedalt seotud hindamise kriteeriumitega ja esitatava dokumendi abil pidi Hankija läbi viima pakkumuste hindamise, leiab Vaidlustaja, et vastavuse kontroll pidi antud juhul sisaldama vähemalt kontrolli selle üle, kas kõik nõutavad osised pakkumuse hindamise läbi viimiseks on pakkumuses esitatud (nõutava info olemasolu kontroll - on / ei ole). 5.20.6. Vaidlustaja poolt esile toodud proovitööle seatud nõuded, millele Kolmanda isiku töö ei vasta, on vastavustingimused, kuivõrd need seavadki nõuded proovitöö lähtekoodile ja selle paigaldus- ja kasutusjuhendile. Vaidlustaja hinnangul on Kolmanda isiku pakkumus sisulise puudusega – Vaidlustaja tõendid tõendavad mittevastavust. Eeltoodust lähtuvalt ei ole Hankija ja Kolmanda isiku käsitlus vastavustingimustest õige ning ühtlasi on Kolmanda isiku taotlus vaidlustuse läbi vaatamata jätmiseks ebaõige ning tuleb jätta rahuldamata. 5.20.7. Hankija ja Kolmas isik on oma vastustes vastavustingimustest n-ö üle libisenud ja leidnud, et küsimus saab olla vaid väärtuspunktide jagamises (hindamises). Need seisukohad on põhjendamatud. 5.20.8. Vaidlustaja on esile toonud vaidlustuse aluseks olevad asjaolud ja selged nõuded, taotledes nii Kolmanda isiku pakkumuse vastavaks kui ka edukaks tunnistamise otsuste kehtetuks tunnistamist. Seejuures on alternatiivsete nõuete esitamine lubatav ning Vaidlustaja on üheselt mõistetavalt taotlenud, et kui Kolmanda isiku proovitöö puhul esile toodud rikkumised ei ole käsitletavad vastavustingimustele mittevastavusena, kontrollitaks vastavaid rikkumisi Kolmanda isiku proovitöö hindamise aspektist. 5.20.9. Kuivõrd Vaidlustaja on vaidlustanud nii Kolmanda isiku pakkumuse vastavuse kui ka alternatiivselt hindamise, tuleb vaidlustuskomisjonil hinnata, kas Kolmanda isiku proovitöös esinevad rikkumisi tuleb käsitleda pakkumuse vastavuse või hindamise aspektist. Samuti on vaidlustuskomisjonil hindamise kontrolli raames pädevus hinnata, kas Hankija on Kolmanda isiku töös esile toodud asjaolusid asjakohase hindamiskriteeriumi raames arvestanud ja õiguspäraselt väärtuspunkte jaganud (sõltumata sellest, kas Vaidlustaja on konkreetsele hindamiskriteeriumile õigusliku alusena viidanud või mitte).
11 (40)
5.20.10. Vaidluse all olevate nõuete puhul on tegemist vastavustingimustega, mille täitmata jätmine toob kaasa pakkumuse mittevastavuse. Seega tuleb vaidlustuse lahendamisel hinnata, kas Hankija on Kolmanda isiku pakkumuse vastavust kontrollinud õiguspäraselt või on jätnud mittevastavused õigusvastaselt tähelepanuta. Kolmanda isiku pakkumuse vastavaks tunnistamise otsus on õigusvastane ja tuleb kehtetuks tunnistada. Asjas esitatud tõendid on piisavad selleks, et veenduda Kolmanda isiku proovitöö lähtekoodi (testrakenduse) ning selle paigaldus- ja kasutusjuhendi mittevastavuses Nõuetele. 5.20.11. Testrakenduse mittevastavus nr 1 (ridade valimine). Kolmanda isiku proovitöö testrakendus ei arvesta konkreetsete ridade selekteerimisel, et tavakasutaja ei näe ridadel olevaid andmeid ilma vastavaid ridu nägemata (s.o vastavatele ridadele liikumata) ning et Kolmanda isiku testrakendus valib ridasid nö pimesi, andmeid nägemata. Kuna testrakendus pidi emuleerima tavakasutaja käitumist ning teha ei tohtinud toiminguid, mille jaoks tavakasutajal puuduvad andmed, on Kolmanda isiku testrakendus Nõuetes toodud vastavate tingimustega vastuolus. Vajalike toimingute tegemata jätmise tõttu ei ole vastavalt arvestatud ka toimingute tegemise ajaga ning automaattesti mõõtetulemus ei ole adekvaatne. Kuivõrd testrakendus on mõistetavalt proovitöö lähtekoodi osa, siis on Nõuetes testrakendusele sätestatud nõuete rikkumine kvalifitseeritav vastavustingimuse rikkumisena. Hankija ja Kolmanda isiku väited, et reale liikumine pole nõutav, on ebaõiged. 5.20.11.1. Konkreetsete ridadega toimingute tegemiseks peab tavakasutaja real asuvaid andmeid nägema ja selleks vajalikud toimingud tegema. Kui tavakasutaja teeb toiminguid reaalsete andmetega, siis ridadega toimingute tegemisel tuleb tavakasutajal veenduda nii selles, et selline rida on üldse olemas, kui ka selles, millised on sellel real asuvad andmed. Seejuures tuleb arvestada ka sellega, et ridade seisund võib muutuda (ridadel ei ole unikaalseid identifikaatoreid, millega nende sisu siduda). Seetõttu ei ole tegemist masinliku toiminguga ning tavakasutaja ei saa olla kindel, mis ridadel on ja neid peab nägema. Selleks peab aga liikuma konkreetsele reale. Vastavat kinnitab ka automaattestimise asjatundja ning Seleniumi poolt tunnustatud ekspert A.S. oma arvamuses. Asjatundja on oma vastuses 1 selgitanud, et tavapärases olukorras peab kasutaja selleks kas lehte alla kerima (scrollima) või pagineerimise korral liikuma õigele lehele, leidma vajaliku rea ja seejärel selle selekteerima. Hankija ei ole selgitanud, kuidas tavakasutaja saaks struktuurifondi rahaliste vahenditega seotud toimingute tegemiseks konkreetseid ridu valida, kui ta nende sisu ei näe, ning kuidas sellisel juhul oleks tagatud konkreetsete ridadega toimingute tegemise adekvaatsus (abikõlblike summade määramine jm). 5.20.11.2. Kolmanda isiku väide, et konkreetsete ridadega toimingute tegemisel tuleb lähtuda samadest põhimõtetest nagu Nõuetes põhirakenduse funktsionaalsusele ette nähtud valikus Vali etteantud kohast alates „10, 20, 50, 100, 1000, 10000) rida või „kõik read“, ei ole asjakohane. A.S.-i asjatundja arvamus kinnitab, et näiteks automaattestimise testloo nr 6 puhul (milles kasutaja peab valima (korraga) 100 esimest rida), ei pea liikuma kõikidele ridadele ega nägema nendel asuvaid andmeid, sest vastavalt nõudele peab olema realiseeritud funktsionaalsus, mille kohaselt peab olema võimalus etteantud kohast (realt) valida „dropdowni“ kasutades 10, 20, 50, 100, 1 000, 10 000 järgnevat rida korraga - ehk piisab, kui avada esimeselt realt vastav „dropdown“ ning teha valik 100 vm nõutud arvu ridade korraga valimiseks. Seega on Hankija näinud selliseks üldise andmehulga korraga valimiseks ette võimaluse teha toiminguid lihtsustatult ehk ilma vastavaid andmeid nägemata ja valideerimata. Kokkuvõtlikult on asjatundja A.S. asunud seisukohale, et konkreetsete ridadega toimingute tegemiseks (nt testlood 8 ja 21) ja nende ridade selekteerimiseks on vajalik eraldi sammuna liikuda vastavale reale. 5.20.11.3. Kolmanda isiku testrakendus ei arvesta vajalike sammudega. Nii Hankija kui Kolmanda isiku selgitused kinnitavad sisuliselt, et Kolmanda isiku rakendus eeltoodud toimingutega (vajalike nö alamsammudega) ei arvesta. Seda kinnitab nii Kolmanda isiku seisukoht, et kui testloos endas ei olnud reale liikumist ette nähtud, siis ei olnudki nõutav ridadele liikumine (et andmeid näha), kui ka Hankija märkus, et Kolmas isik lahendas antud tegevuse oma proovitöös „teisiti“. Veelgi enam – Hankija esitatud testvideol on enne Vaidlustaja proovitöö testimist arvuti ekraanil (ajahetkel 0:03:14) näha muu pakkuja proovitöö. Kuvatõmmiselt nähtuvad rakenduse andmed vastavad üheselt Kolmanda isiku testrakenduse logide andmetele, kuivõrd iga pakkuja proovitöös kasutatavad „nuppude“ nimetused on unikaalsed. Nii nähtub Kolmanda isiku logide ja kasutaja vaate kõrvutamisel, et Kolmanda isiku logides kajastuvad täpselt samad unikaalsed „nuppude“ nimetused nagu
12 (40)
kuvatõmmisel oleval kasutaja vaatel: „Liigu reale“, „Lisa valikusse“, Eemalda valikust“, Eemalda kogu valik“ jne. Samuti kinnitavad 25.11.2024 toimunud 2. testide läbiviimise kellaajad, et Kolmanda isiku testrakendust testiti vahetult enne Vaidlustaja testrakendust. Seega on tegemist Kolmanda isiku proovitöö kuvatõmmisega. 5.20.11.4. Kolmanda isiku proovitöö kuvatõmmisest nähtub, et Kolmanda isiku rakenduses on tekitatud eraldi väli, millega saab valida konkreetsed read (ridade numbrite järgi). See kinnitab, et rakenduses on tehtud n-ö häkk ehk ridade valimine toimub testi kiiremaks läbiviimiseks automaatselt (pimesi), mitte aga vastavatele ridadele liikumisega (nii nagu tavakasutaja teeks, et ridade olemasolus veenduda ja andmeid näha). Samuti kinnitab Kolmanda isiku testrakenduse logifail (ja ka Hankija poolt täiendavalt esitatud logifailid, sh vaidlustusmenetluse ajal läbi viidud testimise konsoolilogi fail „FAIL3_nortal_full-text_log_console.txt“), et sealt ei nähtu nt testlugude 8 ja 21 puhul vastavatele ridadele liikumise toiminguid. Asjatundja A.S. on esile toonud et testloo (nõude) 8 puhul on seega selgelt näha, et sisestatakse sisestusväljale väärtus 126, 26535, 41223-41250, 83610-83620, 91425, 91428, 91431 ja seejärel klikitakse nuppu “Lisa valikusse”. Ehk korraga valitakse kõik read, liikumata vastavatele ridadele ja nägemata ridadel asuvaid andmeid. Tavakasutaja aga selliselt (pimesi) andmetega toiminguid teha ei saa. Kolmanda isiku lahendus ei vasta testrakendusele seatud tavakasutaja emuleerimisega seotud tingimustele ning manipuleerib ühtlasi automaattestimise kiirust. Sama kinnitab ka A.S.-i arvamus. 5.20.11.5. Kolmanda isiku testrakenduse vastuolu Riigihankes seatud nõuetega tuleneb juba ainuüksi eeltoodust – tavakasutajal puuduvad andmed konkreetsete ridadega toimingute tegemiseks, kui tavakasutaja ei näe ridadel olevaid andmeid. Vaidlustaja jääb ka selle juurde, et pagineerimine oli nõutav. Nõue, et tavakasutaja teeb andmetega toiminguid pagineerimise ehk lehekülgedele liikumise kaudu, tuleneb nii vastavate testlugude (nt testlugude 8 ja 21), mis nõuavad üksiku või mitme rea valimist või valiku eemaldamist sisust, kui ka RHAD-ist. Hankija vastupidine seisukoht on ebaõige. Vaidlustaja osutab, et ka teiste testlugude puhul pole nõuetes toodud alamsamme, mis vastavate toimingute tegemiseks vaja teha on (nt konkreetsele reale liikumist), vaid need tulenevadki testloo olemusest. Nii näiteks teeb Kolmanda isiku testrakendus ka testloo 24 puhul 3 erinevat alamsammu ilma, et nõuetes oleks eraldi kirjas, milliseid alamsamme täpselt teha. Küll aga osutab Vaidlustaja, et RHAD-i osaks on „Nõuded_arenduse_teostamiseks“ ning selles on dokumendis „RFN 2.8.0“ selgesõnaline nõue 104: Loetelu kuvamisel tuleb kasutada paginatsiooni, kus ühel lehel kuvatakse korraga kokkulepitud arv kirjeid. Kokkuleppel tellijaga võib kasutada ka „infinite scrolling“ lahendust. Seega ei tunne Hankija RHAD-i, väites , et pagineerimist pole RHAD-is sätestatud. Seega kinnitab ka vastav nõue, et Riigihankes tuleb proovitöö arendamisel arvestada pagineerimisega. Kolmanda isiku proovitöö sellest ei lähtu. 5.20.11.6. Hankija on viidanud, et Kolmanda isiku testrakendus võimaldab korraga kuvada 500 rida. Vaidlustaja osutab, et automaattestimise toimingutes toodud testlugudest lähtuvalt (sh testloost 8 nähtuvalt) pidi testrakendus opereerima enam kui 90000 reaga. Seega on Hankija viide 500 rea kuvamise võimekusele asjakohatu ning on ilmne, et nõutud arvu ridu ei saaks tavakastaja, isegi juhul, kui neid oleks tehniliselt võimalik korraga kuvada nii, et brauser vastu peaks, eristada ega nendega töötada. 5.20.12. Testrakenduse mittevastavus nr 2 (toimingu õnnestumise kontrollimine). 5.20.12.1. Vaidlustaja on vaidlustuses esile toonud, et Kolmanda isiku testrakenduse logist ega muudest andmetest ei nähtu, et testrakendus viiks läbi toimingu õnnestumise kontrolli (mille tulemused tuli kajastada andmebaasis), kuigi see oli Nõuete kohaselt nõutav. Seega, kuna testrakendus proovitöö lähtekoodi osana vastavat nõuet ei täida, on ka vastava nõude rikkumine kvalifitseeritav vastavustingimuse rikkumisena. Hankija ja Kolmanda isiku vastuväited, nagu kinnitaks Kolmanda isiku logi veerus D toodud väärtus TRUE, testrakenduse poolt kontrolli läbiviimist ja selle andmebaasis kajastamist, on ebaõiged. 5.20.12.2. Kolmanda isiku käsitlus tingimuse sisust on meelevaldne, kuid ei mõjuta järeldust, et tingimus ei ole täidetud. Kolmanda isiku seisukohad, et vajalik oli pelgalt toimingute tulemuste andmebaasi kirjutamine, mitte automaattesti toimingute õnnestumise kontrollimine; samuti, et toimingute tulemus ei pidanud sisaldama teavet toimingu
13 (40)
ebaõnnestumise kohta, on ebaõiged. Need ei mõjuta siiski järeldust, et Kolmanda isiku testrakendus kõnealusele nõudele ei vasta. Ühegi automaattesti toimingu tulemust ei saa kajastada (sh andmebaasis salvestada) ilma, et toimingu tulemus (sh kas toiming õnnestus või mitte) on kindlaks tehtud. Samuti oleks tingimus sisutühi, kui andmebaasi võiks kirjutada mis tahes andmed, mitte toimingu läbiviimise tulemused. Seega eeldas toimingu tulemuse andmebaasis kajastamine, et toimingu õnnestumise kontroll on läbi viidud – muidu ei oleks ka võimalik tulemust andmebaasis kajastada. Samuti ei ole Hankija oma selgituse kaudu seatud tingimust muutnud, vaid on üksnes täpsustanud, mida toimingute tulemuste all tuleb silmas pidada ning ka toimingu ebaõnnestumise põhjuste kajastamine on loogiline ja eesmägipärane osa toimingu õnnestumise tulemustest. Kolmanda isiku käsitlus on vastuolus ka Hankija seisukohaga, mille kohaselt tuli toimingu õnnestumise kontrolli tulemused andmebaasis kajastada. Isegi, kui eelnev kõrvale jätta, ei mõjuta see järeldust, et Kolmanda isiku proovitöö kõnealusele nõudele ei vasta, kuna ei andmebaasi logi ega ka muude andmete põhjal ei ole võimalik veenduda, et Kolmanda isiku testrakendus oleks toimingu kontrolli läbi viinud ja need andmebaasi kirjutanud. 5.20.12.3. Andmebaasi logist ei nähtu, mis toimingu väärtus on TRUE. Hankija on üksnes alusetult eeldanud, et tegemist on toimingu õnnestumise kontrolli tulemustega. Hankija ei ole selgitanud ega esitanud ühtegi tõendit, millel põhines eeldus, et TRUE tähendab toimingu õnnestumise kontrolli, ja kuidas ta veendus, et tema eeldus on õige. Nimelt, Kolmanda isiku proovitöö logist ei selgu ega ole seega kontrollitav, mida tähendab väärtus TRUE ja mis on selle toimingu sisu. Lihtsustatult võib veeru D väärtus TRUE tähendada nt seda, et toimingu aeg sai andmebaasi kirja või isegi seda, et toiming ei õnnestunud. 5.20.12.4. Vaidlustusmenetluse ajal teostatud testiga ei saa arvestada, kuid ka see ei mõjuta järeldust, et Hankija ei saanud väärtuse TRUE tähendust kindlaks teha. 5.20.12.5. Ka Kolmanda isiku konsooli logides ei ole näha kontrolli, et toiming õnnestus. Selle toimingu kontrollimiseks peaks testrakendus pöörduma testitava rakenduse andmebaasi, kuid RHAD-i nõuete põhjal on keelatud testrakendusel pöörduda otse testitava rakenduse andmebaasi poole. Kasutaja tegevused nõuete järgi on järgmised: Kasutaja nõudes 8 valib read 126, 26535, 41223-41250, 83610-83620,91425, 91428, 91431 ning seejärel nõue 9 ütleb, et nende ridade Teostada toiming valitud ridade seisundi muutmiseks “Täiendamiseks saadetud”. Kolmanda isiku konsooli logi põhjal on näha, et valitud on read vastavalt nõudele 8, ja rakendus logide põhjal vajutab real „uus seisund“, milleks valib seisundi „täiendav kontroll“. Seejärel vajutab nuppu „muuda valitud ridade seisundeid“. Edasine samm logis näitab, et liigutakse täitma nõuet nr 11 „Eemaldada kõigi ridade valikud“, kuid nõue 9 ei ole lõpuni viidud, sest ei ole kontrollitud, kas seisund muutus. Seega ei saa ka konsooli logide põhjal veenduda, et Kolmanda isiku testrakendus viiks toimingu õnnestumise kontrolli läbi. 5.20.13. Testrakenduse mittevastavus nr 4 (rakenduse sätete kajastamine). 5.20.13.1. Vaidlustaja on vaidlustuses esile toonud, et kuigi proovitööle esitatud nõuete (nõue nr 10) kohaselt pidi konsooli (ehk käsureale) olema kirjutatud ka testrakenduse sees toimuv info, sh sätted, siis Kolmanda isiku testrakenduse puhul oli vastav nõue täitmata. Taaskord – kuna testrakendus proovitöö lähtekoodi osana vastavat nõuet ei täida, on ka vastava nõude rikkumine õiguslikult kvalifitseeritav vastavustingimuse rikkumisena. Hankija ja Kolmanda isiku vastuväited on ebaõiged. 5.20.13.2. Kolmanda isiku testrakenduse puhul on rakenduse sätted konsoolis kajastamata. Hankija on üldsõnaliselt väitnud, et Kolmanda isiku testrakendus kuvas konsooli logi kohaselt nii URL parameetreid kui ka rakenduse sätteid. Milliseid sätteid (peale URL parameetri) konsooli väidetavalt kirjutati, on Hankija jätnud nimetamata ilmselt seetõttu, et nõutavate sätete konsoolis kajastamise kohta andmed puuduvad. Vaidlustaja on osutanud, et Nõuete p-i 13 kohaselt on rakenduse nõutavateks säteteks vähemalt „headless“ ja DEBUG. 13. Käsureal peab saama hallata rakenduse järgmiseid sätteid: d. ’ - - headless’ võimalus lülitada välja ja sisse Chrome UI (vaikimisi Chrome UI väljas). e. võimalus käivitada rakendus DEBUG-režiimis (vaikimisi DEBUG väljas). Kolmanda isiku testrakenduse testimise kummalgi videol ei ole näha, et administraator üldse kontrolliks eeltoodud nõudeid 13 d) ja 13 e). Hankija esile toodud PILT7_docker_log_konsool.jpg rida 4 näitab ainult rakenduse URLi,
14 (40)
mille vastu testi jooksutatakse (ehk kus asub testitav põhirakendus), muid sätteid aga pole ka sellel pildil tuvastatavad. Kolmanda isiku testi logist “FAIL3_nortal_full_test_log_console” failis nähtub, et testrakendus ei ole loginud maha testrakenduse sätteid nagu „headless“. Vaidlustaja rõhutab, et seejuures ei ole mitte üheski teises Hankija esitatud logis „headless“ sätteid kajastatud – nende sätete konsooli kirjutamise kohta mis tahes andmed puuduvad. Kuigi alles vaidlustusmenetluses läbi viidud testimise tulemustega ei saanud Hankija vaidlustatud otsuste tegemisel arvestada, ei nähtu „headless“ sätteid ka 07.01.2025. a genereeritud docker-konsooli logist (vt „PILT7_docker_log_konsool.jpg“). Sh ei ole Hankija ka ise vaatamata oma üldsõnalisele väitele kinnitanud ega täpsustanud, millises konsoolis ja kus täpsemalt „headless“ sätted kajastatud on. Hankija ei saagi seda teha, sest „headless“ sätete andmeid mitte üheski esitatud logis ei ole. Seisukohale, et „headless“ sätete kohta puuduvad logides andmed, on asunud ka asjatundja A.S., kes on selgitanud ka seda, et kuigi Hankija esitatud „FAIL3_nortal_full_test_log_console.txt“ logis on olemas logitud sätte „-- disable-ui“, ei ole sellel mingit seost testrakenduse sättega „headless“. Antud juhul on tegemist Selenium Router’i sättega, mis puudutab Disable the Grid UI’id. Juhul, kui Hankija peab seda „headless“ sätteks, on Hankija eksinud. Vastav Selenium Router’i jäetud säte ei täida ülal viidatud nõuet 13 d) (- - headless’ võimalus lülitada välja ja sisse Chrome UI (vaikimisi Chrome UI väljas)). Seega ei ole Hankija saanud õiguspäraselt järeldada, et Kolmanda isiku testrakendus on tingimusele vastav. 5.20.13.3. Kolmanda isiku seisukohad kinnitavad nõuetele mittevastavust. Kolmas isik on osutanud, et tema hinnangul lubas Hankija selgitus (ID 876080) tal rakenduse sätteid kajastada DEBUG ja TRACE logitasemel. Vaidlustaja hinnangul kinnitab juba ainuüksi see, et rakenduse sätteid nõuetekohaselt ehk konsooli kirjutatud ei ole - rakenduse sätteid „headless“ ei ole mitte üheski logis kajastatud. Eeltoodust taganemata on ebaõige Kolmanda isiku väide, nagu lubaks Hankija selgitus (ID 876080) kajastada rakenduse sätteid Kolmanda isiku kasutatud viisil. Esiteks ei nähtu eelviidatud Hankija selgitusest, et Hankija oleks selle selgitusega reguleerinud rakenduse sätete kajastamist ja selgitanud, et rakenduse sätteid ei peagi tegelikult konsooli kirjutama (nõuet nr 10). Seega on Kolmanda isiku viide asjasse puutumatu. Rakenduse sätete konsooli kirjutamise nõude puudumise väide on vastuolus ka Hankija seisukohtadega. Teiseks oleks ka juhul, kui vastav selgitus oleks antud kõnealuse nõude nr 10 kohta ja sellest tuleneks, et rakenduse sätteid ei pea konsooli kirjutama (mida kumbagi selgitusest ei nähtu), nõudega otseselt vastuolus – tegemist oleks vastavustingimuse lubamatu muutmisega, mistõttu tuleks selgitus jätta kõrvale. Nagu Kolmas isik on oma vastuses läbivalt osutanud, ei saa arvestada Hankija selgitustega, mis RHAD-i tingimust muudavad. Kuivõrd üheski Kolmanda isiku testrakenduse konsoolilogis „headless“ sätteid kajastatud ei ole, ei muutu järeldus, et Hankija ei ole saanud vajalike sätete olemasolus Kolmanda isiku proovitöö testrakenduse puhul veenduda. 5.20.14. Testrakenduse mittevastavus nr 5 (logis mõõtmistulemuste kajastamine, logiandmete vastuolus summaarse ajakuluga). 5.20.14.1. Vaidlustaja on vaidlustuses esile toonud, et kuigi Kolmanda isiku automaattesti mõõtmistulemuseks (ajakuluks) loeti 16572 millisekundit, on logist nähtuvalt toimingud toimunud 3 minuti jooksul. Samuti on logis deklareeritud koondtulemus „Kõik sammud kokku“ 11826 millisekundit, kuigi peaks olema kõiki samme arvestades olema 83 millisekundit suurem. Seega ei ole logi mõõtmistulemuste osas adekvaatne ega vastavuses Hankija tuvastatud mõõtmistulemustega, rikkudes Nõuete testrakenduse nõuet nr 10. Hankija ja Kolmanda isiku vastupidised väited ei ole õiged. 5.20.14.2. Logis vigade esinemine kinnitab iseenesest logi ebaadekvaatsust ning vastuolu mõõtmistulemustega. Hankija ja Kolmanda isiku vastused kinnitavad logiandmetes vea esinemist ja Vaidlustaja väidet, et logiandmed ei vasta arvesse läinud mõõtmistulemustele ning on seega ebaadekvaatsed. Selgitused, miks logiandmed on valed, andmete objektiivset ebaõigsust ei muuda. Seejuures selgub Hankija esitatud mõlema testi jooksutamise failist „FAIL4_molema_testi_logi.xlsx“, et ka teise masina testi logi on vigane, kuna ka seal ei vasta koondtulemus „Kõik sammud kokku“ sammude summaarsele ajakulule. Kui logifaili on mingid andmed saanud ekslikult „sattuda“, siis see ongi objektiivne asjaolu, et logi on ekslik. Ühtlasi järeldub sellest, kui mingid andmed saavad ekslikult logisse „sattuda“, et logidesse võis ka muid ebaõigeid andmeid sattuda või andmed võivad muul viisil olla ekslikud.
15 (40)
Logiandmed on seega ebausaldusväärsed ja Hankija ei võinud oma otsuste tegemisel logiandmeid usaldada ega oma otsuseid mõõtmistulemuste arvestamisel sellele rajada. Seejuures ei nähtu, kuidas Hankija veendus hindamisel logitulemuste adekvaatsuses, kui ta on nende kinnitamiseks esitanud logifaili, mille ebaõigsust ta ka ise tunnistab. 5.20.14.3. Hankija käitumine on ebajärjekindel ja vastuoluline. Hankija on erinevate mittevastavuste puhul väitnud ühelt poolt nii seda, et 2. masina testi ja selle andmeid tuleb arvestada kui ka samaaegselt seda, et 2. masina testi tulemused ei oma tähtsust, kuna Hankija nendega otsuste tegemisel ei arvestanud. 5.20.15. Testrakenduse mittevastavus nr 6 (rakenduse käivitamine). 5.20.15.1. Vaidlustaja on vaidlustuses esile toonud, et Kolmanda isiku testrakendus ei vastanud Nõuete rakenduste integratsioonitestide p-idele 4, 6, 9 ja 13, kuna testrakendust ei olnud võimalik ilma Hankija administraatori tehtud muudatusteta käsurealt käivitada (hallata) ega kasutada, sh selliselt, et rakendus ja testid käivitatakse erinevatest masinatest. Hankija ja Kolmanda isiku vastuväited on ebaõiged. 5.20.15.2. Testrakendus ei käivitunud ilma lähtekoodi käsurealt muutmata. Nii Hankija kui ka Kolmanda isiku seisukohtadest nähtub, et kuigi nad vaidlevad Kolmanda isiku testrakenduse mittevastavusele vastu, ei ole vaidluse all, et Kolmanda isiku testrakendust ei olnud võimalik teises testis (video „Nortal AS 2 masin – Copy.mp4“) ilma administraatori poolsete muudatusteta käivitada. Sealhulgas ei ole vaidluse all Vaidlustaja esile toodud asjaolud, et Hankija administraator pidi testrakenduse käivitamiseks ise muutma nii testrakenduse javakoodi kui ka tegema muudatusi seoses testrakenduse Docker-konteineriga (nö kokku ehitama). Selliste muudatuste tegemine on tuvastatav videost, mida kinnitab ka A.S.-i arvamus. Asjatundja on seejuures osutanud, et; „Nortal AS 2 masin – Copy.mp4“ ajahetkel 00:06:12 me näeme, et muudetud on faili „DokerFile“ – dokumendi muutmise kuupäev „Date modified“ näitab muutmise aega 22.11.2024 kell 14:26. Samuti administraator ütleb, et on muutnud java lähtekoodi (video2 ajahetk 00:06:10, ütleb fraasi Ma pidin muutma selleks veel Java faili, selleks et [---]), ja pildilt on nähtav, et on avatud TAB, mille sees on avatud fail nimega „TestConfig.java“. Java koodi faili muutmine ja DockerFile muutmine on lähtekoodi muutmine“. 5.20.15.3. Hankija on püüdnud mittevastavusest üle saada viitega kogenud isiku teadmisele, et konfiguratsiooni muutmine on peaaegu alati vajalik. Selline viide on asjakohatu ja eksitav, kuivõrd java-konsoolirakenduse ja Docker-konteineri puhul on tegemist testrakenduse lähtekoodiga (mitte pelgalt konfiguratsioonifailist). Vaidlustaja osutab, et tema poolt ülal viidatud nõude nr 4 kohaselt pidigi testrakenduseks olema java-konsoolirakendus, mille ühe jar-faili sees on kõik käivitamiseks vajalikud artefaktid ja sõltuvused, ning nõude nr 6 kohaselt pidi testrakendus töötama Docker-konteineris. Nõude nr 9 kohaselt pidi testrakendus olema käsureavõtmetega hallatav käsurealt. Seega kinnitab kõnealune test, et Kolmanda isiku testrakenduse lähtekood eelnimetatud nõuetele ei vastanud ning Hankija pidi mittevastavuse kõrvaldamiseks ja Kolmanda isiku testrakenduse käsurealt haldamiseks (käivitamiseks) ise Kolmanda isiku testrakenduse lähtekoodi muutma. Asjaolu, et Hankija väitel viis ta Kolmanda isiku testrakenduse teise testi läbi JAR-i dockeri konteinerist väljas ja seetõttu tulemust ei arvestanud, ei oma Kolmanda isiku pakkumuse vastavuse kontrollimise seisukohast tähtsust, kuivõrd teise testi pinnalt pidi Hankijal tekkima kahtlus testrakenduse vastavuses ning Hankija seda kahtlust ei kõrvaldanudki (so ei saanud veenduda Kolmanda isiku proovitöö lähtekoodi nõuetele vastavuses). 5.20.15.4. Testrakenduse sätteid ei saanud käsurealt hallata. Nagu Vaidlustaja on vaidlustuses esile toonud, ei täitnud Kolmanda isiku testrakendus ka nõuet, et rakenduse sätted („headless“ ja DEBUG) peavad olema käsurealt hallatavad (nõue nr 13). Hankija vastuväide, et Kolmanda isiku esitatud juhendis oli kirjeldatud, kuidas teste „headless“ ja DEBUG režiimis käivitada, ei ole asjakohane, kuna testvideod kinnitavad, et Kolmanda isiku testrakenduses ei olnud sätted käsurealt hallatavad ning Hankija ei ole vastavate sätete käsurealt haldamise nõude täitmist kontrollinud. Kolmanda isiku testrakenduses ei ole sätted käsurealt hallatavad. Seda kinnitab mh asjaolu, et Kolmanda isiku rakenduse sättes on „hardcoded“, mida näeb videos „Nortal AS 2 masin – Copy.mp4“ nr 2 ajaliselt 00:03:00. Hardcoded tähendab seda, kui midagi on programmi või seadme sisse otse sisse kirjutatud ja seda ei saa lihtsalt muuta ilma spetsiaalse oskuse või
16 (40)
tööriistadeta. Antud juhul peab muutma lähtekoodi. Nõue oli aga, et seda paameetrit saaks muuta administraator testrakenduse käivitamisel käsurealt. Seda, et Kolmanda isiku testrakenduse puhul ei olnud „headless“ sätted käsurealt hallatavad, kinnitab ka asjatundja A.S.. Nii on asjatundja selgitanud, et käsurealt ei olnud võimalik hallata järgmisi (nõudes 13 d) ja e)) toodud sätteid: - „headless“ (kasutajaliidese kuvamine), - võimalus käivitada rakendus DEBUG-režiimis (vaikimisi DEBUG väljas) - „debug level“. 5.20.15.5. Rakendus ja testid ei käivitunud kahest erinevast masinast. Hankija ega Kolmas isik pole vaidlustanud asjaolu, et ilma Hankija tehtud muudatusteta Kolmanda isiku testrakendus selliselt, et rakendus ja testid käivitatakse erinevates masinates (2. test), ei käivitunud. Hankija pidi testrakenduse käivitamiseks muutma selle lähtekoodi. Seega on Hankija nõue Kolmanda isiku testrakenduse puhul täitmata, so testrakenduse lähtekood ei vasta seatud nõuetele. 5.20.15.5.1. Rakenduse ja testide kahest erinevast masinast käivitamine oli Riigihankes nõutav. Kolmas isik on leidnud, et kuigi 2. testis tema testrakendus ilma Hankija tehtud muudatusteta ei käivitunud, on tema proovitöö siiski nõuetele vastav (kuna ta on seda ise katsetanud) ning samuti ei sätesta RHAD nõuet, et rakendus ja testid käivitatakse erinevatest masinatest. Kolmanda isiku seisukoht on ekslik. Väide, et Kolmas isik on ise oma rakenduse nõuetelevastavust testinud ja kõik töötas nõuetekohaselt, ei kinnita tema testrakenduse vastavust. Seda enam olukorras, kus Hankija läbi viidud 2. testis käivitamine selliselt ei õnnestunud. Ebaõige on ka seisukoht, et Riigihankes kõnealust nõuet ei esinenud. Lisaks Vaidlustaja poolt eelnevalt viidatud tingimustele tuleneb kahes masinas käivitamise nõue otseselt ka Nõuetes sätestatud nõudest Testid käivitatakse vähemalt kahes RmIT hallatavas seadmes, mille spetsifikatsioonid on toodud „Nõuded ja arhitektuur“ peatükis ning mis on samad kõigi pakkujate jaoks. Hankija antud selgitus (ID 876721) täpsustabki vastavat nõuet (so et rakendus ja testid käivitatakse erinevates masinates) ning tegemist ei ole RHAD-i tingimust muutva vaid täpsustava selgitusega. 5.20.15.5.2. Hankija ei ole kahes erinevas masinas käivitamise nõude täitmist nõuetekohaselt kontrollinud. Kolmanda isiku testrakenduse testimisel ei kontrollinud Hankija esimeses testis kahest seadmest käivitamise nõuet. Teine test („Nortal AS 2 masin – Copy.mp4“) test kinnitab aga, et eraldi masinatest Kolmanda isiku testrakendus ei käivitunud. Seda kinnitab ka A.S.-i arvamus. Seega isegi kui eeldada, et Hankija on õigesti jätnud teise masina testi kõrvale (kuna tegi selles muudatusi mida ei olnud Riigihankes nõutud), ei ole Hankija kahes masinas käivitamise nõude täitmist Kolmanda isiku pakkumuses puhul üldse kontrollinud ega saanud veenduda, et Kolmanda isiku testrakendus nõudele vastab. 5.20.15.5.3. Hankija viited Vaidlustaja testrakenduse kohta on asjakohatud. Käesoleva vaidluse esemeks on Kolmanda isiku pakkumuse, mitte Vaidlustaja pakkumuse nõuetele vastavus. Vaidlustaja testrakenduse kahest erinevast masinast testimise video kinnitab, et Vaidlustaja testrakendus käivitus nõuetekohaselt. Seega on Hankija väited ka sisuliselt valed. 5.20.16. Testrakenduse mittevastavus nr 7 (nõutava paigaldus- ja kasutusjuhendi puudumine). 5.20.16.1. Vaidlustaja on vaidlustuses esile toonud, et Kolmanda isiku testrakenduse paigaldus- ja kasutusjuhend ei vastanud Nõuetele, kuivõrd see oli puudulik. Hankija administraator on seejuures 2. testi läbiviimisel selgesõnaliselt esile toonud, et Kolmanda isiku dokumentatsioonis puuduvad testrakenduse võrguväliselt teisest masinast testimise kohta juhised. Samuti kinnitab juhiste puudulikkust asjaolu, et Hankijal ei õnnestunud Kolmanda isiku testrakendust paigaldus- ja kasutusjuhendis kohaselt käivitada ja Hankija pidi selleks omaalgatuslikult testrakendust muutma, sh selle lähtekoodis muudatusi tegema. Kuivõrd vastavustingimuste kohaselt pidi pakkuja esitama Nõuetele vastava paigaldus- ja kasutusjuhise, on tegemist vastavustingimusele mittevastavusega. Hankija ja Kolmanda isiku vastuväited on ebaõiged. Kuigi Kolmanda isiku väidete kohaselt on tema kasutus- ja paigaldusjuhend põhjalik ning selle järgi tegutsedes käivitamine õnnestub ning samuti väidab juhendi nõuetelevastavust üldsõnaliselt ka Hankija, on selge, et Hankija ei ole juhendi vastavust nõuetekohaselt kontrollinud. Hankija ei ole olukorras, kus Kolmanda isiku testrakendus 2. testis juhendit järgides ei käivitunud (ning administraator avaldas, et juhendis võrguväliselt teisest masinast testimise kohta juhised puuduvad), selgitanud, kuidas ta juhendi mittenõuetekohasust
17 (40)
kinnitavad asjaolud ümber lükkas ning veendus, et juhendis on testrakenduse käivitamiseks ja kasutamiseks nõutavad juhised ja sõltuvused kirjeldatud mh selleks, kui testid ja rakendus käivitatakse erinevatest masinatest. Seega on Hankija järeldus paigaldus- ja kasutusjuhendi nõuetele vastavuse kohta ebaõige. 5.20.17. Vaidlustaja on alternatiivselt vaidlustanud hindamistulemused. Juhul, kui vaidlustuskomisjoni hinnangul ei ole kõnealused rikkumised käsitletavad vastavustingimustele mittevastavustena, tuleb kontrollida, kas rikkumisi arvestades on Hankija Kolmanda isiku proovitöö osas pakkumuse hindamise kriteeriume õiguspäraselt rakendanud. Hankija ei ole hindamiskriteeriumide kohaldamisel vaidlustuses esile toodud rikkumistega arvestanud: 1) testrakenduse mittevastavustest nr 1, 2, 4 ja 5 järeldub kokkuvõtlikult, et automaattesti toimingud ei ole Kolmanda isiku proovitöös korrektselt realiseeritud, mistõttu ei ole toimingute tegemise aeg tuvastatav ning mõõtmistulemust ei saa arvestada. Seega hindamiskriteeriumide õiguspärasel kohaldamisel tuleb Kolmanda isiku proovitööle omistada vastavas kriteeriumis antud 30 punkti asemel 0 punkti. 2) testrakenduse mittevastavustest nr 6 ja 7 järeldub kokkuvõtlikult, et Kolmanda isiku juhenddokumentatsioon ei ole piisav, et nende kohaselt oleks õnnestunud kõigi komponentide paigaldamine või funktsionaalsuse kasutamine. Seega hindamiskriteeriumide õiguspärasel kohaldamisel tuleb Kolmanda isiku proovitööle omistada vastavas kriteeriumis antud 20 punkti asemel 0 punkti. 5.20.18. Vaidlustaja pakkumuse hindamisel on Hankija vähendanud ebaõigesti testide mõõtetulemuste (kiiruse) kriteeriumis Vaidlustaja proovitööle antavaid punkte: 1) Vaidlustaja on esile toonud Kolmanda isiku pakkumuse mittevastavuse, mistõttu ei saa see hindamises osaleda. Isegi kui saaks, on hindamiskriteeriume RHS § 117 lg 1 alusel ebaõigesti rakendatud, jättes Vaidlustaja pakkumusele 3 punkti andmata (30 asemel 27). Kolmanda isiku pakkumusele tuleb anda 0 punkti, mistõttu tuleb Vaidlustaja pakkumusele anda maksimaalsed punktid (30); 2)Vaidlustaja pakkumust on ebaõigesti hinnatud, vähendades õigusvastaselt funktsionaalsuse kriteeriumis antavaid punkte. Hankija on RHS § 117 lg 1 alusel ebaõigesti rakendanud hindamiskriteeriume, jättes vaidlustaja pakkumusele 20 punkti andmata (30 asemel 10). Vaidlustaja proovitöö funktsionaalsuses puudusi ei esine. 5.20.18.1. Vaidlustaja proovitöös ei esine puudust nr 1. [Vaidlustaja ärisaladus] Vaidlustaja leiab, et tegemist on mitmeti tõlgendatava tingimusega, mida saab ka pakkuja kasuks tõlgendada. See tingiks olukorra, et Vaidlustajal oli antud nõue põhirakenduse põhikuval nõuetekohaselt täidetud. Tingimuste mitmeti tõlgendatavuse korral ei saa Hankija tõlgendada Vaidlustaja pakkumuses esitatud andmeid teistsugustena, kui need on Vaidlustaja väitel esitatud (Riigikohtu 13.06.2013 otsuse 3-3-1-24-13 p-st 16 tulenevalt tuleb pakkujale üldjuhul anda võimalus selgitustega vea parandamiseks, kui pakkuja ei pidanud ette nägema, et Hankija tõlgendab tingimusi temast erinevalt). 5.20.18.2. Vaidlustaja proovitöös ei esine puudust nr 2. Hankija selgitas teabevahetuses, et valik „kõik read“ tähendab kõikide kuludokumentide ridade valimise võimalust kogu tabeli ulatuses. Vaidlustaja proovitöös on see funktsionaalsus realiseeritud „linnukesena“ kasutajaliidese tabeli päises, mis võimaldab valida kõik read kogu tabeli ulatuses. Hankija ei ole ette kirjutanud, et antud nõue peab olema täidetud ühest rippmenüüst. Vaidlustaja märgib, et Hankija selgitus 05.09.2025. a teabevahetuses oli, et „vali kõik read“ tähendab kõikide ridade valimist, mitte mingist kindlast kohast edasi (tõlgenduse, et kõik read tuleb valida etteantud kohast edasi, Hankija välistas). Sisuliselt on nõude „Vali etteantud kohast alates „10, 20, 50, 100, 1 000, 10 000” rida või „kõik read“ puhul tegemist kahe funktsionaalsusega: lause esimene osa kirjeldab valikut kindla arvu ridade hulgast, samas kui teine osa annab võimaluse valida kõik read korraga. Seega on Vaidlustaja proovitöö vastavuses Hankija nõudega. Seda tõestavad ka kuvatõmmised Vaidlustaja kasutajaliidese tabelitest [Vaidlustaja ärisaladus]. Vaidlustaja küsis Hankijalt selgitusi ebaselguste kohta RHAD-is ning sai Hankija selgituse 05.09.2025. a teabevahetuses. Hankija peab hindama selgitusi selliselt, kas need muudavad
18 (40)
RHAD-is sätestatut või mitte. Kui selgitused muudavad RHAD-i, siis on Hankija kohustus muudatused ka teha. Vaidlustaja on seisukohal, et tegemist pole RHAD-i muutmise vaid täpsustustega. [Vaidlustaja ärisaladus] Seetõttu tuleb Vaidlustaja proovitöö hindele lisada 10 punkti. 6. Hankija, Rahandusministeeriumi Infotehnoloogiakeskus, vaidleb vaidlustusele vastu (Hankija vastus esitati 10.01.2025 ja 23.01.2025 kirjadega) ning palub jätta selle rahuldamata alljärgnevatel põhjustel. 6.1. Vaidlustus põhineb kolmele argumendile: 1) Kolmanda isiku pakkumus on sisuliselt mittevastav ja ei oleks pidanud üldse hindamisele pääsema; 2) Hankija on Kolmanda isiku proovitööle valesti väärtuspunkte andnud; 3) Hankija ei ole Vaidlustaja proovitööle piisavalt väärtuspunkte andnud. 6.2. Vaidlustaja seisukoht, et Hankija oleks pidanud pakkujate esitatud dokumente (eelkõige proovitööd ning paigaldus- ja kasutusjuhendeid) hindama pakkumuse vastavaks tunnistamise raames, on väär. Kui Hankija kontrolliks nõuete täitmist juba pakkumuse vastavaks tunnistamiseks, ei saaks Hankija hinnata ühtegi proovitööd hindamismetoodika kohaselt (proovitöös esinevate puuduste korral väärtuspunkte vähendada), sest hindamisele pääseksid vaid need proovitööd, mis kõik nõuded täidavad ja seega tuleks Hankijal kõigile ka maksimaalsed väärtuspunktid anda. Vastavustingimuste p 5 sätestab selgelt, et esitada tuleb hindamisele kuuluv proovitöö lähtekood koos paigaldus- ja kasutusjuhendiga. Seda, kas dokumentides esineb sisulisi kõrvalekaldeid Nõuete tingimustest, pidi Hankija hindama pakkumuste hindamise raames dokumentidele väärtuspunkte andes. Seega sätestasid Vastavustingimused miinimumnõudena vaid dokumentide esitamise kohustuse, aga dokumentide sisu vastavust RHAD-is esitatud nõuete täitmisel kontrolliti pakkumuste hindamise faasis, sest nõuete täitmise või mittetäitmise eest antakse väärtuspunkte. Vaidlustaja ei ole RHAD-is esitatud hindamismetoodikat vaidlustanud. 6.3. Vaidlustaja teine argument, mille kohaselt Hankija on Kolmanda isiku proovitööle valesti väärtuspunkte andnud, on samuti väär, sest Kolmanda isiku proovitöö vastas kõikidele RHAD-is esitatud nõuetele. Hankija ei nõustu ka Vaidlustaja argumendiga, et tema proovitöös ei esinenud puudusi ning Vaidlustaja proovitöö oleks hindamisel pidanud saama rohkem punkte. 6.4. Vaidlustaja väidab, et testrakendus peab muuhulgas võimaldama nii sisulist funktsionaalsust täitva rakenduse (põhirakenduse) funktsionaalsuse kui ka kiiruse testimist, so põhirakenduse testimist. Vaidlustaja leiab, et testrakendus peab ka, mille kaudu sisulise rakenduse funktsionaalsust ja kiirust testitakse, vastama RHAD-is sätestatud nõuetele ja võimaldama põhirakenduse nõuetekohast testimist. Hankija arvates ei vasta see tõele, sest Nõuete alamjaotuses „Testjuhud“ on Hankija kirjutanud, et kontrollib rakenduse funktsionaalsust manuaalselt testides ja on samas kirjeldanud ära konkreetsed manuaaltestide sammud. Seega pole õige Vaidlustaja väide, et testrakendus peab võimaldama põhirakenduse täielikku funktsionaalset testimist. Integratsioonitestis (testrakendus) on nõutud tegevused, mis on kirjeldatud Nõuete alamjaotuses „Automaattestis realiseeritavad toimingud ja nende järjekord“. Nimetatud nõuded kattuvad küll mingil määral, kuid neid ei saa võtta ühe komplektina. Nt ei pea olema testrakenduses realiseeritud alljärgnevaid manuaalse testimise nõudeid: 1) kontrollida, kas kõiki etteantud päringu kitsendusi ja kuvamise järjekordasid saab teostada; 2) kontrollida, et sama rida ei ole võimalik samaaegselt muuta ja teostada toimingut korraga 2 või enamast seadmest. Eeltoodule tuginedes on Hankija seisukohal, et Kolmanda isiku testrakendus vastab RHAD-is rakenduse integratsioonitestidele sätestatud nõutule. 6.5. Vaidlustaja väidab, et Kolmanda isiku testrakenduses on kasutatud toiminguid, mida rakenduse tavakasutajal puudub õigus teha nagu on sätestatud Nõuete alamjaotuses „Rakenduse integratisoonitestid“. Samuti väidetakse, et Kolmanda isiku proovitöös ei ole samade nõutud toimingute tegemiseks piisavalt andmeid. Hankija eeltooduga ei nõustu. [Kolmanda isiku ärisaladus]
19 (40)
6.6. Vaidlustaja väidab, et proovitöös on nõutud paginatsioon (andmete jaotamine lehekülgedele) ning viitab Nõuete tingimusele, mille kohaselt peab kasutajal olema võimalik andmeid lehitseda. Vaidlustaja väitel Kolmanda isiku proovitöö selle tingimusega ei arvesta. Hankija eeltooduga ei nõustu, sest RHAD-is ei olnud pagineerimist nõutud. RHAD-is on nõue, et andmeid peab saama lehitseda. „Andmete lehitsemise“ sünonüümina saab käsitleda „andmete sirvimist“ (https://sonaveeb.ee/search/unif/dlall/dsall/lehitsema/1/est), mis ei eelda ega nõua pagineerimise kasutamist, andmeid saab sirvida ka neid lehekülgedele laiali jaotamata ehk näiteks scrollides. [Kolmanda isiku ärisaladus] Samuti ei vasta tõele Vaidlustaja väide, et kui tabelis on palju andmeid ja kuvatakse lehele rohkem kui 300 rida, siis brauser ei pea vastu. Antud väide ei vasta tõele, kuna Kolmanda isiku rakendus töötas nõuetekohaselt ka nt 500 rea korraga kuvamisel (PILT4_valitud_126_arisaladus.png). Vaidlustaja on esitanud väite, et Kolmanda isiku testrakenduses ei ole automaattestis realiseeritavates toimingutes kirjeldatud tegevuste tegemisel arvestatud õigetele lehtedele liikumise toimingutega, kuid sellist nõuet RHAD-is ei olnud. Kolmas isik lahendas antud tegevuse oma proovitöös ka teisiti. 6.7. Vaidlustaja seisukoht, mille kohaselt Hankija ei kontrollinud toimingute õnnestumist või ebaõnnestumist, ei ole tõene. Hankija on õiguspäraselt mõõtnud ja valideerinud tulemused ja Kolmanda isiku testrakendus vastas Nõuetele. Hankija käivitas eeltoodu tõendamiseks 07.01.2025. a uuesti Kolmanda isiku proovitöö rakenduse koos automaattestiga, kuid kuivõrd Vaidlustusele vastamiseks oli piiratud ajahulk, ei saanud Hankija kasutada Riigihankes kõikide pakkujate proovitööde hindamiseks kasutatud RmIT halduses olevat Azure virtuaalmasinat, kuid vaatamata teise masina kasutamisele lükkab nimetatud kordustest ümber Vaidlustaja väite nagu ei oleks Kolmanda isiku andmebaasi logidesse toimingute tulemusi kirjutanud. Kolmanda isiku andmebaasi logides on nähtav, et toimingute õnnestumise/ebaõnnestumise info on olemas. Hankija lisatud täiendava andmebaasi logifailist (FAIL1_nortal_test_run_log.csv) 07.01.2025. a tulemustega, on nähtav Kolmanda isiku proovitöö testrakenduse vastavus Nõuetele. Identselt käitus rakendus ka pakkumuste hindamise faasis kiirusetesti sooritamisel, mis on nähtav vaidlustusele lisatud esialgsetest logidest. 6.8. Toimingu õnnestumise kontrolli eraldi sammuna ei ole Hankija nõudnud ning see on Vaidlustaja tõlgendus Nõuetest. Kolmanda isiku proovitöö logidest on nähtav, et andmebaasi kirjutatakse toimingu järgselt, kas see õnnestus või mitte ning sellega on nõue täidetud. Toimingu õnnestumise või ebaõnnestumise kuvamise formaati Hankija ette ei andnud ja see oli pakkujate enda välja mõelda. Ka algsetest, Vaidlustajale edastatud, logifailides on nähtav, et testi toimingud õnnestusid (logifailis toimingu järgi väärtus TRUE). 6.9. Tõele ei vasta Vaidlustaja väide, et Kolmanda isiku testrakendus ei kajasta sätteid. Kolmanda isiku testrakendus väljastab sisendparameetrina testitava rakenduse URLi parameetri ja testide jooksutamise sätted. Parameeter on nähtav pildil PILT7_docker_log_konsool.jpg neljandal real ja sätted on nähtavad failis FAIL3_nortal_full_test_log_console.txt, mistõttu ei vasta tõele Vaidlustaja väide, et Kolmanda isiku testrakendus ei kuva konsooli parameetreid. Vaidlustajal oli võimalik näha salvestiselt Nortal 2 masin – Copy.mp4 (ajakood 06:55), et testrakendus kuvab töötamise ajal konsooli jooksvat infot ja stardisätteid. Lisaks on nähtav salvestiselt Nortal AS 1 masin – Copy.mp4 (ajakood 05:15), et testrakendus on konsooli kirjutanud andmed testide toimingute kohta. 6.10. Hankija ei nõustu Vaidlustaja väitega, mille kohaselt Kolmanda isiku testrakenduse logis ei ole toimingute mõõtmistulemused korrektselt kajastatud ja et logiandmed on vastuolus summaarse ajakuluga. Hankija jooksutas teste kahel korral ning logi eksportimisel andmebaasist on üks rida IT tehnilise arusaamatuse tõttu sattunud valesse kohta. Arvesse läinud testi osas ei oma vaidlustuse punktis 2.1.6.2 pildil oleva toimingu 403 rida tähtsust, kuna antud rida on mitte arvesse minevast testi jooksutamisest. Hankija lisab tõestuseks fail, kus sisalduvad mõlema testi jooksutamise logi (FAIL4_molema_testi_logi.xlsx) ning millest on näha, et toimingu 403 rida on paigutatud valesti andmete eksportimisel CSV faili. Antud failist on nähtav, et 402- toimingu reale järgneb kohe 404 ja vahelt on puudu toimingu 403 rida, mis on ekslikult paigutunud ülespoole. Ajaliselt peab toimingu 403 rida olema 402 ja 404 vahel. Vaidlustaja vaidlustuses märgitud aeg (~3 minutit) viitab sellele, et Vaidlustaja on arvestamises kasutanud
20 (40)
toimingute läbiviimise ajatemplit ning võtnud selle testi andmetest, mis arvesse ei läinud. Hankija arvestas toimingutele kuluvat aega millisekundites, mis on kuvatud ka logides. Vastavalt arvesse läinud testi logile, oli antud toimingu reaalne ajakulu 86 millisekundit, mida hankija arvestas ka hindamisel. 6.11. Vaidlustuses toodud väide, et toiming real 403 on toimunud kolme minuti jooksul, ei vasta seega tõele, sest logidest lähtuvalt on näha, et rea 403 toimingu teostamiseks on aega kulunud 83 millisekundit. Lisaks on rea 403 puhul tegemist toiminguga Nõuete alamjaotuse „Automaattestis realiseeritavad toimingud ja nende järjekord“ p-ist 8: Täiendavalt valida read 126, 26535, 41223-41250, 83610-83620,91425, 91428, 91431 toiminguga. P-is 8 nõutud toiming tuleb teostada p-is 7 nõutud toimingu järgselt. Logidest on nähtav, et p-is 8 nõutud toiming on kuvatud p-is 7 nõutud toimingute keskel, mitte järel. Lisaks nähtub logist, et toiming 403, mis kajastab ridade, valimist teostatakse arvesse minema testi korral toimingus 185 ehk toiming 403 on kuvatakse ekslikult logides topelt ja seetõttu ei tohiks antud rea andmed kajastuda automaattesti lõpptulemuses (logi rida 218). Eeltoodust tulenevalt vastab Kolmanda isiku testrakenduse mõõtmistulemus nõuetele ja on seega ka õige. 6.12. Vaidlustaja väitel ei vasta Kolmanda isiku põhi- ja testrakendus tingimustele, kuna ei ole erinevates keskkondades käivitatavad. Kogenud tarkvaraarenduse ettevõttena peaks Vaidlustaja teadma, et nii universaalset tarkvara, mis toimiks baaskonfiguratsiooni (võrgusätted, keskkonna spetsiifilised parameetrid jne) muutmata erinevates keskkondades, ei ole võimalik kirjutada ja mistõttu peab tarkvara paigaldaja alati muutma konfiguratsiooni, et kohaldada tarkvara vastavalt keskkonnale. Antud juhul tekkis portide muutmise vajadus sellest, et Hankija poolt rakenduste paigaldamiseks kaasatud RmIT administraator pidas vajalikuks käivitada Kolmanda isiku testrakenduse JAR-i dockeri konteinerist väljast, mis tulenes Hankija hallatavast keskkonna spetsiifikast. Eeltoodu saavutamiseks publitseeriti Seleniumi pordid 4444:4444 dockeri konteinerist välja. Eraldi võimalust, et JAR oleks dockerist välja tõstetav, ei olnud RHAD-is nõutud. Sellest tulenevalt ei lugenud ega pidanudki Hankija lugema antud tegevust Kolmanda isiku veaks, isegi kui salvestistel kuuldav RmIT administraatori poole öeldu võib taolise mulje tekitada. RmIT administraator muutis Kolmanda isiku testrakenduse konfiguratsioonis komponentide omavahelist suhtlust (pordid), mitte komponente endid, nende sisu ega eesmärke. Selline konfiguratsiooni muudatus on IT administraatorite tavapraktika, mis ei mõjuta rakenduste funktsionaalset käitumist ega jõudlust. Hankija ei avaldanud RHAD-is pisitehnilisi sätteid ja piiranguid, mis kehtivad RmIT-i hallatavates võrkudes ja seadmetes, kuna nende järgimine oleks tekitanud pakkujatele ebaproportsionaalselt suure töökoormuse proovitöö teostamisel. Seetõttu kasutas Hankija RmIT-i administraatori abi, kes aitas konfigureerimise abil pakkujate põhirakenduse ja testrakenduse kohaldumist RmIT-i keskkonda. 6.13. Ka Vaidlustaja enda proovitöös esines analoogne situatsioon, kus RmIT-i administraator kohandab konfiguratsioone vastavalt keskkonnale ja Hankija ei lugenud ka Vaidlustaja testrakendust samadele nõuetele mittevastavaks. Kuna muuta oli vajalik kõikide pakkujate proovitööde konfiguratsioone, siis pakkujate võrdse kohtlemise printsiibist lähtudes läks arvesse tulemus, kus põhirakendus ja testid asusid ühes masinas, aga eraldi konteinerites (Nortal AS 1 masin – Copy.mp4, Wisercat Estonia OÜ 1 masin – Copy.mp4.). Salvestistel on nähtav, et sama pakkuja kiirusetestide jooksutamisel erinevate olukordade korral (põhirakendus ja test ühes masinas, põhirakendus ja test erinevates masinates) on pakkujate enda kiirusetestide tulemused samas suurusjärgus, mistõttu eelpool toodud konfiguratsioonide muutmised ei muuda lõpptulemust. Hankija ei ole nõus, et Kolmanda isiku testrakendus ei vasta Nõuete alamjaotuse „Rakenduste integratsioonitestid“ nõuetele nr 4, 6, 9 ja 13, sh on pakkujate töid hinnatud võrdsetel alustel, kuna mõlema menetlusosalise proovitöö konfiguratsioone oli vaja muuta kohaldumiseks RmIT hallavata keskkonnaga. 6.14. Hankija lükkab ümber ka Vaidlustaja väite, et Kolmas isik jättis esitamata paigaldus- ja kasutusjuhendi. Kolmas isik on esitanud nõuetekohase paigaldus- ja kasutusjuhendi, mis on leitav riigihangete registrist Kolmanda isiku pakkumuse koosseisus olevate dokumentide juures. Nimetatud dokumendid sisaldavad muuhulgas informatsiooni testrakenduse käivitamise ja jooksutamise kohta teisest seadmest (5_2_paigaldusjuhend.pdf, peatükk 1.2.
21 (40)
Testrakenduse sfos-integration-tests paigaldus). Lisaks on ka nendes dokumentides kirjeldatud, kuidas käivitada teste „—headless“ režiimis (5_2_paigaldusjuhend.pdf, peatükk 1.2. Testrakenduse sfos-integration-tests paigaldus) ja rakendust DEBUG režiimis (5_2_paigaldusjuhend.pdf, peatükk 1.2. Testrakenduse sfos-integration-tests paigaldus). Vaidlustaja väide, et testrakendus ei käivitunud ja paigaldus- ja kasutusjuhendis puudusid vajalikud kirjeldused, ei vasta tõele. 6.15. Kuna ei esine aluseid Kolmanda isiku pakkumuse mittevastavaks tunnistamiseks, samuti on Hankija hindamise läbi viinud õiguspäraselt, ei ole alust Kolmanda isiku pakkumuse edukaks tunnistamise otsuse kehtetuks tunnistamiseks. 6.16. Hankija on hinnanud Vaidlustaja proovitööd õiguspäraselt. 6.16.1. Vaidlustuses kirjeldutud Vaidlustaja proovitöö puudus nr 1: [Vaidlustaja ärisaladus] 6.16.1.1. Nõuete alamjaotuses „Arendustöö „Kuludokumentide kuvamine, valimine ja seisundite muutmine“ on nõue, mille kohaselt abikõlbliku summa arvutamisel küsitakse kasutajalt %, mis osas valitud read on abikõlblikud, ning selle abil arvutatakse igale reale dokumendi kogusumma – st sendi täpsusega abikõlblik summa. [Vaidlustaja ärisaladus] 6.16.1.2. Hankija juhib tähelepanu vaidlustuses viidatud user experience’ile, mille hea tava kohaselt tehakse kasutajatele infosüsteem mugavaks, mistõttu ei kuvata taolistes infosüsteemides kasutajatele arve Vaidlustaja pakutud viisil. Vaidlustaja proovitöö rakenduses ei ole võimalik kasutajal mõistlikult tuvastada, et kuvatav summa on ümardatud ega seda, milline peaks olema õige summa. 6.16.2. Vaidlustuse kirjeldutud Vaidlustaja proovitöö puudus nr 2. [Vaidlustaja ärisaladus] 6.17. 23.01.2025. a esitas Hankija täiendavad seisukohad. 6.17.1. Vaidlustaja arvamus Vastavustingimustest ei põhine RHAD-il. Hankija nõude sõnastus Vastavustingimuste p-is 5 Pakkuja peab esitama dokumendis „Nõuded proovitöö teostamiseks“ toodud nõuetele vastava ja hindamisele kuuluva proovitöö lähtekoodi koos paigaldus- ja kasutusjuhendiga viitab pakkujatele antavatele juhistele, mida Hankija soovib pakkumuse koosseisus saada. Vastavustingimustes nõutud lähtekoodi näol ei ole tegemist töötavate rakendustega, mille vastavust saaks kontrollida RHAD-is esitatud nõuetele. 6.17.2. Lähtekoodi puhul on tegemist loetamatu andmejadaga, mis tähendavad arvutile antavaid käske. Sellise koodi pinnalt ei ole kuidagi võimalik tuvastada kõikide RHAD-is esitatud nõuete täitmist, mida eeldab Vaidlustaja. Lisaks on olemas on ka võimalus, et lähtekoodis on käsk kirja pandud, aga arvuti ei täida seda käsku. Eeltoodust tulenevalt on selge, et Vastavustingimustes nõutud proovitöö lähtekoodi esitamine on formaalne nõue, sest pelgalt lähtekoodi abil ei ole võimalik kontrollida RHAD-is esitatud nõuete täidetavust. Ainus nõue, mis Hankija lähtekoodile RHAD-is esitas, oli see, et lähtekood peab olema inglise keelne (Nõuete alamjaotus „Proovitöö oodatud tulem“). Selleks, et saaks hinnata lähtekoodi vastavust RHAD-is esitatud nõuetele, tuleb lähtekood kokku ehitada ja käivitada arvutis, kuid see tähendab seda, et hinnatakse juba pakkuja loodud proovitöö lahendust, mitte lähtekoodi. 6.17.3. Sisuliselt on lähtekood kogum ehitusmaterjale, millest peab saama ehitada maja, mida saab kasutada Hankija nõutud viisil ja millel on olemas nõutud elemendid ning mis kogumis vastab esitatud nõuetele. Toome elulise näite: nõudeks oli saada ühe ukse ja kolme lahtikäiva aknaga maja, millel on kivikatus ja mis peab vastu pidama tormituulele (teisendus RHAD-i nõuetest). Pakkuja pidi tarnima selleks vajamineva kogumi ehitusmaterjale (lähtekoodi), mida kasutades on võimalik maja ehitada ja lisaks ka dokumentatsiooni (paigaldus- ja kasutusjuhendid), kuidas peab maja kokku ehitama ja kuidas saab selle funktsioone kasutada. Vaidlusaluse Riigihanke vastavustingimuste raames pidi Hankija seega kontrollima vaid seda, kas pakkuja on andnud üle ehitusmaterjalid ja dokumentatsiooni ehk kas hoovis (riigihangete registris) on tuvastatav hunnik ehitusmaterjale ja paberid pealkirjaga paigaldus- ja kasutusjuhendid. Seda Hankija ka tegi. Edasi oli juba Hankija kohustus hakata etteantud
22 (40)
materjalidest ja dokumentidele tuginedes maja kokku ehitama ning hindama, kas tarnitud on kõik elemendid (kõik aknad, uks, kivid katuse jaoks jm) ning kas elemendid töötavad nõutud viisil (kas aknad avanevad, kas katusematerjal on nõutud kivist) ja kui hästi peab maja vastu tormituulele. Vastavalt elemendi puudumisele (üks aken vähem) või elemendi mittetoimimisele (aken on, aga ei avane), vähendatakse maja eest saadavaid väärtuspunkte. Maja tormituule vastupidavuse alusel (kiirustest) moodustati pingerida, milles kõige rohkem anti punkte kõige vastupidavamale majale eeldusel, et enamus maja funktsionaalseid nõudeid on täidetud (kolmest aknast vähemalt mõni avaneb). Kokkuvõttes Hankija ei saanud teostada proovitöö RHAD-i nõuetele vastavuse kontrolli vastavustingimuste kontrolli faasis, vaid pidi seda tegema pakkumuste hindamise faasis. 6.17.4. Eeltoodust tulenevalt sätestasid vastavustingimused miinimumnõudena vaid formaalse kohustuse dokumentide esitamisele, mida Hankija kontrolliski nõutud viisil – on/ei ole. Kuid dokumentide sisulist vastavust RHAD-is esitatud nõuetele kohustus Hankija hindama pakkumuste hindamise faasis, sest nõuete täitmise või mittetäitmise eest jagatakse väärtuspunkte (vt Hindamismetoodika punktide andmise kirjeldusi). Juhul, kui Hankija ei sätestaks vastavustingimustes nõuet proovitöö lähtekoodi esitamisele, peaks Hankija hindama ka selliseid pakkumusi, kus lähtekoodi pole esitatud, või kui Hankija ei sätestaks nõuet, et oodatav lähtekood peab olema see, millele on nõuded esitatud RHAD-is, peaks Hankija hindama suvalist proovitööd, mille lähtekood pakkumuse koosseisu lisati. Nt hankija tellib maja, aga pakkuja esitab vaid paigaldus- ja kasutusjuhendi ilma ehitusmaterjalideta. Või hankija tellib maja, aga hoovis on hunnik auto varuosi koos dokumentidega, kuidas auto kokku monteerida. Eeltoodu vältimiseks on Hankija esitanud oma nõude väga selgelt ja lisanud selguse huvides tingimusele juurde ka selgituse, et nõutud eesmärgipärased dokumendid kuuluvad hindamisele. Igale pakkujale, kes soovib Riigihankes osaleda, peaks olema selge, et hindamine toimub kooskõlas hindamismetoodikaga, mitte Vastavustingimustega. Seega leiab Hankija, et Vastavustingimused on üheselt arusaadavad ehk lugedes RHAD-i kogumis, ei saa jõuda järeldusele, et Hankija peaks vastavustingimuste kontrollimise raames kontrollima seda, mida peab hindama hankemenetluse järgmises etapis. Hankija ei vali edukat pakkumust pelgalt maksumuse pinnalt, mistõttu ei saa jõuda järeldusele, et Hankija ei ole Vastavustingimustes nõutud dokumentide sisulist vastavust RHAD-i nõuetele üldse kontrollinud. Hankija kinnitab, et Nõuetes toodud nõuetele vastavust on kontrollitud ja hinnatud hindamise faasis ehk just seal, kus Hankija väitis seda tegevat. 6.17.5. Vaidlustaja loogikast lähtudes oleks pakkumuse vastavuse kontrollimisel tulnud kontrollida ka rakenduse mõõtmistulemusi, sest Nõuded sätestasid muuhulgas nõudeid ka süsteemi töökiiruse mõõtmisele, kuid kiiruse testide läbiviimiseks on vaja kõigepealt rakendused kokku ehitada ja käima panna, aga tulles tagasi maja analoogia juurde, ei piisa sellest, et tormikindluse testimiseks lasta tuulel puhuda ehitusmaterjalide peale ehk kõikide nõuete täitmist ei saa hinnata pelgalt lähtekoodi pealt. Isegi, kui proovida kontrollida proovitöö nõuete vastavust pelgalt lähtekoodi pealt (mida RHAD ei sätestanud), ei saa kumbki osapool (ei pakkuja ega Hankija) olla veendunud, et rakendus käitub täpselt nii nagu lähtekoodis kirjas (puudulik testimine, arenduse ja käitamise keskkondade erinevus jne). Mistõttu Hankija selline vastavuskontroll ei oleks läbipaistev ega kontrollitav (RHS § 3 p 1). Lisaks ei saaks sellise sisutühja vastavuskontrolli teostamisel rakendada vaidlusaluse Riigihanke hindamismetoodikat, mis kohustas Hankijat proovitööde lahenduse sisulist vastavust hindama pakkumuste hindamise faasis. Vaidlustaja seisukoht, et vastavustingimused ei olnud Vaidlustajale ega teistele pakkujale selged ja üheselt mõistetavad, on otsitud. 6.17.6. Hankijale jääb arusaamatuks vaidlustuses esitatud nõude loogika, sest kui Hankija oleks kontrollinud Nõuetes esitatud tingimuste täitmist pakkumuste vastavuse kontrolli raames, oleks ainus pakkumus, mida Hankija ei peaks tagasi lükkama ja mis pääseks hindamise vooru, Kolmanda isiku pakkumus, sest Kolmanda isiku proovitöö lahendus oli ainus, kus Hankija ei tuvastanud ühtegi puudust. Kui lähtuda Vaidlustaja seisukohast, et Vaidlustaja proovitööl ei esinenud puudusi (millega Hankija ei nõustu) ja Vaidlustaja proovitöö lahendus vastas RHAD-i nõuetele, mida Hankija oleks pidanud Vaidlustaja arvates tuvastama vastavuse kontrolli raames, siis eeldab Vaidlustaja, et tema proovitöö lahendus peaks saama maksimumpunktid. Hankija saaks Vaidlustaja proovitööle omistada maksimumpunktid vaid dokumenteerimise, arhitektuuri ja funktsionaalsuse eest. Hankija ei saaks muuta Vaidlustaja proovitööle omistatud väärtuspunkte testide mõõtmistulemuste (kiirus) eest, sest vastavalt hindamismetoodikale need ei muutu, kuna vastavalt hindamismetoodikale lähevad mõõtmistulemused igal juhul
23 (40)
arvesse, kui proovitöös toodud funktsionaalsuse testides on saadud vähemalt 5 punkti ning kõik proovitöös nõutud automaattesti toimingud on korrektselt realiseeritud. Arvestades asjaoluga, et Hankija ei tagane seiskohast, et Kolmanda isiku proovitöö lahenduses ei esinenud ühtegi puudust, ja kuna tema testide mõõtmistulemus oli kiireim, siis jääksid testide mõõtmistulemuste (kiirus) eest omistatud väärtuspunktid nii Vaidlustajal kui Kolmandal isikul samaks. Seega ka sellisel juhul ei saaks Vaidlustaja pakkumus ikkagi edukaks, sest väärtuspunktide summeerimisel jääks Vaidlustaja teisele kohale Kolmanda isiku järel. Kokkuvõttes saaks Vaidlustaja pakkumus Riigihankes edukaks vaid juhul, kui Kolmanda isiku pakkumuses esineks mittevastavusi RHAD-is esitatud nõuetele ja Vaidlustaja pakkumuses puudusi üldse ei esineks. 6.17.7. Kolmanda isiku proovitöös ei esinenud ühtegi puudust ja Vaidlustaja väited puuduste esinemisest on väärad. Vaidlustaja ei ole näinud Kolmanda isiku ärisaladusega kaetud proovitöö lahendust ega saanud tutvuda pakkumusele lisatud paigaldus- ja kasutusjuhenditega. Vaidlustaja eeldab, et ainult tema realiseeritud proovitöö lahend on ainuõige ja teistsugused mõttekäigud ja realisatsioonid on valed ja seetõttu ei vasta nõuetele. Hankija rõhutab, et RHAD-is olid esitatud nõuded kogu tulemile, mitte aga lahenduskäigule. Vaidlustaja sisulised väited Kolmanda isiku pakkumuse mittevastavuse kohta põhinevad oletustel ning kiirusetesti salvestistel, mis ei kajasta kogu proovitöö lahenduste RHAD-i nõuetele vastavuse hindamise protsessi ja on kontekstist välja rebitud. 6.17.8. Vaidlustaja 20.01.2025. a täiendavates seisukohtades on toetutud Vaidlustaja kaasatud asjatundja A.S.-i arvamusele. Hankija rõhutab, et tegemist ei ole menetleja poolt määratud eksperdiga (KES § 3), mistõttu ei saa tema avaldatud arvamuste osas eeldada täielikku erapooletust ega ka eksperdi taset. Kahtlemata A.S.-i pädevuses automaattestide alal, kuid arvesse võttes, et Vaidlustaja kaasatud asjatundja pole saanud tutvuda Kolmanda isiku pakkumuse ja sellest tulenevalt ka proovitöö töötava lahendusega ega selle kohta koostatud dokumentatsiooniga, on asjatundja arvamus kujundatud oletuste ja Vaidlustaja poolt ette antud info põhjalt. Lisaks on integratsioonitestid (automaattestid) vaid üks osa proovitöö lahendusest. 6.17.9. Vaidlustaja väidab, et Kolmanda isiku testrakendus ei vasta RHAD-is toodud nõuetele, sest on jäetud realiseerimata vajalikud toimingud. Muuhulgas väidab Vaidlustaja, et Kolmanda isiku testrakendus teeb toiminguid viisil, mis ei ole kasutajaliideses tavakasutajale kättesaadavad. Hankija eeltooduga ei nõustu, kuna Kolmanda isiku põhirakenduse kasutajaliideses (UI-s) on automaattesti kasutatavad võimalused olemas ka tavakasutaja jaoks. Seega on nende võimaluste kasutamine lubatud tegevus ja ei lähe vastuollu RHAD-i nõudega, kus lubatud ei ole toimingud, mida tavakasutaja teha ei saa või mille tegemiseks tavakasutajal puuduvad andmed. Vaidlustaja on eeldanud, et automaattesti kasutaja ei tea andmeid ja ei saagi teada, kuna andmetel ei ole tema väidete kohaselt andmeridade juures unikaalseid tunnuseid (identifikaatoreid), millega nende sisu siduda. Hankija rõhutab, et andmeridadel on juures unikaalne tunnus ning see konkreetne nõue tuleneb Nõuete alamjaotusest „Arendustöö Kuludokumentide kuvamine, valimine ja seisundite muutmine“, kus on selgelt sätestatud, et tabeli veergudes kuvatavas andmestikus on lahter „Tunnus - Kuludokumendi unikaalne tunnus projekti lõikes“. Kuna proovitööde hindamisel ja kiirustestide läbiviimisel kasutas Hankija enda loodud andmekomplekti, mis oli kõikidele pakkujatele identne, ei ole tegemist kasutaja jaoks tundmatute andmetega. Seega Vaidlustaja väide, et konkreetsete ridadega toimingute tegemiseks peab tavakasutaja real asuvaid andmeid nägema ja selleks vajalikud toimingud tegema, ei vasta tõele. Antud väide on toodud oletuse põhjal, et automaattesti teostamise ajal ei ole kasutajale andmed teada, kuid Vaidlustaja väites on jäetud arvestamata asjaoluga, et kasutajale on juba eelnevalt teada reanumbrid ja nendes ridades sisalduvad andmed. Kuna Hankija andis Nõuetes automaattesti toimingute kirjelduses ette rea numbrid, siis võttis Hankija automaattestide puhul arvesse, et kasutaja teab antud ridadel olevaid andmeid ning soovib neid muuta. 6.17.10. Nõuete alamjaotuses „Automaattestis realiseeritavad toimingud ja nende järjekord“ on toodud kõik nõutud toimingud, kuid Vaidlustaja on oma lahenduses tuletanud alamtoimingud (ridadele liikumine) ja eeldab, et ka kõik teised pakkujad oleksid pidanud sama tegema. Nii see ei ole. Kolmanda isiku proovitöös on kõik automaattesti toimingud realiseeritud vastavalt proovitöö nõuetes toodule. Lisaks on RHAD-is ridade liikumine ka eraldi toiminguna välja toodud (Nõuete alamjaotuses „Automaattestis realiseeritavad toimingud ja nende järjekord“ p 12 – „liigu reale 3353“) ja selline ridade vahel liikumine on
24 (40)
Kolmanda isiku proovitöös realiseeritud (nõutud liikumised reale on proovitöös teostatud). Vaidlustaja on oma täiendavates seisukohtades väitnud, et pagineerimine on Riigihankes nõutav ja toob näiteks ühe RHAD-i dokumendi pealkirjaga „Nõuded_arenduse_teostamiseks“, kus dokumentide kogumis on dokument pealkirjaga „RFN 2.8.0“, milles on nõue 104: Loetelu kuvamisel tuleb kasutada paginatsiooni, kus ühel lehel kuvatakse korraga kokkulepitud arv kirjeid. Sellest tulenevalt eeldas Vaidlustaja, et pagineerimine on nõutud ka proovitöö lahenduses. Hankija juhib tähelepanu, et Nõuded ei sätestanud pagineerimise nõuet. Proovitöö pidi vastama Nõuetes toodud tingimustele, mitte teistele RHAD-i dokumentidele. Vastav selgitustaotlus on Riigihankest huvitatud isiku poolt ka esitatud6 . Hankijalt küsiti, kas mingid nõuded RHAD-i hulgas olevatest dokumentidest („Nõuded_arenduse_teostamiseks.zip“, „RFN-2.8.0.pdf“) käivad juba ka proovitöö kohta, mitte ainult hilisemate arenduste kohta, ning paluti täpselt välja tuua, mis nõudeid peab proovitöö raames täitma sealt alt ning muudest dokumentidest, mis pole otseselt proovitööga seotud dokumendid (ehk v.a. „Nõuded proovitöö teostamiseks_.docx“, „Proovitöö_näidisfail_andmed.xlsx“ ning „Hindamismetoodika kirjeldus.docx“). Hankija selgitas, et pakkujad ei pea lähtuma muudest dokumentidest, kui ainult „Nõuded proovitöö teostamiseks_.docx“, „Proovitöö_näidisfail_andmed.xlsx“ ning „Hindamismetoodika kirjeldus.docx“ failidest. Eeltoodust tulenevalt on Vaidlustaja seisukohta pagineerimise kohaldumise kohta proovitöölahendile väär. Hankija rõhutab, et Kolmanda isiku proovitöös oli paginatsioon realiseeritud, mistõttu ei vasta vaidlustuses toodud väide paginatsiooni puudumise kohta ka tõele. 6.17.11. Hankija ei nõustu Vaidlustaja täiendavates seisukohtades esitatud väitega, et Kolmanda isiku testrakendus ei vii läbi toimingu õnnestumise kontrolle. Vaidlustaja väited antud punktis põhinevad üksnes tema enda tõlgendusele nõuetest ja oletustele Kolmanda isiku proovitöö lahendusele. Hankija kordab oma algses vastuses toodud selgitusi - toimingu läbiviimise kohta pidi testrakendus kirjutama andmebaasi info, kas toiming õnnestus või mitte ning toimingu ebaõnnestumise korral pidi andmebaasi lisama ka info, miks toiming ebaõnnestus. Testrakenduse põhiülesandeks oli RHAD-is nõutud toimingute läbiviimine, tehes neid etteantud järjekorras. RHAD ei sätestanud eraldi järelkontrollide teostamise nõuet. Kolmanda isiku proovitöös on lahendatud toimingu õnnestumise teated andmebaasis väärtusega TRUE. Kuna Vaidlustaja ei ole proovitööde lahendust ega selle juhendeid näinud, on talle teadmata ka Kolmanda isiku juhendites lahti selgitatud andmebaasi logitavad väärtused. Ka Vaidlustaja ise on oma täiendavates seisukohtades selgitanud, et testrakendus ei tohtinud otse pöörduda (andmeid lugeda) põhirakenduse andmebaasist. Sellega kinnitab Vaidlustaja ise loogikat, et järelkontroll ei olnud nõutud. Kokkuvõttes on Hankija seisukohal, et Vaidlustaja manipuleerib nõuete tõlgendamisega ja püüab neid esitada viisil, mida RHAD ei nõudnud või ei kohustanud teostama. 6.17.12. Täiendavates seisukohtades väidab Vaidlustaja, et Kolmanda isiku proovitöö lahenduses ei kuvata rakenduste sätteid konsoolis ning toob välja, et Nõuete alamjaotus „Rakenduse integratsiooni testid“ p-i 13 kohaselt on rakenduse nõutavateks säteteks vähemalt „headless“ ja DEBUG ja lisab sealjuures, et antud sätted peaksid kajastuma konsoolis testrakenduse käivitamisel. Hankija sellega ei nõustu ja viitab ebakõlale, mille ka Vaidlustaja ise on välja toonud. Kui Vaidlustaja rõhub sätete kuvamisele, siis nõue keskendub hoopis sätete haldamisele. Käsurealt peab saama hallata rakenduse vastavaid sätteid. Antud punktiga on Hankija nõudnud, et oleks võimalik nimetatud sätteid hallata ja rakendust nende abil erinevates režiimides käivitada, mitte aga nende näitamist konsoolis või logis. Kolmanda isiku rakendus ei pidanudki neid andmeid kuvama, küll aga on Hankija kontrollinud, et antud sätteid saab käsureal hallata/muuta. Lisaks väidab Vaidlustaja, et Hankija ei kontrollinud üldse Nõuete p-is 13 toodud nõuete täitmist. See väide ei vasta tõele, sest Vaidlustaja tugineb oma väites ainult kiirustesti salvestisele ja logidele, mitte aga kogu proovitöö hindamisprotsessile (mida Vaidlustaja ei saanudki näha), mille raames kontrollis Hankija kõikide RHAD-is esitatud nõuete täitmist, sh eelpool viidatud Nõuete p-i 13 nõude täitmist. Kuna Vaidlustaja ei ole näinud Kolmanda isiku proovitöö lahendust ega dokumentatsiooni ning lähtub oma arvamuse kujundamisel salvestisest ja logidest, mis puudutavad ainult ühte osa hindamisest, ei vasta väide tõele. Kolmanda isiku pakkumuse dokumentatsioonis on kajastatud info Nõuete p-is 13 toodud
6 Vt riigihangete register, sõnumi ID: 875296.
25 (40)
sätete haldamise kohta (vt 5_2_paigaldusjuhend.pdf, peatükk 1.2. Testrakenduse sfosintegration-tests paigaldus; 5_3_kasutusjuhend.pdf, peatükk 1.3. Testrakendus; vastavustingimustes edastatud lähtekood: 5_1_sfos-test-assignment 3\sfos-test- assignment\sfos-integration-tests -> README.MD (hankijapoolne soovitus: avada Notepad programmiga)). 6.17.13. Vaidlustaja väidab, et Hankija ei ole kontrollinud Kolmanda isiku proovitöö lahenduse nõuetele vastavust objektiivselt. Hankijal puudub eelistus ühe või teise pakkuja suhtes. Hindamismetoodika alusel osutus edukaks Kolmanda isiku pakkumus. 6.17.14. Hankija ei nõustu Vaidlustaja väitega, et mõõtmistesti logis vigade esinemine kinnitab juba iseenesest logi ebaadekvaatsust ning vastuolu mõõtmistulemustega. Hankija on vea esinemist logis esialgses vastuses selgitanud ja jääb seisukohale, et antud viga ei mõjutanud tulemust. Logis ilmnenud viga tekkis andmete eksportimisel CSV faili. 6.17.15. Vaidlustaja väidab, et Kolmanda isiku testrakendus ei käivitunud ilma lähtekoodi muutmata käsurealt. Vaidlustaja tõlgendab vääralt Hankija videos nähtavat käitumist ja kõlanud lauseid. Ekslikult on administraator videos öelnud, et muutis java faili, kuid tegelikult tahtis administraator öelda, et muutis yml faili. Antud fail on nähtav ka Vaidlustaja täiendavates seisukohtades esitatud kuvatõmmiselt „Kuvatõmmis kolmanda isiku 2.testi videost“, mille kohta on ka Vaidlustaja ise öelnud, et tegemist on konfiguratsiooni failiga. RmIT-i administraator muutis oma tegevuste käigus ainult rakenduste konfiguratsioonifaile, sh ka Vaidlustaja enda oma, mida on vaja teha, et rakendus kohaldada RmIT-i keskkonnaga, mille kõiki detailseid parameetreid ükski pakkuja ei teadnud. Selline tegevus (konfiguratsioonifailide muutmine) on administraatorite igapäeva tegevus ning ei muuda rakenduste sisu ega eesmärki. Seega on õige, et RmIT-i administraator muutis Kolmanda isiku testrakenduse konfiguratsioonis komponentide omavahelist suhtlust, kuid antud tegevus ei ole lähtekoodi muutmine. Väär on Vaidlustaja väide java failide muutmise kohta teades, et neid ei ole tegelikult muudetud. Lisaks toob Vaidlustaja lähtekoodi muutmise tõestuseks välja asjaolu, et RmIT-i administraatoril on avatud fail „TestConfig.java“ ning järeldab sellest üheselt, et lähtekoodi on seetõttu muudetud. Hankija märgib, et antud fail võib olla avatud ka vaatamiseks, mitte muutmiseks. Nt sisaldub seal failis ka osaliselt info süsteemsete kasutajatunnuste ja andmebaasi ühenduste kohta jne. Täiendavates seisukohtades on Vaidlustaja tsiteerinud asjatundjat (A.S.), kes toob välja, et „DokerFile“ on muudetud 22.11.2024. a, kuid antud kuupäev muutub Windows operatsioonisüsteemis mistahes muudatuse tegemisel, isegi siis, kui selleks oli tühiku lisamine ja kohene eemaldamine, mis iseenesest ei tingi faili sisulist muutust. Hankija ei saa välistada, et midagi sarnast on toimunud ka antud failiga, kuid kinnitab, et Kolmanda isiku proovitöö lähtekoodi ei ole muudetud. Eeltoodut saab vaidlustuskomisjon valideerida Vaidlustaja 20.02.2025 vastuse Lisaks oleva asjatundja arvamuse lk 6 lisatud pildi ja riigihangete registris oleva Kolmanda isiku proovitöö testrakenduse lähtekoodi (vastavustingimuste p 5 > 5_1_sfos-test-assignment 3.zip > sfos- test-assignment > sfosintegration-tests > Dockerfile) võrdlemisel, mille sisu on identsed. Seega ei vasta tõele Vaidlustaja väide, et Kolmanda isiku lähtekoodi on muudetud. Hankija jääb seisukohale, et administraatori tegevused olid kooskõlas Kolmanda isiku esitatud paigaldus- ja kasutusjuhenditega ning oma tegevustega ei muutnud Hankija Kolmanda isiku proovitöö lähtekoodi sisulist toimimist ega eesmärki, samuti on Kolmanda isiku proovitöö testrakendus, vastupidiselt Vaidlustaja väidetule, juhendite järgi käivitatav erinevatest masinatest. Vastav juhend on esitatud Kolmanda isiku pakkumuse dokumentatsioonis olevas paigaldusjuhendis (vt 5_2_paigaldusjuhend.pdf peatükk 1.2. Testrakenduse sfos- integrationtests paigaldus) ja vastav salvestised on Vaidlustajale endale edastatud, mistõttu on Vaidlustaja vastav väide arusaamatu. 6.17.16. Täiendavates seisukohtades väidab Vaidlustaja, et videotest nähtuva põhjal võiks eeldada, et lisaks ülaltoodule (lähtekoodi muutmisele ja rakenduse teisest masinast mittekäivitumisele) ei ole Kolmanda isiku testrakenduste sätteid võimalik käsurealt hallata, ja toob näiteks „headless“ ja DEBUG režiimis käivitamist, lisades viiteks ekraanipildi enda proovitöö testi videost, kus on kuvatud antud käsureavõtmed. Hankija märgib, et Vaidlustaja on taas arvamusel, et kõik lahendused, mis erinevad tema omast, on valed. Hankija on eespool selgitanud, et neid sätteid ei pea ilmtingimata kuvama
26 (40)
konsoolis, kuid sellest ei saa järeldada, et nõuded ei ole realiseeritud ja Hankija ei ole neid kontrollinud. Vaidlustaja on enda väidete tõestuseks tuginenud ainult videos nähtaval osalisel infol, justkui oleks kõik väärtused hardcodetud (jäigalt, muutmisvõimaluseta kodeeritud) rakenduse lähtekoodi, kuid see ei vasta tõele, kuna see on moonutatud nägemus. [Kolmanda isiku ärisaladus] 6.17.17. Vaidlustaja väidab, et Kolmas isik ei ole esitanud paigaldus- ja kasutusjuhendit ning et dokumentatsioonis puuduvad testrakenduse võrguväliselt teisest masinast testimise kohta juhised. Antud avaldus on väär. Need dokumendid on vaidlustuskomisjonile kättesaadavad Kolmanda isiku pakkumuse koosseisust, lisaks on dokumentides kirjeldatud testrakenduse võrguväliselt teisest masinast testimise juhised, mida Hankija on kajastanud eespool. Hankija on mitmes oma vastuse punktis viidanud sellele, et üks või teine Kolmanda isiku proovitöö lahenduse detail on kirjas nendes juhenddokumentides, mida Vaidlustaja korduvalt väidab puudu olevat. 6.17.18. Kokkuvõtvalt on ilmne, et Kolmanda isiku proovitöös ei esine ühtegi mittevastavust RHAD-is sätestatud nõuetele, mille alusel võiks rahuldada vaidlustuses toodud nõude - anda Kolmanda isiku proovitööle vähem hindepunkte. Kolmanda isiku proovitöö on puudusteta. 6.17.19. Hankija lükkab tagasi Vaidlustaja argumendid Kolmanda isiku pakkumuse hindamisel ebaõigesti antud punktide kohta. Sisuliselt kordab Vaidlustaja kõike, mis tema hinnangul on Kolmanda isiku pakkumuses valesti ja jõuab järeldusele, et Kolmanda isiku automaattesti toimingud ei ole seetõttu proovitöös korrektselt realiseeritud, mistõttu ei saaks mõõtmistesti tulemustega arvestada. Hankija sellega ei nõustu. Hankija on kõik Vaidlustaja väited eespool ümber lükanud ning oma vastuses ka kinnitanud, et Kolmanda isiku automaattesti toimingud olid kõik realiseeritud vastavalt proovitöö nõuetes toodule, mistõttu ei saa Hankija Kolmanda isiku proovitööle omistada 0 punkti. 6.17.20. Samuti väidab Vaidlustaja, et kuna tema hinnangul ei ole Kolmanda isiku juhenddokumentatsioon piisav, sest tema oletuste kohaselt ei saanud kõigi komponentide paigaldamine või funktsionaalsuse kasutamine õnnestuda, oleks vastavas kriteeriumi alusel tulnud Kolmanda isiku pakkumusele anda 20 punkti asemel 0 punkti. Ka selle väitega Hankija ei nõustu, sest Kolmanda isiku juhendmaterjal on piisav kõikide komponentide paigaldamiseks ja funktsionaalsuse kasutamiseks. 6.17.21. Hankija ei nõustu Vaidlustaja väidetega, et tema pakkumust on ebaõiglaselt hinnatud, kuivõrd seal ei esine ühtegi puudust. Esiteks, Hankija ei saa anda Vaidlustaja proovitöö hindamiskriteeriumi alamkriteeriumi testide mõõtetulemuste (kiirus) eest 30 punkti (27 asemel), sest Kolmanda isiku nõuetekohane proovitöö testitulemus oli kiirem. Seega olid Vaidlustaja proovitöö testide mõõtetulemuste eest omistatud punktid õiguspärased. Teiseks, Hankija ei saa nõustuda, et Vaidlustaja proovitöös ei esinenud puudust nr 1. Tegemist ei ole mitmeti tõlgendatava nõudega, nagu väidab Vaidlustaja. Vaidlustaja ei ole vaidlustuses ega täiendavates seisukohtades esitanud ühtegi argumenti, mis seda arvamust muudaks. [Vaidlustaja ärisaladus] Kolmandaks, Hankija ei saa nõustuda ka sellega, et Vaidlustaja proovitöös ei esinenud puudust nr 2. [Vaidlustaja ärisaladus] 7. Kolmas isik, Nortal AS, vaidleb vaidlustusele vastu (Kolmanda isiku vastus esitati 10.01.2025. a ja 20.01.2025. kirjadega) ning palub jätta selle rahuldamata järgmistel põhjustel. 7.1. Vaidlustaja on vaidlustanud Kolmanda isiku pakkumuse vastavaks tunnistamise. Vaidlustaja hinnangul on see otsus õigusvastane, kuna Kolmanda isiku proovitöö nn testrakendus ei vasta kuues punktis Riigihanke nõuetele. Vaidlustaja arusaam on ekslik. 7.2. Vaidlustaja on vaidlustuses lugenud Nõuete tingimused pakkumuse vastavustingimusteks. Tegemist pole pakkumuse vastavustingimustega vaid nõuetega, mille täidetust pidi Hankija vastavalt RHAD-ile kontrollima pakkumuste hindamise faasis. Pakkumuse vastavustingimuseks, mille täitmist peab hankija RHS §-i 114 alusel kontrollima, saab olla ainult niisugune tingimus, mille täitmine on pakkujale kohustuslik. Hankija ei ole nõudnud pakkujatelt, et proovitöö peab kõigis aspektides vastama Nõuetele.
27 (40)
7.3. Vastavustingimuse „Proovitöö“ viimane lause sedastab otsesõnu, et pakkumus lükatakse tagasi paigaldus- ja/või kasutusjuhendi mitteesitamisel. Teisisõnu, vastavuskontrollis kontrolliti vaid proovitöö esitamise fakti ning seda, kas proovitöö sisaldab paigaldus- ja/või kasutusjuhendit. Proovitöö sisulise uurimise juurde liiguti pakkumuste hindamise etapis (RHS § 117), mida kinnitab Hankija kehtestatud Hindamismetoodika. Viimase järgi antakse kas vähe või üldse mitte punkte proovitööle, milles on erinevaid puudusi, sealhulgas ja eeskätt Nõuete valguses (vt Hindamismetoodika p 3.8). Sellest tuleneb omakorda, et proovitöö kooskõla Nõuetega ei saanud olla pakkumuse vastavustingimus, kuna hindamisele kuuluvad vaid vastavad pakkumused (RHS § 117 lg 1). Järelikult on Vaidlustaja etteheited Kolmanda isiku proovitööle pakkumuse vastavaks tunnistamise otsuse kontekstis asjakohatud. 7.4. Käsitlusi, kuidas vaidlustuskomisjon peaks sellises olukorras toimima, on erinevaid. Üks võimalus on jätta Vaidlustaja nõue Kolmanda isiku pakkumuse vastavaks tunnistamise otsuse kehtetuks tunnistamiseks RHS § 192 lg 3 p-i 7 alusel vaidlustamiseõiguse puudumise tõttu läbi vaatamata. Teine variant on jätta vaidlustus asjaomases osas rahuldamata. 7.5. Vaidlustaja on vaidlustanud Kolmanda isiku pakkumuse edukaks tunnistamise, leides kokkuvõtlikult, et Hankija on Kolmanda isiku pakkumusele andnud liiga palju hindepunkte ja Vaidlustaja omale liiga vähe. Kolmas isik ei nõustu nende hinnangutega. 7.6. Kolmandal isikul on kahtlus, kas vaidlustuskomisjon saab Vaidlustaja etteheited Kolmanda isiku proovitöö aadressil, mille viimane esitas ekslikult Kolmanda isiku pakkumuse vastavaks tunnistamise vaidlustamise kontekstis, üle võtta Kolmanda isiku pakkumuse edukaks tunnistamist puudutava nõude lahendamise juurde. Sellegipoolest esitab Kolmas isik oma selgitused kõigis Vaidlustaja esile toodud punktides. Vaidlustaja etteheited on spekulatiivsed ja väärad, mis valdavalt on tingitud sellest, et Vaidlustajal puudub täielik ligipääs Kolmanda isiku proovitööle. Kuivõrd Kolmandale isikule pole teada Vaidlustaja täpsemad etteheited tema enda proovitöö hindamise osas, ei saa Kolmas isik sel teemal informeeritult seisukohta avaldada. 7.7. Väidetav puudus nr 1 (ridade valimine). Vaidlustaja vaatleb väidetava mittevastavuse nr 1 aluseks olevat nõuet liiga kitsalt. RHAD-i tingimusi, sh nõudeid proovitööle, tuleb vaadelda süstemaatiliselt ja kogumis. Nii on lisaks Vaidlustaja välja toodule oluline arvestada, et Nõuded sätestavad seoses ridade valimisega järgmist: Valiku tegemine: 1) vali etteantud kohast alates „10, 20, 50, 100, 1000, 10 000“ rida või „kõik read“; 2) üksiku rea valimine/valiku eemaldamine; 3) mitme rea korraga valimine/valiku eemaldamine; 4) valik „Eemalda kogu valik“. Seega on Nõuetes selgelt kirjas, et kasutajal peab olema võimalus mitme rea korraga valimiseks ja valikute eemaldamiseks. Samuti peab kasutajal olema võimalik etteantud kohast alates valida 10, 20, 50, 100, 1000, 10 000 rida või siis kõik read. Kolmas isik realiseeris valikute tegemise funktsionaalsuse vastavalt nõuetele, võimaldades kasutajal kasutajaliideses mh mugavalt ja intuitiivselt ridu mitme kaupa valida. Kolmanda isiku lahenduse Selenium testid emuleerivad kasutaja toiminguid, teostades täpselt samu tegevusi, mis on kasutajate jaoks kasutajaliidesesse loodud. Seega on nii kasutajaliides kui testid nõuetekohased. Nõuete alamjaotus „Automaattestis realiseeritavad toimingud ja nende järjekord“ sätestab eraldi sammudena tegevused, kus kasutaja peab kindlale reale liikuma (nt sammudes nr 12 ja 17). Seda ka Kolmanda isiku loodud testides vastavalt nõuetele emuleeritakse. Vaidlustaja viidatud testlogides nr 8, 20 ja 21 selliseid nõudeid ei ole. Ka see kinnitab, et Kolmanda isiku testid käituvad vastavalt nõuetele. 7.8. Väidetav puudus nr 2 (toimingu õnnestumise kontrollimine). Selle väidetava puuduse puhul on oluline esitada Nõuetes esitatud tingimus täielikul kujul (lk 6 p 11): Testrakendus peab kirjutama andmebaasi eraldi tabelisse automaattestis tehtud toimingute tulemused ja toimingute käigus kasutatud sisendandmed. Näiteks jaotuses „Automaattestis realiseeritavad toimingud ja nende järjekord“ p 5 valitud 33 juhuslike ridade numbrid. Täpsem salvestamise nõue on välja toodud konkreetse automaattesti toimingu juures. Seega on sisuline nõue vaidlusaluses osas, et testrakendus peab automaattesti toimingute „tulemused“ kirjutama andmebaasi.
28 (40)
7.8.1. Seoses sõnumi ID 877859 all peetud teabevahetusega tuleb arvestada, et RHS § 46 lg 3 kohaselt ei tohi riigihanke alusdokumentide kohta esitatavad selgitused sisaldada uut teavet, ilma milleta ei ole pakkumuste esitamine võimalik või muutuksid juba esitatud pakkumused riigihanke alusdokumentidele mittevastavaks või muutuks nende sisu. Selgituste ja selgitamist võimaldavate dokumentide alusel on keelatud riigihanke alusdokumente muuta. Vastavalt vaidlustuskomisjoni praktikale tuleb RHS § 46 lg 3 vastu eksivad selgitused jätta kõrvale, st neil ei ole toimet. Seega saab Hankija selgitusi arvesse võtta niivõrd, kuivõrd need haakuvad Nõuetesse kirja panduga. Proovitöö nõuded ei näe ette, et automaattesti toimingute „tulemus“ peaks tingimata sisaldama mh teavet toimingu (eba)õnnestumise kohta. 7.8.2. Siiski kontrollivad Kolmanda isiku loodud testid iga toimingu õnnestumist ja kirjutavad tulemuse andmebaasi tabelisse. Vaidlustaja poolt tõendina esitatud logis on antud kontrolli tulemus nähtav veerus D, kus iga rea väärtus on TRUE. See näitab, et kõik logis kajastuvad toimingud on edukalt õnnestunud. Juhul, kui esineks ebaõnnestumised, oleks vastava rea veeru D väärtus FALSE ja veerus E kajastuks ebaõnnestumise põhjus. Täpselt sama info oleks ka nõuetekohaselt andmebaasis salvestatud. Seega on Kolmanda isiku lahendus nõuetekohane. Niisamuti kirjutab Kolmanda isiku lahendus andmebaasi teisigi toimingu tulemusi nagu nt sammu teostamisele kulunud aeg. 7.9. Väidetav puudus nr 4 (rakenduse sätete kajastamine) Vaidlustaja esile toodud nõuet tuleb sisustada Hankija poolt 19.08.2024. a huvitatud ettevõtja küsimusele antud selgituse valguses (sõnumi ID 876080). Hankijalt küsiti: 1) „Võimalus käivitada rakendus DEBUG-režiimis (vaikimisi DEBUG väljas). - palun täpsustada, mida DEBUG režiim peaks täpsemalt muutma testide jooksutamises. 1a) Kas see režiim aktiveerib ainult nö aeglase jooksutamise (pausi pikkus siis kasutaja poolt ette antud või vaikeväärus)? Või midagi muud? Või teeb midagi lisaks? Hankija vastas: 1) 1a) Ei. Rakenduse kiirema töö tagamiseks on pakkujale jäetud võimalus INFO (WARN, ERROR) režiimis tekitada logi minimaalselt (default). DEBUG režiimi mõte on, et selles režiimis laiendatakse rakenduse logi. Tegu on RHAD-i sisuga kooskõlas oleva ja seega RHS § 46 lg 3 mõttes lubatava selgituse/täpsustusega. Seega tuleb seda hanketingimuse sisustamisel arvesse võtta. Kolmanda isiku testrakendus käivitati logitasemega INFO, mis on vaikimisi logitasemeks. Vastavalt Hankija selgitusele on jäetud pakkujale võimalus selles režiimis tekitada logi minimaalselt. Muu testrakendust puudutav info nagu sätted, millega rakendus käivitati, kajastatakse logitasemetel DEBUG ja TRACE. Logitasemeid saab seadistada testrakenduse käivitamisel vastavalt juhendile. Seega on Kolmanda isiku testrakendus nõuetele vastav. 7.10. Väidetav puudus nr 5 (logis toimingute mõõtmistulemuste kajastamine, logiandmete vastuolu summaarse ajakuluga). 7.10.1. Vaidlustaja viidatud logifaili esimeses veerus ehk veerus A kajastub tegevuse identifikaator (tegevuse järjekorranumber). Järjekorranumbri genereerimiseks kasutatakse andmebaasi sequence’it. Selline lahendus garanteerib, et numbrid jooksevad alati järjest. Vaadates logifaili kõiki ridu, on näha, et veerus A kajastuvad järjekorranumbrid jooksevad katkematult järjest vahemikus 110–218. Lisaks esineb logi väljavõttes üks rida, mille järjekorranumber on 403. Eelnevast järeldub selgelt, et rida numbriga 403 on sattunud logi väljavõttesse ekslikult ja ei ole selle konkreetse käivitamise ajal tekkinud. Testid on jooksnud edukalt ja logides on õiged tulemused. Logirea nr 403 järjekorranumber ja aeg näitavad, et see on tekkinud hiljem ja seega ei mõjutanud see mitte mingil viisil antud testi tulemusi, kuna testi läbiviimisel seda rida veel ei olnud. 7.10.2. Logiväljavõtte veerus F kajastub vastava sammu toimingu aeg. Logirea 403 puhul on toimingu ajaks 83 ms. Vaidlustaja viitab, et logifaili sammus ID 208 on kõikide sammude koguaeg 11826 ms ja see erineb kõikide logiridade aja summast täpselt 83 ms võrra. Ka see tõestab, et rida ID-ga 403 on ekslikult väljavõttesse sattunud. Kui see rida eemaldada, siis klapib kõikide ridade aegade summa real ID-ga 208 kajastatud ajaga. Järelikult Vaidlustaja arvatud probleemi tegelikult ei esine. 7.11. Väidetav puudus nr 6 (rakenduse käivitamine). 7.11.1. Kolmanda isiku testrakenduse dokumentatsioonis on põhjalikult kirjeldatud, kuidas testrakendust põhirakendusega erinevast masinast käivitada. Tehniliselt sõltub Kolmanda
29 (40)
isiku testrakendus põhirakendusest ainult kahe parameetri kaudu, mille saab vastavalt nõuetele käsurea kaudu käivitamisel ette anda. Parameetrid on põhirakenduse URL ja andmebaasi ühenduse URL. Juhul, kui põhirakendus ja andmebaas on testrakendusele kättesaadavad, siis testid käivituvad. Testide käivitamine töötab täpselt samamoodi samas kui ka erinevas masinas juhul, kui põhirakendus ja andmebaas on käivitatud ning need on testrakendusele URL-i kaudu kättesaadavad. 7.11.2. Testrakenduse käivitamist põhirakendusega erinevast masinast on Kolmas isik korduvalt testinud ja juhendi järgi käivitades see töötab. Vaidlustaja viidatud salvestiselt ei ole näha, millisel viisil üritas Hankija esialgu testrakendust käivitada. Võimalik, et testi läbiviijal ei tulnud välja käsurea kaudu keskkonnamuutuja seadmine. Videost on näha, kuidas Hankija käivitab testrakenduse küll juhendist erineval viisil, aga siiski edukalt. Hankija käivitas testrakenduse ja Chrome’i eraldi konteinerites ning avas pordi 4444, mis on sellise käivitusviisi puhul korrektne ja vajalik. Selline käivitusviis ei muuda testi tulemusi. Testrakenduse käivitamiseks on veel erinevaid viise ja Hankija võib valida endale kõige sobivama, eeldusel et sellest testi andmed ei muutu. Antud juhul kinnitavad salvestis ja seal näha olevad logid testimise korrektsust. 7.12. Seega on Kolmanda isiku proovitöös kõik kõnealused nõuded täidetud. Täpselt juhendi järgi tegutsedes käivituvad testid nii samas kui erinevas masinas. Vaidlustaja on osutanud Hankija 19.08.2024. a selgitustele (sõnumi ID 876721), mille järgi rakendus ja testid käivitatakse erinevates masinates, siis tegelikult RHAD ei sätesta nõuet, et testid ja rakendus peavad olema käivitatavad erinevatest masinatest. Seega ei tohiks RHS § 46 lg-st 3 lähtuvalt neid selgitusi arvesse võtta. Ent isegi kui lugeda need selgitused toimet omavaks, siis täidab Kolmanda isiku proovitöö ikkagi kõik nõuded. 7.13. Väidetav puudus nr 7 (nõutava paigaldus- ja kasutusjuhendi puudumine). Tuginedes väidetava puuduse nr 6 käsitluse all antud selgitusele on Kolmanda isiku proovitöö lahendus kõikidele nõuetele vastav ka seonduvalt väidetava puudusega nr 7. Kolmanda isiku testrakenduse dokumentatsioonis on kirjeldatud, kuidas testrakendust käivitada. Täpselt juhendi järgi tegutsedes käivitamine õnnestub. 7.14. Kolmanda isiku proovitöös ei esine Vaidlustaja väidetud puudujääke. Kuivõrd kõik Vaidlustaja väited selle kohta, miks tuleks Kolmanda isiku pakkumusele anda vähem hindepunkte, tulenevad nendest mitteesinevatest puudujääkidest, siis puudub alus hinnata Kolmanda isiku proovitööd mõõtmistulemuste ja dokumentatsiooni kriteeriumide alusel maksimumist väiksemate punktidega. 7.15. 23.01.2025. a esitas Kolmas isik täiendavad seisukohad. 7.15.1. Kolmas isik ei nõustu Vaidlustaja väitega, et Nõuetes esitatud nõuded on pakkumuse vastavustingimused. Kolmanda isikuga sama arusaama jagab ka Hankija. 7.15.2. Vaidlustaja arvates on Hankija ja Kolmanda isiku õiguslik käsitlus pakkumuse vastavustingimuste ja hindamiskriteeriumide vahest „pelgalt formaalne“. Nii saab iseloomustada aga just Vaidlustaja positsiooni. Vaidlustaja küll väidab, et RHAD-i tuleb vaadelda „terviklikult“, kuid seejärel rebib ta kontekstist välja kaks sõna vastavustingimusest „Proovitöö“, et siis sellest tuletada, et vastavus Nõuetele on kohustuslik vastavustingimus. Seda tehes jätab Vaidlustaja tähelepanuta kohe järgmised sõnad tingimuses: [---] ja hindamisele kuuluva proovitöö [---]. Vaidlustaja jätab täielikult kõrvale muud asjasse puutuvad alusdokumendid, eeskätt hindamismetoodika. 7.15.3. Vaidlustaja täiendavatest seisukohtadest näib, et Vaidlustaja on arvamusel, et pakkumuse vastavustingimused tulenevad mingist RHS-ist ja RHAD-ist kõrgemal asuvast loogikast. Pakkumuse vastavustingimused on hankija määrata ja kui vastavustingimused on vaidlustamistähtaja möödumisel muutunud lõplikuks, siis peavad nii pakkujad, hankija ise kui vaidlust lahendav organ lähtuma hankija kehtestatud tingimustest. 7.15.4. Vaidlustaja väide, et Hankija käsitluse järgi võinuks pakkujad esitada ka suvalised või isegi tühjad failid, on demagoogia. Kui vastavustingimus nõuab proovitöö lähtekoodi ja paigaldus- ja kasutusjuhendi esitamist, siis tuleb need ka esitada. Nõutud materjali põhimõttelisest esitamisest (st kas kood või juhend on faktiliselt esitatud) tuleb rangelt eristada
30 (40)
seda, kas materjali sisu erinevais punktides vastab mingitele spetsiifilistele nõuetele. 7.15.5. Vaidlustaja väitel ei tohi hanketingimusi tõlgendada ainult Hankija arusaamast lähtuvalt, kuid jõuab siis järelduseni, et hanketingimusi tuleb tõlgendada üksnes Vaidlustaja, arusaamast lähtuvalt. Kolmas isik ei jaga Vaidlustaja vaadet nagu pidanuks proovitöö tingimata ja kõigis punktides vastama Nõuetele. 7.15.6. Vaidlustaja teeb põhimõttelise vea arvates, et ühed ja samad nõuded saavad olla ühtaegu nii pakkumuse vastavustingimused kui pakkumuste hindamise kriteeriumid. Tegu on olemuslikult vastandlike tingimustega. Vastavustingimus on jah/ei põhine miinimumnõue, hindamiskriteerium on mitmete erinevate arvuliste väärtustega vabatahtlik skaala (hindamismetoodika mõttes „parem“ pakkumus saab preemiaks rohkem hindepunkte). Seega, vastavustingimus on täitmiseks kohustuslik, hindamiskriteerium mitte. RHS § 85 lg 1 teine lause sätestab, et pakkumuste hindamise kriteeriumina ei või kasutada §-ide 99–101 alusel kehtestatavaid kvalifitseerimise tingimusi. Sellest reeglist on erand (§ 101 lg 1 p 6), kuid seegi erand on lubatud vaid siis, kui samu andmeid ei kasutata ühtaegu nii pakkumuste hindamiseks kui pakkujate kvalifitseerimiseks. Kuna pakkuja kvalifitseerimise tingimus, nii nagu ka pakkumuse vastavustingimus, on jah/ei põhine miinimumnõue, kehtib RHS § 85 lg 1 analoogia mutatis mutandis ka pakkumuse vastavustingimuste ja pakkumuste hindamise kriteeriumide omavahelise suhte kontekstis. 7.15.7. Vaidlustaja väide, et tema vaidlustus sisaldab „alternatiivseid nõudeid“, on mõistmatu, kuna alternatiivseid nõudeid vaidlustus ei sisalda. Alternatiivne nõue tähendab, et vaidlustaja taotleb primaarselt tulemust X ning juhul kui tema primaarnõue peaks jääma rahuldamata, siis sekundaarselt tulemust Y. Vaidlustaja vaidlustus niimoodi üles ehitatud ei ole. Vaidlustaja on nõudnud: tunnistada kehtetuks Rahandusministeeriumi Infotehnoloogiakeskuse 23.12.2024 otsused AS-i Nortal pakkumuse vastavaks tunnistamise ja edukaks tunnistamise kohta. Seega on Vaidlustaja ilma mistahes alternatiivsuseta nõudnud kahe erineva hankeotsuse kehtetuks tunnistamist. 7.15.8. Seoses täiendavates seisukohtades esitatud peamiste uute väidetega märgib Kolmas isik alljärgnevat. 7.15.8.1. Väidetav puudus nr 1 (ridade valimine) Vaidlustaja tõlgendus RHAD-ile on liiga kitsas ja moonutab nende sisu. Vaidlustaja teeb katseülesande nõuetest meelevaldseid ja ebakorrektseid järeldusi. Testi stsenaariumit tuleb vaadelda tervikuna ja Nõuetes on selgelt öeldud, millistes testi sammudes peab mõnele konkreetsele reale liikuma. Seda peab tegema sammudes 12, 17 ja 19. Sealjuures eelnevad need sammud masstegevuse ridadele 13, 18 ja 20. Seega on testi stsenaariumis väga täpselt ette öeldud, millal peab konkreetsetele ridadele liikuma ja iga muu käitumine muudaks lahenduse nõuetele mittevastavaks. Kolmas isik on realiseerinud oma lahenduse täpselt nõudeid järgides. Vaidlustaja väide, et mõne masstegevuse puhul (nt tegevused 8 ja 21) peab testrakendus ridu või lehekülgi ükshaaval avama ning mõne teise puhul (nt tegevused 1, 6, 11, 13, 16, 18, 20) ei pea seda tegema, on arusaamatu ja põhjendamatu. Eriti arvestades, et osade masstegevuste järel näeb testi stsenaarium järgmise sammuna ette kindla rea avamise. Vaidlustaja väide, et tavakasutaja võib osasid tegevusi pimesi teha, ei ole õige. Testimisel peab lähtuma etteantud stsenaariumist, arvestades sellega, et kõik testis teostatavad toimingud peavad olema ka tavakasutajale tehtavad. Kolmanda isiku proovitöös on need nõuded täidetud. 7.15.8.2. Seoses nn pagineerimisega leiab Vaidlustaja, et pagineerimine on Riigihankes nõutav, viidates sealjuures RHAD-i dokumendile „RFN 2.8.0“ ja selle nõudele 104. Samuti väidab Vaidlustaja, et Kolmanda isiku lahenduses on pagineerimine teostamata. Kõigepealt, Vaidlustaja viimane väide on väär. Kolmanda isiku proovitöös on nimekirjade pagineerimine realiseeritud vastavalt kõikidele nõuetele. Seda kinnitab kuvatõmmis [Kolmanda isiku ärisaladus]. Lisaks on Vaidlustaja viide dokumendile „RFN 2.8.0“ proovitöö kontekstis tegelikult asjakohatu, kuna proovitöö ei pidanudki vastama eelnimetatud dokumendi nõuetele – ei selleks, et täita mõni vastavustingimus ega selleks, et pälvida kõrgemaid hindepunkte. „RFN 2.8.0“ on dokument, mis sätestab kõigi Hankija haldusala toodangus kasutatavate rakenduste ristfunktsionaalsed nõuded. See on lisatud RHAD-i, et pakkujatel oleks teave, milliste nõuete täitmisega peavad nad potentsiaalse arenduspartnerina tulevikus arvestama. Riigihankes
31 (40)
piiratud ressursside juures tehtav proovitöö ei pea vastama standarditele, mida nõutakse toodangkeskkonda paigaldatavalt tarkvaralt. Eelöeldut kinnitab ka asjaolu, et Hankija on Kolmanda isiku poolt pakkumuste esitamise eel esitatud sõnaselge küsimuse peale, millised RHAD-i dokumendid kohalduvad proovitööle, loetlenud kõik asjaomased dokumendid ja nende seas ei ole „RFN 2.8.07 “. Eelnevast tuleneb, et isegi kui „RFN 2.8.0“ oleks proovitöö suhtes kohaldatav (mida see ei ole), siis Kolmanda isiku proovitöö ikkagi täidab Vaidlustaja viidatud pagineerimise nõude. 7.15.8.3. Väidetav puudus nr 2 (toimingu õnnestumise kontrollimine). Kolmas isik kinnitab taas, et tema testrakendus kontrollib iga toimingu õnnestumist ja salvestab vastava info nõuetekohaselt andmebaasi. Kolmanda isiku testrakendus kirjutab iga toimingu sisu andmebaasi. Logi väljavõttes kajastub see veerus C. Testi esimene samm on nt „1. Vali kõik read“. Veerg D kajastab kontrolli tulemust, näidates, kas tegevus õnnestus või ebaõnnestus. Õnnestumise korral on selge, mida toiming tegi, sest vastav selgitus kajastub iga rea veerus C. Näiteks esimese sammu õnnestumise korral valiti kõik read. Ebaõnnestumise korral on vajalik salvestada täiendav info, sest midagi läks teistmoodi ja sellisel juhul kajastaks veerg E ebaõnnestumise põhjust. 7.15.8.4. Väidetav puudus nr 4 (rakenduse sätete kajastamine). Vaidlustaja väide nagu testrakendus ei logiks infot „headless“ režiimi kasutamise kohta, on ekslik ja alusetu oletus. Testrakendus kirjutab mh ka seda infot konsooli. „Headless“ režiimis käivitamise korral tekivad logisse näiteks järgmised read [Kolmanda isiku ärisaladus]. Samamoodi kajastub konsooli logis info, kui „headless“ on välja lülitatud. 7.15.8.5. Väidetav puudus nr 5 (logis toimingute mõõtmistulemuste kajastamine, logiandmete vastuolu summaarse ajakuluga). Väidetav puudus nr 5 on Vaidlustaja otsitud süüdistus. Nii Hankija kui Kolmas isik on oma eelnevates põhjendustes põhjalikult selgitanud, et üks ekslikult logi väljavõttesse sattunud rida ei muuda mingil viisil testide tulemust. Logidest on selgelt näha kõik testi sammud, nende järjekorranumbrid, teave tegevuse sisu ja õnnestumise kohta ning igale sammule kulunud ajad. Samuti on logis näha koondrida, mis kajastab mh testide koguaega ja see aeg ühtib üksikute ridade summaga. Ekslikult logisse sattunud real ei ole mingit mõju testidele ega tulemustele. 7.15.8.6. Väidetav puudus nr 6 (rakenduse käivitamine). Nõuded sätestavad: Testid käivitatakse vähemalt kahes RmIT hallatavas seadmes, mille spetsifikatsioonid on toodud „Nõuded ja arhitektuur“ peatükis ning mis on samad kõigi pakkujate jaoks. Seda nõuet meelevaldselt tõlgendades leiab Vaidlustaja, et põhirakendust ja integratsiooniteste peab olema võimalik käivitada erinevates seadmetes. Tegelikult ei ole kõnealuses tingimuses sellele ühtegi viidet. Nõue on, et teste käivitatakse vähemalt kahes seadmes, aga seejuures ei ole öeldud, et põhirakendus peab testide käivitamisel erinevas seadmes jooksma. Kolmanda isiku testrakendust saab vastavalt juhendile edukalt käivitada erinevas seadmes, aga sellegipoolest on vale eeldada, et seda nõuavad lausa Nõuded. 7.15.8.7. Tuginedes asjatundja A.S.-i arvamusele ja viidates konkreetsetele koodiridadele väidab Vaidlustaja, et käsurealt ei ole võimalik hallata rakenduse „headless“ ja logitaseme sätteid. See ei ole õige, sest Kolmanda isiku testrakendust on võimalik vastavate käsurea parameetritega käivitada ja viidatud koodilõigud ei takista seda. Kinnituseks on kuvatõmmis testide käivitamise sätetest, mida on võimalik hallata käsurealt [Kolmanda isiku ärisaladus]. Ka kuvatõmmiselt testide käivitamisel tekkivast konsooli logi lõigust, kus on näha käsurealt ette antud parameetrite kasutamine. [Kolmanda isiku ärisaladus]. 7.15.9. Seoses Vaidlustaja täiendavatele seisukohtadele lisatud asjatundja A.S.-i arvamusega märgib Kolmas isik: 1) menetlusosalise esitatud asjatundja arvamus ei ole eksperdiarvamus RHS-i tähenduses. Menetlusosalise enda initsiatiivil kogutud ja esitatud kolmanda osapoole, keda menetlusosaline peab asjaomase valdkonna spetsialistiks, hinnang on (pelgalt) dokumentaalne tõend. Seega ei ole sellisel dokumendil mingit ettemääratud (teistest tõenditest suuremat) tõendijõudu. Menetlusosalise esitatud asjatundja arvamust tuleb hinnata kogumis teiste tõendite ja asjas tuvastatud asjaoludega nii nagu iga teist tõendit. Vaidlustuskomisjon ei ole
7 Vt riigihangete register, sõnumi ID: 875269.
32 (40)
seotud asjatundja arvamusega; 2) Vaidlustaja sai kaasatud asjatundjale edastada üksnes need lähteandmed, mis on teada talle endale. Asjatundja arvamus, mis on antud teades vaid murdosa kõigist asjasse puutuvaist asjaoludest, ei ole usaldusväärne. Seega leiab Kolmas isik, et A.S.-i arvamus tuleb ebausaldusväärsuse tõttu kõrvale jätta VAIDLUSTUSKOMISJONI PÕHJENDUSED Taotluse läbivaatamine 8. Vaidlustaja esitas vaidlustuses taotluse Kolmanda isiku proovitöö kohta teabe avaldamiseks, paludes avaldada Vaidlustajale Kolmanda isiku proovitöö testrakenduse paigaldus- ja kasutusjuhend ning testrakenduse konfiguratsioonifail (Hankija poolt muutmata kujul), samuti proovitöö põhirakenduse kuvatõmmis, millest nähtub saki „Kõik seisundid“ terviklik vaade. Kolmas isik palus vaidlustuskomisjonil taotlust mitte rahuldada, kuna peab küsitud materjale EKTÄKS § 5 lg 2 alusel oma ärisaladuseks. Seda avaldas Kolmas isik ka juba oma pakkumuses esitatud failis „AS-i Nortal pakkumuses sisalduv ärisaladus“. Kolmanda isiku hinnangul on tema meeskond proovitöösse panustanud olulisi töötunde ja proovitöös kajastuvad erinevad tehnilised lahendused, mille avaldamine konkurendile tekitaks Kolmandale isikule olulist kahju. Seetõttu on asjaomasel teabel Kolmanda isiku jaoks oluline kaubanduslik väärtus. Vaidlustuskomisjon teavitas menetlusosalisi oma 13.01.2025 teates nr 12.2-10/2 muuhulgas sellest, et ei rahulda Vaidlustaja taotlust avaldada talle nõutud teave, kuna vaidlustuskomisjon on seisukohal, et eelnimetatud andmete puhul on tegemist Kolmanda isiku ärisaladusega EKTÄKS § 5 lg 2 mõttes. Vaidlustuskomisjon jääb oma varem avaldatud seisukoha juurde. Põhjusel, et pakkujate proovitööd sisaldavad pakkujate ärisaladust, on ka käesolev otsus tehtud erinevates versioonides. Kolmanda isiku pakkumuse vastavaks tunnistamise otsus 9. Vaidlustaja on seisukohal, et Hankija oleks pidanud Kolmanda isiku pakkumuse RHS § 114 lg 2 alusel tagasi lükkama, kuna selles esitatud proovitöös esineb Vaidlustaja hinnangul vähemalt 6 mittevastavust Nõuetele. Hankija ja Kolmas isik on seisukohal, et Nõuetes toodu ei ole käsitletav vastavustingimustena, kuna Proovitöö oli aluseks pakkumuste hindamisele, mistõttu Hankija ei pidanud kontrollima pakkumuste vastavuse kontrolli etapis pakkumuste vastavust Nõuetele. Seega tuleb vaidlustuse lahendamiseks esmalt tuvastada, kas Nõuetes sisalduv on käsitletav vastavustingimustena või mitte, ehk kas Hankija pidi kontrollima pakkujate esitatud proovitööde vastavust Nõuetele pakkumuste vastavuse kontrollimisel. Jaatava vastuse korral tuleb Hankija otsus kehtetuks tunnistada asjakohase vastavuse kontrolli teostamata jätmise põhjusel, eitava vastuse korral tuleb vaidlustus Kolmanda isiku pakkumuse vastavaks tunnistamise otsusele jätta rahuldamata. 10. RHAD-i dokumendis Vastavustingimused on kehtestatud 8 vastavustingimust. Vastavustingimus PROOVITÖÖ on sõnastatud järgmiselt: Pakkuja peab esitama dokumendis „Nõuded proovitöö teostamiseks“ toodud nõuetele vastava ja hindamisele kuuluva proovitöö lähtekoodi koos paigaldus- ja kasutusjuhendiga. Paigaldus- ja/või kasutusjuhendi mitteesitamisel lükatakse pakkumus tagasi. Küsimused ettevõtjale: 1. Pakkuja esitab proovitöö lähtekoodi (arhiiv). Vabas vormis dokument 2. Pakkuja esitab paigaldusjuhendi. (Vabas vormis dokument) 3. Pakkuja esitab kasutusjuhendi. (Vabas vormis dokument) Vaidlust ei saa olla selles, et Proovitöö kriteerium on üks kahest Riigihankes kehtestatud hindamise kriteeriumist (osakaaluga 60 punkti. Kvaliteet - hankija hinnatav). Kriteeriumi „Proovitöö“ hindamisel antakse punkte pakkumuste sisu kõrvutamisel ja proovitöö mõõtmistulemuste eest. Hindamismetoodika on toodud riigihanke alusdokumendis „Hindamismetoodika kirjeldus“8. Hindamismetoodika p-i 3 Hanke proovitöö teostus alapunktides 3.1-3.8 on Hankija
8 Vt RHAD-i dokument „Hindamiskriteeriumid ja hinnatavad näitajad“.
33 (40)
kirjeldanud põhjalikult pakkumuste hindamist Proovitöö kriteeriumi alusel. 11. Vaidlustuskomisjon on seisukohal, et Nõuded ei ole käsitletavad pakkumuste vastavuse tingimusena ning Hankija ei pidanud kontrollima Kolmanda isiku pakkumuse (ega ühegi teise pakkumuse) vastavuse kontrollimisel nende vastavust Nõuetes sisalduvatele tingimustele. Seda järgmistel põhjustel: 1) kui Hankija kontrolliks proovitöö vastavust Nõuetele juba pakkumuste vastavuse kontrollimisel muutuks Proovitöö kriteerium hindamiskriteeriumina mõttetuks, sest kui hindamisele pääseksid vaid need proovitööd, mis vastavad täielikult Nõuetele, tuleks Hankijal anda kõigile neile maksimumpunktid; 2) Hindamismetoodikast nähtub ilmselgelt, et Hankija on näinud ette, et hinnatakse pakkumusi, mis kogu ulatuses võivad ka Nõuetele mitte vastata, ning sellisel juhul antakse proovitööle konkreetse alamkriteeriumi alusel lihtsalt vähem punkte. Nt alamkriteeriumi 2 Arhitektuuri põhimõtete jälgimine puhul antakse 10 punkti, kui: Tulemi arhitektuur on loodud proovitöös kirjelduses „Nõuded ja arhitektuur“ etteantud juhiste põhjal. Realiseeritud on kõik komponendid, kasutatud on etteantud raamistikke ja andmebaasi mootorit. Rakendus kohaldub erinevate ekraani suuruste ja resolutsioonidega. Haldusliideses on realiseeritud sorteerimise filtrid, SQL päringud ja päringu tulemi eksportimine. Tulemis esineb kaks puudust ning 5 punkti, kui Tulemi arhitektuuris on jälgitud etteantud nõudeid, kuid ei ole realiseeritud kõiki nõutud komponente või ei ole kasutatud soovitatud raamistikke. Esineb kolm puudust. Alamkriteeriumi 4 Testide mõõtmistulemused (kiirus) on märgitud: Mõõtmistulemused lähevad arvesse ainult juhul, kui proovitöös toodud funktsionaalsuse testides on saadud vähemalt 5 punkti ning kõik proovitöös nõutud automaattesti toimingud on korrektselt realiseeritud. Juhul kui automaattesti toimingud ei ole realiseeritud vastavalt proovitöö nõuetes toodule, siis omistatakse käesolevale kriteeriumile 0 punkti; 3) pakkumuste vastavuse kontrollimine riigihanke alusdokumentides esitatud tingimustele (RHS § 114) ja pakkumuste hindamine vastavalt riigihanke alusdokumentides määratud hindamise kriteeriumidele (RHS § 117) on olemuslikult erinevad hankemenetluse instituudid. Kui vastavustingimustele vastavuse puhul tuleb hankijal otsus teha nö skaalal vastab/ei vasta, siis pakkumuste hindamisel tuleb lähtuda hindamise kriteeriumidest e sellest, mida hankija üldse hinnata soovib ning millise osakaalu hankija on hindamisel mingi asjaolu esinemisele või puudumisele andnud. RHAD-i dokumendist „Hindamiskriteeriumid ja hinnatavad näitajad“ ning Hindamismetoodikast nähtub, et Hankija ei ole kehtestanud Nõudeid vastavustingimusena vaid alusena (hindamiskriteeriumi) Proovitöö kriteeriumi kohaldamiseks; 4) vastavustingimuse PROOVITÖÖ sõnastusest (vt käesoleva otsuse p 10) nähtub, et vastavustingimuseks on hindamisele kuuluva proovitöö lähtekoodi koos paigaldus- ja kasutusjuhendiga esitamine. Seega leiab vaidlustuskomisjon, et pakkumuse vastavuse kontrollimisel pidi Hankija tuvastama üksnes fakti, et pakkuja on esitanud pakkumuses proovitöö lähtekoodi ning paigaldus- ja kasutusjuhendi ega pidanud hakkama kontrollima proovitöö sisulist vastavust Nõuetele. Loomulikult pidi Hankija seejuures kontrollima, et tegemist on asjakohaste dokumentidega (asjasse puutumatute dokumentide esitamine on pakkumuse tagasilükkamise alus). 12. Eeltoodud põhjustel vastab vaidlustuskomisjon p-is 9 püstitatud küsimusele eitavalt ja on seisukohal, et ükski Vaidlustaja põhjendustest (Kolmanda isiku proovitöö väidetavad mittevastavused Nõuetele) ei saa olla aluseks Kolmanda isiku pakkumuse tagasilükkamisele, kuna tegemist ei ole vastavustingimustega. Hankija on õigesti tuvastanud, et Kolmanda isiku pakkumuses sisaldus proovitöö lähtekood koos paigaldus- ja kasutusjuhendiga (vaidlustuskomisjon on kontrollinud nende olemasolu Vaidlustaja pakkumuses). Hankija otsus Kolmanda isiku pakkumuse vastavaks tunnistamiseks on kooskõlas RHS § 114 lg-ga 1, alused selle kehtetuks tunnistamiseks puuduvad ja vaidlustus Kolmanda isiku pakkumuse vastavaks tunnistamise otsusele tuleb jätta rahuldamata. Kolmanda isiku pakkumuse edukaks tunnistamise otsus 13. Vaidlustaja taotleb Kolmanda isiku pakkumuse edukaks tunnistamise otsuse kehtetuks tunnistamist kahel põhjusel: 1) Kolmanda isiku pakkumusele on antud Proovitöö kriteeriumi alusel liiga palju punkte; 2) Vaidlustaja pakkumusele on antud Proovitöö kriteeriumi alusel liiga vähe punkte.
34 (40)
14. Vaidlustuskomisjon on seisukohal, et proovitöö puhul on tegemist nn loovtööga, mille hindamine Proovitöö kriteeriumi alusel on selle kriteeriumi olemusest tulenevalt valdavas ulatuses Hankija kaalutlusotsus, mis oma hinnangulise iseloomu tõttu on vaidlustuskomisjoni või kohtu poolt kontrollitav üksnes piiratud ulatuses. Hankija enda poolt on eelnimetatud subjektiivsuse aspekti minimeerimiseks kehtestatud Hindamismetoodika p-is 3.2, et Proovitöö kriteeriumi alamkriteeriumidest lähtudes hindab proovitöid Hankija hindamiskomisjon (edaspidi Komisjon) konsensuslikult. See tähendab, et Komisjoni liikmed pidid iga alamkriteeriumi osas antavas hindes jõudma üksmeelele. Vaidlustuskomisjonil ei ole alust kahelda Komisjoni liikmete pädevuses ja seda ei ole teinud ka Vaidlustaja. 15. Nn loovtööde kohtuliku kontrolli ulatust selgitades on Riigikohus oma 11.12.2020 otsuses nr 3-20-1198 (p 17) siiski märkinud, et ülalpool rahvusvahelist piirmäära korraldatud avaliku hankemenetluse puhul peavad vaidlustuskomisjon ja kohtud hankija otsuse hinnangulisele iseloomule vaatamata [---] minema kaugemale ilmselgete vigade testist ja kontrollima sisuliselt kaebaja pakkumusele antud hinnangute põhjendatust, iseäranis, kas hindamisel arvestati asjakohaseid, täielikke ja tõendatud fakte ning õiguse üldpõhimõtteid, samuti, kas hindamine toimus RHAD-s teatavaks tehtud hindamiskriteeriumide kohaselt (RHS § 117 lg 1). VAKO ja kohtud ei pea sedalaadi hinnangute kontrollimisel asendama hankija hinnanguid enda omadega ega kõrvaldama kõiki mõeldavaid kahtlusi (vt ka kolleegiumi otsus nr 3-20-718/28, p 18). Kõrvaldada tuleb aga vähemalt olulised kahtlused ning sellest ei piisa üldsõnalistest ja põhistamata selgitustest (kolleegiumi otsus nr 3-20-924/, p 31; otsus asjas nr 3-3-1-50-15, p 23). [---] Seoses pakkumuste hindamisega selgitas Riigikohus eelviidatud otsuse p-is 20 ka järgmist: [---] Hindamiskomisjonile peab jääma vabadus oma tööd korraldada, muutmata hindamiskriteeriume ega nende osakaale. Üldjuhul tuleks lisaks sisulistele hindamiskriteeriumidele RHAD-s määrata kindlaks hindamismetoodika (sh punktiskaala), kuid see ei pea olema ammendav, teisisõnu võib seda pärast pakkumuste avamist kohandada konkreetsetele pakkumustele. Hankijatel ei ole kvalitatiivse hindamise kriteeriumidesse võimalik kirja panna kõiki detaile, mis võivad hindamisel oluliseks osutuda. Vajaduse korral võib aga jätta metoodika ka ette kindlaks määramata ja kujundada see tervikuna alles pärast pakkumuste avamist (Euroopa Kohtu otsus asjas nr C-6/15: Dimarso, p-d 27-31; C-252/10 P:Evropaïki Dynamiki, p 35). Hindamismetoodika kohandamise õigus annab hankijale pakkumuste hindamisel suurema otsustusruumi kui pakkumuste vastavuse kontrollimisel (vrd kolleegiumi otsus nr 3-19-1464/41, p 13). Hindamismetoodika võib põhineda nii absoluutskaalal kui ka samas hankes esitatud pakkumuste suhtelisel võrdlusel. Suhtelise hindamismetoodika puhul peab võrdlemine olema dokumenteeritud. Ka absoluutse hindamisskaala puhul peab hankija vajaduse korral selgitama sarnaste pakkumuste erinevat hindamist. 16. Kuigi osana pakkumuse hindamisest on pakkumuste hindamine vaidlustuses käsitletavate alamkriteeriumide alusel Hankija ainupädevuses ning nagu eespool märgitud, annavad need alamkriteeriumid juba olemuslikult hindajale suure hinnanguruumi, põhinedes võrdlemisi subjektiivsetel elementidel (vt Riigikohtu 09.08.2016 otsuse nr 3-3-1-51-16 p 16), peab vaidlustuskomisjon Riigikohtu otsusest nr 3-20-1198 tulenevalt käesoleval juhul kontrollima, kas pakkumuste hindamisel Hankija (Komisjon): 1) lähtus RHAD-is kehtestatud hindamiskriteeriumidest, nende alakriteeriumidest ning hindamise korrast; 2) arvestas hindamisel asjakohaseid, täielikke ja tõendatud fakte. Juhindudes Riigikohtu otsuse nr 3-20-1198 p-ist 21 [---] Seejuures on piisav, kui pakkumuse edukaks tunnistamise korraldusest või selles viidatud dokumendist nähtuvad, millistele alustele hankija otsustused tuginevad (kolleegiumi otsus asjas nr 3-3-1-45-12, p 29). Väga üldsõnalised põhjendused võivad olla vastuolus RHS § 117 lg-ga 1 ja § 47 lg 4 p-ga 3, vaidluse korral saab aga hankija otsuse põhjendusi kohtumenetluses täpsustada. [---] arvestab vaidlustuskomisjon Hankija otsuse põhjendatuse kontrollimisel ka Hankija poolt vaidlustusmenetluses esitatud asjakohaseid põhjendusi. 17. Hindamismetoodikas on Proovitöö kriteeriumis kehtestatud neli alamkriteeriumi, millest lähtudes Hankija hindamiskomisjon (edaspidi Komisjon) pakkumusi hindas: 1) Dokumenteerimine - maksimumpunktid 20; 2) Arhitektuuri põhimõtte jälgimine - maksimumpunktid 20; 3) Funktsionaalsus - maksimumpunktid 30; 4) Testide mõõtmistulemused - maksimumpunktid 30.
35 (40)
Iga alamkriteeriumi puhul on kehtestatud, millistel asjaoludel antakse selle alamkriteeriumi alusel 20, 15, 10, 5 või 0 punkti. Vaidlustuskomisjon leiab, et pakkumuste hindamiseks Proovitöö kriteeriumi alusel on Hankija kehtestanud Hindamismetoodikas enamiku alamkriteeriumide kohta võrdlemisi täpse 5-astmelise punktide andmise skaala (erandiks on alamkriteerium Testide mõõtmistulemused, mille puhul on määratud, et parima mõõtmistulemusega proovitöö saab maksimumpunktid (30) ning teised proovitööd vastavalt tulemuste pingereale teatud protsendi maksimumpunktidest), samas on jäetud täpselt lahti kirjutama alamkriteeriumide enda sisu. Komisjoni koostatud proovitöö hindamise kokkuvõtted, sh Nortal AS-i proovitöö hindamise kokkuvõte ning Wisercat Estonia OÜ proovitöö hindamise kokkuvõte, on äärmiselt üldsõnalised, piirdudes juhul, kui proovitööle on antud mingi alamkriteeriumi alusel maksimumpunktid, vaid hindamisskaalal vastavate punktide andmise aluse tsiteerimisega või puuduste tuvastamisel puuduste lühida välja toomisega. Kolmanda isiku pakkumuse hindamine 18. Vaidlustuskomisjon märgib esmalt, et Kolmanda isiku proovitöös väidetavalt esinevaid puudusi on vaidlustuses kirjeldatud eelkõige Kolmanda isiku pakkumuse mittevastavust kinnitavate asjaoludena ning alles teises järjekorras on Vaidlustaja Kolmanda väitnud, et kui neid ei saa käsitleda mittevastavusena vastavustingimustele, tuleb neid käsitleda Kolmanda isiku hindamise kontekstis. Kuna Komisjoni hinnangul vastas Kolmanda isiku proovitöö täies ulatuses Nõuetele ning sai hindamisel kõikides Proovitöö kriteeriumi alamkriteeriumides maksimumpunktid, on ilmne, et Komisjoni koostatud dokument Nortal AS - proovitöö hindamise kokkuvõte, ei sisalda mingeid vastuväiteid vaidlustuses esitatud seisukohtadele. Seega saab Kolmanda isiku pakkumuse hindamist käsitlevas osas lähtuda üksnes Hankija vastustes vaidlustusele esitatud seisukohtadest. Samas viitab vaidlustuskomisjon juba varem märgitule, et pakkumuste hindamine on Hankija ainupädevuses. 19. Vaidlustaja on seisukohal, et Hankija on hinnanud Kolmanda isiku proovitööd ebaõigesti alamkriteeriumi Dokumenteerimine ja alamkriteeriumi Testide mõõtmistulemused alusel. 20. Punktide andmiseks alamkriteeriumi Dokumenteerimine alusel on Hindamismetoodikas nähtud ette järgmine kord.
Kriteerium/ punktid
20 15 10 5 0
Dokumen- teerimine
Proovitöö lahendus on ulatuslikult dokumenteeritud tekstiliselt ja graafiliselt. Dokumentatsioon on esitatud struktureeritult ja on loogilise ülesehitusega. Kirjeldatud on funktsionaalsus, logimine ja testide loogika. Paigaldus- ja seadistusjuhendid on loogilise ülesehitusega ja lihtsalt mõistetavad. Esitatud on andmemudel. Juhendite järgi õnnestub kõikide komponentide paigaldamine ja kõikide funktsionaalsuste testimine.
punkte ei omistata
Dokumentatsioonis esineb vähesel määral puudujääke, kuid need ei takista komponentide paigaldamist ja funktsionaalsuse kasutamist.
punkte ei omistata
Dokumentatsiooni järgides ei ole võimalik komponentide paigaldus või funktsionaalsuse kasutamine või üleantavas arhiivis puuduvad .git kataloogid. Proovitöö ei ole üle antud arhiivi kujul.
36 (40)
Arhiiviga koos on tarnitud nõutud .git kataloogid.
21. Vaidlustaja leiab, et Kolmanda isiku proovitööd on alamkriteeriumi Dokumenteerimine alusel ebaõigesti hinnatud 20 punktiga ning Kolmanda isiku proovitööle ei saa selle alamkriteeriumi alusel üldse punkte anda. Seda kokkuvõtlikult järgmistel põhjustel: 1) Kolmanda isiku dokumentatsiooni järgides ei ole võimalik komponentide paigaldus või funktsionaalsuse kasutamine. Kolmanda isiku proovitööd ei olnud võimalik ilma Hankija administraatori tehtud muudatusteta käivitada ega nõutud automaatteste käivitada (testida). Selleks, et Hankija saaks Kolmanda isiku proovitööd Riigihankes nõutud tingimustel, sh avalikku võrku kasutades Java rakendusest ning Docker-konteineri kaudu, käivitada ja testida selliselt, et rakendus ja testid käivitatakse erinevates masinates, pidi Hankija tegema Kolmanda isiku proovitöö konfiguratsioonifailis olulisi muudatusi, milliste tegemist ei olnud Kolmanda isiku proovitöö paigaldus- ja kasutusjuhendis kirjeldatud. Kolmanda isiku testrakenduse juhenddokumentatsioon ei olnud piisav, et selle kohaselt oleks õnnestunud kõigi komponentide paigaldamine või funktsionaalsuse kasutamine; 2) dokumentatsiooni hindamisel ei oma tähtsust, et Hankija proovitööde testimisel masina nr 2 testitulemusi ei arvestanud – proovitöö dokumentatsioon peab Hankija poolt testrakenduse käivitamiseks ja kasutamiseks ette nähtud nõuete täitmiseks olema piisav ja täielik, sh peab juhendmaterjal olema piisav ja täielik, kui rakendusi käivitatakse pilveseadme kaudu ning selliselt, et rakendus ja testid käivitatakse erinevates masinates; 3) Hindamismetoodika kohaselt eeldab maksimumpunktide (20 punkti) andmine alamkriteeriumis Dokumenteerimine mh, et paigaldus- ja seadistusjuhendid on loogilise ülesehitusega ja lihtsalt mõistetavad ning et juhendite järgi õnnestub kõikide komponentide paigaldamine ja kõikide funktsionaalsuste testimine. Hindamismetoodika kohaselt ei anta alamkriteeriumis Dokumenteerimine punkte (s.o antakse 0 punkti), kui dokumentatsiooni järgides ei ole võimalik komponentide paigaldus või funktsionaalsuse kasutamine. Kuivõrd Kolmanda isiku proovitöö paigaldus- ja kasutusjuhendi kohaselt ei olnud võimalik testrakendust kõigil ette nähtud tingimustel käivitada, ei ole tegemist ebaolulise puudusega vaid selgelt puudusega, mis takistas testrakenduse käivitamist ja testimist. Hankija ja Kolmas isik on seisukohal, et Vaidlustaja poolt välja toodud puudusi Kolmanda isiku proovitöös seoses alamkriteeriumiga Dokumenteerimine ei esine. 22. Vaidlustuskomisjon ei nõustu Vaidlustajaga, et Vaidlustaja poolt välja toodud asjaoludel ei saanud Kolmanda isiku proovitööd hinnata alamkriteeriumi Dokumenteerimine alusel 20 punktiga: 1) tegemist on pakkumuse hindamisega, mille puhul Hankija moodustatud spetsialistidest hindamiskomisjonil on kaalutlusõigus. Dokumendis Nortal AS - proovitöö hindamise kokkuvõte on Komisjon põhjendanud Kolmanda isiku pakkumusele alamkriteeriumi Dokumenteerimine alusel 20 punkti andmist järgmiselt: Proovitöö lahendus on ulatuslikult dokumenteeritud tekstiliselt ja graafiliselt. Dokumentatsioon on esitatud struktureeritult ja on loogilise ülesehitusega. Kirjeldatud on funktsionaalsus, logimine ja testide loogika. Paigaldus- ja seadistusjuhendid on loogilise ülesehitusega ja lihtsalt mõistetavad. Esitatud on andmemudel. Juhendite järgi õnnestub kõikide komponentide paigaldamine ja kõikide funktsionaalsuste testimine. Arhiiviga koos on tarnitud nõutud .git kataloogid. Vaidlustuskomisjon möönab, et eeltoodud põhjendus vastab täpselt Hindamismetoodikas pakkumusele alamkriteeriumi Dokumentatsioon alusel 20 punkti andmise alusele9, kuid on ilmne, et Hankija hinnangul õnnestus Kolmanda isiku juhendite järgi kõikide komponentide paigaldamine ja kõikide funktsionaalsuste testimine; 2) Vaidlustaja peamiseks vastuväiteks Kolmanda isiku pakkumuse hindamise õigsusele käsitletava alamkriteeriumi alusel on see, et Kolmanda isiku testrakendust polnud võimalik teises testis (video Nortal AS 2 masin – Copy.Mp4) ilma administraatori poolsete muudatusteta käivitada, seega pidid esinema puudused Kolmanda isiku esitatud juhendmaterjalides. Vaidlustaja hinnangul muutis administraator mh Kolmanda isiku testrakenduse lähtekoodi. Puudub vaidlus, et videost Nortal AS 2 masin – Copy.Mp4 nähtub, et RmIT administraator muutis Kolmanda isiku testrakenduse konfiguratsioonis komponentide omavahelist suhtlust.
9 Samas sõnastuses on Hankija põhjendanud ka Vaidlustaja proovitööle käsitletava alamkriteeriumi alusel 20 punkti andmist.
37 (40)
Siiski tuleb nõustuda Hankijaga, et lähtekoodi ei muudetud, vähemalt puuduvad selle kohta ühesed tõendid. Hankija on selgitanud, et ei avaldanud RHAD-is kõiki tehnilisi sätteid, mis kehtivad RmIT-i hallatavates võrkudes ja seadmetes, kuna nende järgimine oleks tekitanud pakkujatele ebaproportsionaalselt suure töökoormuse proovitöö teostamisel, mistõttu kasutas Hankija RmIT-i administraatorit, kes aitas konfigureerimise abil pakkujate põhirakenduse ja testrakenduse kohaldumist RmIT-i keskkonda. Vaidlustuskomisjon nõustub Hankija selgitusega, et portide muutmise vajadus tekkis sellest, et administraator pidas vajalikuks käivitada Kolmanda isiku testrakenduse JAR-i dockeri konteinerist väljast, mis tulenes Hankija hallatavast keskkonna spetsiifikast. Eeltoodu saavutamiseks publitseeriti Seleniumi pordid 4444:4444 dockeri konteinerist välja. Eraldi võimalust, et JAR oleks dockerist välja tõstetav, RHAD-is ei nõutud, mistõttu ei lugenud Hankija antud tegevust Kolmanda isiku veaks. RmIT-i administraator muutis Kolmanda isiku testrakenduse konfiguratsioonis komponentide omavahelist suhtlust (pordid), mitte komponente endid, nende sisu ega eesmärke. Seega leiab vaidlustuskomisjon, et Vaidlustaja väidetud puudust ei esinenud; 3) Kolmanda isiku pakkumuses on esitatud paigaldus- ja kasutusjuhend, sh on paigaldusjuhendis toodud juhend proovitöö testrakenduse erinevatest masinatest käitamise juhend (vt paigaldusjuhendi osa 1.2 Testrakenduse sfos-integration-tests paigaldus). 23. Punktide andmiseks alamkriteeriumi Testide mõõtmistulemused alusel on Hindamismetoodikas nähtud ette järgmine kord.
Kriteerium/punktid Testide mõõtmistulemused (kiirus). Mõõtmistulemused lähevad arvesse ainult juhul, kui proovitöös toodud funktsionaalsuse testides on saadud vähemalt 5 punkti ning kõik proovitöös nõutud automaattesti toimingud on korrektselt realiseeritud. Juhul kui automaattesti toimingud ei ole realiseeritud vastavalt proovitöö nõuetes toodule, siis omistatakse käesolevale kriteeriumile 0 punkti. Juhul kui proovitöös toodud funktsionaalsuse testide eest on saadud 0 punkti, siis omistatakse käesolevale kriteeriumile 0 punkti.
Lahendused järjestatakse lahenduse testide mõõtmistulemiste alusel. Kiiremini toimiva lahenduse pakkuja saab 30 punkti (maksimumpunktid). Lahenduse kiirust hinnatakse millisekundilise täpsusega. Järgnevatele mõõtmisele pääsenud lahendustele jagatakse punkte järgnevalt: • 2 koht 90% maksimumpunktidest ehk 27 punkti; • 3 koht 80% maksimumpunktidest ehk 24 punkti; [---]
24. Dokumendis Nortal AS - proovitöö hindamise kokkuvõte on Komisjon põhjendanud Kolmanda isiku pakkumusele maksimumpunktide andmist alamkriteeriumi Testide mõõtmistulemused (kiirus) alusel lakooniliselt: Mõõtmistulemus: 16 sekundit ja 572 millisekundit (16572ms). 25. Vaidlustaja leiab, et Kolmanda isiku proovitööd on alamkriteeriumi Testide mõõtmistulemused alusel ebaõigesti hinnatud. Kolmanda isiku proovitöö sai selle alamkriteeriumi alusel maksimaalsed 30 punkti, kuid oleks pidanud saama 0 punkti. Seda kokkuvõtlikult järgmistel põhjustel: 1) Kolmanda isiku proovitöö mõõtmistulemusi ei saa arvestada, kuna Hindamismetoodika p 3.8 sätestab alamkriteeriumi Testide mõõtmistulemused puhul: Mõõtmistulemused lähevad arvesse ainult juhul, kui proovitöös toodud funktsionaalsuse testides on saadud vähemalt 5 punkti ning kõik proovitöös nõutud automaattesti toimingud on korrektselt realiseeritud. Juhul kui automaattesti toimingud ei ole realiseeritud vastavalt proovitöö nõuetes toodule, siis omistatakse käesolevale kriteeriumile 0 punkti; 2) Kolmanda isiku proovitöö testrakendus jättis automaattestis realiseeritavates toimingutes kirjeldatud tegevuste tegemisel selleks vajalike toimingutega ja nende tegemiseks kuluva ajaga arvestamata. Kolmanda isiku pakkumust on alamkriteeriumi Testide mõõtmistulemused alusel õigusvastaselt hinnatud, kuivõrd kõnealuste ridade valimise ja toimingu õnnestumise kontrollimisega seotud vajalike toimingutega arvestamata jätmine tähendab, et proovitöös nõutud automaattesti toimingud ei ole Kolmanda isiku proovitöös korrektselt realiseeritud. Seega ei ole ka nõutud toimingute tegemiseks tegelikult kuluv aeg Kolmanda isiku testrakenduse alusel tuvastatav ning mõõtmistulemust (16572 millisekundit) ei või Hindamismetoodika kohaselt arvestada; 3) Kolmanda isiku testrakenduse genereeritud testide mõõtmistulemused on logiandmetega vastuolus. Kuigi Kolmanda isiku testrakenduse kohaselt oli Kolmanda isiku automaattestis realiseeritavate toimingute summaarseks ajaks 16572 millisekundit, siis testrakenduse koostatud logis toodud toimingute aegade kohaselt on nõutavaid toiminguid läbi
38 (40)
viidud kolme minuti jooksul (kell 09:21 ja 09:24). Seega on alus ka arvata, et testimise tulemused ei pruugi olla õiged ning nendega ei või arvestada; 4) Kolmanda isiku proovitöö mittevastavusi logi ja mõõtmistulemuste konsoolis esitamata jätmise ning rakenduse sätete kajastamata jätmise osas tuleb arvestada alamkriteeriumi Testide mõõtmistulemused rakendamisel. 26. Vaidlustuskomisjon ei nõustu Vaidlustajaga, et Vaidlustaja poolt välja toodud asjaoludel ei saanud Kolmanda isiku proovitööd hinnata alamkriteeriumi Testide mõõtmistulemused alusel 30 punktiga. 26.1. Nõuetest ei nähtu, et Hankija oleks ette kirjutanud eraldi sammuna toimingu õnnestumise kontrolli. Kuna toimingu õnnestumise või ebaõnnestumise kuvamise formaati Hankija ette ei andnud, tuli see pakkujatel endal luua. Kolmanda isiku andmebaasi logides on nähtav, et toimingute õnnestumise või ebaõnnestumise kohta on info olemas (vt FAIL1_nortal_test_log.csv)10. Seega vastas Kolmanda isiku proovitöö testrakendus Nõuetes toodud tingimustele ning puudub alus eeldada, et Kolmanda isiku testrakendustes ei ole summaarse ajakulu arvestamisel arvestatud toimingu õnnestumise kontrollile kuluva ajaga. Kolmanda isiku proovitöös on lahendatud toimingu õnnestumise teated andmebaasis väärtusega TRUE. 26.2. Vaidlustuskomisjon nõustub Hankija selgitusega (vt käesoleva otsuse p-id 6.10, 6.11), et Vaidlustaja väidetud puudust, et Kolmanda isiku testrakenduste logis ei ole toimingute mõõtmistulemused korrektselt kajastatud ning logiandmed on vastuolus summaarse ajakuluga, ei esine. Hankija jooksutas teste kahel korral (vt FAIL4_molema_testi_logi.xlsx)11 (edaspidi Fail) ning Hankija selgituste kohaselt sattus logi eksportimisel andmebaasist üks rida IT tehniliste põhjuste tõttu valesse kohta. Arvesse läinud testi osas ei oma Vaidlustaja poolt välja toodud toimingu 403 rida tähtsust, kuna see pärineb mitte arvesse minevast testi jooksutamisest. Failist, kus sisalduvad mõlema testi jooksutamise logi, nähtub, et toimingu 403 rida on ilmselgelt paigutatud valesti andmete eksportimisel CSV faili. Failist on nähtav, et 402- toimingu reale järgneb kohe 404 ja vahelt on puudu toimingu 403 rida, mis on ekslikult paigutunud ülespoole (ridade 149 ja 150 vahele). Ajaliselt ning järjekorranumbri järgi peaks toimingu 403 rida olema 402 ja 404 vahel. Vaidlustaja märgitud aeg (ca 3 minutit) näitab, et Vaidlustaja on võtnud selle testi andmetest, mis arvesse ei läinud. Hankija arvestas toimingutele kuluvat aega millisekundites, mis on kuvatud ka logides. Vastavalt arvesse läinud testi logile oli antud toimingu reaalne ajakulu 86 millisekundit, mida Hankija arvestas ka hindamisel. Logidest lähtuvalt on rea 403 toimingu teostamiseks aega kulunud 83 millisekundit. Rea 403 puhul tegemist toiminguga Nõuete alamjaotuse „Automaattestis realiseeritavad toimingud ja nende järjekord“ p-ist 8: Täiendavalt valida read 126, 26535, 41223-41250, 83610-83620,91425, 91428, 91431 toiminguga. P-is 8 nõutud toiming tuleb teostada p-is 7 nõutud toimingu järgselt. Logidest on nähtav, et p-is 8 nõutud toiming on kuvatud p-is 7 nõutud toimingute keskel, mitte järel. Lisaks nähtub logist, et toiming 403, mis kajastab ridade valimist, teostatakse arvesse minema testi korral toimingus 185 ehk toiming 403 kuvatakse ekslikult logides topelt ja seetõttu ei tohiks antud rea andmed kajastuda automaattesti lõpptulemuses (logi rida 218). 26.3. Hindamise ning pakkumuse edukaks tunnistamise koondprotokollist nähtub, et lahenduse testide mõõtmistulemuste alusel oli parim Kolmanda isiku lahendus - 16572 millisekundit. Seega on Hankija hinnanud Kolmanda isiku proovitööd alamkriteeriumi Testide mõõtmistulemused alusel põhjendatult 30 punktiga. Vaidlustaja pakkumuse hindamine 27. Vaidlustaja on seisukohal, et Hankija on hinnanud tema proovitööd ebaõigesti Proovitöö kriteeriumi alakriteeriumi Funktsionaalsus ja alamkriteeriumi Testide mõõtmistulemused alusel. 28. Vaidlustaja on seisukohal, et Hankija on tema proovitööd ebaõigesti hinnatud, vähendades alamkriteeriumi Funktsionaalsus alusel tema proovitööle antavaid punkte, andes 30 punkti
10 Esitatud koos Hankija 10.01.2025. a vastusega vaidlustusele. 11 Esitatud koos Hankija 10.01.2025. a vastusega vaidlustusele.
39 (40)
asemel ebaõigesti 10 punkti. Vaidlustaja väitel on Hankija valesti leidnud, et Vaidlustaja proovitöö funktsionaalsuses esineb kaks puudust, kuid kuna Vaidlustaja proovitöö funktsionaalsuses puudusi ei esine, tuleb Vaidlustaja proovitööle anda maksimumpunktid. 29. Punktide andmiseks alakriteeriumi Funktsionaalsus alusel on Hindamismetoodikas nähtud ette järgmine kord.
Kriteerium/punk tid
30 20 10 5 0
Funktsionaalsus (testjuhud: rakenduse funktsionaalsus
Nõutud funktsionaals us on täielikult realiseeritud (sh ridade lukustamine) ja puudusi ei esine
Nõutud funktsionaals us on täielikult realiseeritud sh ridade lukustamine. Esineb üks puudus.
Nõutud funktsionaals us on täielikult realiseeritud sh ridade lukustamine. Esineb kaks puudust.
Nõutud funktsionaals us on täielikult realiseeritud sh ridade lukustamine. Esineb kolm puudust.
Nõutud funktsionaals us on osaliselt realiseeritud või esineb neli või rohkem puudust.
30. Dokumendis Wisercat Estonia OÜ – proovitöö hindamise kokkuvõte on Hankija seoses Vaidlustaja proovitöö hindamisega alamkriteeriumi Funktsionaalsus alusel toonud välja kaks puudust. [Vaidlustaja ärisaladus] Eeltoodust lähtudes leiab vaidlustuskomisjon, et Hankija välja toodud puudus nr 1 Vaidlustaja proovitöös esineb. [Vaidlustaja ärisaladus] 34. Eelkõige märgib vaidlustuskomisjon, et vaidlusalune tingimus on sõnastatud Nõuete alamjaotise „Arendustöö „Kuludokumentide kuvamine, valimine ja seisundite muutmine“ osas Valiku tegemine: 1. Vali etteantud kohast alates „10, 20, 50, 100, 1 000, 10 000” rida või „kõik read“; 02.09.2024. a on hankemenetluses osalemisest huvitatud isik esitanud Hankijale järgmise küsimuse: Nõuetes on kirjas “Vali etteantud kohast alates „10, 20, 50, 100, 1 000, 10 000” rida või „kõik read“. Küsimus: Kas valik “kõik read” tähendab: a) kõikide kuludokumentide ridade valimise võimalust kogu tabeli ulatuses, b) etteantud kohast alates kõikide kuludokumentide ridade valimise võimalust, c) mõlemad variandid? 05.09.2024. a vastas Hankija: Valik “kõik read” tähendab: Variant a) kõikide kuludokumentide ridade valimise võimalust kogu tabeli ulatuses. On ilmne, et Hankija ja Vaidlustaja mõistavad Hankija poolt 05.06.2025. a antud vastuse sisu erinevalt, kuid juhul, kui Hankija vastust sisustada teisiti, kui tuleneb Nõuetes toodud tingimusest, oleks see vastuolus RHS § 46 lg-ga, millest tulenevalt ei saa selgitusega muuta riigihanke alusdokumente. 35. Vaidlustuskomisjon mõistab vaidlusalust nõuet nii, et valik „kõik read“ peab olema kuvatud Valiku tegemine „Vali etteantud kohast alates „10, 20, 50, 100, 1 000, 10 000” rida või „kõik read“; valiku tegemise juures. [Vaidlustaja ärisaladus] Eeltoodust lähtudes leiab vaidlustuskomisjon, et Hankija välja toodud puudus nr 2 Vaidlustaja proovitöös esineb. 36. Eeltoodust nähtub, et Vaidlustaja proovitöö hindamine alamkriteeriumi Funktsionaalsus aluse 10 punktiga on kooskõlas Hindamismetoodikaga. 37. Vaidlustaja leiab, et Hankija on tema proovitööd alamkriteeriumi Testide mõõtetulemused alusel ebaõigesti hinnatud, vähendades punkte 3 punkti võrra, andes 30 punkti asemel 27
40 (40)
punkti. Hindamismetoodika kirjelduses on käsitletava alamkriteeriumi alusel punktide andmiseks kehtestatud kord, mille puhul Lahendused järjestatakse lahenduse testide mõõtmistulemiste alusel. Kiiremini toimiva lahenduse pakkuja saab 30 punkti (maksimumpunktid). Lahenduse kiirust hinnatakse millisekundilise täpsusega. Järgnevatele mõõtmisele pääsenud lahendustele jagatakse punkte järgnevalt: • 2 koht 90% maksimumpunktidest ehk 27 punkti; kehtestatud Seega näeb Hindamismetoodika kirjeldus ette, et esimene lahendus saab maksimumpunktid (30) ning iga järgmine lahendus 10% vähem. Kuna Vaidlustaja proovitöö sai selle alamkriteeriumi alusel hindamisel teise koha, Kolmanda isiku järel ning Vaidlustaja hinnangul oleks Kolmanda isiku proovitöö pidanud saama selle alamkriteeriumi alusel hindamisel 0 punkti, tuleb maksimumpunktid (30 punkti) selle alamkriteeriumi alusel anda Vaidlustaja pakkumusele kui algselt Kolmanda isiku järel kohal olnud pakkumusele. 38. Kuna vaidlustuskomisjon on seisukohal, et Hankija on hinnanud alamkriteeriumi Testide mõõtmistulemused alusel Kolmanda isiku proovitööd õigesti (vt käesoleva otsuse p-id 26- 26.3) on Vaidlustaja pakkumuse hindamine alamkriteeriumi Testide mõõtmistulemused alusel 27 punktiga kooskõlas Hindamismetoodikaga. 39. Kuna vaidlustuskomisjoni hinnangul on Kolmanda isiku ja Vaidlustaja pakkumuste hindamine olnud kooskõlas RHAD-iga, eelkõige Hindamismetoodikaga, vastab Hankija otsus Kolmanda isiku pakkumuse vastavaks tunnistamiseks RHS § 117 lg-le 1 ning alused selle kehtetuks tunnistamiseks puuduvad. Vaidlustusmenetluse kulud 40. Lähtudes sellest, et vaidlustus jääb RHS § 197 lg 1 p-i 4 alusel rahuldamata, kuuluvad vaidlustusmenetluse kulude osas kohaldamisele RHS § 198 lg-d 3 ja 8. 40.1. Hankija ei ole esitanud taotlust lepingulise esindaja kulude väljamõistmiseks. 40.2. Kolmas isik on esitanud tähtaegselt taotlused lepingulise esindaja kulude väljamõistmiseks Vaidlustajalt kogusummas 4987,50 eurot (käibemaksuta), 22 h 10 min õigusabi osutamise eest keskmise tunnihinnaga 225 eurot. Vaidlustuskomisjon leiab, et asja keerukust ja materjalide mahukust silmas pidades on Kolmanda isiku lepingulise esindaja kulud mõnevõrra ülepaisutatud. Vaidlustuskomisjon möönab, et Vaidlustusmenetlus on keskmisest oluliselt keerukam ning mahukam, kuid leiab siiski, et vajalikud ja põhjendatud on Kolmanda isiku lepingulise esindaja kulud 18 töötunni ulatuses, seega 4050 eurot (käibemaksuta), mis tuleb Vaidlustajalt välja mõista. 40.3. Vaidlustaja kulud vaidlustusmenetluses jäävad Vaidlustaja kanda. (allkirjastatud digitaalselt) Taivo Kivistik
Nimi | K.p. | Δ | Viit | Tüüp | Org | Osapooled |
---|---|---|---|---|---|---|
Otsuse aja muutmine | 03.02.2025 | 1 | 12.2-10/25-2/2-17 🔒 | Väljaminev kiri | ram | Wisercat Estonia OÜ , Rahandusministeeriumi Infotehnoloogiakeskus, Nortal AS |
Otsuse edasilükkamise teade | 30.01.2025 | 1 | 12.2-10/25-2/2-16 🔒 | Väljaminev kiri | ram | Wisercat Estonia OÜ , Rahandusministeeriumi Infotehnoloogiakeskus, Nortal AS |
3. isiku täiendav seisukoht ja menetluskulude nimekiri | 24.01.2025 | 3 | 12.2-10/25-2/2-15 🔒 | Sissetulev kiri | ram | Nortal AS |
Hankija täiendavad seisukohad | 23.01.2025 | 1 | 12.2-10/25-2/2-12 🔒 | Sissetulev kiri | ram | Rahandusministeeriumi Infotehnoloogiakeskus |
Vaidlustaja täiendavad seisukohad ja menetluskulude nimekiri | 21.01.2025 | 1 | 12.2-10/25-2/2-11 🔒 | Sissetulev kiri | ram | Wisercat Estonia OÜ |
Kolmanda isiku menetluskulude nimekiri | 20.01.2025 | 1 | 12.2-10/25-2/2-10 🔒 | Sissetulev kiri | ram | Nortal AS |
Tähtaja pikendamine | 14.01.2025 | 1 | 12.2-10/25-2/2-9 🔒 | Väljaminev kiri | ram | Wisercat Estonia OÜ |
Tähtaja pikendamise taotlus | 14.01.2025 | 1 | 12.2-10/25-2/2-8 🔒 | Sissetulev kiri | ram | Wisercat Estonia OÜ |
Kirjaliku menetluse teade | 13.01.2025 | 1 | 12.2-10/25-2/2-7 🔒 | Väljaminev kiri | ram | Wisercat Estonia OÜ , Rahandusministeeriumi Infotehnoloogiakeskus, Nortal AS |
3. isiku vastus vaidlustusele | 10.01.2025 | 3 | 12.2-10/25-2/2-6 🔒 | Sissetulev kiri | ram | Nortal AS |
Hankija vastus vaidlustusele | 10.01.2025 | 3 | 12.2-10/25-2/2-5 🔒 | Sissetulev kiri | ram | Rahandusministeeriumi Infotehnoloogiakeskus |
Tähtaja pikendamine | 07.01.2025 | 1 | 12.2-10/25-2/2-4 🔒 | Väljaminev kiri | ram | Nortal AS |
3. isiku tähtaja pikendamise taotlus | 06.01.2025 | 1 | 12.2-10/25-2/2-3 🔒 | Sissetulev kiri | ram | Nortal AS |
Vaidlustus | 03.01.2025 | 3 | 12.2-10/25-2/2-1 🔒 | Sissetulev kiri | ram | Wisercat Estonia OÜ |
Vaidlustuse esitamise teade | 03.01.2025 | 3 | 12.2-10/25-2/2-2 🔒 | Väljaminev kiri | ram | Wisercat Estonia OÜ , Rahandusministeeriumi Infotehnoloogiakeskus, Nortal AS |