W tym samouczku dowiesz się
- Co to są systemy wbudowane?
- Co to jest testowanie osadzone?
- Typy testowania oprogramowania wbudowanego
- Różnica: testowanie wbudowane i testowanie oprogramowania
- Wyzwania: testowanie oprogramowania wbudowanego
Co to są systemy wbudowane?
Systemy wbudowane to elektronicznie sterowane urządzenia, w których oprogramowanie i sprzęt są ze sobą ściśle powiązane. Systemy wbudowane mogą zawierać różne urządzenia komputerowe. Są to komputery PC wbudowane w inne urządzenia w celu obsługi funkcji specyficznych dla aplikacji. Końcowy użytkownik zwykle nie jest nawet świadomy ich istnienia.
Testowanie wbudowane
Testowanie wbudowane to proces testowania służący do sprawdzania funkcjonalnych i niefunkcjonalnych atrybutów zarówno oprogramowania, jak i sprzętu w systemie wbudowanym oraz zapewniania, że produkt końcowy jest wolny od defektów. Głównym celem testów wbudowanych jest weryfikacja i walidacja, czy końcowy produkt wbudowanego sprzętu i oprogramowania spełnia wymagania klienta, czy nie.
Testowanie oprogramowania wbudowanego sprawdza i zapewnia, że dane oprogramowanie jest dobrej jakości i spełnia wszystkie wymagania, które powinno spełniać. Testowanie oprogramowania wbudowanego to doskonałe podejście do zagwarantowania bezpieczeństwa w krytycznych zastosowaniach, takich jak sprzęt medyczny, koleje, lotnictwo, przemysł samochodowy itp. Ścisłe i staranne testowanie jest kluczowe dla przyznania certyfikacji oprogramowania.
Jak przeprowadzić testowanie oprogramowania wbudowanego
Ogólnie testujesz z czterech powodów:
- Aby znaleźć błędy w oprogramowaniu
- Pomaga zmniejszyć ryzyko zarówno dla użytkowników, jak i dla firmy
- Zmniejsz koszty rozwoju i konserwacji
- Aby poprawić wydajność
W testowaniu osadzonym wykonywane są następujące czynności:
1. Oprogramowanie jest dostarczane z niektórymi wejściami.
2. Fragment oprogramowania jest wykonywany.
3. Stan oprogramowania jest obserwowany, a dane wyjściowe są sprawdzane pod kątem oczekiwanych właściwości, takich jak zgodność danych wyjściowych z oczekiwanym wynikiem, zgodność z wymaganiami i brak awarii systemu.
Typy testowania oprogramowania wbudowanego
Zasadniczo istnieje pięć poziomów testowania, które można zastosować do oprogramowania wbudowanego
Testowanie jednostkowe oprogramowania
Moduł jednostki jest funkcją lub klasą. Testowanie jednostkowe jest wykonywane przez zespół programistów, głównie programistę, i zwykle jest przeprowadzane w modelu wzajemnej recenzji. Na podstawie specyfikacji modułu opracowywane są przypadki testowe.
Testy integracyjne
Testy integracyjne można podzielić na dwa segmenty:
- Testowanie integracji oprogramowania
- Testowanie integracji oprogramowania / sprzętu.
Na koniec testowane są interakcje domeny sprzętowej i komponentów oprogramowania. Może to obejmować badanie interakcji między wbudowanymi urządzeniami peryferyjnymi a oprogramowaniem.
Tworzenie oprogramowania wbudowanego ma unikalną cechę, która koncentruje się na rzeczywistym środowisku, w którym oprogramowanie jest uruchamiane, jest generalnie tworzone równolegle z oprogramowaniem. Powoduje to niedogodności podczas testowania, ponieważ kompleksowych testów nie można przeprowadzić w warunkach symulowanych.
Testowanie jednostkowe systemu
Obecnie testowany moduł to pełna struktura składająca się z pełnego kodu oprogramowania, dodatkowo wszystkich systemów operacyjnych czasu rzeczywistego (RTOS) oraz elementów związanych z platformą, takich jak przerwania, mechanizmy zadań, komunikacja i tak dalej. Protokół Point of Control nie jest już wywołaniem funkcji lub wywołaniem metody, ale raczej komunikatem wysłanym / odebranym przy użyciu kolejek komunikatów RTOS.
Obserwuje się zasoby systemowe, aby ocenić zdolność systemu do obsługi wykonywania wbudowanego systemu. W tym aspekcie preferowaną metodą testowania jest testy szarej skrzynki. W zależności od organizacji testowanie jednostkowe systemu jest obowiązkiem programisty lub dedykowanego zespołu ds. Integracji systemów.
Testowanie integracji systemów
Testowany moduł zaczyna się od zestawu komponentów w jednym węźle. Punkty kontroli i obserwacji (PCO) to mieszanka protokołów komunikacyjnych związanych z siecią i RTOS, takich jak komunikaty sieciowe i zdarzenia RTOS. Oprócz komponentu wirtualny tester może również pełnić rolę węzła.
Testowanie walidacyjne systemu
Testowany moduł to podsystem z pełną implementacją lub kompletny system wbudowany. Celem tego końcowego testu jest spełnienie wymagań funkcjonalnych podmiotu zewnętrznego. Zwróć uwagę, że podmiotem zewnętrznym może być osoba lub urządzenie w sieci telekomunikacyjnej lub jedno i drugie.
Różnica: testowanie wbudowane i 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 przeprowadzanych na świecie to czysto ręczne testy czarnoskrzynkowe. | Testy osadzone są wykonywane na systemach wbudowanych lub układach scalonych. Mogą to być testy czarnej lub białej skrzynki. |
Podstawowe obszary testowania to sprawdzanie GUI, funkcjonalność, walidacja i pewien poziom testowania bazy danych. | Podstawowymi obszarami testowania są zachowanie sprzętu w przypadku nie. danych wejściowych. |
Testowanie oprogramowania przeprowadza się głównie na aplikacjach typu klient-serwer, aplikacjach internetowych i mobilnych. | Testy osadzone są zwykle wykonywane na sprzęcie. |
np. Google Mail, Yahoo Mail, aplikacje na Androida. | np. maszyny z dziedziny opieki zdrowotnej, mikrokontrolery używane w komputerach. |
Wyzwania: testowanie oprogramowania wbudowanego
Niektóre z wyzwań, z którymi można się spotkać podczas testowania oprogramowania wbudowanego:
Zależność sprzętowa
Zależność sprzętowa jest jedną z głównych trudności napotykanych podczas testowania oprogramowania wbudowanego z powodu ograniczonego dostępu do sprzętu. Jednak emulatory i symulatory mogą nie odzwierciedlać dokładnie zachowania rzeczywistego urządzenia i mogą dawać błędne wyobrażenie o wydajności systemu i użyteczności aplikacji.
Oprogramowanie Open Source
Większość wbudowanych komponentów oprogramowania ma charakter open source, nie jest tworzona wewnętrznie i nie ma dostępnych dla nich pełnych testów. Istnieje szeroki zakres kombinacji testów i wynikających z nich scenariuszy.
Oprogramowanie a defekty sprzętu
Innym aspektem jest to, że gdy opracowywane jest oprogramowanie dla świeżo utworzonego sprzętu, podczas tego procesu można zidentyfikować wysoki współczynnik defektów sprzętowych. Znaleziona wada nie ogranicza się tylko do oprogramowania. Może to być również związane ze sprzętem.
Powtarzalne wady
Usterki są trudniejsze do odtworzenia / odtworzenia w przypadku systemu wbudowanego. To wymusza na wbudowanej procedurze testowania wyższą wartość każdego wystąpienia defektu niż w przypadku standardowego, poza zbieraniem tak dużej ilości danych, jaka może być rozsądnie wymagana do zmiany systemu w celu znalezienia podstawy defektu.
Ciągłe aktualizacje oprogramowania
Systemy wbudowane wymagają regularnych aktualizacji oprogramowania, takich jak aktualizacja jądra, poprawki zabezpieczeń, różne sterowniki urządzeń itp. Ograniczenia zidentyfikowane w związku z wpływem aktualizacji oprogramowania utrudniają identyfikację błędów. Dodatkowo zwiększa znaczenie procedury kompilacji i wdrażania.
Podsumowanie
Istnieją pewne trudności w testowaniu testów oprogramowania wbudowanego, które sprawiają, że jest to trudniejsze niż zwykłe testowanie oprogramowania. Najbardziej fundamentalną kwestią jest ścisłe poleganie na środowisku sprzętowym, które jest przygotowywane równolegle z oprogramowaniem i które jest regularnie wymagane do wykonywania wiarygodnych testów oprogramowania. Czasami nawet trudno jest przetestować oprogramowanie bez niestandardowych narzędzi, co bez wysiłku sprawia, że koncentracja na testowaniu na późnych etapach jest wyjątkowo kusząca.
Jedną z najważniejszych rzeczy, o których warto pomyśleć, jest fakt, że często należy wybierać automatyczne testowanie oprogramowania. Wbudowane testy automatyczne to szybszy proces, który może zająć kilka godzin, dzięki czemu problem z oprogramowaniem jest rozwiązany.