dokumendiregister.ee
OtsingAsutusedMCP
Otsing›Rahandusministeerium
Sissetulev kiriAvalik

Vaidlustaja täiendavad seisukohad ja menetluskulude nimekiri

Rahandusministeerium · 21. jaanuar 2025
Viit
12.2-10/25-2/2-11
Registreeritud
21. jaanuar 2025
Dokumendi liik
Sissetulev kiri
Adressaat
Wisercat Estonia OÜ
Saabumis/saatmisviis
DVK/e-post
Funktsioon
12.2 RIIGIHANGETEALANE TEGEVUS
Sari
12.2-10 Riigihangete vaidlustusmenetluse toimikud
Toimik
12.2-10/25-2
Vastutaja
Taivo Kivistik (Rahandusministeerium, Riigihangete vaidlustuskomisjon)

Failid

  • 📎2025_01_20_Wisercat_Estonia_OÜ_menetluskulude_taotlus.asice144 KB
  • 📎2025_01_20_Wisercat_Estonia_seisukohad_ärisaladuseta_final.asice932 KB

Sisu (failidest)

Riigihangete vaidlustuskomisjon Tartu mnt 85 10115 TALLINN 20.01.2025 Edastatud elektroonselt e-posti aadressile [email protected] VAIDLUSTAJA TÄIENDAVAD SEISUKOHAD Riigihange: Riigihange „Struktuuritoetuse registri arendus- ja hooldusteenus“ Riigihanke viitenumber: 277106 Hankija: Rahandusministeeriumi Infotehnoloogiakeskus Registrikood: 70009244 Aadress: Lõõtsa tn 8a, Tallinn e-post: [email protected], [email protected] Vaidlustaja: Wisercat Estonia OÜ Registrikood: 14133207 Vaidlustaja esindaja: Vandeadvokaat Kaidi Reiljan-Sihvart Advokaadibüroo COBALT Pärnu mnt 15, 10141 Tallinn e-post: [email protected] Kolmas isik: Nortal AS Registrikood: 10391131 Kolmanda isiku esindaja: Vandeadvokaat Mart Parind Advokaadibüroo NOVE e-post: [email protected] VAKO 13.01.2025 kirjaga andis VAKO vaidlustajale täiendavate seisukohtade ja menetluskulude esitamiseks tähtaja 16.01.2025 ning pikendas vastavat tähtaega oma 14.01.2025 kirjaga kuni 20.01.2025. Hankija ja kolmanda isiku vastuväited vaidlustusele on ebaõiged ning need ei takista vaidlustuse rahuldamist. Vaidlustuse läbi vaatamata jätmiseks ja ka rahuldamata jätmiseks alused puuduvad, mistõttu palub vaidlustaja vaidlustatud otsused kehtetuks tunnistada. Kolmanda isiku pakkumus ei vasta hankes seatud vastavustingimustele ning isegi juhul, kui pakkumus oleks vastav ja seda saaks hinnata, on sellele ebaõigesti (rohkem) punkte antud. Vaidlustaja pakkumusele on aga ebaõigesti vähem punkte antud ning majanduslikult soodsaim pakkumus peaks olema vaidlustaja pakkumus. Vaidlustaja põhjendab oma seisukohti alljärgnevalt. 1 VAIDLUSE ALL OLEVAD NÕUDED ON VASTAVUSTINGIMUSED. HANKIJA JA KOLMANDA ISIKU KÄSITLUS VASTAVUSTINGIMUSTEST ON EBAÕIGE 1.1 Riigihanke alusdokumentides on sätestatud tingimus, vastavustingimus, mis tuli pakkumuses täita. Kolmanda isiku pakkumus ei vasta riigihanke alusdokumentides esitatud tingimustele ja tuleks RHS § 114 lg 2 alusel tagasi lükata. 1.2 Hankija on sätestanud vastavustingimusena proovitöö esitamise (vastavustingimuse punkt 5). Hankija on seejuures sõnaselgelt sätestanud – „Pakkuja peab esitama dokumendis „Nõuded proovitöö teostamiseks“ toodud nõuetele vastava ja hindamisele kuuluva proovitöö lähtekoodi koos paigaldus- ja kasutusjuhendiga“. 1.3 Vaidlustaja ei nõustu hankija seisukohaga, et vastavustingimuse punkt 5 (eRHR vastavustingimused) sätestas ainult nõude proovitöö lähtekoodi koos paigalduse-ja kasutusjuhendi esitamiseks. Antud käsitlus on pelgalt formaalne. Hankija käsitlusest nähtub, nagu võiks pakkumuse 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 ole õige, ei lähtu hankija seatud tingimustest ning tõlgendab hankija seatud vastavustingimused sisutühjaks. 1.4 Hankija on oma vaidlustuse punkte 2.1.7.2. ja 2.1.8.2 kommenteerides oma vastuses asunud seisukohale, et kolmas isik on esitanud 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 esitatud ka dokumentide sisule ja ei olnud tegemist pelgalt formaalse dokumendi esitamise nõudega. 1.5 RHAD vastavustingimust tuleb käsitleda terviklikult: „Pakkuja peab esitama dokumendis „Nõuded proovitöö teostamiseks“ toodud nõuetele vastava ja hindamisele kuuluva proovitöö lähtekoodi koos paigaldus- ja kasutusjuhendiga“. Seega peavad nii pakkuja esitatud proovitöö lähtekood kui ka paigaldus- ja kasutusjuhend vastama dokumendis „Nõuded proovitöö teostamiseks“ toodud nõuetele. 1.6 Lähtekood (kõnekeeles kood) on programmeerimiskeeles kirjutatud tekst, mis kirjeldab arvutile antavaid käske 1 . 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õuded proovitöö teostamiseks“ dokumendis sätestatud tingimustele, et hankijal oleks üldse midagi hinnata. Samuti nähtub viidatud vastavustingimusest, et ka proovitöö kasutus- ja paigaldusjuhend pidi vastama „Nõuded proovitöö teostamiseks“ dokumendis sätestatud tingimustele, et hankija saaks seda hinnata. 1.7 Vastavustingimus peab olema selge, üheselt mõistetav. Vaidlustaja leiab, et hanketingimusi tuleb tõlgendada mitte ainult hankija arusaamast lähtuvalt, vaid ka teiste hankes osalenud pakkujate arusaama arvesse võttes. eRHR-ist nähtub, et ka teine pakkuja on vaidlustanud kolmanda isiku pakkumuse vastavuse – ka see kinnitab, et vastavustingimuste formaalseks ja kitsendavalt tõlgendamiseks ei ole alust. 1.8 Vaatamata sellele, et vastavustingimus on oma sisult 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). 1 https://et.wikipedia.org/wiki/L%C3%A4htekood 2 | 17 1.9 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. 1.10 Vaidlustaja hinnangul on kolmanda isiku pakkumus sisulise puudusega – vaidlustaja kogutud tõendid tõendavad mittevastavust. 1.11 Eeltoodust lähtuvalt ei ole hankija ega kolmanda isiku käsitlus vastavustingimustest õige ning ühtlasi on kolmanda isiku taotlus vaidlustuse läbi vaatamata jätmiseks ebaõige ning taotlus tuleb jätta rahuldamata. 2 VAIDLUSTAJA ALTERNATIIVNE KÄSITLUS ON LUBATAV. ÕIGUST KOHALDAB VAKO/ KOHUS 2.1 Nagu ülalt nähtub, on nii hankija kui ka kolmas isik on oma vastustes vastavustingimustest n-ö üle libisenud ja leidnud, et küsimus saab olla vaid väärtuspunktide jagamises (hindamises). Kolmas isik on ühtlasi kahelnud, kas VAKO saab vaidlustaja poolt kolmanda isiku vastavaks tunnistamise osas esile toodud asjaolud aluseks võtta pakkumuse edukaks tunnistamise kontrollimisel. Hankija ja kolmanda isiku eeltoodud seisukohad on põhjendamatud ning lähtuvad üksnes subjektiivsest soovist, et kolmanda isiku pakkumuse vastavust ega ka pakkumusele antud punkte ei ohustataks. 2.2 Vaidlustaja osutab, et ta on esile toonud vaidlustuse aluseks olevad asjaolud ja selged nõuded, taotledes nii kolmanda isiku pakkumuse vastavaks kui ka edukaks tunnistamise otsuste kehtetuks tunnistamist. Vaidlustus- ja kohtumenetluse üldtuntud põhimõtte kohaselt kohaldab õigust vaidlust lahendav organ, so riigihankeasjas VAKO või kohus. Seejuures on alternatiivsete nõuete esitamine lubatav ning vaidlustaja on selgelt ja ü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, kuna vaidlustaja hinnangul toovad vastavad rikkumised sel juhul kaasa kolmanda isiku pakkumusele antud väärtuspunktide vähendamise. Seega on otseselt eksitav kolmanda isiku viide, justkui peaks VAKO võtma vaidlustaja tehtud etteheited hindamise kontekstis ette „omal algatusel“. Veelgi enam, vaidlustaja on hindamist puudutavas vaidlustuse osas teinud selged viited kõigile vaidlustuse aluseks olevatele kolmanda isiku proovitöös esinevatele rikkumistele. Ilmselt ei sooviks ei VAKO ega ka menetlusosalised, et viitamise asemel koormaks vaidlustaja menetlusdokumente rikkumiste kirjelduste mahuka dubleerimisega. 2.3 Seega kuulub õiguse kohaldamine VAKO pädevusse ning kuivõrd vaidlustaja on vaidlustanud nii kolmanda isiku pakkumuse vastavuse kui ka alternatiivselt hindamise, on VAKO-l nii õigus kui ka kohustus hinnata, kas kolmanda isiku proovitöös esinevad rikkumisi tuleb käsitleda pakkumuse vastavuse või hindamise aspektist. Samuti on VAKO-l hindamise kontrolli raames pädevus ise õigust kohaldada ning 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). 3 KOLMANDA ISIKU PAKKUMUS EI OLE VASTAV 3.1 Üldist. Ülal p-ist 1 nähtuvalt on vaidluse all olevate nõuete puhul tegemist hankes seatud 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 seejuures vaidlustaja esile toodud asjaolud (mittevastavused) õigusvastaselt tähelepanuta. Vaidlustaja jääb selle juurde, et kolmanda isiku pakkumuse vastavaks tunnistamise otsus on õigusvastane ja tuleb kehtetuks tunnistada. Vaidlustaja ei dubleeri eelnevalt esitatud seisukohti suuremas ulatuses, kui vaidlustaja seisukohtade mõistmiseks on vajalik ning lükkab järgnevalt ümber hankija ja 3 | 17 kolmanda isiku vastuväited kolmanda isiku proovitöö mittevastavuse osas. Vaidlustaja märgib, et kuigi vaidlustajal on vaid piiratud ligipääs kolmanda isiku pakkumuse vastavaks tunnistamisega seotud asjaoludele, on asjas esitatud tõendid piisavad selleks, et veenduda kolmanda isiku proovitöö lähtekoodi (testrakenduse) ning selle paigaldus- ja kasutusjuhendi mittevastavuses „Proovitöö teostamise nõuetele“ ning seega kolmanda isiku pakkumuse vastavaks tunnistamise otsuse õigusvastasuses. Jälgitavuse huvides käsitleb vaidlustaja kõiki mittevastavusi algse numeratsiooni kaupa, kasutades mittevastavuste puhul mh samu lühinimetusi. 3.2 Testrakenduse mittevastavus nr 1 (ridade valimine) 3.2.1 Mittevastavuse lühisisu. Vaidlustaja on vaidlustuse p-s 2.1.2 esile toonud, et kolmanda isiku proovitöö testrakendus ei arvesta konkreetsete ridade selekteerimisel, et tavakasutaja ei näe ridadel olevaid andmeid ilma vastavaid ridu nägemata (so vastavatele ridadele liikumata) ning et kolmanda isiku testrakendus valib ridasid n-ö pimesi, andmeid nägemata. Kuna testrakendus pidi emuleerima tavakasutaja käitumist ning ei tohtinud teha toiminguid, mille jaoks tavakasutajal puuduvad andmed, on kolmanda isiku testrakendus „Proovitöö teostamise 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 dokumendis „Proovitöö teostamise nõuded“ testrakendusele sätestatud nõuete rikkumine õiguslikult kvalifitseeritav vastavustingimuse rikkumisena. Hankija ja kolmanda isiku vastuväited, nagu poleks reale liikumine nõutav, on ebaõiged. 3.2.2 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 ehk pimesi tehtava 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 Andrei Solntsev oma arvamuses (lisa 1 – asjatundja arvamus, vastus 1). 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 samas vähimalgi määral 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). Kolmanda isiku väide, nagu konkreetsete ridadega toimingute tegemisel tuleks lähtuda samadest põhimõtetest nagu „Proovitöö teostamise 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. Solntsevi asjatundja arvamus (lisa 1, vastus 1) 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. Solntsev asunud seisukohale, et konkreetsete ridadega toimingute tegemiseks (näiteks testlood 8 ja 21) ja nende ridade selekteerimiseks vajalik eraldi sammuna liikuda vastavale reale. 4 | 17 3.2.3 Kolmanda isiku testrakendus ei arvesta vajalike sammudega. Vaidlustaja osutab, et nii hankija kui ka 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öö (lisa 2 – kuvatõmmis). 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 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. Kuvatõmmis 3. isiku proovitööst 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 vaidlustuse lisana 2 esitatud 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. 2025-01-06 16:59:20 sfos-integration-tests | 2025-01-06 14:59:20 [main] INFO e.s.i.utils.TestStopwatch - 8. Valida read 126, 26535, 41223-41250, 83610-83620, 91425, 91428, 91431: Sisesta rea vahemiku välja “126, 26535, 41223-41250, 83610-83620, 91425, 91428, 91431”: 109 ms 5 | 17 2025-01-06 16:59:20 sfos-integration-tests | 2025-01-06 14:59:20 [main] INFO e.s.i.utils.TestStopwatch - 8. Valida read 126, 26535, 41223-41250, 83610-83620, 91425, 91428, 91431: Vajuta “Lisa valikusse” nuppu: 65 ms Väljavõte 06.01.2025 testimise failist FAIL3_nortal_full-text_log_console.txt Asjatundja A. Solntsev 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 (lisa 1, vastus 2). Kolmanda isiku testrakenduse n-ö masina vaadet ja kasutaja vaadet kõrvutades näeb vastava sammu sooritamine välja nii: Selline lahendus ei vasta testrakendusele seatud tavakasutaja emuleerimisega seotud tingimustele ning manipuleerib ühtlasi automaattestimise kiirust. Sama kinnitab ka kinnitab ka asjatundja A. Solntsevi arvamus (vt lisa 1, vastus 2). 3.2.4 Pagineerimine on hankes nõutav. Vaidlustaja märgib täiendavalt, et kolmanda isiku testrakenduse vastuolu hankes seatud nõuetega tuleneb juba ainuüksi eeltoodust - so tavakasutajal puuduvad andmed konkreetsete ridadega toimingute tegemiseks, kui tavakasutaja ei näe ridadel olevaid andmeid. Eeltoodust taganemata jääb vaidlustaja ka selle juurde, et antud hankes oli pagineerimine 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 enesest (vt ülal p 3.2.2) 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 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 iseenda kehtestatud RHAD dokumente, väites kategooriliselt, et pagineerimist pole RHAD’is sätestatud. Seega kinnitab ka vastav nõue, et 6 | 17 antud hankes tuleb proovitöö arendamisel arvestada pagineerimisega. Kolmanda isiku proovitöö sellest ei lähtu. 3.2.5 Hankija muud seisukohad on asjakohatud. Hankija on viidanud, et kolmanda isiku testrakendus võimaldab korraga kuvada 500 rida. Vaidlustaja osutab, et automaattestimise toimingutes toodud testlugudest lähtuvalt (sh testloost nr 8 nähtuvalt) pidi testrakendus opereerima enam kui 90000 reaga.2 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 tõesti vastu peaks, eristada ega nendega töötada. 3.3 Testrakenduse mittevastavus nr 2 (toimingu õnnestumise kontrollimine) 3.3.1 Mittevastavuse lühisisu. Vaidlustaja on vaidlustuse p-s 2.1.3 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 „Proovitöö teostamise nõuete“ kohaselt nõutav. Seega, 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, nagu kinnitaks kolmanda isiku logi veerus D toodud väärtus TRUE testrakenduse poolt kontrolli läbiviimist ja selle andmebaasis kajastamist, on ebaõiged. 3.3.2 Kolmanda isiku käsitlus tingimuse sisust on meelevaldne, kuid ei mõjuta järeldust, et tingimus ei olnud täidetud. Ebaõiged, kunstlikud ja vastuolulised on kolmanda isiku seisukohad (p 24), et tingimuse kohaselt oli vajalik pelgalt toimingute tulemuste andmebaasi kirjutamine, mitte automaattesti toimingute õnnestumise kontrollimine; samuti, et toimingute tulemus ei pidanud sisaldama teavet toimingu ebaõnnestumise kohta. Need ei mõjuta siiski järeldust, et kolmanda isiku testrakendus kõnealusele nõudele ei vasta. On ilmne, et ü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ühjaks tõlgendatud, 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. 3.3.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 ka ühtegi tõendit, millel põhines vaidlustatud otsuste tegemisel vaidlustaja 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 – andmebaasi logis ega ka muudes logides ei ole veeru D sisu kirjeldatud.3 Lihtsustatult öeldes võib veeru D väärtus TRUE tähendada näiteks seda, et toimingu aeg sai andmebaasi kirja või isegi seda, et toiming ei õnnestunud. 2 Testlugu 8: Täiendavalt valida read 126, 26535, 41223-41250, 83610-83620,91425, 91428, 91431. 3 Erinevalt kolmandast isikust on näiteks vaildustaja andmebaasi logis kajastatud, et tegemist on toimingu õnnestumise kontrolli tulemustega. 7 | 17 3.3.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. Vaidlustaja osutab, et hankija sai vaidlustatud otsuste vastuvõtmisel lähtuda vaid neist andmetest ja toimingutest, mis tal otsuse tegemisel olemas olid. Vaidlustusmenetluse ajal teostatud kontrolli tulemustega ei saanud hankija otsuste tegemise arvestada, mistõttu tuleb need kõrvale jätta. Küll aga ei muuda ka hankija teostatud täiendava kontrolli tulemus – andmebaasi logifail „FAIL1_nortal_test_run_log.csv“ – järeldust, et hankija ei ole toimingu õnnestumise kontrolli läbiviimist kontrollinud ega neid andmebaasi kirjutanud, kuna ka vastavas andmebaasi logifailis ei ole tuvastatav, mida tähendab väärtus TRUE ja mis on selle toimingu sisu (veeru D väärtused on defineerimata). Seega on hankija jätkuvalt, ka täiendava kontrolli läbi viinud üksnes eeldusele tuginedes. 3.3.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 nõuete põhjal on keelatud testrakendusel pöörduda otse testitava rakenduse andmebaasi poole.4 2025-01-06 16:59:20 sfos-integration-tests | 2025-01-06 14:59:20 [main] INFO e.s.i.utils.TestStopwatch - 9. Teostada toiming valitud ridade seisundi muutmiseks “Täiendav kontroll”: Vali “Täiendav kontroll” seisund “Uus seisund” valikust: 53 ms 2025-01-06 16:59:20 sfos-integration-tests | 2025-01-06 14:59:20 [main] INFO e.s.i.utils.TestStopwatch - 9. Teostada toiming valitud ridade seisundi muutmiseks “Täiendav kontroll”: Vajuta “Muuda valitud ridade seisundeid” nuppu: 195 ms 2025-01-06 16:59:21 sfos-integration-tests | 2025-01-06 14:59:21 [main] INFO e.s.i.utils.TestStopwatch - 11. Eemaldada kõigi ridade valikud: 74 ms Väljavõte kolmanda isiku 01.06.2025 testimise konsooli logi failist „FAIL3_nortal_fulltest_log_console.txt“ 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. 3.4 Testrakenduse mittevastavus nr 3 (logi ja mõõtmistulemuste kajastamine konsoolis) 3.4.1 Vaidlustaja ei tugine enam kõnealusele mittevastavusele (vaidlustuse p 2.1.4), kuivõrd vaidlustaja ja kolmanda isiku selgitustest nähtub, et kuigi käsurea konsoolis kõnealuseid andmeid ei kajastata (millist asjaolu kontrollis hankija vaidlustaja puhul), on hankija kontrollinud andmete kirjutamist vähemalt docker-konsooli osas. Kui hankija oleks pakkujate puhul nõuete täitmist kontrollinud ühtemoodi, ei oleks ka kõnealust küsimust tekkinud. 3.5 Testrakenduse mittevastavus nr 4 (rakenduse sätete kajastamine) 3.5.1 Mittevastavuse lühisisu. Vaidlustaja on vaidlustuse p-s 2.1.5 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 4 Selgituse ID: 880161 "2a) Testrakendus ei tohi suhelda otse back-end rakendusega ega omada ligipääsu põhi andmebaasile." 8 | 17 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. 3.5.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. Nimelt, nagu vaidlustaja on osutanud, on „Proovitöö teostamise nõuete“ p 13 kohaselt rakenduse nõutavateks säteteks vähemalt „headless“ ja DEBUG.5 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 poolt esile toodud PILT7_docker_log_konsool.jpg rida 4 näitab ainult rakenduse URLi, 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 genereeritud docker-konsooli logist, vt „PILT7_docker_log_konsool.JPG“. Sh ei ole hankija ka ise vaatamata oma üldsõnalisele väitele kinnitanud ega ka 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. Solntsev (lisa 1, vastus 3.1). Vaidlustaja märgib, et asjatundja A. Solntsev on selgitanud ka seda (lisa 1, vastus 3.1), 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. 3.5.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 (vt p 3.5.2). Eeltoodust taganemata on ebaõige kolmanda isiku väide, 5 “Nõuded proovitöö teostamiseks”, alamjaotus Rakenduse integratsioonitestid, Nõuded, p 13 9 | 17 nagu lubaks hankija selgitus ID 876080 kirjutada kajastada rakenduse sätteid vaidlustaja kasutatud viisil. Esiteks ei nähtu kolmanda isiku viidatud hankija selgitusest mitte kuidagi, 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 esitatud 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 tingimust muudavad. 6 Kuivõrd mitte ü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. 3.6 Testrakenduse mittevastavus nr 5 (logis mõõtmistulemuste kajastamine, logiandmete vastuolus summaarse ajakuluga) 3.6.1 Mittevastavuse lühisisu. Vaidlustaja on vaidlustuse p-s 2.1.6 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 poolt tuvastatud mõõtmistulemustega, rikkudes „Nõuded proovitöö teostamisele“ testrakenduse nõuet nr 10. Hankija ja kolmanda isiku vastupidised väited ei ole õiged. 3.6.2 Logis vigade esinemine kinnitab juba iseenesest logi ebaadekvaatsust ning vastuolu mõõtmistulemustega. Nii hankija kui ka kolmanda isiku vastus kinnitavad üheselt logiandmetes vea esinemist, so vaidlustaja väidet, et logiandmed ei vasta arvesse läinud mõõtmistulemustele ning on seega ebaadekvaatsed. Esitatud selgitused, et 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 ekslikud olla – logiandmed on seega ebausaldusväärsed. Hankija ei oleks seega võinud oma otsuste tegemisel logiandmeid usaldada ega oma otsuseid mõõtmistulemuste arvestamisel sellele rajada. Seejuures ei nähtu, kuidas hankija veendus hindamise läbiviimisel logitulemuste adekvaatsuses, kui ta on nende kinnitamiseks esitanud logifaili, mille ebaõigsust ta ka ise tunnistab. 3.6.3 Hankija käitumine on ebajärjekindel ja vastuoluline. Vaidlustaja osutab, et hankija on erinevate mittevastavuste puhul väitnud ühelt poolt nii seda, et 2. masina testi ja selle andmeid tuleb arvestada (nt vaidlustuse p 2.1.4.2 kui ka 2.1.5.2 käsitluses) kui ka samaaegselt seda, et 2. masina testi tulemused ei oma tähtsust, kuna hankija nendega otsuste tegemisel ei arvestanud (nt vaidlustuse p 2.1.6.2 ehk käesolev punkt). Selline hankija lähenemine on ebajärjekindel ja vastuoluline, mis kinnitab, et hankija ei ole kolmanda isiku proovitöö vastavust nõuetekohaselt ja objektiivselt kontrollinud. 6 VAKOo 181-21/239028, p 21, samuti TlnHKo 3-24-1013, p 34 10 | 17 3.7 Testrakenduse mittevastavus nr 6 (rakenduse käivitamine) 3.7.1 Mittevastavuse lühisisu. Vaidlustaja on vaidlustuse p-s 2.1.7 esile toonud, et kolmanda isiku testrakendus ei vastanud „Nõuded proovitöö teostamisele“ rakenduste integratsioonitestide punktidele 4, 6, 9 ja 13, kuna testrakendust ei olnud võimalik ilma hankija administraatori tehtud muudatusteta käsurealt käivitada (hallata) ega kasutada, sealhulgas selliselt, et rakendus ja testid käivitatakse erinevatest masinatest. Hankija ja kolmanda isiku vastuväited on ebaõiged. 3.7.2 Testrakendus ei käivitunud ilma lähtekoodi muutmata käsurealt. 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 java- koodi 7 kui ka tegema muudatusi seoses testrakenduse Docker-konteineriga (n-ö kokku ehitama) 8 . Selliste muudatuste tegemist ei olekski mõtet vaidlustada, kuivõrd need on videost selgesti tuvastatavad, mida kinnitab ka A. Solntsevi arvamus (lisa 1, vastus 3.2). 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 alloleval pildil me näeme, et on avatud TAB, mille sees on avatud fail nimega „TestConfig.java“. Java koodi faili muutmine ja DockerFile muutmine on lähtekoodi muutmine“ (lisa 1, vastus 3.2). Hankija on püüdnud mittevastavusest üle saada viitega kogenud isiku teadmisele, et konfiguratsiooni muutmine on peaaegu alati vajalik. Selline viide on aga asjakohatu ja otseselt 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. Lihtsustatult paralleeli tõmmates on see sama, kui pakkuja pakub hankes nõutud sangaga kastruli asemel ilma sangata kastrulit ning hankija loeb pakutu vastavaks, kuna saab ka ise kastrulile sanga otsida ja selle külge panna. 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 mõistlikul hankijal tekkima kahtlus testrakenduse vastavuses ning hankija seda kahtlust ei kõrvaldanudki (so ei saanud veenduda kolmanda isiku proovitöö lähtekoodi nõuetele vastavuses, vt ka p 3.7.4 ii). 3.7.3 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, 7 Ajahetkel 6:11 teatab administraator, et pidi muutma ka .java faili, kuna tarkvara käivitumiseks vajalike parameetrite sisestamine oli muidu võimatu. 8 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 Docker- konteineriga veel eraldi „triki“ (kokku ehitama). 11 | 17 ei ole asjakohane, kuna testvideod kinnitavad, et kolmanda isiku testrakenduses ei olnud sätted käsurealt hallatavad ning hankija ei ole seega vastavate sätete käsurealt haldamise nõude täitmist kontrollinud. Vaidlustaja selgitab taustaks, et vaidlustaja testrakenduse puhul on sätete käsurealt haldamine selgelt näha (punasega kuvatud reas): [ärisaladus eemaldatud] Kolmanda isiku testrakenduses ei ole aga 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. 9 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 tööriistadeta. Antud juhul peab muutma lähtekoodi. Nõue oli aga, et seda paameetrit saaks muuta administraator testrakenduse käivitamisel käsurealt Kuvatõmmis kolmanda isiku 2. testi videost - hardcoded parameters konfiguratsiooni failis 9 Videos on näha, et „hardcoded“ -- logelevel SEVERE ja „hardcoded“ – LOG LEVEL = Critical 12 | 17 Kuvatõmmis kolmanda isiku 1. testi videost - testi käivitamine, kus sätted ei ole hallatavad konsoolist Seda, et kolmanda isiku testrakenduse puhul ei olnud „headless“ sätted käsurealt hallatavad, kinnitab üheselt ka asjatundja A. Solntsev (lisa 1, vastus 3.1). 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“ 3.7.4 Rakendus ja testid käivitunud kahest erinevast masinast. Hankija ega ka kolmas isik ei ole vaidlustanud asjaolu, et ilma hankija poolt 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 seatud nõue kolmanda isiku testrakenduse puhul täitmata, so testrakenduse lähtekood ei vasta seatud nõuetele. i. Rakenduse ja testide kahest erinevast masinast käivitamine oli hankes 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 (vastuse p 33), 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 hankes kõnealust nõuet ei esinenud. Vaidlustaja viitab, et lisaks vaidlustaja poolt eelnevalt viidatud tingimustele tuleneb kahes masinas käivitamise nõue otseselt ka „Nõuded proovitöö teostamisele“ sätestatud nõue „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 oleRHAD tingimust muutva, vaid täpsustava selgitusega. ii. Hankija ei ole kahes erinevas masinas käivitamise nõude täitmist nõuetekohaselt kontrollinud. Vaidlustaja osutab, et 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 13 | 17 testrakendus ei käivitunud. Seda kinnitab ka asjatundja A. Solntsevi arvamus (lisa 1, p 3.2). Seega isegi kui eeldada, et hankija on õigesti jätnud teise masina testi kõrvale (kuna tegi selles muudatusi mida ei olnud hankes nõutud), ei ole hankija kahes masinas käivitamise nõude täitmist kolmanda isiku puhul üldse kontrollinud ega saanud veenduda, et kolmanda isiku testrakendus nõudele vastab. iii. Hankija viited vaidlustaja testrakenduse kohta on asjakohatud. Vaidlustaja osutab, et käesoleva vaidluse esemeks on kolmanda isiku pakkumuse nõuetele vastavus, mitte vaidlustaja pakkumuse nõuetele vastavus. Veelgi enam – vaidlustaja testrakenduse kahest erinevast masinast testimise video kinnitab, et vaidlustaja testrakendus käivitus nõuetekohaselt – käivitamiseks ei olnud vajalik lähtekoodi muutmine ning käivitamisel tegi administraator vaid neid lubatavaid muudatusi konfiguratsioonis, mille tegemine oli vaidlustaja esitatud paigaldus- ja kasutusjuhendis ette nähtud. Seega on hankija väited lisaks asjakohatusele ka sisuliselt valed. 3.8 Testrakenduse mittevastavus nr 7 (nõutava paigaldus- ja kasutusjuhendi puudumine) 3.8.1 Mittevastavuse lühisisu. Vaidlustaja on vaidlustuse p-s 2.1.8 esile toonud, et kolmanda isiku testrakenduse paigaldus- ja kasutusjuhend ei vastanud dokumendis „Nõuded proovitöö teostamiseks“ sätestatud nõuetele, kuivõrd kolmanda isiku testrakenduse paigaldus- ja kasutusjuhend 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 hankijal 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 dokumendis „Nõuded proovitöö teostamiseks“ toodud nõuetele vastava paigaldus- ja kasutusjuhise, on seega tegemist vastavustingimusele mittevastavusega. Hankija ja kolmanda isiku vastuväited on ebaõiged. Hankija ei ole paigaldus- ja kasutusjuhendi nõuetele vastavust nõuetekohaselt kontrollinud. 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. Nimelt, 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 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. Järelikult on hankija järeldus paigaldus- ja kasutusjuhendi nõuetele vastavuse kohta ebaõige, kuna ei arvesta eeltoodud asjaoludega. 3.9 Kokkuvõte. Kolmanda isiku proovitöö lähtekood ning paigaldus- ja kasutusjuhend ei vasta dokumendis „Nõuded proovitöö teostamiseks“ esitatud nõuetele (vastavustingimus 5) ning seega tuleb kolmanda isiku pakkumus mittevastavana tagasi lükata. 4 ALTERNATIIVSELT ON KOLMANDA ISIKU PAKKUMUSE HINDAMISEL EBAÕIGESTI PUNKTE ANTUD 4.1 Vaidlustaja on alternatiivselt vaidlustanud hindamistulemused. Vaidlustaja on esile toonud kolmanda isiku proovitöö mittevastavused esitatud nõuetele (rikkumised) ning oma alternatiivses käsitluses selgelt vaidlustanud ka kolmanda isiku proovitööle väärtuspunktide andmise (hindamise), vt vaidlustuse p 3. Seega juhul, kui VAKO hinnangul ei ole kõnealused rikkumised õiguslikult käsitletavad vastavustingimustele mittevastavustena, tuleb VAKO-l kontrollida, kas esile toodud rikkumisi arvestades on hankija kolmanda isiku proovitöö osas pakkumuse hindamise kriteeriume õiguspäraselt rakendanud. 14 | 17 4.2 Hankija ei ole hindamiskriteeriumite kohaldamisel vaidlustuses esile toodud rikkumistega arvestanud. Vaidlustaja on vaidlustuse punktides 3.2.3 ja 3.2.4 toonud uuesti (viiteliselt) esile kõik vaidlustuse aluseks olevad kolmanda isiku testrakenduse mittevastavused (rikkumised) ning on need sidunud hankes kehtivate hindamiskriteeriumitega. Hankija ei ole hindamiskriteeriumite kohaldamisel ning kolmanda isiku proovitööle väärtuspunktide andmisel vastavate rikkumistega arvestanud, so kolmanda isiku pakkumuse edukaks tunnistamise otsus on õigusvastane. - Vaidlustaja hinnangul järeldub ülal toodud testrakenduse mittevastavustest nr 1, 2, 4 ja 5 (vaidlustuse punktid 2.1.2, 2.1.3, 2.15 ja 2.1.6) 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 hindamiskriteeriumite õiguspärasel kohaldamisel tuleb kolmanda isiku proovitööle omistada vastavas kriteeriumis antud 30 punkti asemel 0 punkti. - Samuti järeldub ülal toodud testrakenduse mittevastavustest nr 6 ja 7 (vaidlustuse punktid 2.1.7 ja 2.1.8) kokkuvõtlikult, et kolmanda isiku juhenddokumentatsioon ei ole piisav, et nende kohaselt oleks õnnestunud kõigi komponentide paigaldamine või funktsionaalsuse kasutamine. Seega hindamiskriteeriumite õiguspärasel kohaldamisel tuleb kolmanda isiku proovitööle omistada vastavas kriteeriumis antud 20 punkti asemel 0 punkti. 4.3 VAKO on ka hindamise kontrollimisel pädev kohaldama õigust, sh kvalifitseerima kolmanda isiku testrakenduse puudusi. Nagu ülal märgitud, on VAKO õiguse kohaldamise raames pädev esile toodud rikkumisi õiguslikult kvalifitseerima ning kontrollima hindamiskriteeriumite kohaldamist ja kolmanda isiku proovitööle väärtuspunktide andmist sõltumata sellest, kas vaidlustaja on konkreetsele hindamiskriteeriumile õigusliku alusena viidanud või mitte. Seega juhul, kui VAKO leiab, et mõni kolmanda isiku proovitöö puhul esile toodud rikkumine on kvalifitseeritav muu hindamiskriteeriumi alla, kui vaidlustaja esile toodud hindamiskriteerium, ei takista see hindamise osas kontrolli läbi viimist ning kolmanda isiku pakkumuse edukaks tunnistamise otsuse kehtetuks tunnistamist. 5 VAIDLUSTAJA PAKKUMUS OLEKS PIDANUD HINDAMISEL SAAMA MAKSIMUMPUNKTID 5.1 Vaidlustaja pakkumust on ebaõigesti hinnatud, vähendades õigusvastaselt testide mõõtetulemuste (kiiruse) kriteeriumis Vaidlustaja proovitööle antavaid punkte. 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). 5.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, mistõttu tuleb anda maksimaalsed punktid (30). 5.3 Vaidlustaja proovitöös ei esine puudust nr 1 (vaidlustuse punkt 3.2.6) [Ärisaladus eemaldatud]. 5.3.1 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. 15 | 17 5.3.2 Tingimuste mitmeti tõlgendavuse 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.4 Vaidlustaja proovitöös ei esine puudust nr 2 (vaidlustuse punkt 3.2.6). 5.4.1 Vaidlustaja rõhutab, et hankija selgitas teabevahetuse käigus selgelt, 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. 5.4.2 Vaidlustaja märgib, et hankija selgitus 5.09.2025 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 järgmised kuvatõmmised vaidlustaja kasutajaliidese tabelitest. [Ärisaladus eemaldatud]. [Ärisaladus eemaldatud]. 5.4.3 Hoolsa pakkuja ülesanne on hankijalt selgitusi küsida hankedokumentides sätestatud tingimuste osas, kui need on ebaselged. Seda ka vaidlustaja tegi, saades hankija selgituse 5.09.2025 teabevahetuses. Hoolas hankija peab hindama selgitusi selliselt, kas need muudavad hankedokumentides sätestatud või mitte. Kui selgitused muudavad hankedokumente, siis on hankija kohustus muudatused ka teha. 5.4.4 [ärisaladus eemaldatud] 5.4.5 Seetõttu tuleb vaidlustaja proovitööle lisada 10 punkti. 5.5 Kokkuvõte 5.5.1 Kolmanda isiku pakkumus tuleb mittevastavana tagasi lükata. Vaidlustaja on esile toonud mitmed olulised mittevastavused kolmanda isiku proovitöö lähtekoodis ja kasutus- ja paigaldusjuhendis. Kolmanda isiku pakkumus tuleb tagasi lükata juba ainuüksi seetõttu, et: - esimeses testis ei kontrollitud üldse testrakendust proovitööle esitatud nõude kohaselt, et rakendus ja testid käivitatakse erinevatest masinatest ning teises testis kolmanda isiku testrakendus ilma lähtekoodi muutmiseta üldse ei kävitunudki; -kolmanda isiku testrakendus ei logi üldse konsooli sätet „—headless“, mida hankija nõudis. 5.5.2 Isegi, kui kolmanda isiku proovitud saab hinnata, siis hindamiskriteeriumite õiguspärase rakendamise korral ei saa kolmanda isiku pakkumusele anda proovitöö kriteeriumis rohkem kui 50 punkti (30 väärtuspunkti). 5.5.3 Vaidlustaja pakkumusele tuleb anda proovitöö kriteeriumis maksimaalsed 100 punkti (60 väärtuspunkti) ning kriteeriumite kogumis maksimaalsed 100 väärtuspunkti (40 + 60). Vaidlustaja pakkumus on seega majanduslikult soodsaim pakkumus. 16 | 17 /allkirjastatud digitaalselt/ Kaidi Reiljan-Sihvart vandeadvokaat Wisercat Estonia OÜ lepinguline esindaja LISAD: Asjatundja arvamus „Kuvatõmmis proovitööst.png“ 17 | 17 Riigihangete vaidlustuskomisjon Tartu mnt 85 10115 TALLINN 20.01.2025 Edastatud elektroonselt e-posti aadressile [email protected] WISERCAT ESTONIA OÜ LEPINGULISE ESINDAJA KULUDE NIMEKIRI Riigihange: Riigihange „Struktuuritoetuse registri arendus- ja hooldusteenus“ Riigihanke viitenumber: 277106 Hankija: Rahandusministeeriumi Infotehnoloogiakeskus registrikood: 70009244 aadress: Lõõtsa tn 8a, Tallinn e-post: [email protected], [email protected] Vaidlustaja: Wisercat Estonia OÜ registrikood: 14133207 Vaidlustaja esindaja: Vandeadvokaat Kaidi Reiljan-Sihvart Advokaadibüroo COBALT aadress: Pärnu mnt 15, 10141 Tallinn e-post: [email protected] Kolmas isik: Nortal AS registrikood: 10391131 Kolmanda isiku esindaja: Vandeadvokaat Mart Parind Advokaadibüroo NOVE e-post: [email protected] TAOTLUSED: Mõista Wisercat Estonia OÜ kasuks Rahandusministeeriumi Infotehnoloogiakeskuselt välja lepingulise esindaja kulud summas 13 442,50 eurot (ilma käibemaksuta) ja riigilõiv summas 1280 eurot. 1 LEPINGULISE ESINDAJA KULUDE NIMEKIRI JA KOOSSEIS 1.1 Wisercat Estonia OÜ lepingulise esindaja kulud on summas 13 442,50 eurot (ilma käibemaksuta). Wisercat Estonia OÜ lepingulise esindaja kulud kajastuvad alljärgnevas tabelis (kokku hind toodud ilma käibemaksuta): Tunnihind Summa Kuupäev Tehtud töö (toiming) Aeg (h) (EUR) (ilma km-ta) Analüüs - struktuuritoetuste registri arendus- ja 27.12.2024 0,50 190,00 95,00 hooldusteenuse hanke materjalid, esmane hinnangu, suhtlus 27.12.2024 Esmane analüüs, suhtlus 0,50 190,00 95,00 Analüüs, RHAD dokumentide analüüs, positsiooni 30.12.2024 kujundamine, asjaolude selgitamine, suhtlus kliendiga, 5,00 190,00 950,00 vaidlustuse koostamine 01.01.2025 Analüüs, vaidlustuse koostamine, asjaolude selgitamine 6,00 190,00 1 140,00 02.01.2025 Analüüs, suhtlus kliendiga, vaidlustuse täiendamine 6,50 190,00 1 235,00 03.01.2025 VAKO teade, suhtlus 0,25 190,00 47,50 06.01.2025 Suhtlus kliendiga 0,25 190,00 47,50 07.01.2025 Suhtlus kliendiga, kiri VAKOle ja menetlusosalistele 0,25 190,00 47,50 Nortali seisukohaga tutvumine, esmane analüüs, suhtlus 10.01.2025 0,50 190,00 95,00 kliendiga Kõne kliendiga, Nortali seisukohtadega tutvumine, analüüs ja 13.01.2025 3,25 190,00 617,50 arutelu Hankija vastusega tutvumine ja analüüs, suhtlus kliendiga, 14.01.2025 taotlus tähtaja pikendamiseks, analüüs seisukohtade 3,75 190,00 712,50 koostamiseks, arutelud kliendiga 15.01.2025 Teams kliendiga, analüüs 2,00 190,00 380,00 Vaidlustusasjas analüüs, arutelud kliendiga (sh Teams), 16.01.2025 vastuse koostamine hankija ja Nortali vastustele, tõendite 7,00 190,00 1 330,00 kogumine 17.01.2025 Vaidlustaja täiendavate seisukohtade koostamine 5,00 190,00 950,00 Vaidlustusasjas kliendi sisendi analüüs, töö tõenditega, 17.01.2025 7,75 190,00 1 472,50 seisukoha koostamine hankija ja Nortali vastustele Vaidlustusasjas analüüs, seisukoha koostamine hankija ja 18.01.2025 Nortali vastustele, suhtlus kliendiga, sh kliendi sisendi 4,75 190,00 902,50 läbitöötamine Vaidlustusasjas analüüs, seisukohtade koostamine, kliendi 19.01.2025 7,50 190,00 1 425,00 täiendav sisend, töö tõenditega Töö täiendavate seisukohtadega, Teams kõned kliendiga, 19.01.2025 10,00 190,00 1 900,00 menetluskulude nimekirja koostamine 70,75 13442,50 1.2 Hüvitamisele kuulub menetluskulude nimekirja koostamise kulu (RKTKo 2-18-7550 p 15). Seisukoht on kohaldatav ka vaidlustusmenetluses. 1.3 Käesolev vaidlustusasi on tavapärasest oluliselt mahukam ja keerukam, kuna hõlmab lisaks õiguslikele küsimustele oluliselt määral infotehnoloogia alast spetsiifikat. Asjaolule, et tegemist on mahuka ja keeruka asjaga, on viidanud ka VAKO tähtaegade pikendamisel. Seetõttu on asja mahukust ja keerukust arvestades lepingulise esindaja kulude tavapärasest suurem maht on põhjendatud. Tulenevalt eeltoodust palub Wisercat Estonia OÜ mõista Rahandusministeeriumi Infotehnoloogiakeskuselt välja Wisercat Estonia OÜ menetluskulud kogusummas 14 772,50 eurot, millest 13 442,50 eurot moodustavad lepingulise esindaja kulud (ilma käibemaksuta) ning 1280 eurot riigilõiv. Lugupidamisega /allkirjastatud digitaalselt/ Kaidi Reiljan-Sihvart vandeadvokaat Wisercat Estonia OÜ lepinguline esindaja 2|2
Allikas: Rahandusministeerium dokumendiregister →
dokumendiregister.eeAsutusedEesti avalike dokumendiregistrite otsing · nimistu.ee andmetel