Co to jest testowanie wbudowane w testowaniu oprogramowania?

⚡ Inteligentne podsumowanie

Testowanie wbudowane pozwala na jednoczesną kontrolę funkcjonalnego i niefunkcjonalnego zachowania oprogramowania i sprzętu, ponieważ w systemie wbudowanym są one ściśle powiązane i żadnego z nich nie da się prawidłowo zweryfikować osobno.

  • 🔘 Szczelne połączenie: Sprzęt powstaje równolegle z oprogramowaniem, więc rzeczywiste środowisko testowe często pojawia się późno.
  • Pięć poziomów: Testowanie jednostki oprogramowania, integracji, jednostki systemowej, integracji systemu i walidacji systemu ma na celu ustalenie różnych granic modułu.
  • Stawki bezpieczeństwa: Produkty medyczne, kolejowe, lotnicze i motoryzacyjne wymagają rygorystycznych udokumentowanych testów przed przyznaniem certyfikatu.
  • 🧪 Preferencje szarego pola: Testowanie jednostkowe systemu obejmuje obserwację zasobów wewnętrznych i komunikatów RTOS, dlatego najlepiej sprawdzają się w nim metody szarej skrzynki.
  • 🛠️. Główne przeszkody: Ograniczony dostęp do sprzętu, komponenty typu open source, mieszane wady oprogramowania i sprzętu oraz wady uniemożliwiające odtworzenie.

Wbudowane testowanie oprogramowania i sprzętu w systemie wbudowanym

Czym są systemy wbudowane?

Systemy wbudowane To urządzenia sterowane elektronicznie, w których oprogramowanie i sprzęt są ściśle ze sobą powiązane. Systemy wbudowane mogą zawierać różnorodne urządzenia obliczeniowe. Są to komputery PC wbudowane w inne urządzenia w celu obsługi funkcji specyficznych dla danej aplikacji. Użytkownik końcowy zazwyczaj nawet nie zdaje sobie sprawy z ich istnienia.

Testowanie wbudowane

Testy wbudowane jest procesem testowania mającym na celu sprawdzenie funkcjonalności i niefunkcjonalny atrybuty oprogramowania i sprzętu w systemie wbudowanym oraz zapewnienie, że produkt końcowy będzie wolny od wad. Głównym celem testowania systemów wbudowanych jest weryfikacja i walidacja, czy produkt końcowy, składający się ze sprzętu i oprogramowania wbudowanego, spełnia wymagania klienta.

Testowanie oprogramowania wbudowanego weryfikuje i zapewnia, że ​​oprogramowanie jest dobrej jakości i spełnia wszystkie wymagania, jakie powinno spełniać. Testowanie oprogramowania wbudowanego to doskonałe podejście do zagwarantowania bezpieczeństwa w krytycznych aplikacjach, takich jak sprzęt medyczny, kolejnictwo, lotnictwo, przemysł motoryzacyjny itp. Surowe i staranne testowanie ma kluczowe znaczenie dla uzyskania certyfikatu oprogramowania.

Jak przeprowadzić testowanie oprogramowania wbudowanego

Ogólnie rzecz biorąc, testujesz z czterech powodów:

  • Aby znaleźć błędy w oprogramowaniu
  • Pomaga zmniejszyć ryzyko zarówno dla użytkowników, jak i firmy
  • Obniż koszty rozwoju i utrzymania
  • Aby poprawić wydajność

Podczas testowania wbudowanego wykonywane są następujące czynności:

  1. Oprogramowanie jest wyposażone w pewne dane wejściowe.
  2. Wykonywany jest fragment oprogramowania.
  3. Obserwuje się stan oprogramowania i sprawdza, czy dane wyjściowe odpowiadają oczekiwanym rezultatom, czy są zgodne z wymaganiami i czy nie występują awarie systemu.

Typy testowania oprogramowania wbudowanego

Zasadniczo istnieje pięć poziomów testowania, które można zastosować do oprogramowania wbudowanego.

Testowanie jednostkowe oprogramowania

Moduł jednostkowy jest funkcją lub klasą. Testowanie jednostkowe jest przeprowadzane przez zespół programistów, głównie programistów, i zazwyczaj odbywa się w modelu recenzji eksperckiej. Przypadki testowe są opracowywane na podstawie specyfikacji modułu.

