Debugowanie

Rzadko udaje się napisać za pierwszym razem kod całkowicie pozbawiony błędów. Ryzyko wystąpienia błędów zmniejsza dbałość o wysoką jakość kodu, jednak nie da się ich całkowicie uniknąć, dlatego należy aktywnie ich szukać. Błędy w kodzie są czasem określane angielskim terminem bug. Proces sprawdzania poprawności kodu nazywamy testowaniem, natomiast proces ustalania przyczyny błędu i jego usuwania debugowaniem.

Typy błędów

Rozróżniamy błędy składniowe (niepoprawny zapis programu – programu nie można uruchomić) oraz semantyczne (program wykonuje się, ale nie działa zgodnie z oczekiwaniami). Szczególnym przypadkiem błędu semantycznego jest zapętlenie (program nigdy nie kończy działania, np. dlatego, że warunek pętli nigdy nie przestaje być spełniony).

Przykłady błędów

Kilka przykładów częstych błędów semantycznych:

  • zamiana kolejności poleceń (np. kolejności skręcania i poruszania się do przodu)
  • błędna liczba powtórzeń pętli
  • błędne określenie ciała pętli (np. brak wcięcia polecenia, które ma być powtarzane)
  • zamiana pętli i instrukcji warunkowej (dopóki zamiast jeśli)
  • zamiana nierówności ostrej i nieostrej (x < y zamiast x ≤ y)
  • zamiana operatora logicznego (P i Q zamiast P lub Q)
  • zamiana kolejności porównywanych zmiennych (x < y zamiast y < x)
  • zamiana zmiennej przypisywanej i wyrażenia (x ← y zamiast y ← x)
  • zamiana zmiennych (użycie niewłaściwej zmiennej; ryzyko szczególnie duże przy nieczytelnym nazewnictwie)
  • użycie niewłaściwego typu zmiennej (łańcuch znaków “3” zamiast liczby 3)
  • błędna wartość parametru (np. nieprawidłowa liczba stopni, o jakie należy skręcić),
  • zamiana argumentów podczas wywołania funkcji (f(a, b) zamiast f(b, a))
  • zamiana wypisywania i zwracania wartości z funkcji (wypisz zamiast zwróć)

Znajomość typowych błędów pozwala podczas debugowania skupić uwagę na miejscach, w których może ukrywać się błąd.

Proces debugowania programu

Jeżeli program nie daje poprawnych wyników, uruchamiamy go krok po kroku i obserwujemy, w którym momencie odbiega od naszych oczekiwań. Jeżeli program nie tworzy wyjścia graficznego, możemy na bieżąco wypisywać wartości zmiennych albo użyć narzędzia, które umożliwia wykonywanie programu krok po kroku i obserwowanie wartości zmiennych (tzw. debugger). Fragment programu, w którym jego działanie odbiega od naszych oczekiwań, próbujemy poprawić.

Wskazówki dotyczące debugowania programów

  • Po każdej poprawce warto ponownie uruchomić program, aby sprawdzić efekt wprowadzonej zmiany.
  • Jeśli nie jest jasne, jak dokładnie poprawić kod (np. o ile stopni skręcić), pomocne może być narysowanie sobie obrazka.
  • Jeśli nie wiadomo, dlaczego w pewnym miejscu program zachowuje się w określony sposób, lepiej najpierw to zrozumieć, zanim zaczniemy wprowadzać zmiany.
  • Jeśli nie mamy pewności, co robi jakaś użyta konstrukcja języka (polecenie, operator), należy sprawdzić jej działanie w internecie i zweryfikować swoje rozumienie, wykonując prosty kod z użyciem danej konstrukcji.
  • Jeśli kod jest niepotrzebnie skomplikowany lub używa nieczytelnych nazw zmiennych, po usunięciu tych problemów (np. po zmianie nazw zmiennych) błąd może stać się oczywisty.
  • Podział programu na funkcje ułatwia szukanie błędów, ponieważ możemy testować poszczególne funkcje oddzielnie.

Decydowanie

Szybkie ćwiczenie polegające na wybraniu prawidłowej odpowiedzi spośród dwóch propozycji.


Debugowanie  
Pokaż notatkę do tematu


Grafika żółwia

Rysowanie obrazków grafiką żółwia przy użyciu programowania blokowego.


Debugowanie rysunków

W tym zestawie mamy przygotowane programy, w których jednak wkradł się błąd. Spróbuj go znaleźć i naprawić.



ProgMalowanie

Tworzenie obrazków poprzez łączenie podstawowych kształtów (np. koło, kwadrat), wykorzystanie programowania blokowego.


Debugowanie rysunków

Ważną częścią programowania jest debugowanie, czyli wyszukiwanie błędów i ich naprawianie. W tym zestawie możesz przećwiczyć tę umiejętność: masz gotowy program, który wymaga dopracowania.



NAPISZ DO NAS

Twoja wiadomość została wysłana. Dziękujemy.

Napisz do nas

Jesteś w kropce?

Zanim zadasz pytanie, zapoznaj się z instrukcjami:

Prosimy o nieprzesyłanie próśb o gotowe rozwiązania. Jeśli zgłaszasz błąd, dokładnie opisz, czego dotyczy, i dołącz zrzut ekranu.

Wybierz temat

Wiadomość Zgłoszenie błędu Treści Sterowanie Logowanie Licencja