W czasach, gdzie wirtualizacja silnie się rozwija, a wiele procesów przeniesiono do sieci, testowanie jakichkolwiek rozwiązań na rzeczywistych sprzętach może być uznane za wyjątkowo przestarzałą opcję. W końcu z oczywistych względów twierdzi się, że otoczenia wirtualne są elastyczniejsze, zwinniejsze i lepiej skalowalne od tych funkcjonujących na rzeczywistym urządzeniu.
W dzisiejszym wpisie skupimy się na przypadkach zastosowania, opisując, kiedy lepiej zastosować sprzęty rzeczywiste zamiast symulatorów oraz emulatorów.
Te pierwsze wymienione jako nierzeczywiste wzorują się na funkcjonowaniu sprzętu z zewnątrz, ale nie wirtualizują urządzenia realnego. Drugie zaś funkcjonują jak sprzęty nierzeczywiste, jakie mają stanowić precyzyjną cyfrową replikę sprzętu realnego.
Rozwiązania te są bardzo pomocne, kiedy w czasie przeprowadzania testów zależy nam na szybkiej zmianie aspektów środowiskowych, w celu sprawdzenia, jakie reakcje oprogramowania wywołują inne ustawienia – np. zmiana rodzaju procesora albo ilości pamięci bez potrzeby przerobu realnego urządzenia.
Rozwiązania te dostępne w dzisiejszych czasach na rynku także niestety mają swoje minusy. Najpowszechniejszym z nich jest to, że przypuszczalne zachowanie wirtualnego otoczenia tylko czasem jest perfekcyjnym odzwierciedleniem realnego urządzenia, czy oprogramowania.
Charakterystyczne przypadki
Stosując rzeczywiste sprzęty do analizowania, jesteśmy zdecydowani utracić swoistego typu elastyczność, czy też zahamować pewne możliwości. Na skutek tego pozyskujemy wyniki, które precyzyjnie pokazują, jak aplikacja, czy witryna będzie funkcjonować na konkretnym rodzaju sprzętu w realu.
Kiedy najlepiej skorzystać z realnego sprzętu? Kiedy zamierzamy testować określone rodzaje funkcji, jakie są trudne, albo nierealne do testowania w otoczeniu emulowanym i symulowanym. W takich przypadkach jak:
– kiedy zamierzamy testować poziom nagrzewania się sprzętu w czasie funkcjonowania aplikacji i zbadać wydajność urządzenia, jak wiele procesora czerpie rozwiązanie, ile pamięci itd.
– kiedy zamierzamy zbadać, jak łączność bezprzewodowa oddziałuje na rozwiązanie
– kiedy zamierzamy testować, jak rozwiązanie reaguje na urządzenie audio czy video w sprzęcie
– kiedy zamierzamy sprawdzić, jak odbiorca reaguje na dane rozwiązanie, trzymając realny sprzęt i wyświetlając je na ekranie, nie mając niczego pod ręką
– kiedy zamierzamy sprawdzić poziom zintegrowania fizycznych danych wejściowych a rozwiązaniem
– kiedy za pomocą sprzętów nierzeczywistych przeprowadzenie testów rozwiązania nie jest możliwe.
Real device
Zazwyczaj odpowiedź na to, w jakim momencie najkorzystniej zastosować realne sprzęty do przeprowadzenia testów, brzmi tak, by dokonać tego na końcu procesu testowania. Taką metodą otrzymamy precyzyjne wyniki testów przeprowadzone na realnych sprzętach przed wdrożeniem rozwiązania do produkcji. Nie trzeba przejmować się testami na real devices w czasie funkcjonowania procesu wykonywania witryny bądź aplikacji, jaki mógłby przyczynić się do spowolnienia procesu przekazywania produktu na poprzednich fazach. Zazwyczaj, jeżeli rozwiązanie przeszło każdy wcześniejszy test, wszystkie nieprawidłowości dostrzeżone w czasie testów na sprzętach realnych będą raczej małe i łatwe w naprawie.
Kiedy zamierzamy przetestować rozwiązanie na realnych sprzętach nie na końcu procesu a wcześniej, powinniśmy skoncentrować się na sprzętach realnych i dokonać tego bardzo szybko.
Emulatory najlepiej zastosować podczas prowadzenia badań interfejsu odbiorcy i początkowej kontroli jakości, z kolei realne sprzęty są potrzebne do badań w wypadkach powyższych. Rozwinięcie opcji, którą dają real devices o chmurę sprzętów, będzie doskonałe, kiedy zależy nam na powiększeniu skali dokonanej analizy i zwielokrotnieniu ilości sprzętów oraz systemów operacyjnych.
Niektórzy fachowcy w tej dziedzinie decydują się na wybór metody testowania na bazie określonych sytuacji, przez co jest ona do nich najlepiej dopasowana.
Ostatecznie wybór konkretnego rozwiązania powinien być uzasadniony chęcią wykrycia odpowiednich proporcji między tymi typami testowania po to, by wesprzeć standardy jakości w nieustannym integrowaniu i wprowadzaniu.