Testy integracyjne

Testy integracyjne można podzielić na dwa segmenty:

  • Testowanie integracji oprogramowania
  • Testowanie integracji oprogramowania/sprzętu

Na koniec testowana jest interakcja domeny sprzętowej i komponentów programowych. Może to obejmować badanie interakcji między wbudowanymi urządzeniami peryferyjnymi a oprogramowaniem.

Tworzenie oprogramowania wbudowanego charakteryzuje się unikalną cechą: rzeczywiste środowisko, w którym działa oprogramowanie, jest zazwyczaj tworzone równolegle z samym oprogramowaniem. Powoduje to utrudnienia w testowaniu, ponieważ kompleksowe testowanie nie może być przeprowadzone w warunkach symulowanych.

Testowanie jednostek systemowych

Teraz modułem do przetestowania jest pełna struktura składająca się z kompletnego kodu oprogramowania i wszystkich system operacyjny czasu rzeczywistego (RTOS) i elementy związane z platformą, takie jak przerwania, mechanizmy zadań, komunikacja itd. Protokół Point of Control nie jest już wywołaniem funkcji ani wywołaniem metody, lecz komunikatem wysyłanym lub odbieranym za pomocą kolejek komunikatów RTOS.

Zasoby systemowe są obserwowane w celu oceny zdolności systemu do obsługi wykonywania systemu wbudowanego. W tym aspekcie testowanie metodą szarej skrzynki Jest to preferowana metoda testowania. W zależności od organizacji, testowanie jednostkowe systemu jest obowiązkiem programisty lub dedykowanego zespołu ds. integracji systemów.

Testowanie integracji systemu

Testowany moduł rozpoczyna się od zestawu komponentów w obrębie jednego węzła. Punkty Kontroli i Obserwacji (PCO) to połączenie protokołów komunikacyjnych związanych z siecią i zdarzeń RTOS, takich jak komunikaty sieciowe. Oprócz komponentu, wirtualny tester może również pełnić rolę węzła.

Testowanie walidacyjne systemu

Testowany moduł to podsystem z kompletną implementacją lub kompletny system wbudowany. Celem tego końcowego testu jest spełnienie wymagań funkcjonalnych podmiotu zewnętrznego. Należy pamiętać, że podmiotem zewnętrznym może być osoba, urządzenie w sieci telekomunikacyjnej lub oba te elementy.

Różnica: testowanie wbudowane i testowanie oprogramowania

Poniższa tabela porównuje testy wbudowane z testami konwencjonalnymi Testowanie oprogramowania.

Testowanie oprogramowania Testowanie wbudowane
Testowanie oprogramowania dotyczy wyłącznie oprogramowania. Testowanie wbudowane dotyczy zarówno oprogramowania, jak i sprzętu.
Średnio 90% testów wykonywanych na świecie jest przeprowadzanych wyłącznie ręcznie testy czarnej skrzynki. Testowanie systemów wbudowanych przeprowadza się na systemach wbudowanych lub układach scalonych i może to być test czarnej skrzynki lub testowanie na chipach. testowanie w białej skrzynce.
Podstawowymi obszarami testowania są kontrole GUI, funkcjonalność, walidacja i pewien poziom testowania baz danych. Podstawowym obszarem testowania jest badanie zachowania sprzętu przy określonej liczbie podanych mu danych wejściowych.
Testowanie oprogramowania odbywa się głównie w aplikacjach klient-serwer, sieciowych i mobilnych. Testowanie systemów wbudowanych przeprowadza się zazwyczaj na sprzęcie.
EC Google Mail, Yahoo Mail, Android aplikacji. np. maszyny wykorzystywane w służbie zdrowia, mikrokontrolery stosowane w komputerach.

Wyzwania: Testowanie oprogramowania wbudowanego

Niektóre wyzwania, z jakimi można się spotkać podczas testowania oprogramowania wbudowanego:

Zależność sprzętowa

