Testy kompatybilności są integralnym elementem wielu strategii zapewniania jakości, pozwalając firmom sprawdzić, czy ich oprogramowanie działa poprawnie na różnych platformach. Nawet w przypadku programu przeznaczonego wyłącznie na komputery stacjonarne, istnieje kilka głównych systemów operacyjnych do uwzględnienia i setki – jeśli nie tysiące – różnic sprzętowych, które mogą wpływać na stabilność. Zrozumienie procesu testowania kompatybilności i jego zwykłych korzyści może pomóc zagwarantować skuteczne wprowadzenie produktu na rynek, który jest w stanie dotrzeć do jak największej liczby użytkowników.
Choć testowanie kompatybilności może przynieść szereg korzyści, istnieje również wiele istotnych wyzwań, które zespół testujący oprogramowanie musi pokonać, aby zmaksymalizować potencjał tej techniki. Istnieją również określone praktyki, które te działy powinny stosować, aby uzyskać najlepsze wyniki – i zapewnić kompleksowe ogólne pokrycie testami.
W tym artykule przyjrzymy się bliżej testom kompatybilności, w tym podstawowym krokom, które zespoły muszą wykonać, a także najbardziej przydatnym obecnie dostępnym narzędziom testowym.
Czym jest testowanie zgodności w
testowanie i inżynieria oprogramowania?
Testy kompatybilności sprawdzają oprogramowanie na różnych urządzeniach, sprzęcie i oprogramowaniu układowym, aby upewnić się, że działa ono zgodnie z oczekiwaniami zespołu. Każdy użytkownik może angażować się w swój program na nowym urządzeniu, dlatego ważne jest, aby firma mogła zagwarantować, że wszyscy będą mieli podobne wrażenia. Testy kompatybilności, na przykład, mogą obejmować sprawdzenie każdej funkcji aplikacji, aby upewnić się, że działa ona na każdym głównym systemie operacyjnym.
Bez dokładnych testów kompatybilności jest całkowicie możliwe, że firma może wydać aplikację, która nie działa na niektórych popularnych urządzeniach. Kontrole te muszą być w pełni kompleksowe, ponieważ problem może pojawić się na wiele sposobów – na przykład aplikacja może nie działać z bardzo specyficznym typem karty graficznej. W połączeniu z innymi formami testowania oprogramowania, zespoły zapewnienia jakości mogą upewnić się, że ich program jest gotowy do wydania.
1. Kiedy i dlaczego należy przeprowadzać testy zgodności aplikacji mobilnych, stron internetowych, systemów i przeglądarek?
Firmy przeprowadzają testy kompatybilności w fazie testowania oprogramowania, zwłaszcza gdy mają “stabilną” wersję programu, która dokładnie odzwierciedla sposób, w jaki będzie on działał dla klientów. Jest to kontynuowane po testach alfa, akceptacyjnych i innych formach testowania, które często sprawdzają ogólną stabilność i kwestie związane z funkcjami. Jeśli aplikacja napotka problemy podczas fazy testowania kompatybilności, będzie to zwykle spowodowane konkretnymi kwestiami związanymi z kompatybilnością. Zbyt wczesne wprowadzenie tych kontroli może sprawić, że staną się one zbędne, ponieważ drobne zmiany w późniejszym cyklu rozwoju programu mogą radykalnie wpłynąć na kompatybilność.
Testowanie kompatybilności przeglądarek i oprogramowania jest ważne, ponieważ pomaga firmom wydać aplikację, o której wiedzą, że będzie działać poprawnie na praktycznie każdym możliwym urządzeniu. Na przykład, testowanie kompatybilności między przeglądarkami w szczególności pomaga zapewnić, że osoby korzystające z Opery mają takie same wrażenia, jak osoby korzystające z Firefoksa i innych głównych przeglądarek. Zespół zazwyczaj testuje tyle wariantów sprzętu/oprogramowania, na ile pozwala mu czas i budżet. Oznacza to, że muszą inteligentnie nadawać priorytet systemom lub przeglądarkom, z których ich klienci będą częściej korzystać, co pozwoli im zagwarantować szeroki zakres testów i wykonalny produkt.
2. Kiedy nie trzeba przeprowadzać testów zgodności oprogramowania
Firmy mogą tworzyć aplikacje na zamówienie dla określonego systemu operacyjnego lub modelu, znacznie ograniczając liczbę niezbędnych kontroli. Testowanie kompatybilności z różnymi przeglądarkami w testowaniu oprogramowania może być zbędne, jeśli na przykład program nie wymaga przeglądarki. Czas może być również poważnym czynnikiem wpływającym na zdolność firmy do przeprowadzenia tych testów, chociaż zespoły testujące powinny nadal pracować nad zagwarantowaniem, że główne systemy i przeglądarki są kompatybilne z oprogramowaniem. Istnieją również pewne projekty, które nie mogą skorzystać z podstawowych testów kompatybilności.
3. Kto jest zaangażowany w testowanie kompatybilności?
Oto główne osoby przeprowadzające testy zgodności w testowaniu oprogramowania:
1. Deweloperzy
Zespół programistów sprawdza wydajność aplikacji na jednej platformie podczas jej tworzenia i może to być nawet jedyne urządzenie, na które firma zamierza wydać program.
2. Testery
Zespoły zapewnienia jakości, zarówno wewnątrz firmy, jak i wynajęte zewnętrznie, sprawdzają wiele możliwych konfiguracji w ramach etapu testowania zgodności aplikacji, w tym wszystkie główne systemy operacyjne i przeglądarki.
3. Klienci
Klienci firmy mogą mieć sprzęt lub konfiguracje, których zespół nie był w stanie dokładnie przetestować, potencjalnie sprawiając, że ich wrażenia użytkownika będą pierwszym prawdziwym sprawdzeniem tej konkretnej konfiguracji.
Korzyści z testowania kompatybilności
Zwykłe korzyści płynące z testowania kompatybilności oprogramowania obejmują:
1. Szerszy krąg odbiorców
Im dokładniej zespół testuje swoje oprogramowanie, tym więcej urządzeń może z pełnym przekonaniem wypuścić na rynek, zapewniając szerokiemu gronu odbiorców na wielu platformach możliwość korzystania z jego aplikacji. Pozwala to firmom uzyskać większą sprzedaż produktów w programie, a także może poprawić liczbę pozytywnych recenzji, które to oprogramowanie otrzymuje od użytkowników.
2. Poprawia stabilność
Testowanie kompatybilności w testowaniu oprogramowania jest niezbędne do podkreślenia problemów ze stabilnością i wydajnością, które często mogą być bardziej widoczne na różnych urządzeniach – zwłaszcza jeśli programiści zaprojektowali aplikację tylko dla jednej platformy. Test kompatybilności systemu pokazuje firmie, czego użytkownicy (na szerokiej gamie urządzeń) mogą oczekiwać od ogólnej wydajności oprogramowania.
3. Udoskonala rozwój
Testy te mają również znaczący długoterminowy wpływ na zespół programistów. Na przykład, testy kompatybilności mobilnej mogą dostarczyć cennych informacji na temat rozwoju aplikacji, które firmy mogą uwzględnić podczas tworzenia dodatkowych programów. Może to znacznie obniżyć koszty testów zgodności dla przyszłych projektów, umożliwiając im ponowne wykorzystanie wniosków wyciągniętych z tego procesu.
4. Weryfikuje inne testy
Większość form testowania do tego momentu ma ograniczony zakres i nie testuje każdej możliwej kombinacji sprzętu lub oprogramowania – testy te mogłyby skutecznie podwójnie sprawdzić te wyniki. Na przykład testowanie kompatybilności z różnymi przeglądarkami potwierdza wcześniejsze etapy zapewniania jakości, pokazując, że wyniki są takie same, gdy użytkownik korzysta z innej przeglądarki.
5. Zmniejsza koszty
Testy kompatybilności mogą również obniżyć koszty bieżącego programu, pomagając zespołom zidentyfikować problemy, zanim aplikacja zostanie wydana publicznie – w tym momencie naprawianie błędów staje się droższe. Im bardziej zróżnicowane są testy zespołu (i im wyższy jest ich wskaźnik pokrycia testami), tym tańsze jest usuwanie wszelkich błędów w miarę ich pojawiania się.
Wyzwania związane z testowaniem zgodności
Oto typowe wyzwania, przed którymi mogą stanąć firmy podczas wdrażania testów zgodności w testowaniu oprogramowania:
1. Ograniczony czas
Podczas gdy narzędzia do automatyzacji i inne rozwiązania mogą znacznie przyspieszyć testy kompatybilności poprzez symulację szeregu urządzeń, proces ten musi nadal być zgodny z harmonogramem rozwoju firmy. Oznacza to, że zespół testujący musi nadać priorytet najpopularniejszym urządzeniom i przeglądarkom, aby zagwarantować, że otrzymają najszerszą (i najbardziej populacyjną) publiczność.
2. Brak rzeczywistych urządzeń
Kontrole te zwykle obejmują maszyny wirtualne, które symulują komponenty i warunki rzeczywistych urządzeń; jest to znacznie tańsze (i szybsze) niż niezależne pozyskiwanie odpowiednich części i platform. Może to jednak wpłynąć na dokładność tych wyników; zwłaszcza, że wydajność często zależy od tego, jak użytkownicy obsługują prawdziwe urządzenie.
3. Trudne do zabezpieczenia na przyszłość
Testy kompatybilności mogą dotyczyć tylko platform, które już istnieją; oznacza to, że nie mogą zagwarantować, że aplikacja będzie działać zgodnie z oczekiwaniami na przyszłych wersjach systemu Windows i Google Chrome. Organizacje są w stanie naprawić to dopiero po uruchomieniu, co często jest droższe, a aplikacja może w rezultacie stać się przestarzała.
4. Utrzymanie infrastruktury
Jeśli zespół zdecyduje się sprawdzić znaczną liczbę platform we własnym zakresie, może to skutkować wysokimi opłatami za infrastrukturę. Na przykład testowanie kompatybilności aplikacji mobilnych może obejmować pozyskanie szeregu rzeczywistych urządzeń mobilnych. Chociaż jest to bardziej dokładne niż symulowane testy kompatybilności sprzętu, jest to kosztowne i zazwyczaj wymaga regularnej konserwacji.
5. Duża liczba kombinacji
Testy kompatybilności uwzględniają wiele czynników, takich jak system operacyjny, przeglądarka, sprzęt, oprogramowanie układowe, a nawet rozdzielczość ekranu. Nawet jeśli zespół testowy ma dużo czasu, niemożliwe byłoby uwzględnienie wszystkich możliwości. Testy konfiguracji i kompatybilności muszą ponownie nadać priorytet najbardziej prawdopodobnym kombinacjom urządzeń.
Charakterystyka testów zgodności
Kluczowe cechy testów zgodności obejmują:
1. Dokładny
Kontrole te muszą być w stanie wyizolować wszelkie możliwe problemy z kompatybilnością, które pojawiają się między urządzeniami – w przeciwnym razie zespół może wydać wadliwy program. Na przykład, kontrole te muszą upewnić się, że każda pojedyncza funkcja aplikacji renderuje się zgodnie z oczekiwaniami, bez względu na rozdzielczość ekranu użytkownika.
2. Ekspansywny
Testy powinny zachowywać równowagę między szczegółowością i obszernością, pomagając zespołom badać szereg kwestii w wielu konfiguracjach urządzeń. Testy zgodności z różnymi przeglądarkami obejmują szeroki zakres kombinacji systemów operacyjnych i przeglądarek, zapewniając wysoki poziom pokrycia – czasami przy pomocy zautomatyzowanego rozwiązania.
3. Dwukierunkowy
Proces ten obejmuje zarówno testy wstecznej, jak i przyszłej kompatybilności; te pierwsze pozwalają zespołowi sprawdzić, jak ich aplikacja będzie działać na starszym sprzęcie. Ta ostatnia umożliwia zespołowi dostęp do najnowocześniejszych platform, pomagając im zagwarantować pomyślną długoterminową wydajność, nawet jeśli ich przyszłe możliwości są dość ograniczone.
4. Powtarzalność
Problemy, które wykrywają te kontrole, muszą być łatwe do powtórzenia przez innych testerów i działy – pokazując, że odzwierciedlają błędy, które użytkownicy mogą napotkać. Jeśli test zgodności witryny wskazuje, że określone funkcje nie działają w określonej przeglądarce, powtarzalność pomaga programistom rozwiązać ten problem.
Rodzaje testów zgodności
Główne rodzaje testów kompatybilności są następujące:
1. Testowanie kompatybilności wstecznej
Testowanie kompatybilności wstecznej polega na sprawdzeniu aplikacji przy użyciu starszych wersji współczesnego sprzętu – jest to niezbędne, ponieważ ograniczenie tych testów do nowoczesnych urządzeń może znacznie ograniczyć liczbę użytkowników. Wiele osób nadal korzysta ze starszych systemów operacyjnych, takich jak na przykład Windows 8.
2. Testowanie kompatybilności w przód
Testowanie kompatybilności w przyszłości jest podobne, ale zamiast tego analizuje nowoczesne lub nadchodzące technologie, aby sprawdzić, czy aplikacja będzie działać przez lata pomimo postępów i aktualizacji. Bez tych testów oprogramowanie może na przykład przestać działać wraz z kolejną aktualizacją przeglądarki.
3. Testowanie zgodności z przeglądarką
Testy zgodności z przeglądarkami zapewniają, że aplikacja lub witryna internetowa może działać na różnych przeglądarkach; jest to niezbędne, ponieważ używają one różnych silników układu. Zespoły ds. zapewniania jakości testują nawet kompatybilność między przeglądarkami – co oznacza, że sprawdzają, czy każda przeglądarka może obsługiwać aplikację w różnych systemach operacyjnych.
4. Testowanie zgodności z urządzeniami mobilnymi
Testowanie aplikacji mobilnych jest procesem podobnym do sprawdzania aplikacji desktopowych i internetowych, zwłaszcza że system operacyjny telefonu jest kolejnym kluczowym czynnikiem. Na przykład aplikacje na Androida i iOS mają zupełnie inne formaty i wymagają całkowicie oddzielnego procesu rozwoju i testowania, aby dostosować je do obu.
5. Testowanie kompatybilności sprzętu
Kontrole te sprawdzają konkretne komponenty składające się na maszynę i ich wpływ na program; jest to krytyczne dla praktycznie każdego typu urządzenia. Na przykład, komputer może mieć kartę graficzną, która nie może pomyślnie renderować interfejsu aplikacji internetowej.
6. Testowanie kompatybilności urządzeń
Niektóre aplikacje łączą się z urządzeniami zewnętrznymi poprzez Bluetooth, łącze szerokopasmowe lub połączenie przewodowe. Aplikacja może na przykład wymagać połączenia z drukarką. Testy te mają na celu upewnienie się, że program łączy się z własnymi połączeniami platformy i wszystkimi urządzeniami, do których ma dostęp.
7. Testowanie kompatybilności sieci
Jeśli aplikacja wymaga do działania funkcji sieciowych – takich jak łączenie się z bazą danych online za pośrednictwem serwera firmy – wymaga to licznych kontroli zgodności. Dzięki temu program może działać z odpowiednią prędkością przy połączeniu z siecią Wi-Fi, 4G lub 3G.
Co testujemy w ramach testów zgodności?
Testerzy kompatybilności zazwyczaj sprawdzają następujące elementy:
1. Wydajność
Jednym z głównych celów testowania kompatybilności jest zapewnienie stabilności, ponieważ niektóre aspekty aplikacji mogą być całkowicie niekompatybilne z popularnymi platformami. Patrząc na ogólną responsywność tego programu, zespół testujący zapewnia, że na niektórych urządzeniach nie występują poważne awarie.
2. Funkcjonalność
Testy kompatybilności sprawdzają również ogólne cechy i funkcje aplikacji, aby upewnić się, że oprogramowanie jest w stanie zapewnić prawidłowe wyniki. Na przykład, system zarządzania relacjami z klientami może nie być w stanie oferować danych sprzedażowych lub ogólnych analiz dla użytkowników z przestarzałym systemem operacyjnym.
3. Grafika
Niektóre przeglądarki lub urządzenia mogą mieć trudności z renderowaniem niektórych elementów graficznych z wielu powodów – a kontrole zgodności mogą w tym pomóc. Program może działać tylko w określonych rozdzielczościach ekranu, chyba że deweloperzy zmienią sposób wyświetlania jego zawartości.
4. Łączność
Testy kompatybilności sprawdzają również, w jaki sposób program integruje się zarówno z urządzeniem użytkownika, jak i własną bazą danych, umożliwiając wykrywanie urządzeń takich jak drukarki. Kontrole te mogą na przykład ujawnić, że aplikacja nie jest w stanie połączyć się z własną bazą danych w sieciach 3G.
5. Wszechstronność
Kontrole te zapewniają, że aplikacja firmy jest wystarczająco wszechstronna, aby działać na starych i nowych wersjach tego samego systemu operacyjnego poprzez testy kompatybilności wstecz i do przodu. Gwarantuje to, że użytkownicy nie zostaną zablokowani w programie, jeśli ich oprogramowanie jest nieaktualne od kilku lat.
Rodzaje wyników testów zgodności
Trzy główne wyniki testów zgodności to:
1. Wyniki badań
Najczęstszym wynikiem tych kontroli są same wyniki, które mogą przybierać różne formy. Przykładowo, testy zgodności z przeglądarkami mogą ujawnić, że aplikacja internetowa powoduje wyciek pamięci w Microsoft Edge, podczas gdy ta sama aplikacja nie ma negatywnego wpływu na przeglądarki oparte na Chrome. Alternatywnie, aplikacja może działać dokładnie tak, jak oczekuje tego zespół na odpowiednich platformach.
2. Dzienniki badań
Wyniki testów przejawiają się również w postaci własnych dzienników aplikacji, które podkreślają wszelkie wykryte problemy z oprogramowaniem za pomocą komunikatów o błędach. Dzienniki te mogą nawet zidentyfikować konkretną część programu, która powoduje ten błąd. W szczególności w przypadku testów kompatybilności, testerzy muszą być zaznajomieni z tym, jak te logi manifestują i prezentują te problemy na różnych platformach.
3. Przypadki testowe
Przypadki testowe kompatybilności określają, które testy zostaną przeprowadzone przez zespół i oferują miejsce na zapisanie wyników w prostym formacie. Testerzy powinni wykorzystać swoją wiedzę na temat oprogramowania, w połączeniu z wynikami i dziennikami, aby zidentyfikować przyczynę problemu. Im więcej informacji dostarczą, tym szybciej deweloperzy będą mogli rozpocząć usuwanie błędów.
Rodzaje wykrytych usterek
poprzez testy kompatybilności
Oto najczęstsze błędy, które mogą wykryć testy zgodności:
1. Skalowanie układu
Test kompatybilności witryny może wykazać, czy elementy składające się na aplikację internetową, a nawet strony internetowe, skalują się, aby dopasować się do urządzenia użytkownika, w szczególności rozdzielczości i rozmiaru jego ekranu. W rezultacie niektóre grafiki mogą być trudne do wyświetlenia w określonych przeglądarkach.
2. Awarie oprogramowania
Testy kompatybilności ułatwiają sprawdzenie, czy aplikacja jest w stanie działać na niektórych platformach. Na przykład, twórca gry może odkryć minimalne wymagania systemowe swojego produktu, sprawdzając, które urządzenia ulegają awarii z powodu niewystarczającej ilości pamięci RAM i szybkości procesora po uruchomieniu go przez testerów.
3. Problemy z walidacją HTML/CSS
Różne przeglądarki i urządzenia odczytują kod na różne sposoby – niektóre automatycznie korygują proste literówki, takie jak nieprawidłowe zamknięcie znacznika HTML. Testy zgodności z przeglądarką mogą zidentyfikować przypadki nieprawidłowego CSS, który uniemożliwia aplikacji generowanie treści, a nawet podstawowych funkcji.
4. Błędy odtwarzania wideo
Wiele nowoczesnych odtwarzaczy wideo wykorzystuje HTML5 do strumieniowego przesyłania filmów online, co potencjalnie może stanowić kluczową część aplikacji internetowej firmy. Jednak zespoły, które sprawdzają zgodność przeglądarki internetowej, mogą odkryć, że funkcje wideo ich aplikacji nie są kompatybilne z przestarzałymi przeglądarkami.
5. Bezpieczeństwo plików
Testy kompatybilności w inżynierii oprogramowania mogą również wykryć problemy z bezpieczeństwem plików i różnicami między urządzeniami. Na przykład nowsze wersje systemu Windows mają solidniejsze zabezpieczenia wejścia/wyjścia. Może to prowadzić do tego, że aplikacja (taka jak oprogramowanie antywirusowe) będzie miała trudności z dostępem do plików urządzenia.
Proces testowania zgodności
Zwykłe etapy testowania zgodności są następujące:
1. Opracowanie planu testów
Kompleksowy plan testowania ma kluczowe znaczenie dla testowania kompatybilności; zespół ds. zapewnienia jakości może się do niego odwoływać w razie potrzeby podczas kontroli. Na przykład, wyszczególnia urządzenia, które będą testowane i kryteria zaliczenia lub niezaliczenia; muszą również ustalić, czy będą korzystać ze zrobotyzowanej automatyzacji procesów.
2. Konfiguracja przypadków testowych
Przypadki testowe są podobnie ważne, ponieważ zawierają szczegółowe informacje na temat kontroli zgodności przeprowadzanych przez zespoły i konkretnych urządzeń, z którymi pracują. Zawiera on również dokładne kroki, jakie podejmą testerzy, a także wystarczająco dużo miejsca na zapisanie wyników i wszelkich informacji, które pomogą programistom w zapewnieniu kompatybilności.
3. Ustanowienie środowiska testowego
Odizolowane i niezależne środowisko testowe wolne od zewnętrznych wpływów jest niezbędne do zapewnienia dokładnych testów, a także pozwala zespołowi ds. zapewnienia jakości zidentyfikować, skąd pochodzą wykryte przez niego problemy. Co więcej, testerzy mogą przeprowadzać kontrole aplikacji bez naruszania “prawdziwej” wersji w jakikolwiek sposób.
4. Wykonanie testów
Mając w pełni przygotowane przypadki testowe i środowisko, zespół może rozpocząć testy kompatybilności – nawet przy zautomatyzowanym rozwiązaniu mają tylko ograniczoną ilość czasu. Testerzy będą musieli nadać priorytet najpopularniejszym systemom operacyjnym i konfiguracjom urządzeń, aby to uwzględnić i zapewnić szerokie pokrycie testami pomimo tych ograniczeń.
5. Ponowny test
Po zakończeniu testów i otrzymaniu przypadków testowych programiści zmodyfikują aplikację w sposób poprawiający jej kompatybilność, choć może to nie być możliwe dla wszystkich urządzeń. Następnie testerzy ponownie sprawdzają aplikację i weryfikują, czy problemy, które wcześniej wykryli, nie są już obecne i czy nie ma nowych poważnych błędów.
Typowe metryki testów zgodności
Oto kilka typowych wskaźników używanych w testach kompatybilności:
1. Przepustowość
Testy kompatybilności sieciowej mierzą, w jaki sposób aplikacja łączy się z różnymi sieciami, w tym szerokopasmowymi i mobilnymi sieciami danych. Minimalna przepustowość łącza niezbędna do tego, by program mógł wykonywać swoje zwykłe zadania i łączyć się z bazą danych firmy, może być na przykład zbyt wysoka dla przeciętnego połączenia 3G.
2. Wykorzystanie procesora
Jednym ze sposobów, w jaki objawiają się problemy z wydajnością, jest nieproporcjonalnie wysokie użycie procesora – może to oznaczać, że urządzenie po prostu nie spełnia minimalnych wymagań programu. Problemy z procesorem mogą również wpływać na czas reakcji aplikacji, ograniczając jej funkcjonalność i powodując wystarczające opóźnienia, aby zniechęcić użytkowników.
3. Skala użyteczności systemu
System Usability Scale to powszechny sposób pomiaru subiektywnych szczegółów programu, składający się z dziesięciu podstawowych pytań dotyczących użyteczności aplikacji. Wynikowy wynik SUS wynosi 100 i może się różnić w zależności od platformy ze względu na błędy graficzne.
4. Całkowita liczba usterek
Ten wskaźnik jest stały dla większości typów testów, pozwalając testerom zrozumieć aktualny stan programu. Zespół może również porównywać sumy defektów między różnymi platformami. W ten sposób testerzy mogą wskazać błędy wynikające z niekompatybilności.
5. Wynik SUPRQ
Podobnie jak w przypadku wyniku SUS aplikacji, Standardowy Kwestionariusz Percentylowego Rankingu Doświadczenia Użytkownika jest sposobem, w jaki testerzy oceniają aplikację pod kątem kilku kluczowych czynników, w tym użyteczności i wyglądu. Pomaga im to zidentyfikować, w jaki sposób klienci mogą mieć trudności z korzystaniem z aplikacji na niektórych urządzeniach.
7 błędów i pułapek we wdrażaniu testów zgodności
Oto siedem istotnych błędów, których należy unikać podczas przeprowadzania testów kompatybilności:
1. Brak rzeczywistych urządzeń
Chociaż niemożliwe byłoby przetestowanie na każdej możliwej kombinacji urządzeń, zespół testowy może nadal czerpać korzyści z korzystania z jak największej liczby rzeczywistych urządzeń. Różne platformy oferują “prawdziwe” urządzenia za pośrednictwem rozwiązań chmurowych, aby ułatwić testowanie kompatybilności między przeglądarkami w sposób, który może odzwierciedlać natywną wydajność.
2. Unikanie starszych urządzeń
Wielu użytkowników nadal korzysta ze swoich aplikacji na starszych wersjach systemu Windows lub iOS; skupienie się wyłącznie na nowych wersjach popularnych urządzeń i systemów operacyjnych może ograniczyć zasięg produktu. Jeśli zespół nie rozszerzy swoich testów na “przestarzałe” urządzenia, znaczna część odbiorców może mieć trudności z korzystaniem z programu.
3. Niewłaściwe zarządzanie czasem
Często istnieje duża liczba urządzeń i konfiguracji, które będą wymagały testu zgodności, co oznacza, że zespół musi zarządzać swoim czasem, aby sprawdzić jak najwięcej z nich. Jest to o tyle ważne, że testy są zazwyczaj nadal w toku pod koniec procesu rozwoju; niewłaściwe zarządzanie może znacznie ograniczyć liczbę kontroli.
4. Niewłaściwy harmonogram
Podobnie najważniejsze jest, aby zespoły upewniły się, że przeprowadzają te testy na rozsądnym etapie rozwoju programu, najlepiej po testach alfa i większości form testów funkcjonalnych. Ułatwia to sprawdzenie, czy problem jest wadą ogólną, czy specyficzną dla urządzeń, którym przygląda się zespół.
5. Brak uwzględnienia rozdzielczości ekranu
Rozdzielczość ekranu może być znacznie większym czynnikiem wpływającym na kompatybilność, niż wiele zespołów testujących zdaje sobie z tego sprawę – zwłaszcza, że jest ona konfigurowalna i wpływa na sposób wyświetlania elementów graficznych przez urządzenie. Nawet w obliczu zbliżającego się terminu testów zgodności ważne jest, aby zespoły testowe nadal pracowały nad uwzględnieniem tego w swojej strategii.
Brak wiedzy specjalistycznej
Testerzy muszą być wysoko wykwalifikowani, aby sprawdzać kompatybilność stron internetowych, przeglądarek i oprogramowania, a także wiele innych form, jakie mogą przybrać te testy. Jeśli lider testów wyznaczy jednego z członków swojego zespołu do przeprowadzenia kontroli zgodności, a nie ma on wystarczającego doświadczenia, może to spowolnić testy i ograniczyć ich dokładność.
6. Brak wcześniejszej dyskusji
Ponieważ testy kompatybilności są często czasochłonne (i potencjalnie wymagają szerokiej gamy urządzeń), zespoły muszą w pełni ustalić zakres swoich kontroli na wczesnym etapie zapewniania jakości. Na przykład, muszą mieć jasne wyobrażenie o tym, które konkretne urządzenia lub konfiguracje zamierzają przetestować przed rozpoczęciem kontroli.
Najlepsze praktyki testowania kompatybilności
Najlepsze sposoby na zapewnienie wysokiej jakości testów zgodności obejmują:
1. Testowanie przez cały okres rozwoju
Ponieważ oprogramowanie zmienia się znacząco z tygodnia na tydzień, może to mieć wpływ na kompatybilność programu z przeznaczonymi dla niego urządzeniami. Zespoły muszą wielokrotnie przeprowadzać testy zgodności oprogramowania i różnych przeglądarek, aby upewnić się, że aplikacja nadal działa dobrze na tych platformach po zmianach rozwojowych.
2. Używaj prawdziwych urządzeń
Niektóre narzędzia do testowania kompatybilności oferują dostęp do “prawdziwych” symulowanych urządzeń, które są w stanie ściśle przypominać doświadczenie użytkownika na danej platformie. Pozwala to zapewnić kompatybilność na większej liczbie urządzeń przy jednoczesnym zachowaniu wysokiego poziomu dokładności, który nie występuje w niektórych zautomatyzowanych rozwiązaniach.
3. Ustalanie priorytetów testów
Mając ograniczoną ilość czasu na przeprowadzenie tych kontroli, testerzy zgodności mogą być zmuszeni do nadania priorytetu najpopularniejszym urządzeniom, przeglądarkom i systemom operacyjnym. Podobnie, zespół testujący powinien najpierw sprawdzić najbardziej krytyczne funkcje oprogramowania, aby zagwarantować podstawową funkcjonalność na tych urządzeniach.
4. Integracja technik zwinnych
Niektóre firmy decydują się na przyjęcie podejścia opartego na sprintach do swoich testów zgodności, co pozwala im łatwo osiągnąć kamienie milowe testów – takie jak sprawdzenie określonej liczby urządzeń. Agile zachęca do komunikacji między działami, zapewniając jednocześnie ustaloną strukturę testów, która może zagwarantować spójne, szybkie ulepszenia.
5. Ograniczenie zakresu testów
Zespoły zapewniania jakości muszą wiedzieć, kiedy zakończyć testy, a nawet zaakceptować przypadek niezgodności. W takim przypadku deweloper może nie zmieniać oprogramowania, a zamiast tego zmienić minimalne wymagania, jeśli byłoby to zbyt trudne do obejścia poprzez poprawki błędów.
Przykłady przypadków i scenariuszy testów zgodności
Przypadki testowe zgodności określają dane wejściowe zespołu testującego, strategię testowania i oczekiwane wyniki; te ostatnie porównują z rzeczywistymi wynikami. Ponieważ kontrole obejmują wiele urządzeń i konfiguracji, jest to często obszerny proces.
Przypadki te zazwyczaj obejmują:
– Przetestuj poprawność wyświetlania kodu HTML aplikacji internetowej.
– Sprawdź, czy kod JavaScript oprogramowania jest użyteczny.
– Sprawdź, czy aplikacja działa w różnych rozdzielczościach.
– Sprawdź, czy program może uzyskać dostęp do katalogu plików.
– Upewnij się, że aplikacja łączy się ze wszystkimi możliwymi sieciami.
Oto konkretne przykłady testów zgodności w testowaniu oprogramowania dla różnych programów:
1. Aplikacja społecznościowa
Sieci społecznościowe zazwyczaj przybierają formę aplikacji internetowych w przeglądarkach i aplikacji mobilnych na odpowiednie urządzenia; oba typy wymagają równie dokładnych testów. Przykładowo, aplikacja mobilna musi być w pełni funkcjonalna na urządzeniach z systemami iOS i Android – zespół musi sprawdzić stare i nowe urządzenia pod każdym systemem operacyjnym. Jeśli na przykład określony model iPhone’a nie może renderować animowanych plików GIF, zespół musi określić, co jest tego przyczyną, aby zapewnić spójne wrażenia użytkownika.
2. Gra wideo
Gry wideo zazwyczaj oferują konfigurowalne opcje graficzne, które użytkownicy mogą zmieniać, aby dopasować je do swojego komputera; obejmuje to kontrolowanie rozdzielczości ekranu i zapewnienie odpowiedniego skalowania interfejsu użytkownika. Pewne problemy mogą pojawić się w zależności od konkretnego sprzętu gracza – z błędami antyaliasingu prowadzącymi do ziarnistej grafiki. Może to być spowodowane popularną kartą graficzną, która jest niekompatybilna z renderowaniem tekstur firmy. W zależności od konkretnego problemu, może to nawet objawiać się awarią systemu podczas uruchamiania gry na niektórych urządzeniach.
3. System CRM w chmurze
Rozwiązania do zarządzania relacjami z klientami w dużym stopniu wykorzystują bazy danych do pobierania informacji o swoich transakcjach, dostawcach i innych ważnych aspektach działalności, głównie za pomocą pamięci masowej w chmurze. Testerzy powinni upewnić się, że ta baza danych i jej usługi w chmurze działają w różnych sieciach, w tym 3G i 4G, jeśli użytkownik musi uzyskać do niej dostęp bez połączenia z Internetem. Zespół musi również sprawdzić szeroką gamę systemów operacyjnych, ponieważ niektóre usterki mogą pojawić się na przykład tylko na urządzeniach z systemem Linux.
Ręczne czy automatyczne testy zgodności?
Automatyzacja może być bardzo pomocna w testach zgodności, umożliwiając zespołom sprawdzenie dużej liczby urządzeń znacznie szybciej niż w przypadku podejścia ręcznego. Testowanie ręczne może być jednak bardziej odpowiednie w przypadku przeprowadzania kontroli na ograniczonej liczbie przeglądarek i urządzeń – na przykład w przypadku gry wideo dostępnej tylko na dwóch platformach. Użyteczność oprogramowania jest często kluczowym czynnikiem w testach kompatybilności i zwykle wymaga ludzkiej perspektywy, która może lepiej zidentyfikować problemy z renderowaniem graficznym. Automatyzacja procesów robotycznych może w tym pomóc poprzez wdrożenie robotów programowych, które mogą łatwiej naśladować podejście ludzkiego użytkownika do testów kompatybilności.
W przypadku programów zaprojektowanych dla szerokiej gamy urządzeń, takich jak aplikacje mobilne i internetowe, automatyzacja pozwala zespołowi zapewnić szersze pokrycie testami. Mogą nawet wykorzystać hiperautomatyzację do inteligentnego outsourcingu tych kontroli w sposób, który nadal zapewnia, że testerzy sprawdzają te platformy pod kątem funkcjonalności specyficznych dla użytkownika. Testowanie zgodności w testach ręcznych jest nadal obowiązkowe w przypadku niektórych zadań – takich jak sprawdzanie, czy interfejs użytkownika wyświetla się poprawnie na każdym urządzeniu. Oznacza to, że najlepszym podejściem może być strategia mieszana, która może testować ogólnie więcej urządzeń poprzez automatyzację, zwiększając ich tempo, jednocześnie uwzględniając znaczenie użyteczności.
Co jest potrzebne do rozpoczęcia testów zgodności?
Główne warunki wstępne dla testów zgodności zazwyczaj obejmują:
1. Wykwalifikowany personel testujący
Testerzy kompatybilności mają zwykle wyższe wymagania dotyczące umiejętności niż inne formy zapewniania jakości, ponieważ sprawdzają szerszy zakres urządzeń i często napotykają więcej błędów. Może to obejmować rozwiązywanie problemów, komunikację i dbałość o szczegóły. Liderzy zespołów powinni przydzielać testerów, którzy mają doświadczenie w badaniu tej samej aplikacji na wielu platformach.
2. Silna emulacja urządzenia
Pozyskanie i przetestowanie każdego fizycznego urządzenia w zakresie zespołu może być trudne, co czyni emulację niezbędną do sprawdzenia, jak różne platformy reagują na ten sam program. Proces ten rzadko jest doskonały, a testerzy muszą przyjrzeć się wielu dostępnym emulatorom i narzędziom do automatycznego testowania, aby sprawdzić, które z nich oferują największą dokładność.
3. Jasny zakres testów
Zespół powinien zrozumieć swój zakres przed rozpoczęciem kontroli; zwłaszcza, że może to zadecydować o tempie ich pracy. Podczas gdy program może mieć na celu objęcie wielu platform, testerzy powinni określić odpowiedni punkt odcięcia. Na przykład testowanie systemów operacyjnych wydanych przed Windows 7 może prowadzić do zmniejszenia zysków.
4. Zarządzanie czasem
Testowanie kompatybilności może odbywać się w dowolnym momencie na etapie zapewniania jakości, ale zwykle jest zapisywane na koniec rozwoju – gdy program jest stabilny i kompletny. Jednak testerzy powinni rozważyć kompatybilność na długo przed tym, ponieważ jest to często czasochłonne. Solidne planowanie z wyprzedzeniem pomaga zespołowi zapewnić wystarczającą ilość czasu na każdą kontrolę.
Testy kompatybilności
lista kontrolna, porady i wskazówki
Oto dodatkowe wskazówki, o których zespoły ds. zapewniania jakości muszą pamiętać podczas przeprowadzania testów zgodności:
1. Nie celuj w całkowity zasięg
Podczas gdy każda strategia testowania ma na celu maksymalizację pokrycia testami, zazwyczaj zatrzymują się one przed osiągnięciem 100% ze względu na malejące zyski z niewielkich ulepszeń dla bardzo niewielu użytkowników. W kontekście kompatybilności zespoły powinny zrozumieć, kiedy zbyt niewielu ich klientów będzie korzystać z urządzenia, aby te kontrole były opłacalne.
2. Priorytet dla kombinacji między przeglądarkami
Testowanie kompatybilności między przeglądarkami obejmuje sprawdzanie każdej przeglądarki w różnych systemach operacyjnych. Testerzy muszą korzystać z kompleksowych analiz dotyczących swoich odbiorców, aby określić najpopularniejsze z nich i wykorzystać je do kierowania swoim podejściem. Mogą nawet opracować matrycę kompatybilności przeglądarek, która określi zakres tych kontroli i ich różne konfiguracje.
3. Weryfikacja układu
Zapewnienie spójnego doświadczenia jest sercem testów kompatybilności, a kontrole te muszą wykraczać poza identyfikację, czy funkcje programu działają na różnych urządzeniach. Zespoły powinny również zweryfikować ogólny układ oprogramowania, w tym wyrównanie wszelkich formularzy lub tabel, a także integralność CSS i HTML programu.
4. Sprawdzanie interfejsów API
Interfejsy programowania aplikacji są podstawowym składnikiem sposobu, w jaki przeglądarki odczytują aplikacje, co czyni je niezbędnymi dla zespołu testującego kompatybilność między przeglądarkami. Różne przeglądarki internetowe mają własne wywołania API, a ich aktualizacje w czasie mogą wpływać na kompatybilność. Testerzy muszą je regularnie sprawdzać; nawet jeśli firma używa podobnego API dla każdego programu.
5. Sprawdź certyfikat SSL
Certyfikaty SSL zwiększają bezpieczeństwo przeglądarki – szyfrując ruch internetowy i umożliwiając użytkownikom korzystanie z protokołów HTTPS. Witryna lub aplikacja internetowa może mieć certyfikat niekompatybilny z niektórymi przeglądarkami. Oznacza to, że testerzy powinni zweryfikować certyfikat na wszystkich głównych platformach, aby upewnić się, że użytkownicy czują się bezpiecznie na ich stronie internetowej.
6. Weryfikacja odtwarzaczy wideo
Programy wyświetlające wideo, takie jak usługi streamingowe lub gry mobilne freemium obsługiwane przez reklamy, powinny przejść testy, aby upewnić się, że te filmy są wyświetlane na wszystkich urządzeniach. W przypadku wielu aplikacji kontrole te będą obejmować zarówno urządzenia stacjonarne, jak i mobilne i mogą obejmować jakość wideo, szybkość i liczbę klatek na sekundę.
5 najlepszych narzędzi i oprogramowania do testowania zgodności
Najskuteczniejsze darmowe i płatne narzędzia do testowania kompatybilności obejmują:
1. ZAPTEST Free & Enterprise Edition
ZAPTEST oferuje doskonałą funkcjonalność zarówno w wersji Free, jak i Enterprise (płatnej), pomagając firmom dowolnej wielkości (lub budżetu) w sprawdzaniu kompatybilności. Firmy, które wybiorą wersję Enterprise ZAPTEST, mogą nawet cieszyć się zwrotem, który jest nawet 10-krotnością ich pierwotnych inwestycji. Funkcja 1SCRIPT w rozwiązaniu jest specjalnie dostosowana do potrzeb testerów zgodności, umożliwiając im przeprowadzanie dokładnie tych samych testów na wielu platformach bez konieczności modyfikowania kodu. Dodaj najnowocześniejsze funkcje RPA bez dodatkowych kosztów, a otrzymasz kompleksowe rozwiązanie do automatyzacji dowolnego zadania.
2. LambdaTest
LambdaTest wykorzystuje podejście oparte na chmurze do dostarczania 3000 zautomatyzowanych urządzeń – choć ze znacznym naciskiem na przeglądarki internetowe, co może ograniczać skuteczność tego rozwiązania w przypadku niektórych programów. Platforma specjalizuje się w ciągłym testowaniu, integrując proces zapewniania jakości ściślej z rozwojem. Kontrole w tej aplikacji pozwalają również użytkownikom ustawić rozdzielczość, dzięki czemu testowanie zgodności między przeglądarkami jest znacznie łatwiejsze. Rozwiązanie to oferuje model freemium, choć obejmuje on ograniczone testy bez aktualizacji i bez rzeczywistych urządzeń.
3. BrowserStack
Podobnie jak LambdaTest, BrowserStack zapewnia dostęp do 3000 rzeczywistych urządzeń; ich katalog zawiera również starsze i beta opcje dla przeglądarek. Chociaż ludzie są bardziej skłonni do aktualizacji przeglądarki niż systemu operacyjnego, nadal może być wiele osób korzystających ze starszych wersji – BrowserStack to uwzględnia. Użytkownicy mogą również przeprowadzić testy geolokalizacji, aby zobaczyć, jak strony internetowe i aplikacje internetowe wyglądają w różnych krajach. Nie ma jednak opcji darmowych ani freemium, a rzeczywiste testowanie urządzeń może być powolne.
4. TestGrid
TestGrid pozwala na testowanie równoległe, umożliwiając zespołom sprawdzenie kilku kombinacji w tym samym czasie, aby przyspieszyć proces. Rozwiązanie to dobrze integruje się również z przepływem pracy związanym z testowaniem i rozwojem – potencjalnie ułatwiając podejście zwinne, stanowiąc kluczową część sprintów działu. Jednak TestGrid czasami ma trudności z łączeniem się z urządzeniami i przeglądarkami w chmurze. Co więcej, program jest dość ograniczony pod względem testowania obciążenia, dokumentacji i dodawania nowych urządzeń do konfiguracji firmy.
5. Przeglądarka
Browsera koncentruje się głównie na testowaniu stron internetowych w celu zapewnienia ich prawidłowego wyświetlania na różnych urządzeniach, przeglądarkach i systemach operacyjnych. Jako podejście oparte na chmurze, zespoły zapewnienia jakości nie muszą instalować tego wirtualnego laboratorium testowego na swoich urządzeniach. Browsera może również porównywać dane wyjściowe w celu inteligentnego wykrywania błędów układu i błędów JavaScript, które nawet ludzki tester może przeoczyć. Browsera nie obsługuje jednak kilku popularnych przeglądarek, w tym Opery, i oferuje jedynie podstawowe funkcje testowe za darmo.
Wniosek
Testowanie kompatybilności ma kluczowe znaczenie dla skutecznej strategii zapewniania jakości, umożliwiając zespołom walidację aplikacji na szerokiej gamie urządzeń. Bez zastosowania tej techniki firmy mogą być nieświadome, że ich oprogramowanie nie będzie działać dla większości docelowych odbiorców aż do momentu premiery. Kosztuje to dużo czasu i pieniędzy w porównaniu z testami przedpremierowymi, a aplikacje takie jak ZAPTEST mogą jeszcze bardziej usprawnić ten proces. Dzięki 1SCRIPT i wielu innym funkcjom dostępnym za darmo, takim jak testowanie równoległe, wybór ZAPTEST jako narzędzia testowego może odmienić każdy projekt, dając zespołom całkowitą pewność co do ich aplikacji.