C2-järjestelmän testaus eroaa perustavanlaatuisesti kaupallisen ohjelmiston testauksesta. Kaupallisessa ohjelmistossa virhe tarkoittaa heikentynyttä käyttäjäkokemusta tai tietojen häviämistä. C2-järjestelmässä live-operaation aikainen virhe voi tarkoittaa, että operaattorit menettävät näkyvyyden omiin joukkoihinsa kriittisellä hetkellä, tulitehtävä lähetetään väärään yksikköön tai uhriilmoitus viivästyy, koska viestiväylä on ylikuormittunut. Testausstrategian on heijastettava tätä operatiivista kontekstia.

Puolustuksen ohjelmiston laadunvarmistus C2-järjestelmissä kattaa viisi kategoriaa: yksittäisten komponenttien yksikkö- ja integraatiotestaus, integroidun alustan järjestelmätestaus, suorituskykytestaus operatiivisessa kuormituksessa, resilienssin testaus heikentyneissä olosuhteissa ja hyväksyntätestaus sotilaallisia vaatimuksia vastaan. Jokainen kategoria vaatii erityisiä työkaluja, ympäristöjä ja hyväksymis-/hylkäämiskriteerejä, jotka eroavat kaupallisen ohjelmiston normeista.

C2-komponenttien yksikkö- ja integraatiotestaus

C2-komponenttien yksikkötestaus noudattaa vakiokäytäntöjä – eristä jokainen komponentti, simuloi ulkoiset riippuvuudet, varmista käyttäytyminen spesifikaatiota vastaan. C2-erityinen haaste on se, että monet komponentit vuorovaikuttavat aikaherkkien ulkoisten tietojen kanssa: GPS-sijainnit, radioviestit, anturisyötteet. Testikiinniketiedostot on luotava realistisille aikasarjatiedoille asianmukaisilla päivitysnopeuksilla, aikaleiman formaateilla ja viestirakenteiden kanssa.

CoT-viestianalysaattorit esimerkiksi vaativat testikiinniketiedostoja, jotka kattavat täyden tapahtumatyyppivalikoiman (a-f-G, a-h-A, b-m-p-s-m, t-x-m-c), epämuodostuneen XML:n, puuttuvat pakollisit attribuutit ja vanhentuneet aikaleimat. Analysaattori, joka hiljaa hylkää epämuodostuneet viestit, on toiminnallisesti oikea eristyksissä, mutta operatiivisesti vaarallinen: se tarkoittaa, että ystävällisten joukkojen sijainti voi hiljaa kadota COP:sta ilman mitään ilmoitusta operaattorille.

Integraatiotestaus varmistaa, että komponentit toimivat oikein yhdistettynä. C2-järjestelmän kriittiset integraatiopisteet ovat: tiedon sisäänottoputki (anturi → viestiväylitys → jäljitystietokanta), reaaliaikainen push-polku (jäljitystietokanta → WebSocket → karttakuvaaja) ja komentokulku (operaattorin toiminto → komentopalvelu → ulkoinen järjestelmä). Jokainen polku on testattava päästä päähän realistisilla datamäärillä ja päivitysnopeuksilla ennen kuin komponenttitason testit katsotaan valmiiksi.

Suorituskykytestaus: Jäljityksen läpäisykyky, FPS ja viestin viive

Suorituskykytestaus C2-järjestelmälle määrittelee erityiset kvantitatiiviset kynnysarvot – ei "järjestelmän pitäisi olla nopea" vaan "järjestelmän on ylläpidettävä ≥30 FPS karttanäytöllä 2 000 samanaikaisella jäljityksellä päivittyen 0,1 Hz:n taajuudella, jäljityksen sijainninpäivitysviiveellä tietolähteestä karttanäyttöön ≤500 ms 95. prosenttipisteessä."

Jäljityksen läpäisykyky. Suurin määrä jäljityksiä, jotka järjestelmä voi vastaanottaa ja käsitellä sekunnissa ilman jonoutumista. Mitataan syöttämällä CoT-viestejä kasvavilla nopeuksilla, kunnes järjestelmän sisäiset jonot kasvavat rajoittamattomasti. Prikaatitason C2-järjestelmälle jäljityksen läpäisykyvyn on ylitettävä 200 päivitystä/sekunti (2 000 jäljitystä päivittyen joka 10. sekunti).

Kartan kuvaustiheys FPS:nä. Kuvaa sekunnissa karttanäytöllä operatiivisella jäljitysmäärän ylärajalla. Mitataan selaimen suorituskyky-API:en (PerformanceObserver, requestAnimationFrame-ajoitus) avulla synteettisellä jäljitysgeneraattorilla, joka lähettää sijaintipäivityksiä WebSocketin kautta. Tavoite: ≥30 FPS enimmäisoperatiivisella jäljitysmäärällä. Alle 20 FPS:n kartta muuttuu operatiivisesti käyttökelvottomaksi liikkuvien kontaktien seurannassa.