Zależność sprzętowa to jedna z głównych trudności napotykanych podczas testowania oprogramowania wbudowanego, ze względu na ograniczony dostęp do sprzętu. Jednak emulatory i symulatory mogą nie odzwierciedlać precyzyjnie zachowania rzeczywistego urządzenia i dawać mylne wyobrażenie o wydajności systemu i użyteczności aplikacji.

Oprogramowanie Open Source

Większość komponentów oprogramowania wbudowanego ma charakter open source, nie jest tworzona wewnętrznie i nie posiada kompletnego zestawu testów. Istnieje szeroki wachlarz kombinacji testów i wynikających z nich scenariuszy.

Wady oprogramowania a wady sprzętu

Innym aspektem jest tworzenie oprogramowania dla nowo powstałego sprzętu. Podczas tego procesu można zidentyfikować wysoki odsetek usterek sprzętowych. Wykryte usterki nie ograniczają się do oprogramowania. Mogą dotyczyć również sprzętu.

Powtarzalne wady

W przypadku systemu wbudowanego defekty są trudniejsze do odtworzenia lub odtworzenia. Zmusza to procedurę testowania systemów wbudowanych do znacznie wyższej wartości każdego wystąpienia defektu niż w przypadku standardowym oraz do gromadzenia jak największej ilości danych, jaka jest rozsądnie potrzebna do znalezienia pierwotnej przyczyny defektu.

Ciągłe aktualizacje oprogramowania

Systemy wbudowane wymagają regularnych aktualizacji oprogramowania, takich jak aktualizacje jądra, poprawki bezpieczeństwa, różne sterowniki urządzeń itp. Ograniczenia związane z aktualizacjami oprogramowania utrudniają identyfikację błędów. Dodatkowo, zwiększają one znaczenie procedury kompilacji i wdrożenia.

FAQ

Typowe stosy łączą w sobie analizę statyczną, narzędzia do testów jednostkowych dla języka C i C++, analizatory magistrali, tracdebuggery z obsługą e-elektroniki i sprzętowe platformy pętli, a także automatyzacja testów więc zestawy regresyjne działają bez nadzoru.

W przypadku sprzętu w pętli (HIL) rzeczywiste oprogramowanie sprzętowe jest uruchamiane na rzeczywistym sterowniku, podczas gdy symulator dostarcza sygnały, które produkowałaby otaczająca go instalacja, testując warunki awaryjne, których fizyczne tworzenie jest niebezpieczne.

Symulator modeluje zachowanie i uruchamia kompilację hosta; emulator odtwarza docelowy zestaw instrukcji, aby wykonać rzeczywisty plik binarny. Żaden z nich nie odtwarza dokładnie efektów analogowych i czasowych.

IEC 61508 to ogólna norma dotycząca bezpieczeństwa funkcjonalnego. Wersje sektorowe obejmują ISO 26262 dla pojazdów drogowych, DO-178C dla oprogramowania pokładowego, IEC 62304 dla urządzeń medycznych oraz EN 50128 dla sterowania ruchem kolejowym.

Modele sztucznej inteligencji sortują duży dziennik i tracObjętości generowane przez platformę wiertniczą, klastrowanie powtarzających się awarii i klasyfikowanie testów regresyjnych, które należy uruchomić jako pierwsze na ograniczonym sprzęcie. Ocena bezpieczeństwa należy do inżyniera.

Drugi pilot GitHub projektuje uprzęże testowe i szczątki dla C lub C++ Moduły i przyspiesza powtarzające się mockingi. Zachowanie rejestrów i ograniczenia czasowe, których nigdy nie zaobserwowano, nadal wymagają sprawdzenia.

Poprzez analizę najgorszego przypadku czasu wykonania, instrumentarium trace na celu, a obciążenia występują przy szczytowym obciążeniu. Niedotrzymane terminy i opóźnienia przerwań są mierzone na rzeczywistym sprzęcie, czego kompilacje hosta nie są w stanie odtworzyć.

Czytanie C i C++, swoboda w posługiwaniu się schematami i analizatorami logicznymi, znajomość koncepcji RTOS i protokołów magistrali, a także umiejętność pisania skryptów. Praca pokrewna, taka jak Testowanie Internetu Rzeczy czerpie z tej samej bazy.

Podsumuj ten post następująco: