internet things testing
Testowanie Internetu rzeczy (IoT):
Kiedy ludzie rzucają pytanie typu „Jakie są podstawowe potrzeby życiowe”, większość z nich odpowiadałaby: „Pożywienie, schronienie, odzież”.
Ale tak było przed stuleciem. Istoty ludzkie ewoluowały, by zaspokoić kilka dodatkowych potrzeb życiowych. Ewoluowaliśmy, aby uczynić nasze życie prostszym, lepszym i łatwiejszym.
przykładowe przypadki testowe w testowaniu oprogramowania
Przestaliśmy używać przełączników do sterowania światłami, przestaliśmy płacić w kioskach, aby uiszczać opłaty drogowe, inteligentnie monitorujemy stan naszego zdrowia, sprawniej śledząc ruchy pojazdów i dużo na liście.
Jak to teraz robimy? Czym to się różni?
Najpierw musimy je zrozumieć, a potem nauczyć się je testować.
Czego się nauczysz:
- Co to jest Internet rzeczy (IoT)?
- Przykłady IoT
- Technologia stosowana w IoT
- Testowanie IoT
- Wyzwania testowania IoT
- Narzędzia testujące IoT
- Podsumowując
- rekomendowane lektury
Co to jest Internet rzeczy (IoT)?
IoT to połączenie pojazdów, sprzętu gospodarstwa domowego, sprzętu medycznego za pomocą wbudowanej elektroniki, mikroczipów itp. W celu gromadzenia i wymiany danych innego rodzaju, zwane IoT. Technologia ta pozwala użytkownikowi na zdalne sterowanie urządzeniami przez sieć.
Przykłady IoT
Oto niektóre przykłady implementacji IoT w prawdziwym życiu:
# 1) W technologii do noszenia:
Gadżety do noszenia, takie jak opaski Fitbit i zegarki Apple, łatwo synchronizują się z urządzeniami mobilnymi.
Pomagają one w przechwytywaniu niezbędnych informacji, takich jak stan zdrowia, monitorowanie tętna, aktywność podczas snu itp. Pomagają również w wyświetlaniu na nich danych, powiadomień z urządzeń mobilnych.
# 2) Infrastruktura i rozwój:
Za pomocą aplikacji typu CitySense , łatwiej jest uzyskać dane dotyczące oświetlenia zewnętrznego w czasie rzeczywistym i na ich podstawie światła uliczne są włączane lub wyłączane. Istnieją również różne aplikacje do sterowania sygnalizacją świetlną i dostępnością miejsc parkingowych w wyrafinowanym układzie miasta.
# 3) Opieka zdrowotna:
Istnieje wiele zastosowań służących do monitorowania stanu zdrowia pacjentów.
W oparciu o dane porównawcze służby kontrolują dawkowanie leku o różnych porach dnia. Istnieją aplikacje, takie jak UroSense, które mogą monitorować poziomy płynów w ciele pacjenta i w zależności od potrzeb mogą zainicjować transfer płynów. Jednocześnie dane mogą być przesyłane bezprzewodowo do różnych interesariuszy.
Technologia stosowana w IoT
Oto kilka z najczęściej używanych technologii w IoT:
- RFID Tagi (kod częstotliwości radiowej) i EPC (elektroniczny kod produktu)
- NFC (Near Field Communication) służy do umożliwienia dwukierunkowej interakcji między urządzeniami elektronicznymi. Dotyczy to głównie smartfonów i jest używane głównie do wykonywania płatności zbliżeniowych.
- Bluetooth: Jest to używane, gdy komunikacja krótkiego zasięgu jest wystarczająca, aby uniknąć problemu. Jest to najczęściej używane w technologiach do noszenia.
- Z-Wave: Jest to technologia komunikacji RF o małej mocy. Jest to używane głównie do automatyki domowej, sterowania lampami itp.
- Wi-Fi: Jest to najczęściej używany wybór w przypadku IoT. W sieci LAN pomaga to w płynnym przesyłaniu plików, danych i wiadomości.
Testowanie IoT
Weźmy przykład systemu monitorowania medycznej opieki zdrowotnej, w którym urządzenie monitoruje stan zdrowia, tętno, szczegóły dotyczące spożycia płynów i wysyła raport do lekarzy. Dane te są zapisywane w systemie, a dane historyczne można przeglądać w dowolnym momencie.
Lekarze mogą rozpocząć przyjmowanie leków, suplementację płynów na podstawie danych. Można to uruchomić zdalnie z dowolnego urządzenia (komputera lub urządzenia mobilnego), do którego podłączone jest urządzenie medyczne.
Teraz, aby przetestować taką architekturę, musimy przejść przez wiele podejść testowych, takich jak;
Podejścia do testów IoT
# 1) Użyteczność:
- Musimy zadbać o użyteczność każdego używanego tutaj urządzenia.
- Używane medyczne urządzenie monitorujące powinno być na tyle przenośne, aby można je było przenosić do różnych segmentów medycznych.
- Sprzęt powinien być na tyle inteligentny, aby przesyłać nie tylko powiadomienia, ale także komunikaty o błędach, ostrzeżenia itp.
- System powinien mieć możliwość rejestrowania wszystkich zdarzeń w celu zapewnienia przejrzystości dla użytkowników końcowych. Jeśli nie jest w stanie tego zrobić, system powinien przesłać je również do bazy danych, aby ją zapisać.
- Na urządzeniach (komputery / urządzenia mobilne) powinny się pojawiać powiadomienia i poprawnie obsługiwać wyświetlacz.
- Użyteczność w zakresie wyświetlania danych, przetwarzania danych, wypychania zadań z urządzeń powinna zostać gruntownie przetestowana.
=> Przeczytaj więcej o ogólnych testach użyteczności tutaj
# 2) Bezpieczeństwo IoT:
- Wyzwania bezpieczeństwa IoT: IoT koncentruje się na danych, gdzie wszystkie podłączone urządzenia / system działają w oparciu o dostępne dane.
- Jeśli chodzi o przepływ danych między urządzeniami, zawsze istnieje szansa, że dane będą dostępne lub odczytane podczas przesyłania.
- Z testowego punktu widzenia musimy sprawdzić, czy dane są chronione / szyfrowane podczas przesyłania z jednego urządzenia na drugie.
- Wszędzie tam, gdzie jest interfejs użytkownika, musimy upewnić się, że jest on chroniony hasłem.
=> Przeczytaj więcej o ogólnych testach bezpieczeństwa tutaj
# 3) Łączność:
- Ponieważ jest to rozwiązanie dla służby zdrowia, łączność odgrywa kluczową rolę.
- System musi być dostępny przez cały czas i powinien mieć płynną łączność z interesariuszami.
- Jeśli chodzi o łączność, bardzo ważne są dwie rzeczy do przetestowania;
- Łączność, przesyłanie danych, odbieranie zadań z urządzeń powinny być płynne, gdy połączenie jest aktywne i działa.
- Innym warunkiem jest scenariusz braku połączenia. Nie ma znaczenia, jak solidny jest system i sieć, są szanse, że system przejdzie w tryb offline. Będąc testerem, powinniśmy również przetestować warunki offline. Gdy system nie jest dostępny w sieci, musi istnieć alert, który może skłonić lekarzy, aby mogli rozpocząć ręczne monitorowanie stanu zdrowia, niezależnie od systemu, dopóki nie będzie on działać. Z drugiej strony w systemie musi istnieć mechanizm, który może przechowywać w nim wszystkie dane w okresie offline. Po przejściu systemu do trybu online wszystkie te dane powinny zostać rozpowszechnione. Utrata danych nie powinna występować w żadnym stanie.
# 4) Wydajność:
- Kiedy mówimy o systemie dla domeny opieki zdrowotnej, musimy upewnić się, że system jest wystarczająco skalowalny dla całego szpitala.
- W przypadku przeprowadzania badania jest ono wykonywane jednocześnie dla 2-10 pacjentów, a dane są przekazywane do 10-20 urządzeń.
- Gdy podłączony jest cały szpital, a do systemu jest podłączonych 180-200 pacjentów, propagowane dane są znacznie większe niż dane testowane.
- Jako testerzy musimy upewnić się, że system działa tak samo, nawet jeśli dodane dane są propagowane.
- Powinniśmy również przetestować narzędzie monitorujące, aby wyświetlić zużycie systemu, zużycie energii, temperaturę itp.
# 5) Testowanie zgodności:
- Patrząc na złożoną architekturę systemu IoT, testowanie zgodności jest koniecznością.
- Testowanie elementów, takich jak wiele wersji systemu operacyjnego, typy przeglądarek i ich wersje, generacje urządzeń, tryby komunikacji ( Np. Bluetooth 2.0, 3.0) jest niezbędny do testowania zgodności IoT.
=> Przeczytaj więcej o ogólnych testach bezpieczeństwa tutaj
# 6) Testy pilotażowe:
- Jeśli chodzi o IoT, testy pilotażowe są koniecznością.
- Tylko testy w laboratorium zapewniają, że produkt / system działa dobrze. Może to jednak przynieść odwrotny skutek, gdy zostanie wystawiony na działanie warunków / kroków / scenariuszy w czasie rzeczywistym.
- Podczas testów pilotażowych system jest narażony na ograniczoną liczbę użytkowników w rzeczywistym terenie. Korzystają z aplikacji i udzielają informacji zwrotnych na temat systemu.
- Te komentarze są przydatne, dzięki czemu aplikacja jest wystarczająco solidna do wdrożenia produkcyjnego.
# 7) Testy prawne:
- Ten system opieki zdrowotnej musi przejść przez wiele punktów kontrolnych regulacyjnych / zgodności.
- Pomyśl o scenariuszu, w którym produkt przechodzi przez wszystkie etapy testowania, ale nie spełnia ostatecznej listy kontrolnej zgodności (testy przeprowadzone przez organ regulacyjny).
- Lepszą praktyką jest uzyskanie wymagań regulacyjnych na początku samego cyklu rozwojowego. To samo powinno być częścią listy kontrolnej testów.
- W ten sposób upewniamy się, że produkt jest również certyfikowany na liście kontrolnej przepisów.
# 8) Testowanie aktualizacji:
- IoT to połączenie wielu protokołów, urządzeń, systemów operacyjnych, oprogramowania układowego, sprzętu, warstw sieciowych itp.
- Kiedy przeprowadzana jest aktualizacja, czy to dla systemu, czy dla którejkolwiek z zaangażowanych pozycji, jak określono powyżej, należy przeprowadzić dokładne testy regresji / należy przyjąć strategię, aby przezwyciężyć problemy związane z aktualizacją.
Wyzwania testowania IoT
najpopularniejsze narzędzia do analizy dużych zbiorów danych
Wyzwania stojące przed testerem w IoT są następujące:
1) Oprogramowanie sprzętowe Siatka
IoT to architektura, która jest ściśle powiązana z różnymi komponentami sprzętu i oprogramowania. Nie tylko oprogramowanie sprawia, że system, ale także sprzęt, czujniki, bramki komunikacyjne itp. Również odgrywają istotną rolę.
Tylko testowanie funkcjonalności nie pomaga w pełnej certyfikacji systemu. Zawsze istnieje wzajemna zależność w zakresie środowiska, transferu danych itp. Staje się więc to żmudną pracą w porównaniu z testowaniem ogólnego systemu (tylko komponent oprogramowania / sprzętu).
# 2) Moduł interakcji z urządzeniem
Ponieważ jest to architektura między różnymi zestawami sprzętu i oprogramowania, staje się obowiązkowe, aby komunikowały się ze sobą w czasie rzeczywistym / prawie rzeczywistym. Kiedy obaj integrują się ze sobą, kwestie takie jak bezpieczeństwo, kompatybilność wsteczna, problemy z aktualizacją stają się wyzwaniem dla zespołu testującego.
# 3) Testowanie danych w czasie rzeczywistym
Jak omówiliśmy wcześniej, że testy pilotażowe / testy regulacyjne są obowiązkowe dla takiego systemu, jak ten, bardzo trudno jest uzyskać takie dane.
Bycie w zespole testowym, zdobywanie punktów kontrolnych regulacyjnych lub wdrażanie systemu w programie pilotażowym jest bardzo trudne. Krok staje się jeszcze trudniejszy, jeśli system jest powiązany z opieką zdrowotną, jak na naszym przykładzie. Więc to pozostaje dużym wyzwaniem dla zespołu testującego.
# 4) Interfejs użytkownika
IoT jest rozproszony na urządzeniach należących do każdej platformy (iOS, Android, Windows, linux). Teraz można to przetestować na urządzeniach, ale przetestowanie tego na wszystkich możliwych urządzeniach jest prawie niemożliwe.
Nie możemy pominąć możliwości uzyskania dostępu do interfejsu użytkownika z urządzenia, którego nie posiadamy lub którego nie symulujemy. To wyzwanie, któremu trudno sprostać.
prosty program java do sortowania liczb w porządku rosnącym
# 5) Dostępność sieci
Połączenie sieciowe odgrywa istotną rolę, ponieważ w IoT chodzi o przesyłanie danych z większą prędkością przez cały czas. Architekturę IoT należy przetestować we wszystkich rodzajach połączeń / prędkości sieciowych.
Aby to przetestować, symulatory sieci wirtualnych są najczęściej używane do różnicowania obciążenia sieci, łączności, stabilności itp. Jednak dane / sieć w czasie rzeczywistym to zawsze nowy scenariusz i zespół testujący nie wie, gdzie powstanie wąskie gardło w dłuższej perspektywie.
Narzędzia testujące IoT
Podczas testowania systemów IoT wykorzystywane są różne narzędzia.
Można je sklasyfikować na podstawie celu i podano poniżej:
# 1) Oprogramowanie:
- Wireshark : Jest to aplikacja typu open source używana do monitorowania ruchu w interfejsie, źródłowych / docelowych adresów hostów itp.
- Tcpdump : Działa to podobnie jak Wireshark, z wyjątkiem tego, że nie ma GUI. Jest to narzędzie oparte na wierszu poleceń, które pomaga użytkownikowi w wyświetlaniu pakietów TCP / IP i innych pakietów przesyłanych lub odbieranych przez sieć.
# 2) Sprzęt:
- Klucz JTAG: Jest to podobne do debuggera w aplikacjach na komputery PC. Pomaga to w debugowaniu kodu platformy docelowej i pokazaniu zmiennej krok po kroku.
- Cyfrowy oscyloskop z pamięcią : Służy do sprawdzania różnych zdarzeń ze znacznikami czasu, usterek w zasilaniu, sprawdzania integralności sygnału.
- Radio definiowane programowo : Służy do emulacji odbiornika i nadajnika dla szerokiej gamy bram bezprzewodowych.
Dla rozwijającego się świata wokół nas IoT jest rozwijającym się rynkiem i ma wiele możliwości. Nie jest odległy czas, kiedy IoT stanie się niezbędny dla testerów do przetrwania w świecie rozwoju.
Gadżet obsługujący IoT, aplikacja na urządzenia inteligentne i moduł komunikacyjny odgrywają istotną rolę w badaniu i ocenie wydajności i zachowania różnych usług IoT.
Zły projekt urządzeń i usług obsługujących IoT może utrudniać prawidłowe działanie aplikacji, a tym samym negatywnie wpływać na wrażenia użytkownika końcowego.
Podsumowując
Podejście do testowania IoT może się różnić w zależności od używanego systemu / architektury. Testerzy powinni bardziej skoncentrować się na podejściu testuj jako użytkownik (TAAS) niż testowaniu opartym na wymaganiach.
Jeszcze jednym ważnym graczem w testowaniu IoT są testy integracyjne. IoT odniesie sukces, jeśli plan testów integracji jest wystarczająco dokładny i solidny, aby wykryć wady systemu.
Testowanie IOT może być trudną / wymagającą pracą, ale jest również bardzo ekscytujące dla zespołu testowego, aby certyfikować tak skomplikowaną siatkę urządzeń, protokołów, sprzętu, systemów operacyjnych, oprogramowania układowego itp.
O autorze: To jest post gościnny autorstwa Subhasis. Pracuje jako kierownik zespołu z ponad 8-letnim doświadczeniem korporacyjnym, pracując dla firm IT z listy Fortune 500 w zakresie zapewnienia jakości oprogramowania, rozwoju oprogramowania i doświadczenia w testowaniu.
AKTUALIZACJA: Dodaliśmy przydatne infografiki na temat IoT. Dzięki webeeky.com za udostępnienie nam tego.
Opublikuj swoje zapytania / komentarze dotyczące IoT poniżej.
rekomendowane lektury
- Najlepsze narzędzia do testowania oprogramowania 2021 (Narzędzia do automatyzacji testów QA)
- Testowanie SaaS: wyzwania, narzędzia i podejście do testowania
- Testing Primer Pobierz eBook
- 11 najlepszych narzędzi automatyzacji do testowania aplikacji na Androida (narzędzia do testowania aplikacji na Androida)
- Różnice między testowaniem jednostkowym, testowaniem integracyjnym i testowaniem funkcjonalnym
- Zautomatyzowane testy regresji: wyzwania, proces i kroki
- Testowanie obciążenia za pomocą samouczków HP LoadRunner
- Wyzwania związane z testowaniem ręcznym i automatycznym