Päästä päähän -viive. Aika sijaintipäivityksen syöttämisestä järjestelmään (esim. CoT-viesti saapuu sisäänottopäätepisteeseen) päivitetyn sijainnin kuvaamiseen operaattorin näytöllä. Mitataan syöttämällä aikaleimatut testisanomat ja vertaamalla syöttöaikaleimaa selainautomatisaation kautta kaapattua kuvausaikaleimaan. Tavoite: ≤500 ms 95. prosenttipisteessä normaalissa kuormituksessa.

Komennon edestakaisinkulkuaika. Aika operaattorin komennon lähettämisestä (esim. yksikön tehtävänanto) vahvistuksen ilmestymiseen järjestelmässä. Tavoite: ≤2 sekuntia 95. prosenttipisteessä. Pidemmät edestakaisinkulkuajat luovat operaattorin epäröintiä ja toistuvia lähetyksiä.

Kaaostekniikka heikentyneissä verkkoolosuhteissa

C2-järjestelmät toimivat kiisteltyissä sähkömagneettisissa ympäristöissä, joissa verkkoyhteys on katkonainen, kaistanleveys on rajoitettu ja pakettihäviöt ovat normaalia. Testaus vain ihanteellisissa verkko-olosuhteissa tuottaa ohjelmistoja, jotka toimivat varuskunnassa, mutta epäonnistuvat kentällä.

Kaaostekniikka C2-järjestelmissä tuo hallittuja vikoja järjestelmän käyttäytymisen tarkistamiseksi:

Verkon pakettihäviö (10–40 %). TCP-yhteydet lähettävät uudelleen hukkuneet paketit; WebSocket-yhteydet heikkenevät sulavasti, mutta viive kasvaa. 30 %:n pakettihäviöllä varmista, että: karttanäyttö jatkaa päivittymistä (kasvavalla viiveellä), järjestelmä ei kaadu tai jumiudu ja vanhat jäljitykset päättyvät oikein pikemmin kuin pysyvät haamujäljityksinä, kun päivitykset lakkaavat saapumasta.

Verkkojako (täydellinen katkaisu 30–300 sekunnin ajan). Kun verkkojako korjautuu, järjestelmän on sovitettava jäljitystilansa yhteen ylävirran tietolähteiden nykyisen tilan kanssa. Testaa, että: uudelleenyhdistäminen on automaattista (ei manuaalista operaattorin toimintoa tarvita), jäljitykset, jotka katkosivat partition aikana, päättyvät, ja jäljitystila yhdistämisen jälkeen vastaa auktoritatiivista ylävirtatilaa yhden päivityssyklin sisällä.

Solmuvika (tapa palveluinstanssi). Klusterimuotoisessa käyttöönotossa sovellussolmun tappaminen ei saa aiheuttaa näkyvää katkosta operaattorin näkökulmasta. Kubernetesin terveystarkistukset ja palveluverkon reititys täytyy ohjata liikenne terveille solmuille 5 sekunnin sisällä. Testaa koko vikasietosiirtymäsekvenssi tapettuun solmuun yhdistetyn asiakkaan kanssa.

GPS-huijaus / sijaintitiedon korruptio. Syötä jäljityksiä epätodennäköisillä sijainneilla (lat/lon operatiivisen alueen ulkopuolella, korkeus negatiivinen tai epätodennäköisen suuri) tai epätodennäköisillä nopeuksilla (maakomponentti liikkuu 500 km/h). Jäljityksen validointikerroksen on havaittava ja suodatettava nämä kirjaten poikkeavuudet turvallisuustarkasteluun. Tämä testi kattaa myös tietojen eheyden – varmistaa, että järjestelmä ei sokeasti luota saapuviin CoT-tietoihin ilman järkevyystarkastusta.

Red team -testaus turvallisuuden varmistamiseksi

Red team -testaus – jäsennelty vastustajatestaus, jossa erillinen tiimi yrittää vaarantaa järjestelmän – vaaditaan puolustuksen C2-järjestelmiltä ennen operatiivista käyttöönottoa. Red team kohdistuu:

Todentamisen ohitus. Yritetään käyttää API-päätepisteitä ilman kelvollisia tunnuksia, vanhentuneilla tunnuksilla tai luvattoman identiteetintarjoajan myöntämillä tunnuksilla. Testataan JWT-allekirjoituksen validointi, tokenin vanhenemisen toimeenpano ja myöntäjän validointi.

