Co je vestavěné testování v testování softwaru?
⚡ Chytré shrnutí
Testování vestavěných systémů kontroluje funkční a nefunkční chování softwaru a hardwaru společně, protože v vestavěném systému jsou tyto dva prvky úzce propojeny a ani jeden z nich nelze samostatně řádně validovat.
Co jsou vestavěné systémy?
Vestavěné systémy jsou elektronicky řízená zařízení, kde je software a hardware úzce propojen. Vestavěné systémy mohou obsahovat řadu výpočetních zařízení. Jedná se o počítače zabudované do jiných zařízení pro provozování funkcí specifických pro danou aplikaci. Koncový uživatel si jejich existenci obvykle ani neuvědomuje.
Vestavěné testování
Integrované testování je testovací proces pro kontrolu funkčnosti a nefunkční atributy softwaru i hardwaru v embedded systému a zajištění toho, aby konečný produkt neobsahoval chyby. Hlavním účelem testování embedded systémů je ověřit a potvrdit, zda konečný produkt embedded hardwaru a softwaru splňuje požadavky klienta, či nikoli.
Testování vestavěného softwaru kontroluje a zajišťuje, že daný software je kvalitní a splňuje všechny požadavky, které by měl splňovat. Testování vestavěného softwaru je vynikajícím přístupem k zajištění bezpečnosti v kritických aplikacích, jako jsou lékařské přístroje, železnice, letectví, automobilový průmysl atd. Přísné a pečlivé testování je klíčové pro udělení certifikace softwaru.
Jak provádět testování vestavěného softwaru
Obecně platí, že testujete ze čtyř důvodů:
- Chcete-li najít chyby v softwaru
- Pomáhá snižovat rizika jak pro uživatele, tak pro společnost
- Snižte náklady na vývoj a údržbu
- Pro zlepšení výkonu
V rámci embedded testování se provádějí následující činnosti:
- Software je dodáván s určitými vstupy.
- Část softwaru je spuštěna.
- Stav softwaru je pozorován a výstupy jsou kontrolovány z hlediska očekávaných vlastností, jako je to, zda výstup odpovídá očekávanému výsledku, zda splňuje požadavky a zda nedochází k pádům systému.
Typy testování vestavěného softwaru
V zásadě existuje pět úrovní testování, které lze aplikovat na embedded software.
Testování softwarových jednotek
Jednotkový modul je buď funkce, nebo třída. Jednotkové testování provádí vývojový tým, primárně vývojář, a obvykle se provádí v modelu vzájemného hodnocení. Testovací případy se vyvíjejí na základě specifikace modulu.
Testování integrace
Integrační testování lze rozdělit do dvou segmentů:
- Testování softwarové integrace
- Testování integrace softwaru/hardwaru
Nakonec je testována interakce hardwarových a softwarových komponent. To může zahrnovat zkoumání interakce mezi vestavěnými periferními zařízeními a softwarem.
Vývoj embedded softwaru má jedinečnou vlastnost: skutečné prostředí, ve kterém software běží, je obvykle vytvářeno paralelně se softwarem. To způsobuje nepříjemnosti při testování, protože komplexní testování nelze provést v simulovaných podmínkách.
Testování systémové jednotky
Testovaný modul je nyní kompletní framework, který se skládá z kompletního softwarového kódu a všech operační systém v reálném čase (RTOS) a s platformou související části, jako jsou přerušení, mechanismy úkolů, komunikace atd. Protokol Point of Control již není voláním funkce nebo metody, ale spíše zprávou odeslanou nebo přijatou pomocí front zpráv RTOS.
Systémové prostředky jsou sledovány za účelem vyhodnocení schopnosti systému podporovat provádění vestavěného systému. Z tohoto hlediska testování šedé krabice je preferovanou metodou testování. V závislosti na organizaci je testování systémových jednotek buď povinností vývojáře, nebo specializovaného týmu pro systémovou integraci.
Testování systémové integrace
Testovaný modul začíná sadou komponent v rámci jednoho uzlu. Body kontroly a pozorování (PCO) jsou kombinací síťových komunikačních protokolů a událostí RTOS, jako jsou síťové zprávy. Kromě komponenty může virtuální tester hrát roli uzlu také.
Ověřovací testování systému
Testovaný modul je subsystém s kompletní implementací nebo kompletní vestavěný systém. Cílem tohoto závěrečného testu je splnit funkční požadavky externí entity. Externí entitou může být osoba, zařízení v telekomunikační síti nebo obojí.
Rozdíl: Vestavěné testování a testování softwaru
Níže uvedená tabulka porovnává integrované testování s konvenčním testováním testování softwaru.
| Testování softwaru | Vestavěné testování |
|---|---|
| Testování softwaru se týká pouze softwaru. | Vestavěné testování se týká jak softwaru, tak hardwaru. |
| V průměru je 90 % testování prováděných na světě čistě manuálně. testování černé skříňky. | Testování vestavěných systémů nebo čipů se provádí na embedded systémech nebo čipech a může se jednat o černou skříňku nebo... testování bílé skříňky. |
| Primárními oblastmi testování jsou kontroly GUI, funkčnost, validace a určitá úroveň testování databáze. | Primárními oblastmi testování jsou chování hardwaru s ohledem na počet vstupů, které jsou mu přiděleny. |
| Testování softwaru se provádí převážně na klient-server, webových a mobilních aplikacích. | Testování vestavěných systémů se obvykle provádí na hardwaru. |
| např, Google Mail, Yahoo Mail, Android aplikace. | např. stroje ve zdravotnictví, mikrokontroléry používané v počítačích. |
Výzvy: Testování vestavěného softwaru
Některé z problémů, se kterými se člověk může setkat během testování vestavěného softwaru:
Závislost na hardwaru
Závislost na hardwaru patří mezi hlavní problémy, s nimiž se setkáváme při testování embedded softwaru, a to kvůli omezenému přístupu k hardwaru. Emulátory a simulátory však nemusí přesně reprezentovat chování skutečného zařízení a mohly by poskytnout nesprávnou představu o výkonu systému a použitelnosti aplikace.
Open Source Software
Většina embedded softwarových komponent je open source, nejsou vytvářeny interně a není pro ně k dispozici kompletní sada testů. Existuje široká škála kombinací testů a výsledných scénářů.
Vady softwaru vs. hardwaru
Dalším aspektem je vývoj softwaru pro nově vytvořený hardware. Během tohoto procesu lze identifikovat vysoký podíl hardwarových vad. Nalezená závada se neomezuje pouze na software. Může souviset i s hardwarem.
Reprodukovatelné vady
V případě vestavěných systémů je obtížnější reprodukovat nebo znovu vytvořit vady. To nutí testovací proceduru vestavěných systémů oceňovat každý výskyt vady podstatně výše než ve standardním případě a shromažďovat co nejvíce dat, které je rozumně nutné k nalezení hlavní příčiny vady.
Průběžné aktualizace softwaru
Vestavěné systémy vyžadují pravidelné aktualizace softwaru, jako jsou upgrady jádra, opravy zabezpečení, různé ovladače zařízení atd. Omezení spojená s aktualizacemi softwaru ztěžují identifikaci chyb. Navíc to zvyšuje význam postupu sestavení a nasazení.
