Co to jest testowanie wbudowane w testowaniu oprogramowania?
Czym są systemy wbudowane?
Systemy wbudowane to elektronicznie sterowane urządzenia, w których oprogramowanie i sprzęt są ściśle ze sobą powiązane. Systemy wbudowane mogą zawierać różnorodne urządzenia komputerowe. Są to komputery PC wbudowane w inne urządzenia w celu obsługi funkcji specyficznych dla aplikacji. Użytkownik końcowy zazwyczaj nie jest nawet świadomy ich istnienia.
Testowanie wbudowane
Testowanie wbudowane to proces testowania mający na celu sprawdzenie funkcjonalnych i niefunkcjonalnych atrybutów oprogramowania i sprzętu w systemie wbudowanym oraz zapewnienie, że produkt końcowy jest wolny od wad. Głównym celem testów wbudowanych jest weryfikacja i walidacja, czy końcowy produkt sprzętu i oprogramowania wbudowanego 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, kolej, lotnictwo, przemysł samochodowy itp. Rygorystyczne i dokładne testowanie jest niezbędne do przyznania certyfikacji 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ść
W ramach testowania wbudowanego wykonywane są następujące czynności:
1. Oprogramowanie jest wyposażone w pewne wejścia.
2. Wykonywany jest fragment oprogramowania.
3. Obserwuje się stan oprogramowania i sprawdza się wyniki pod kątem oczekiwanych właściwości, takich jak zgodność wyników z oczekiwanym wynikiem, zgodność z wymaganiami i brak awarii systemu.
Typy testowania oprogramowania wbudowanego
Zasadniczo istnieje pięć poziomów testowania oprogramowania wbudowanego
Testowanie jednostkowe oprogramowania
Moduł jednostki jest albo funkcją, albo klasą. Testowanie jednostkowe jest wykonywane przez zespół programistów, głównie programistę i jest zwykle przeprowadzane w modelu recenzji koleżeńskiej. Na podstawie specyfikacji modułu opracowywane są przypadki testowe.
Testy integracyjne
Testowanie 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 oprogramowania. Może to obejmować badanie interakcji pomię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, i jest zazwyczaj tworzone równolegle z oprogramowaniem. Powoduje to niedogodności podczas testowania, ponieważ kompleksowe testowanie nie może być przeprowadzone w warunkach symulowanych.
Testowanie jednostek systemowych
Teraz testowanym modułem jest pełny framework składający się z kompletnego kodu oprogramowania oraz całości system operacyjny czasu rzeczywistego (RTOS) oraz elementy związane z platformą, takie 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.
Zasoby systemowe są obserwowane w celu oceny zdolności systemu do obsługi wykonywania systemu wbudowanego. W tym aspekcie testowanie metodą szarej skrzynki jest preferowaną metodą testowania. W zależności od organizacji testowanie jednostek systemowych jest obowiązkiem programisty lub dedykowanego zespołu ds. integracji systemów.
Testowanie integracji systemu
Moduł do przetestowania zaczyna się od zestawu komponentów w obrębie jednego węzła. Punkty kontroli i obserwacji (PCO) to mieszanka protokołów komunikacji sieciowej 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
Testowanym modułem jest 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 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 wykonywanych na świecie to testy manualne, tzw. czarne skrzynki. | Testowanie wbudowane przeprowadza się na systemach wbudowanych lub układach scalonych. Może to być testowanie czarnej lub białej skrzynki. |
Podstawowymi obszarami testowania są kontrole GUI, funkcjonalność, walidacja i pewien poziom testowania baz danych. | Podstawowymi obszarami testowania jest zachowanie sprzętu dla nr. danych wejściowych do niego przekazanych. |
Testowanie oprogramowania odbywa się głównie w aplikacjach klient-serwer, sieciowych i mobilnych. | Wbudowane testy są zwykle przeprowadzane na sprzęcie. |
np. Google Mail, Yahoo Mail, Android aplikacji. | np. Maszyny w służbie zdrowia, Mikrokontrolery stosowane w komputerach. |
Wyzwania: Testowanie oprogramowania wbudowanego
Niektóre z wyzwań, jakie można napotkać podczas testowania oprogramowania wbudowanego:
Zależność sprzętowa
Zależność sprzętowa jest jedną z głównych trudności napotykanych podczas testowania oprogramowania wbudowanego ze względu na ograniczony dostęp do sprzętu. Jednakże 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 dla nich dostępnego pełnego testu. Istnieje szeroki zakres kombinacji testów i wynikających z nich scenariuszy.
Wady oprogramowania a wady sprzętu
Innym aspektem jest to, że gdy oprogramowanie jest opracowywane dla świeżo utworzonego sprzętu, podczas tego procesu można zidentyfikować wysoki odsetek defektów sprzętu. Wykryta usterka nie ogranicza się wyłącznie do oprogramowania. Może to być również związane ze sprzętem.
Powtarzalne wady
W przypadku systemu wbudowanego defekty są trudniejsze do odtworzenia/odtworzenia. Zmusza to procedurę testowania wbudowanego do wyceniania każdego wystąpienia defektu znacznie wyżej niż w przypadku standardowym, poza zebraniem jak największej ilości danych, które mogłyby być rozsądnie wymagane 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 z wpływem aktualizacji oprogramowania utrudniają identyfikację błędów. Ponadto zwiększa to znaczenie procedury kompilacji i wdrażania.
Podsumowanie
Istnieją pewne trudności w testowaniu oprogramowania wbudowanego, które czynią je trudniejszym niż zwykłe testowanie oprogramowania. Najbardziej fundamentalnym problemem jest ścisłe poleganie na środowisku sprzętowym, które jest przygotowywane równocześnie z oprogramowaniem i które jest regularnie wymagane do przeprowadzania niezawodnych testów oprogramowania. Czasami trudno jest nawet testować oprogramowanie bez niestandardowych narzędzi, co sprawia, że bezproblemowe koncentrowanie się na testowaniu na późnych etapach jest wyjątkowo kuszące.
Jedną z najważniejszych rzeczy, o których powinieneś pomyśleć, jest fakt, że często powinieneś decydować się na automatyczne testowanie oprogramowania. Wbudowane automatyczne testowanie to szybszy proces, którego ukończenie zajęłoby kilka godzin, a w ten sposób problem z Twoim oprogramowaniem jest rozwiązany.