Oikeuksien laajentaminen. Todennetaan pienoikeuksisena käyttäjänä ja yritetään käyttää resursseja, jotka vaativat korkeampaa turvaluokitustasoa. Testataan ABAC-käytäntöjen toimeenpanokerros aukoilta, joissa luokitustason toimeenpano puuttuu tai on virheellinen.

Tietojen suodatuspolut. Yritetään poimia luokiteltuja jäljitystietoja raportin vientitoimintojen, API-sivutuksen tai virheilmoitusten kautta, jotka vahingossa palauttavat tietoja, joihin kutsujalla ei ole lupaa.

Injektiohyökkäykset. SQL-injektio suodatusparametrien kautta, komentoinjektio operatiivisten tietokenttien kautta ja CoT XML -injektio epämuodostuneiden tapahtumaviestien kautta. C2-järjestelmät, jotka hyväksyvät jäsenneltyä dataa ulkoisista lähteistä (TAK-asiakkaat, anturiadapterit), ovat erityisen alttiita injektiolle CoT-sisäänottoputken kautta.

STANAG-vaatimustenmukaisuuden testaus

C2-järjestelmien, jotka integroituvat NATO-harjoituksiin tai monikansallisiin ohjelmiin, on noudatettava asianmukaisia STANAGeja (standardointisopimuksia). Taktisen C2-yhteentoimivuuden kannalta oleellisimmat:

STANAG 5522 määrittelee viestintäprotokollan Link 16 -taktiselle datalinkeille. C2-järjestelmien, jotka näyttävät Link 16 -jäljityksiä, on oikein purettava J-sarjan viestit ja kartoitettava ne järjestelmän sisäiseen jäljitysmalliin.

STANAG 4677 kattaa NATO Friendly Force Information (NFFI):n – standardin NATO-yksiköiden sijainnin jakamiseen kansallisten rajojen yli. NFFI-vaatimustenmukaisuustestaus varmistaa, että sijaintiraportit on muodostettu oikein, ajoituskentät ovat tarkkoja ja jäljitystunnisteet ovat vakaita viestivaihtojen välillä.

APP-6 (NATO-sotilassymbolit) -vaatimustenmukaisuustestaus varmistaa, että karttanäyttö kuvaa oikein sotilaallisten yksikköjen symbolit oikealla symbolijoukkoversion (APP-6D) mukaisesti, oikeilla afflikaatioväreillä, esikuntatunnuksilla ja muokkaajakentillä järjestelmässä esiintyville jäljitystyypeille.

Vaatimustenmukaisuustestaus näitä standardeja vastaan vaatii testikiinniketiedostoja, jotka tuottavat standardimuotoisia viestejä ja automaattisen varmistuksen siitä, että järjestelmän tuloste vastaa odotettuja symbolikuvauksia tai sisäisiä tietomalleja. Manuaalinen visuaalinen tarkastus ei riitä sertifiointiin.

Hyväksyntätestaus kenttäolosuhteissa

Kenttähyväksyntätestaus on lopullinen varmistus ennen operatiivista käyttöönottoa. Se tapahtuu ympäristössä, joka jäljittelee operatiivista ympäristöä – kenttäharjoituksessa oikeilla radioverkkoilla, oikeilla GPS-vastaanottimilla ja oikeilla operaattoreilla suorittamassa edustavia tehtäviä.

Hyväksyntätestisuunnitelma määrittelee erityiset skenaariot: komppaniatason liike 20 jalkautuneella sotilaalla varustettuna ATAK:lla, tulitehtävä pyynnöstä toteutukseen täyden viestijäljityksen kanssa, viestintä-heikennetty skenaario, jossa pataljoonan TAK-palvelin menettää yhteyden prikaatiin 10 minuutiksi. Kullakin skenaariolla on määritetty hyväksymis-/hylkäämiskriteerit: tulitehtävä on lähetettävä 60 sekunnin sisällä, kaikkien ystävällisten joukkojen sijaintien on oltava ajankohtaisia 90 sekunnin sisällä viestinnän palautumisesta.

Testiympäristön periaate: Rakenna pysyvä testiriipuke, joka voidaan aktivoida missä tahansa kehityksen vaiheessa – ei vain ennen julkaisua. Jatkuva suorituskyvyn regressiotestaus, joka ajaa täyden jäljityksen läpäisykyvyn ja kuvaustiheyden viitearvot jokaisessa CI/CD-rakennuksessa, havaitsee suorituskykyregressiot ennen kuin ne pääsevät integraatiotestauksen. 15 %:n FPS-pudotus, jonka näennäisesti liittymätön muutos aiheuttaa, on paljon halvempaa korjata kehitysvaiheessa kuin kenttähyväksynnässä.