| Termin | Definicja |
|---|---|
| brak testów z danymi testowymi | Brak testów z danymi testowymi to zaniedbanie polegające na wykorzystaniu rzeczywistych danych zamiast bezpiecznych, fikcyjnych rekordów. Brak testów z danymi testowymi – na czym polega problemBrak testów z danymi testowymi oznacza sytuację, w której działanie programu, aplikacji, formularza, systemu operacyjnego albo urządzenia sprawdza się wyłącznie na rzeczywistych informacjach. Zamiast przygotować bezpieczny zestaw fikcyjnych rekordów, wykorzystuje się dane pochodzące od prawdziwych osób, klientów, pracowników lub użytkowników. Mogą to być między innymi imiona i nazwiska, adresy, numery telefonów, identyfikatory, treści zgłoszeń, pliki, zdjęcia, dane rozliczeniowe, konfiguracje urządzeń oraz historia operacji. Takie zaniedbanie nie musi od razu powodować widocznej awarii. Program może uruchamiać się prawidłowo, a podstawowe funkcje mogą działać bez zarzutu. Problem ujawnia się dopiero wtedy, gdy testowy proces zmieni rekord, wyśle wiadomość, usunie plik, wykona operację finansową albo udostępni informacje osobie, która nie powinna ich zobaczyć. W efekcie sprawdzanie rozwiązania staje się jednocześnie ingerencją w dane, które powinny być chronione i używane wyłącznie zgodnie z przeznaczeniem. Dane testowe powinny odzwierciedlać różne przypadki spotykane w praktyce, ale nie mogą prowadzić do identyfikacji rzeczywistych osób ani do wykonania niepożądanych operacji. Mogą składać się z fikcyjnych nazw, sztucznych adresów, neutralnych plików i kontrolowanych wartości. Ich zadaniem jest sprawdzenie zachowania rozwiązania, a nie odtwarzanie cudzej historii lub kopiowanie całej bazy produkcyjnej. Brak testów z danymi testowymi a środowisko pracy systemuWarto rozróżnić środowisko produkcyjne, czyli miejsce, w którym system obsługuje bieżące operacje, od środowiska testowego przeznaczonego do prób, zmian i diagnozowania błędów. Na środowisku produkcyjnym każda modyfikacja może mieć wpływ na osoby korzystające z usługi. W środowisku testowym można natomiast kontrolować przebieg operacji, przywracać wcześniejszy stan, powtarzać scenariusze i sprawdzać nietypowe przypadki bez narażania prawdziwych rekordów. Najprostszym rozwiązaniem jest przygotowanie danych syntetycznych, czyli takich, które powstały specjalnie na potrzeby testu. W przypadku formularza można utworzyć fikcyjne profile z różnymi długościami pól, znakami specjalnymi, pustymi wartościami i niepełnymi informacjami. W przypadku programu obsługującego dokumenty można użyć neutralnych plików o kontrolowanym rozmiarze i różnych formatach. Jeżeli sprawdzane są uprawnienia, należy utworzyć sztuczne konta o odmiennych rolach, zamiast logować się na konta używane przez prawdziwe osoby. Nie zawsze wystarcza samo skopiowanie bazy i usunięcie kilku kolumn. Dane mogą zawierać zależności między tabelami, fragmenty tekstu, nazwy plików, metadane, identyfikatory zapisane w logach oraz informacje ukryte w kopiach zapasowych. Nawet po częściowej anonimizacji możliwe bywa odtworzenie tożsamości na podstawie połączenia kilku pozornie niegroźnych elementów. Dlatego przygotowanie kopii do testów powinno obejmować analizę całego przepływu danych, a nie tylko zmianę widocznych wartości. Porównując oba podejścia, użycie danych rzeczywistych może wydawać się szybsze, ponieważ nie wymaga przygotowania osobnego zestawu. W praktyce utrudnia jednak ocenę wyniku. Błąd może wynikać z wyjątkowej historii konkretnego rekordu, a nie z działania samego programu. Dane fikcyjne są łatwiejsze do kontrolowania, porównywania i ponownego wykorzystania. Pozwalają również ustalić oczekiwany rezultat przed uruchomieniem testu. Brak testów z danymi testowymi i typowe skutkiJednym ze skutków jest przypadkowa zmiana lub utrata danych. Test usuwania może wykasować prawdziwy rekord, próba importu może nadpisać istniejące informacje, a test aktualizacji może zmienić dane kontaktowe. Czasem szkoda nie jest widoczna od razu, ponieważ dotyczy pojedynczego pola albo konkretnego załącznika. Późniejsze odtworzenie pierwotnej treści może okazać się trudne, zwłaszcza gdy nie istnieje sprawdzona kopia zapasowa. Drugim skutkiem jest niezamierzone wysłanie komunikatu. Formularz kontaktowy, moduł powiadomień, integracja z pocztą lub mechanizm przypomnień może potraktować test jak prawdziwe zdarzenie. Wiadomość może trafić do osoby, której nie dotyczy, zawierać fragmenty wewnętrznej korespondencji albo ujawnić, że określony rekord znajduje się w systemie. Z tego powodu funkcje wysyłkowe powinny być w testach wyłączone, przekierowane do bezpiecznej skrzynki albo zastąpione atrapą rejestrującą samo wywołanie. Kolejne ryzyko wiąże się z logami, zrzutami ekranu i plikami diagnostycznymi. Podczas analizy błędu dane mogą zostać zapisane w historii systemu, dołączone do zgłoszenia lub przesłane w ramach konsultacji. Nawet jeżeli główna aplikacja ma odpowiednie zabezpieczenia, dodatkowe kopie mogą pozostawać poza kontrolowanym obszarem. Należy więc sprawdzać nie tylko to, co wyświetla program, lecz także to, co trafia do logów, pamięci podręcznej, katalogów tymczasowych i raportów. Używanie rzeczywistych danych wpływa również na wiarygodność wyników. Jeżeli zestaw nie zawiera pustych pól, bardzo długich wartości, powtarzających się identyfikatorów, nietypowych znaków lub uszkodzonych plików, test może dać fałszywe poczucie bezpieczeństwa. Program przejdzie próbę na zwyczajnych rekordach, lecz zawiedzie przy rzadziej spotykanym przypadku. Dobrze przygotowane dane testowe nie ograniczają się więc do kilku przykładowych wierszy. Powinny obejmować scenariusze prawidłowe, graniczne, błędne i niepełne. Brak testów z danymi testowymi – praktyczne przygotowaniePrzygotowanie bezpiecznego zestawu można rozpocząć od spisania operacji, które mają zostać sprawdzone. Dla każdej operacji należy określić dane wejściowe, przewidywany rezultat, informacje zapisywane po drodze oraz sposób wycofania zmiany. Następnie warto utworzyć mały zestaw bazowy i rozszerzać go o przypadki graniczne. Takie podejście ułatwia znalezienie różnicy między błędem programu a błędem w samym scenariuszu testowym.
Przydatne jest oznaczenie danych testowych w sposób jednoznaczny, na przykład przez ustalony prefiks lub osobny identyfikator zestawu. Dzięki temu łatwiej odróżnić je od rekordów roboczych, wyszukać po zakończeniu testu i usunąć bez naruszania innych informacji. Należy także ustalić, kto może tworzyć, modyfikować i usuwać takie dane. Uprawnienia powinny odpowiadać rzeczywistym potrzebom, a dostęp do środowiska testowego nie powinien automatycznie otwierać dostępu do danych produkcyjnych. Jeżeli test wymaga użycia istniejącego przypadku, należy najpierw ograniczyć zakres danych, usunąć elementy umożliwiające identyfikację i sprawdzić, czy wynik nadal zachowuje wartość diagnostyczną. W wielu sytuacjach lepsze będzie odtworzenie samego problemu na fikcyjnym rekordzie. Dokumentowanie takiej decyzji pomaga później ustalić, skąd pochodziły dane i dlaczego wybrano określony sposób testowania. Kiedy zgłosić brak testów z danymi testowymi do serwisuWarto zgłosić problem, gdy na komputerze lub laptopie pozostają pliki z danymi wykorzystanymi podczas prób, gdy aplikacja wykonuje rzeczywiste operacje mimo trybu testowego albo gdy nie wiadomo, jakie informacje zostały zapisane w logach i kopiach tymczasowych. Wskazaniem do konsultacji jest również sytuacja, w której system działa niestabilnie po imporcie, aktualizacji, przywracaniu kopii lub zmianie konfiguracji. Przed przekazaniem urządzenia nie powinno się samodzielnie usuwać przypadkowych katalogów, ponieważ może to zniszczyć ślady potrzebne do ustalenia przebiegu zdarzeń. W Warszawie ocenę takiego problemu może przeprowadzić Warszawskie Pogotowie Komputerowe 24/7. W ramach zgłoszenia można opisać, jakie testy wykonano, czy użyto danych rzeczywistych, jakie pliki lub aplikacje były zaangażowane oraz kiedy pojawiły się nieprawidłowości. Im dokładniejszy jest opis kolejnych czynności, tym łatwiej odtworzyć zdarzenie, sprawdzić pozostałości danych i ustalić, czy problem dotyczy aplikacji, systemu plików, konfiguracji, kopii zapasowych lub sposobu prowadzenia testów. Po zakończeniu diagnozy warto ustalić prostą procedurę na przyszłość: oddzielne środowisko, fikcyjne rekordy, wyłączone akcje zewnętrzne, kontrolowane logowanie oraz potwierdzenie usunięcia danych tymczasowych. Brak testów z danymi testowymi nie jest wyłącznie niedogodnością organizacyjną. Może prowadzić do błędnych wniosków, utraty informacji i ujawnienia danych, dlatego powinien być traktowany jako problem wymagający uporządkowania procesu, konfiguracji oraz zasad dostępu. |