| Termin | Definicja |
|---|---|
| niezgodność środowisk testowych i produkcyjnych | Niezgodność środowisk testowych i produkcyjnych sprawia, że testy nie wykrywają błędów ujawniających się dopiero po wdrożeniu. Niezgodność środowisk testowych i produkcyjnych – czym jestNiezgodność środowisk testowych i produkcyjnych oznacza sytuację, w której aplikacja, system albo usługa jest sprawdzana w warunkach różniących się od tych, jakie występują po wdrożeniu. Różnice mogą dotyczyć sprzętu, systemu operacyjnego, wersji bibliotek, ustawień bezpieczeństwa, sposobu przechowywania danych, konfiguracji sieci, uprawnień użytkowników lub dostępnych zasobów. W efekcie test może zakończyć się poprawnie, mimo że w środowisku docelowym pojawi się błąd, spowolnienie albo całkowity brak działania określonej funkcji. Środowisko testowe służy do bezpiecznego sprawdzania zmian przed udostępnieniem ich użytkownikom. Środowisko produkcyjne jest natomiast miejscem, w którym rozwiązanie działa w codziennych warunkach, pod rzeczywistym obciążeniem i z prawdziwymi zależnościami sprzętowymi lub programowymi. Jeżeli oba środowiska nie są do siebie wystarczająco podobne, wynik testów staje się mniej miarodajny. Nie chodzi o konieczność całkowitego kopiowania każdego elementu, lecz o zachowanie zgodności tych cech, które mogą zmienić zachowanie aplikacji lub urządzenia. Problem może powstać zarówno w dużym projekcie informatycznym, jak i podczas modernizacji pojedynczego komputera, wdrażania programu księgowego, konfiguracji stanowiska pracy czy aktualizacji sterownika. Niewielka różnica w wersji systemu, ustawieniach zapory albo sposobie zapisu plików może ujawnić się dopiero po uruchomieniu rozwiązania poza miejscem, w którym zostało przetestowane. Dlatego zgodność środowisk należy traktować jako element jakości, a nie wyłącznie jako zadanie administracyjne. Niezgodność środowisk testowych i produkcyjnych w kontekście technicznymNajczęstsze rozbieżności dotyczą wersji oprogramowania. Aplikacja może być testowana na nowszej wersji systemu, interpreterze lub bibliotece, podczas gdy na komputerze docelowym używana jest starsza edycja. Odwrotna sytuacja również bywa problematyczna, ponieważ test wykonany na starszej wersji nie zawsze pokazuje zmiany wprowadzone w nowszym wydaniu. Znaczenie ma także architektura systemu, na przykład różnica między środowiskiem 32-bitowym i 64-bitowym, dostępność określonych instrukcji procesora oraz sposób obsługi sterowników. Istotne są również parametry sprzętowe. Na komputerze testowym aplikacja może korzystać z szybkiego dysku, większej ilości pamięci operacyjnej i wydajniejszego procesora. Na stanowisku użytkownika te same operacje mogą trwać znacznie dłużej albo kończyć się błędem wynikającym z braku zasobów. W przypadku oprogramowania korzystającego z grafiki znaczenie ma model układu graficznego, wersja sterownika i sposób obsługi akceleracji. Przy pracy z urządzeniami zewnętrznymi dochodzą jeszcze porty, kontrolery, drukarki, skanery, karty sieciowe oraz ich sterowniki. Rozbieżność może dotyczyć danych wejściowych i praw dostępu. Testy bywają wykonywane na małej, uporządkowanej próbce, podczas gdy po wdrożeniu pojawiają się pliki o nietypowych nazwach, stare rekordy, uszkodzone załączniki lub dane o większym rozmiarze. Konto używane podczas testu może mieć pełne uprawnienia, a użytkownik końcowy tylko ograniczony dostęp. Wtedy funkcja działa w laboratorium, lecz nie działa w codziennym użyciu. Podobne skutki może powodować inna konfiguracja języka, strefy czasowej, formatu daty, kodowania znaków albo separatorów dziesiętnych. Warto odróżnić niezgodność środowisk od błędu samego programu. Czasami kod jest poprawny, lecz opiera się na założeniu, którego nie spełnia środowisko produkcyjne. Innym razem konfiguracja została zmieniona bez odtworzenia jej w dokumentacji. Porównanie obu miejsc powinno obejmować nie tylko nazwy zainstalowanych programów, ale również ich wersje, usługi działające w tle, zmienne środowiskowe, reguły dostępu, połączenia sieciowe, wolne miejsce na dysku i sposób wykonywania kopii zapasowych. Niezgodność środowisk testowych i produkcyjnych – typowe problemyJednym z typowych skutków jest błąd pojawiający się dopiero po uruchomieniu funkcji przez użytkownika. Może to być zamknięcie programu, brak możliwości zapisania dokumentu, nieprawidłowe wyświetlanie formularza, utrata połączenia albo komunikat o braku wymaganej biblioteki. Czasami problem jest mniej oczywisty i polega na błędnym wyniku obliczeń, pominięciu części danych lub niepełnym zapisie pliku. Takie przypadki są trudniejsze do wykrycia, ponieważ aplikacja pozornie działa. Różnice w wydajności mogą ujawnić się przy większej liczbie dokumentów, jednoczesnym korzystaniu z wielu funkcji albo podczas dłuższej pracy. Test wykonany na pustym dysku i świeżym profilu użytkownika nie musi pokazać trudności występujących na komputerze z dużą liczbą plików tymczasowych, ograniczoną przestrzenią i wieloma programami uruchamianymi przy starcie. Spadki wydajności mogą prowadzić do zawieszania się aplikacji, opóźnień w zapisie i wrażenia, że urządzenie reaguje losowo. Problemy mogą pojawić się po aktualizacji systemu lub sterownika. Nowa wersja może zmienić sposób komunikacji z urządzeniem, obsługę zabezpieczeń albo wymagania dotyczące bibliotek. Jeżeli aktualizacja została sprawdzona na jednym zestawie, a wdrożona na innym, niezgodność może zostać zauważona dopiero podczas normalnej pracy. Szczególnej uwagi wymagają programy korzystające z drukowania, skanowania, szyfrowania, kamer, kart pamięci, urządzeń USB i innych elementów zależnych od sterownika. Inny problem stanowią ustawienia bezpieczeństwa. Na środowisku testowym dostęp do katalogu, portu lub usługi może być otwarty, a na urządzeniu docelowym ograniczony. Zmiana poziomu ochrony, blokada makr, kontrola konta użytkownika lub filtr sieciowy może uniemożliwić wykonanie operacji, która wcześniej przebiegała prawidłowo. Nie należy wtedy pochopnie wyłączać zabezpieczeń. Najpierw powinno się ustalić, jaki dostęp jest rzeczywiście potrzebny i czy można ograniczyć go do konkretnego programu, użytkownika lub lokalizacji. Do częstych przyczyn należy także brak powtarzalności. Jeżeli nie zapisano dokładnej konfiguracji, trudno odtworzyć warunki, w których wystąpił błąd. Pomocne są zrzuty ustawień, informacje o wersjach, dzienniki zdarzeń, opis kolejnych czynności oraz wskazanie, czy problem występuje na jednym urządzeniu, czy na większej liczbie stanowisk. Pozwala to oddzielić usterkę lokalną od problemu wynikającego z niezgodności całego procesu wdrożeniowego. Niezgodność środowisk testowych i produkcyjnych – praktyczne wskazówkiPodstawą ograniczenia ryzyka jest przygotowanie listy elementów, które mogą wpływać na działanie rozwiązania. Powinno się uwzględnić system operacyjny, wersje programów, sterowniki, typ procesora, pamięć operacyjną, rodzaj dysku, rozdzielczość ekranu, urządzenia dodatkowe, ustawienia sieci oraz konta użytkowników. Nie każdy parametr musi być identyczny, lecz należy świadomie określić, które różnice są dopuszczalne. Sama nazwa programu lub model urządzenia nie wystarcza do pełnego porównania. Warto stosować identyczne albo możliwie zbliżone wersje kluczowych składników. Jeżeli aktualizacja jest potrzebna, najpierw powinno się przetestować ją w warunkach odpowiadających późniejszemu użyciu. Przydatne jest prowadzenie rejestru zmian, dzięki któremu można ustalić, kiedy pojawiła się rozbieżność. Dobrą praktyką jest także przygotowanie procedury powrotu do poprzedniej konfiguracji oraz wykonanie kopii ważnych danych przed zmianą programu, sterownika lub systemu. Testy powinny obejmować nie tylko scenariusz prawidłowy. Należy sprawdzić także brak uprawnień, duże pliki, nietypowe znaki, brak połączenia, niedostępne urządzenie, małą ilość wolnego miejsca i przerwanie operacji w trakcie zapisu. Jeżeli środowisko produkcyjne ma działać przez wiele godzin, warto obserwować zachowanie programu podczas dłuższej pracy. Przydatne jest porównanie czasu uruchamiania, otwierania dokumentów, zapisu i wykonywania operacji obciążających sprzęt. W przypadku pojedynczego komputera pomocne bywa utworzenie profilu testowego, sprawdzenie dzienników systemowych i wykonanie próby na tym samym urządzeniu, na którym pojawia się problem. Przeniesienie programu na inne stanowisko może ukryć przyczynę zamiast ją usunąć. Należy też zweryfikować, czy użytkownik korzysta z właściwego konta, czy wymagane usługi są uruchomione i czy program nie został zainstalowany w innej wersji niż ta używana podczas testów. Przydatne jest dokumentowanie wyniku w prosty sposób: opis warunków, wykonane czynności, oczekiwany rezultat, rezultat rzeczywisty i informacje o konfiguracji. Taki zapis ułatwia odtworzenie błędu oraz przekazanie sprawy do osoby zajmującej się diagnostyką. Jeżeli problem dotyczy sprzętu, trzeba dodatkowo sprawdzić temperatury, stan dysku, pamięć operacyjną, zasilanie i poprawność działania urządzeń peryferyjnych, ponieważ usterka sprzętowa może przypominać niezgodność oprogramowania. Kiedy zgłosić niezgodność środowisk testowych i produkcyjnych do serwisuZgłoszenie do serwisu jest uzasadnione, gdy aplikacja działała podczas testów, lecz po wdrożeniu regularnie się zawiesza, nie zapisuje danych, nie współpracuje z urządzeniem albo działa wyraźnie wolniej. Warto skorzystać z pomocy także wtedy, gdy nie można ustalić, czy przyczyną jest wersja systemu, sterownik, uszkodzenie dysku, pamięć operacyjna, konfiguracja użytkownika czy konflikt programów uruchamianych w tle. Im wcześniej zostaną zabezpieczone logi i ważne dane, tym łatwiejsze może być odtworzenie przebiegu problemu. Przed przekazaniem urządzenia dobrze jest przygotować opis sytuacji: co działało poprawnie w środowisku testowym, co zmieniło się po wdrożeniu, jaki komunikat jest wyświetlany i czy błąd można powtórzyć. Należy również wskazać nazwę używanego programu, moment wystąpienia problemu oraz podłączone urządzenia. Nie powinno się usuwać dzienników ani wykonywać przypadkowych zmian konfiguracyjnych, ponieważ może to utrudnić ustalenie źródła rozbieżności. W Warszawskim Pogotowiu Komputerowym 24/7 naprawy z reguły są realizowane do 3 dni roboczych, co może ułatwić szybkie przywrócenie zgodności środowiska używanego na co dzień. W ramach diagnostyki można porównać konfigurację, sprawdzić stan podzespołów, zweryfikować sterowniki i ustalić, czy problem wynika z różnic programowych, czy z usterki komputera. Po usunięciu przyczyny warto ponownie wykonać najważniejsze scenariusze testowe i zapisać konfigurację, aby podobna niezgodność nie została przeoczona przy kolejnej aktualizacji. |