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.

  • 🔘 Těsné spojení: Hardware se staví paralelně se softwarem, takže skutečné testovací prostředí často dorazí pozdě.
  • ☑️ Pět úrovní: Testování softwarové jednotky, integrace, systémové jednotky, systémové integrace a validace systému se zaměřuje na jiné hranice modulů.
  • (Tj. Bezpečnostní opatření: Lékařské, železniční, letecké a automobilové výrobky vyžadují před udělením certifikace přísné zdokumentované testování.
  • 🧪 Preference šedého rámečku: Testování systémových jednotek sleduje interní zdroje a zprávy RTOS, takže metody šedého rámečku se k němu nejlépe hodí.
  • 🛠️ Hlavní překážky: Omezený přístup k hardwaru, komponenty s otevřeným zdrojovým kódem, smíšené softwarové a hardwarové vady a vady, které se brání reprodukci.

Testování softwaru a hardwaru v rámci vestavěného systému

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:

  1. Software je dodáván s určitými vstupy.
  2. Část softwaru je spuštěna.
  3. 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í.

Nejčastější dotazy

Typické balíčky kombinují statickou analýzu, postroje pro jednotkové testování v jazyce C a C++, analyzátory sběrnic, tracelektronické debuggery a hardwarově integrovaná zařízení a navíc automatizace testu takže regresní sady běží bez dozoru.

Hardware-in-the-loop (HIL) spouští skutečný firmware na skutečném řídicím systému, zatímco simulátor dodává signály, které by produkovala okolní elektrárna, a procvičuje tak poruchové stavy, jejichž fyzikální vytvoření je nebezpečné.

Simulátor modeluje chování a spouští hostitelskou verzi; emulátor reprodukuje cílovou instrukční sadu, takže se spustí skutečný binární soubor. Ani jeden z nich nereprodukuje analogové a časové efekty přesně.

IEC 61508 je obecná norma pro funkční bezpečnost. Mezi sektorové verze patří ISO 26262 pro silniční vozidla, DO-178C pro palubní software, IEC 62304 pro zdravotnické prostředky a EN 50128 pro řízení železniční dopravy.

Modely umělé inteligence třídí velký protokol a tracobjemy, které zařízení produkuje, seskupení opakovaných selhání a seřazení regresních testů, které se mají spustit jako první na vzácném hardwaru. Posouzení bezpečnosti zůstává na inženýrovi.

GitHub Copilot návrhy testovacích kabelových svazků a pahýlů pro C nebo C++ moduly a zrychluje opakované napodobování. Registr chování a časová omezení, která nikdy neviděl, je stále třeba kontrolovat.

Prostřednictvím analýzy doby provedení v nejhorším případě, instrumentované trace na cíli a zátěž běží při maximálním zatížení. Nedodržení termínů a latence přerušení se měří na reálném hardwaru, který hostitelské sestavení nedokáže reprodukovat.

Čtení C a C++, znalost schémat zapojení a logických analyzátorů, znalost konceptů RTOS a sběrnicových protokolů a také skriptování. Související práce, jako např. testování IoT čerpá ze stejného základu.

Shrňte tento příspěvek takto: