Testovací prostředí informačních systémů

Praha, SecurityWorld č. 2 - Mnoho standardů předepisuje zřízení testovacího prostředí informačního systému. Může to ale být větší věda, než se zdá jak píše ve svém článku Martin Šlancar, business analytik společnosti NEWPS.CZ

 

Standardy, legislativa, best practices

Existuje mnoho standardů a norem, které doporučují či přikazují, aby informační systémy měly oddělené testovací prostředí od toho produkčního. Kupříkladu je to uvedeno jako bezpečnostní opatření ve standardu ISO 27001 nebo ve vyhlášce č. 316/2014 Sb., o kybernetické bezpečnosti. Potřebu mít testovací prostředí zmiňuje i sada doporučení ITIL.

Význam testovacího prostředí

Účelem testovacího prostředí je poskytnout prostor pro bezpečné zkoušení a odlaďování nových verzí softwarových produktů, pro nácvik integrace nového informačního řešení do IT prostředí firmy nebo úřadu, ale také pro zaškolení personálu v používání nového SW.

Kdyby se tyto aktivity prováděly v produkčním prostředí, mohlo by to ohrozit kontinuitu „byznysu“ – neopatrný zásah může způsobit nefunkčnost ostrých aplikací, nebo ztrátu či nežádoucí modifikaci dat. Testovací prostředí tedy můžeme považovat za jedno z mnoha bezpečnostních opatření pro ošetření specifické množiny rizik.

Konfigurace testovacího prostředí

Říká se, že testovací prostředí by mělo být shodné s produkčním prostředím. Je ale možné (a rozumné) dosáhnout takového stavu? To by totiž znamenalo dvojnásobné náklady a nároky na hardware, softwarové licence, kapacity datových úložišť, síťovou infrastrukturu a lidské zdroje v podobě IT administrátorů.

Proto se v praxi činí určité ústupky a testovací prostředí běží na minimálním počtu strojů s horší hardwarovou konfigurací a používá se jen omezený vzorek testovacích dat. To ovšem má ten důsledek, že provádění výkonnostních testů na testovacím prostředí nemá valný smysl.

A není jedno prostředí málo?

Již zmíněný standard ISO 27001 a vyhláška č. 316/2014 Sb. se zmiňují o vybudování tří prostředí – vývojového, testovacího a produkčního. Ve vývojovém prostředí se nacházejí méně stabilní vývojářské verze softwaru, do testovacího prostředí se již nasazují dokončené verze k otestování a v produkčním prostředí jsou již umístěny řádně otestované, finální verze aplikací.

Některé informační systémy ale poskytují aplikační rozhraní, do kterých přistupují klientské aplikace třetích stran. Pro potřeby těchto aplikací se často vytváří tzv. veřejné testovací prostředí, které vývojářům napojených aplikací poskytuje možnost otestovat kompatibilitu svých aplikací s novou verzí informačního systému. Ta je do „veřejného testu“ nasazována s určitým časovým předstihem před nasazením do produkčního prostředí.

Procesy okolo

Zejména u veřejných testovacích prostředí by měl jejich správce mít přehled o tom, kdo do jeho systémů přistupuje. Měl by proto zavést proces registrace případných zájemců o přístup do testovacího prostředí a také proces zrušení přístupu. Díky registraci má jedinečnou možnost získat cenné kontaktní údaje na vývojáře aplikací třetích stran, které se mohou hodit při řešení problémů v produkčním prostředí. Např. některá aplikace třetí strany začne vinou implementační chyby přetěžovat informační systém a správce se může obrátit na příslušného vývojáře, aby zjednal nápravu.

Do úvahy může připadat i třetí proces – změna konfigurace testovacího prostředí pro příslušného vývojáře. Ten může být potřeba pro ověření nových testovacích scénářů, které mohou vyplynout z nových funkcí informačního systému.

Testovací data

Když máme vytvořeno testovací prostředí, musíme je také naplnit daty.

Někdo importuje do testovacího prostředí vybraný vzorek dat z produkčního prostředí. Jinde zase vygenerují fiktivní data, v nichž se zcela jistě budou hemžit Janové Nováci, telefonní čísla 123456789 či třeba e-mailové adresy a@b.cz.

Nacházejí-li se v testovacím prostředí ostrá data (byť i jen jejich část), měla by podléhat stejným bezpečnostním opatřením jako v ostrém prostředí. Z tohoto důvodu je vhodné provést v „testu“ jejich anonymizaci.

U skutečně testovacích dat je zase zapotřebí dbát na to, že nemohou být vygenerována zcela náhodně. Data musí splňovat integritní omezení definovaná v testovací databázi, což může být např. stanovená maximální délka textových řetězců, povolení jen určitých číselných rozsahů, ale i dodržení referenčních vazeb mezi různými datovými entitami. Např. v databázi nemůže samostatně existovat položka faktury bez příslušné faktury, k níž náleží.

Testování propojených systémů

Mnohem vyšší nároky jsou kladeny na testovací prostředí a testovací data v případě systému, který je propojen s dalšími informačními systémy.

Především musí mít všechny propojené systémy vytvořena vlastní testovací prostředí. Je nežádoucí, aby jeden testovací systém přistupoval do jiného produkčního systému.

Dále v takovém případě nelze vymýšlet vlastní testovací data, ale je nutné akceptovat testovací data z jejich primárního (testovacího) zdroje. Dobrým příkladem na vysvětlení jsou základní registry. Ty poskytují testovací prostředí, které obsahuje fiktivní fyzické osoby a firmy. Pokud některý úřad potřebuje otestovat komunikaci svého nového systému se základními registry, musí vzít zavděk těmito testovacími daty.

Ochrana osobních údajů

Zákon č. 101/2000 Sb., o ochraně osobních údajů (a v budoucnu evropské nařízení GDPR), samozřejmě platí i pro testovací prostředí. Pokud se v něm nacházejí skutečné osobní údaje, musí být patřičně chráněny před jejich zneužitím, odcizením či modifikací.

To ovšem znamená další náklady a požadavky na další zdroje. Proto se v testovacím prostředí může vyplatit provést již zmíněnou anonymizaci osobních údajů, čímž správcům odpadne spousta starostí.

Aplikační podpora

Vybudování testovacího prostředí může v extrémním případě znamenat vytvoření kompletní kopie produkčního prostředí, což může být časově náročné.

V současnosti je ale tato práce již ulehčena díky využívání virtualizačních či cloudových technologií. Není tak problém „na stisk jednoho tlačítka“ vytvořit kopii produkčního virtuálního stroje, přesunout ji do testovacího prostředí a změnit konfiguraci sítě a dalších systémových parametrů. A testovací stroj je na světě.

Vytvoření samostatné síťové infrastruktury pro testovací účely zase usnadňuje technologie virtuálních LAN.

Stále budeme testovat

Potřeba testování tu bude neustále, neboť informační systémy jsou nedokonalé, protože jejich tvůrci jsou jen nedokonalí lidé.

Bude tedy nadále nutné testovat nové informační systémy a jejich aktualizace, aby uživatelé přicházeli do styku s co nejvíce odladěnými softwarovými produkty.

 

Ing. Martin Šlancar
business analytik
NEWPS.CZ s. r. o.

 

 

 

Další články

IT je stejně běžné jako elektrická světla. Ale šetří někdo na žárovkách?
Více
Konec obluzování holek v čase 5G síti
Více

Zpět na výpis novinek