Testowanie, debugowanie, przeglad kodu, dokumentacja
ð Podstawa programowa: II.1Testowanie to kluczowy etap tworzenia oprogramowania. Nawet doswiadczeni programisci popelniaja bledy. Testowanie pozwala je wykryc i naprawic zanim program trafi do uzytkownika.
# plik: test_quiz.py
import unittest
from quiz import sprawdz_odpowiedz, wczytaj_pytania
class TestQuiz(unittest.TestCase):
def test_poprawna_odpowiedz(self):
pytanie = {"poprawna": "A"}
self.assertTrue(sprawdz_odpowiedz(pytanie, "A"))
self.assertTrue(sprawdz_odpowiedz(pytanie, "a"))
def test_bledna_odpowiedz(self):
pytanie = {"poprawna": "A"}
self.assertFalse(sprawdz_odpowiedz(pytanie, "B"))
self.assertFalse(sprawdz_odpowiedz(pytanie, "C"))
def test_wczytaj_pytania_pusty_plik(self):
# Test z nieistniejacym plikiem
wynik = wczytaj_pytania("nieistniejacy.csv")
self.assertEqual(wynik, [])
def test_wczytaj_pytania_poprawne(self):
# Test z poprawnym plikiem
wynik = wczytaj_pytania("pytania_test.csv")
self.assertIsInstance(wynik, list)
self.assertGreater(len(wynik), 0)
if __name__ == "__main__":
unittest.main()
Najczestsze techniki debugowania:
print() w kluczowych miejscach kodu# SyntaxError - blad skladni
print("Hello" # brakuje nawiasu zamykajacego
# NameError - niezdefiniowana zmienna
print(zmiena) # literowka w nazwie zmiennej
# TypeError - zly typ danych
"tekst" + 5 # nie mozna dodac stringa i inta
# IndexError - indeks poza zakresem
lista = [1, 2, 3]
print(lista[5]) # indeks 5 nie istnieje
# FileNotFoundError - brak pliku
open("nieistniejacy.txt") # plik nie istnieje
# ZeroDivisionError - dzielenie przez zero
wynik = 10 / 0
Dobra dokumentacja zawiera:
"""
QUIZ EDUKACYJNY Z GEOGRAFII
===========================
Autor: Jan Kowalski
Data: 2026-02-17
Wersja: 1.0
OPIS:
Program quizu wielokrotnego wyboru z pytan z geografii.
Pytania wczytywane z pliku CSV.
WYMAGANIA:
- Python 3.8+
- Plik pytania.csv w tym samym folderze
URUCHOMIENIE:
python quiz.py
STRUKTURA PLIKU PYTAN (pytania.csv):
pytanie;odpA;odpB;odpC;odpD;poprawna_litera
Stolica Polski?;Krakow;Warszawa;Gdansk;Poznan;B
"""
Przygotuj liste 10 scenariuszy testowych dla swojego projektu. Dla kazdego scenariusza okresl: dane wejsciowe, oczekiwany wynik, faktyczny wynik, status (OK/BLAD). Przetestuj swoj program wedlug tej listy.
Przetestuj swoj program dla wartosci brzegowych: puste dane, bardzo dlugie ciagi znakow, liczby ujemne, znaki specjalne. Napraw wszystkie znalezione bledy.
Wymien sie kodem z kolega/kolezanka. Przejrzyj otrzymany kod pod katem: czytelnosci, nazewnictwa zmiennych, obslugi bledow, komentarzy. Napisz 5 uwag/sugestii poprawek.
Napisz pelna dokumentacje swojego projektu: opis, instrukcje uruchomienia i uzytkowania, opis kazdej funkcji (parametry, zwracana wartosc), znane ograniczenia. Dodaj docstringi do kazdej funkcji w kodzie.