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