Enterprise linuxová distribuce se od komunitní liší hlavně tím, jak dlouho a jak stabilně se udržuje. Maintenance balíky – opravy chyb a bezpečnostní záplaty vydávané k už uzamčené verzi distribuce – proto procházejí testy dřív, než se dostanou k zákazníkům.
Proč se maintenance balíky vůbec testují
Enterprise distribuce se typicky udržuje roky, často déle než deset let. Zákazníci na ní staví produkční provoz a neočekávají, že se jim s bezpečnostní opravou rozbije něco jiného. Cílem testování maintenance balíku proto není ověřit novou funkčnost – ta se v opravě nemá objevit vůbec – ale potvrdit dvě věci:
- že oprava skutečně řeší popsaný problém;
- že nezpůsobila regresi jinde, kde balík předtím fungoval správně.
Co testování typicky zahrnuje
- ověření samotné opravy – reprodukce původního problému a potvrzení, že po opravě zmizí;
- regresní testy – spuštění existující sady testů balíku (a balíků, které na něm závisejí), aby se odhalilo, jestli oprava něco jiného nerozbila; tvorba a údržba těchto testovacích sad probíhá ve spolupráci s vývojáři;
- hlášení nalezených chyb zpátky vývojářům, včetně návrhů na opravu, pokud testování odhalí problém, který oprava nezamýšlela;
- přípravu testovací infrastruktury pro specifické scénáře, které běžné prostředí nepokryje.
Proč více architektur
Enterprise distribuce obvykle podporuje víc procesorových architektur najednou – typicky x86_64, ale i další jako IBM Z nebo PowerPC. Stejná oprava zdrojového kódu se na každé architektuře zkompiluje a chová jinak: liší se velikost slova, zarovnání paměti, pořadí bajtů nebo dostupné instrukce. Oprava, která projde beze zbytku na jedné architektuře, může na jiné odhalit chybu, která tam vždycky byla, ale nikdy se neprojevila – nebo regresi, kterou způsobila samotná oprava. Testování napříč architekturami proto není redundance, ale nutná součást pokrytí.
Proč virtualizace
Balíky spojené s virtualizací (hypervizor, nástroje pro správu virtuálních strojů, síťování virtuálních strojů) se testují ve skutečně virtualizovaném prostředí, ne jen jako izolovaný balík na holém stroji. Regrese se tu často projeví jen v kombinaci – mezi hostitelem a hostem, mezi verzí hypervizoru a verzí nástrojů nad ním, nebo při specifické kombinaci úložiště a síťování. Bez skutečného virtualizovaného scénáře by taková regrese zůstala skrytá až do produkčního nasazení.
Výsledek
Maintenance balík, který projde tímto procesem, má vyšší jistotu, že opraví přesně to, co má, a nic jiného. To je základní předpoklad, na kterém stojí důvěra v enterprise distribuci jako stabilní, dlouhodobě udržovanou platformu.