Tomasz Gądek Home Page

tgadek.bitbucket.io

Testowanie i Jakość Oprogramowania

Laboratorium 3: TDD.

TDD

TDD, czyli Test-Driven Development jest to technika tworzenia oprogramowania, w której najpierw tworzone są testy dla nowej funkcjonalności / wymagania, a dopiero później implementowana jest sama funkcjonalność, aby testy przeszły pomyślnie. Proces ten składa się z 3 głównych kroków.

  • RED: Napisz test (testy nie przechodzą, brak implementacji funkcjonalności).
  • GREEN: Dodaj minimalną implementację, aby testy się powiodły.
  • REFACTOR: Zrefaktoryzuj kod do najprostszej implementacji, aby spełniał oczekiwane standardy (testy przechodzą).

Technika została stworzona przez Kenta Becka.

tdd

Poniższy film prezentuje technikę TDD w praktyce. Przepisz kod, dopisz brakujące testy (dodawanie wielu zadań oraz usuwanie zadania). Zaktualizuj implementację klasy TaskList zgodnie z poznaną techniką.

Powyższy przykład demonstruje użycie TDD (Test-Driven Development) w Pythonie. Zaczynamy od napisania testu (RED), który opisuje oczekiwane zachowanie kodu, który jeszcze nie istnieje. Następnie piszemy minimalną implementację (GREEN), która sprawia, że test przechodzi. Na koniec refaktoryzujemy kod (REFACTOR), aby poprawić jego jakość, nie zmieniając jego funkcjonalności.

Konwencje nazewnicze

Jasne i opisowe nazwy

  • Nazwy testów powinny dokładnie opisywać, co testują.
  • Używaj konwencji test _ nazwa _ funkcji _ lub _ metody _ should _ opis _ zachowania.

Używaj słów kluczowych

  • Słowa takie jak should, when, given, then pomagają w zrozumieniu kontekstu testu.

Unikaj ogólników

  • Unikaj nazw typu test1, test2, które nic nie mówią o testowanym zachowaniu.

Konsekwencja

  • Utrzymuj spójność w nazewnictwie testów w całym projekcie.

System zarządzania studentami AT

Twoim zadaniem będzie implementacja programu zarządzającego studentami przy użyciu techniki TDD (ang. Test-Driven Development). Aplikacja powinna umożliwiać dodawanie, aktualizowanie, usuwanie studentów, wprowadzanie ocen oraz obliczanie średniej ocen z przedmiotu.

student_management.py

Wiem, że nic nie wiem

~Sokrates