Zamieniamy „czasem się zatrzymuje” w problem, który można zbadać.
Na komputerze dewelopera nie da się odtworzyć błędu. Awaria występuje dopiero po długiej pracy. Nie wiadomo, czy przyczyna leży w aplikacji, czy w urządzeniu. W takich sytuacjach nie poprawiamy kolejnych miejsc na podstawie samych domysłów, lecz zwiększamy ilość informacji, które można zaobserwować, i zawężamy krąg możliwych przyczyn.
Objawy, z którymi mogą Państwo zwrócić się do nas o konsultację
- Awaria lub zatrzymanie pojawia się po kilku godzinach, a nawet tygodniach pracy ciągłej.
- Komunikacja z kamerą przemysłową lub urządzeniami peryferyjnymi sporadycznie się urywa.
- Liczba zajętej pamięci, uchwytów lub wątków stale rośnie.
- Aplikacja działa niestabilnie tylko na wybranych komputerach lub w określonych warunkach eksploatacji.
- Logi są zapisywane, ale nie pozwalają prześledzić przebiegu zdarzeń prowadzących do awarii.
Jak prowadzimy diagnozę
1. Porządkujemy okoliczności i zakres wpływu
Ustalamy objawy, częstotliwość występowania, środowisko pracy oraz czynności lub zmiany poprzedzające awarię. Hipotezy dzielimy według tego, czy przyczyny należy szukać w samej aplikacji, w komunikacji, w urządzeniu czy w systemie operacyjnym.
2. Obserwujemy potrzebne informacje
Na podstawie m.in. logów, pakietów, wyjątków, zużycia pamięci i liczby uchwytów wybieramy dane potrzebne do sprawdzenia hipotez. Jeśli informacji brakuje, dodajemy punkty obserwacji, a sposób zbierania danych dobieramy tak, aby nie obciążać działania systemu.
3. Weryfikujemy możliwe przyczyny
Zawężamy warunki występowania błędu i sprawdzamy hipotezy w testach odtwarzających oraz porównawczych. Oddzielamy fakty, które udało się potwierdzić, od tego, co pozostaje przypuszczeniem, i na tej podstawie wskazujemy kierunek modyfikacji lub dalszej diagnozy.
Wyniki diagnozy jako podstawa kolejnych działań
Jeśli przyczyna zostanie znaleziona, porządkujemy kierunek modyfikacji i sposób weryfikacji ich skutku. Jeśli nie uda się jej ustalić w okresie diagnozy, wskazujemy czynniki, które można wykluczyć, pozostałe możliwości oraz informacje potrzebne w następnym kroku. Format i zakres raportu uzgadniamy przy przyjęciu zlecenia.
W razie potrzeby przygotowujemy też logi, które pozwalają prześledzić przebieg poszczególnych operacji, zapisy umożliwiające sprawdzenie przydziału i zwolnienia zasobów oraz testy ścieżek błędów. Naszym celem jest nie tylko doraźne przywrócenie działania, ale też stan, w którym przy kolejnym wystąpieniu tych samych objawów można szybko podjąć decyzję.
Co warto podać podczas konsultacji, w zakresie, w jakim jest to znane
Prosimy o opis objawów, częstotliwości ich występowania, używanej wersji systemu Windows i aplikacji oraz dotychczas podjętych działań. Informacja o tym, czy dostępne są logi i kod źródłowy, ułatwi nam zaplanowanie sposobu diagnozy. Do pierwszego zapytania nie trzeba dołączać informacji poufnych ani danych uwierzytelniających.
Jeśli potrzebne są również bieżące poprawki lub utrzymanie, zaproponujemy zakres prac łączący diagnozę z usługą Modyfikacje i utrzymanie istniejącego oprogramowania dla systemu Windows.