Testowanie programu, debugowanie, obsluga bledow
ð Podstawa programowa: II.1Testowanie to proces sprawdzania, czy program dziala poprawnie i zgodnie ze specyfikacja. Jest to kluczowy etap tworzenia oprogramowania - nawet najlepsi programisci popelniaja bledy.
# Blad skladniowy:
if x > 5 # brak dwukropka!
print("Duze")
# Blad wykonania:
lista = [1, 2, 3]
print(lista[10]) # IndexError!
# Blad logiczny:
def srednia(a, b):
return a + b / 2 # powinno byc (a + b) / 2
print() w kluczowych miejscach:
def oblicz(dane):
print(f"DEBUG: dane = {dane}") # co wchodzi?
wynik = sum(dane) / len(dane)
print(f"DEBUG: wynik = {wynik}") # co wychodzi?
return wynik
Dla kazdej funkcji przygotuj przypadki testowe (test cases):
| Nr | Opis testu | Dane wejsciowe | Oczekiwany wynik | Rzeczywisty wynik | OK? |
|----|-------------------------|----------------|------------------|--------------------|-----|
| 1 | Srednia z 3 liczb | [4, 6, 8] | 6.0 | 6.0 | TAK |
| 2 | Srednia z 1 liczby | [5] | 5.0 | 5.0 | TAK |
| 3 | Pusta lista | [] | Komunikat bledu | ZeroDivisionError | NIE |
| 4 | Ujemne liczby | [-3, -7] | -5.0 | -5.0 | TAK |
def bezpieczna_srednia(lista):
"""Oblicza srednia z obsluga bledow."""
try:
if not lista:
raise ValueError("Lista nie moze byc pusta!")
return sum(lista) / len(lista)
except TypeError:
print("Blad: lista musi zawierac liczby!")
return None
except ValueError as e:
print(f"Blad: {e}")
return None
Przygotuj tabele z minimum 8 przypadkami testowymi dla swojego projektu. Uwzglednij dane typowe, brzegowe i bledne. Dla kazdego przypadku wpisz: opis, dane wejsciowe, oczekiwany wynik.
Uruchom program z kazdym przypadkiem testowym. Uzupelnij tabele o rzeczywiste wyniki i status (OK/BLAD). Dla kazdego bledu: zidentyfikuj przyczyne i napraw kod.
Dodaj do programu obsluge bledow (try/except) we wszystkich miejscach, gdzie moze wystapic blad: wczytywanie danych od uzytkownika, operacje na plikach, obliczenia. Program nie powinien sie "wywalac" - powinien wyswietlic czytelny komunikat.
Wymien sie kodem z kolega/kolezanka z klasy. Przejrzyj kod drugiej osoby i przygotuj recenzje: (a) co jest dobrze napisane, (b) jakie bledy znalazles, (c) co mozna poprawic (czytelnosc, wydajnosc, bezpieczenstwo). Przekaz recenzje autorowi.