| Termin | Definicja |
|---|---|
| Zmienione zachowania funkcji | Zmienione zachowania funkcji między wersjami silnika mogą wymagać przetestowania istniejących zapytań po migracji. Na czym polega zmiana zachowania funkcjiZmienione zachowanie funkcji oznacza sytuację, w której ta sama funkcja, metoda albo konstrukcja języka po aktualizacji programu lub silnika zwraca inny wynik, zgłasza inny błąd albo wykonuje operację według zmienionych reguł. Sama nazwa funkcji może pozostać bez zmian, dlatego problem nie zawsze jest widoczny podczas przeglądania kodu. Różnica może dotyczyć także kolejności obliczeń, sposobu interpretacji wartości pustych, konwersji typów danych, zaokrąglania liczb, porównywania tekstu lub obsługi daty i czasu. W przypadku zapytań do bazy danych zmiana może ujawnić się po migracji na nowszą wersję silnika. Funkcja wcześniej akceptująca tekst jako argument liczbowy może zacząć odrzucać taki argument, a wyrażenie korzystające z niejawnej konwersji może zwrócić inny rezultat. Podobny efekt występuje, gdy zmienia się interpretacja wartości Obszary, w których najczęściej pojawia się niezgodnośćPodczas porównywania wersji należy sprawdzić funkcje operujące na tekstach, liczbach oraz datach. Różnice mogą wynikać z odmiennego traktowania wielkości liter, znaków diakrytycznych i kolejności sortowania. Warto również zweryfikować długość wyniku po konkatenacji, zachowanie dla pustego tekstu oraz reakcję na znaki spoza podstawowego zestawu znaków. W obliczeniach numerycznych trzeba porównać typ danych wyniku, zakres wartości, sposób konwersji oraz reguły zaokrąglania. Osobną grupę stanowią funkcje zależne od ustawień środowiska. Wynik operacji na dacie może zależeć od strefy czasowej, ustawionego formatu daty, kalendarza albo sposobu przejścia między czasem standardowym i letnim. Funkcja korzystająca z bieżącego czasu nie musi zwracać identycznej wartości przy każdym uruchomieniu, dlatego test powinien używać ustalonego wejścia lub kontrolowanego zegara. Przy zapytaniach należy także sprawdzić wartości graniczne: pusty zbiór, pojedynczy rekord, powtarzające się dane, wartość ujemną, zero, bardzo długi tekst i brak argumentu. Testowanie zapytań po aktualizacji silnikaBezpieczna weryfikacja polega na przygotowaniu zestawu przypadków testowych przed migracją i uruchomieniu go ponownie po zmianie wersji. Każdy przypadek powinien określać dane wejściowe, oczekiwany typ wyniku, oczekiwaną wartość oraz dopuszczalne wyjątki. Nie wystarczy sprawdzić, czy zapytanie kończy się bez błędu. Trzeba porównać również liczbę rekordów, wartości kolumn obliczanych, kolejność wyników, wartości Przydatne jest wykonanie zapytań na kopii reprezentatywnego zbioru danych i zapisanie wyników obu wersji do plików lub tabel porównawczych. Należy odróżnić zmianę oczekiwaną od regresji. Jeżeli nowsza wersja odrzuca niejednoznaczną konwersję, poprawą może być jawne użycie właściwego typu danych, ale wymaga to sprawdzenia wszystkich miejsc, w których funkcja była wywoływana. Jeżeli zmiana wyniku nie wynika z dokumentacji producenta, należy przeanalizować plan wykonania, ustawienia zgodności, typy kolumn i wartości wejściowe, zamiast korygować dane przypadkowymi instrukcjami. Weryfikacja działania na laptopie i komputerze PCNa komputerze użytkowym diagnostyka takiego problemu obejmuje ustalenie wersji programu, silnika lub biblioteki, od której zależy funkcja, oraz odtworzenie błędu na konkretnych danych. Warto sprawdzić, czy problem występuje po aktualizacji, czy dotyczy tylko jednego pliku, konta użytkownika albo konfiguracji regionalnej. Rejestr błędu powinien zawierać nazwę funkcji, argumenty, komunikat, moment wystąpienia i wynik uzyskany przed zmianą. Takie informacje pozwalają rozdzielić zmianę zachowania funkcji od uszkodzenia pliku, błędnej konfiguracji albo problemu z nośnikiem danych. Warszawskie Pogotowie Komputerowe zajmuje się profesjonalną naprawą laptopów, komputerów stacjonarnych PC i ich podzespołów, a w ramach diagnostyki można ustalić, czy nieprawidłowe działanie programu wynika z aktualizacji, konfiguracji systemu lub problemu sprzętowego. Przy wdrażaniu poprawki należy zachować kopię działającej konfiguracji, opisać zmienione ustawienia i ponownie wykonać testy na przypadkach granicznych. Dopiero zgodny wynik całego zestawu pozwala uznać, że migracja nie zmieniła istotnie przepływu danych. |