Robot do automatyzacji testowania urządzeń sterowniczych

Kiedy manualne testy urządzeń przestają być efektywne, warto rozważyć automatyzację. Firma Sii dla jednego ze swoich klientów buduje robota do przeprowadzania automatycznych weryfikacji poprawności działania urządzeń sterowniczych w maszynach kolejowych. 

Projekt ma na celu budowę urządzenia prototypowego do testowania ekranów dotykowych.Ekrany, o których mowa, służą do monitorowania oraz sterowania maszyną, w której się znajdują. Wspomniana maszyna posiada dwa interfejsy (ekrany), które działają naprzemiennie. 

Pierwsza faza umożliwi zamontowanie urządzenia w laboratoriach klienta na całym świecie i uruchomienie testów na testowanych urządzeniach w dowolnej lokalizacji, z dowolnego miejsca na Ziemi, z dostępem do tej sieci robotów. Dzięki braku konieczności przebywania w laboratorium z testowanym urządzeniem i systemem, uzyskuje się zwiększenie przepustowości natężenia prac, szybkości dostarczenia wyników oraz obniżenie kosztów prac.

Prowadzone aktualnie testy maszyn odbywają się z udziałem człowieka, a konstrukcja rozwiązania nie pozwala na pełną automatyzację testów z poziomu kodowego. Powstał więc robot, który zastępuje człowieka podczas testów. Ruchy oraz kliknięcia odbywają się zgodnie ze zdefiniowanym programem - mówi Kamil Zorychta, inżynier oprogramowania z Sii, pracujący nad projektem.

Widoczny na wizualizacji 3D robot posiada głowicę, która jest elementem wykonawczym, wykorzystywanym podczas klikania na testowanych ekranach. Praca robota wspomagana jest przez kamerę oraz mikrofon. Kamera może zostać ustawiona prostopadle nad jednym z testowanych ekranów. Strumień wideo oraz audio może być analizowany przez program zewnętrzny lub służyć jako podgląd (z możliwością sterowania) ekranu przez człowieka (poprzez wbudowany interfejs webowy).

Decyzja o automatyzacji poprzez zewnętrzne urządzenie podjęta została po dogłębnej analizie technologicznej. Obraz z urządzeń wyświetlających nie może być przechwycony „z kabla”, ponieważ stanowi to potencjalne miejsce do przekłamania wyników testów. Przykładowo uszkodzony wyświetlacz uniemożliwi operatorowi posługiwanie się maszyną, a mimo to testy zakończą się pomyślnie, ponieważ sygnał jest nadawany poprawnie.

Najważniejszym punktem w decyzji o automatyzacji była swoboda modyfikacji parametrów wyświetlania oraz odpowiednich reakcji na komunikaty pojawiające się na ekranie. Po wprowadzeniu pełnej automatyzacji, testerzy poprzez skrypty będą kontrolowali reakcję, która powinna wystąpić podczas różnych zdarzeń (oczekiwany rezultat). Inaczej mówiąc, zachowanie maszyny (w której znajdują się wyświetlacze) oraz reakcja na wyświetlane komunikaty mogą być dzięki automatyzacji w pełni kontrolowane. 

Na decyzję o automatyzacji wpłynął również przeprowadzony business case, który pokazał szansę na redukcję kosztów testowania i zwiększenie efektywności w ich wykonaniu. Sama potrzeba, która była motorem napędowym, powstała już na etapie rozpoczęcia testowania ekranów. Szybko zauważono, że częste zmiany przypadków testowych oraz sposobów wyświetlania komunikatów są w tym przypadku bardzo nieefektywne, z powodu konieczności wykonywania setek testów ręcznie. Docelowe rozwiązanie pomoże zredukować monotonną pracę testerów. 

Projekt jest w fazie swojego pilotażu, a samo wdrożenie automatu podzielono na etapy, poszerzając jego zakres „obowiązków”. Należy pamiętać, że jest to prototyp, dlatego też urządzenie jest ciągle w fazie testów.  Do wdrażania powołano cały zespół z liderem oraz przeszkolonymi inżynierami, którzy będą oprogramowywać działanie robota. Dzięki zaprojektowanej architekturze skrypty do testowania mogą być tworzone w dowolnym języku programowania oraz środowisku za sprawą ustalonego protokołu komunikacyjnego ATE. Decyzją klienta skrypty tworzone są przy pomocy C#. Aby dodatkowo przejrzyście zarządzać automatyzacją, skrypty znajdują się w repozytorium i wykonywane są podczas każdego budowania systemu (Continuous Integration). Produkt w tej chwili przechodzi fazy testów, ale już niedługo powinien osiągnąć pełną efektywność. 

W kolejnych etapach, które są dopiero w planach, do systemu testującego włączony zostanie Machine Learning, gdzie zaadaptowany i zintegrowany zostanie system do uczenia się automatycznych testów przez robota. Pojawiające się zdarzenia na ekranie będą podstawą do uczenia robota jak się ma zachować i jakie operacje wykonać. Jednym z założeń jest obsługa nieznanego komunikatu, gdzie robot będzie sam pytał jak z takim zdarzeniem postąpić i przy każdym ponownym wystąpieniu, będzie wiedział co zrobić.

 

[artykuł sponsorowany]

 
 

Najbliższe terminy szkoleń

 

22-25 października - Wrocław

Zawód Tester


26 października - Kraków

Testerskie umiejętności miękkie


29-30 października - Poznań

JAVA dla testerów oprogramowania

 

Partnerzy

Narzędzia testerskie