Nowa platforma do testowania złożonych rozproszonych systemów oprogramowania Powstało nowe narzędzie, które pomaga w skomplikowanym testowaniu wielkoskalowych systemów rozproszonych przy niewygórowanych kosztach i przy zachowaniu wysokiej jakości. Gospodarka cyfrowa © TechnoVectors, Shutterstock Potencjał wielkoskalowych rozproszonych systemów oprogramowania jest ogromny. Dzięki rozproszeniu komponentów oprogramowania na wielu komputerach systemy takie mogą być odporne na błędy, elastyczne i ekonomiczne, poprawiając znacząco wydajność i efektywność wykonywania wielu różnych zadań obliczeniowych. Jednak pomimo tego potencjału, podaż tak dużych, połączonych ze sobą systemów utrzymuje się na poziomie znacznie niższym od popytu. Wynika to z faktu, że dla wielu firm programistycznych koszt walidacji takich systemów oprogramowania jest zbyt wysoki, a potrzebne procesy testowania są bardzo skomplikowane. „Aby dokonać walidacji funkcji, programiści muszą najpierw opracować złożone architektury testowe, które obejmują dostosowanie mechanizmów orkiestracji chmury i zarządzanie skalowalnością testów”, mówi Francisco Gortázar Bellas, profesor na Uniwersytecie Króla Juana Carlosa. „Jakby tego było mało, sprawy komplikuje dodatkowo konieczność odtworzenia rzeczywistych warunków operacyjnych”. Aby uprościć i usprawnić proces walidacji, finansowany przez Unię Europejską projekt ELASTEST miał na celu dostarczenie zespołom programistycznym narzędzi niezbędnych do szybkiego dostarczenia w pełni sprawnego oprogramowania. Redukcja i uproszczenie Narzędzie ElasTest zostało zaprojektowane w taki sposób, aby ułatwić skomplikowane testowanie wielkoskalowych systemów rozproszonych przy niewysokich kosztach i bez pogarszania jakości. Aby tego dokonać, naukowcy wyznaczyli sobie trzy główne cele: skrócenie czasu wprowadzenia na rynek, skrócenie czasu lokalizacji błędów oraz uproszczenie procesu testowania. Jeśli chodzi o skrócenie czasu wprowadzania na rynek, narzędzie ElasTest oferuje szereg gotowych do użycia usług, z których można korzystać poprzez dobrze udokumentowane interfejsy API REST, czy to indywidualnie, czy w różnych kombinacjach. Wszystkie wyposażono w narzędzia dostępne na żądanie, które mogą być wykorzystywane z poziomu kodu testowego – są to na przykład przeglądarki, urządzenia internetu rzeczy, kontrole bezpieczeństwa czy narzędzia do monitorowania i analizy danych. Aby skrócić czas potrzebny na zlokalizowanie błędu, ElasTest udostępnia użytkownikom narzędzia do wizualizacji i analityczne. „Dzięki funkcjom analizy dziennika, raportowania zorientowanego na zadanie i porównywania dzienników, użytkownicy są w stanie znaleźć przysłowiową igłę w stogu siana”, wyjaśnia Gortázar. ElasTest pomaga też w uproszczeniu procesu konfigurowania i wykonywania testów dzięki zastosowaniu języka specyficznego dla domeny, który jest zgodny z serwerem ciągłej integracji Jenkins, jednym z najbardziej popularnych modeli serwerów ciągłej integracji dostępnych na rynku. „W świecie, w którym chmura staje się towarem, a dystrybuowanie usług jest standardową procedurą, narzędzie takie jak ElasTest może zrewolucjonizować testowanie złożonych aplikacji”, dodaje Gortázar. Narzędzie zostało poddane walidacji w różnych dziedzinach użycia, takich jak sieć Web, sieć 5G, komunikacja w czasie rzeczywistym i internet rzeczy. Konkretny cel Mimo konieczności wprowadzeniu kilku poprawek w trakcie realizacji projektu, na przykład dotyczących dostarczenia rozwiązań zarówno dla testów automatycznych, jak i manualnych, badacze nie stracili z oczu swojego głównego celu: integracji różnych komponentów przy użyciu najlepszych praktyk w zakresie ciągłej integracji i dostawy. „Ta koncentracja na wyznaczonym celu pozwoliła nam realizować prace w stałym tempie, a jednocześnie zminimalizować ryzyko”, mówi Gortázar. „To właśnie jest tajemnica naszego sukcesu – sukcesu, który dobrze udokumentowaliśmy dzięki naszym szeroko zakrojonym działaniom informacyjnym”. Działania te objęły publikację 15 wydań oprogramowania ElasTest oraz szereg artykułów w 34 różnych czasopismach i na konferencjach – w tym na prestiżowej International Conference on Software Engineering (ICSE). Ponadto, projekt brał udział w kilku najważniejszych branżowych konferencjach poświęconych testowaniu oprogramowania. Słowa kluczowe ELASTEST, serwer ciągłej integracji Jenkins, rozproszone systemy oprogramowania, oprogramowanie, obliczenia, internet rzeczy, IoT, 5G