Testowanie TDD

Testowanie TDD to podejście w tworzeniu oprogramowania, w którym testy są pisane przed implementacją funkcjonalności. Proces ten polega na cyklicznym pisaniu testu, implementacji kodu oraz refaktoryzacji. Metoda ta skupia się na zapewnieniu, że kod spełnia określone wymagania poprzez ciągłe sprawdzanie jego poprawności za pomocą testów.

Testowanie TDD to podejście do tworzenia oprogramowania, w którym testy powstają przed implementacją funkcjonalności. Bywa łączone z automatyzacją testów, projektowaniem modułowego kodu oraz weryfikacją logiki aplikacji.

Testy TDD i jednostkowe

Testowanie TDD opiera się na szybkim sprawdzaniu małych fragmentów kodu po każdej zmianie.

  • Testy uruchamiane w TDD powinny wykonywać się w czasie krótszym niż sekunda, aby szybko dostarczać informacji zwrotnej.
  • Testy jednostkowe nie mogą korzystać z operacji wejścia-wyjścia, takich jak dostęp do plików, sieci czy bazy danych.

Testy BDD

Testy BDD opisują zachowanie aplikacji z perspektywy jej działania i wymagań biznesowych.

  • Mogą służyć jako dokumentacja działania aplikacji.
  • Mogą tworzyć listę zmian wprowadzonych w aplikacji.
  • Pomagają zweryfikować prawidłowość logiki biznesowej.

Automatyzacja testowania

Automatyzacja testowania pozwala szybciej sprawdzać zachowanie aplikacji po wprowadzonych zmianach.

  • Testy automatyczne mogą pomóc w przepisaniu mikroserwisu, ponieważ ułatwiają kontrolowanie, czy jego dotychczasowe zachowanie pozostaje zachowane.

Modułowość i refaktoryzacja

Modułowe podejście w TDD porządkuje rozwój oprogramowania i ułatwia bezpieczne wprowadzanie zmian.

  • Dodanie nowej funkcjonalności jako osobnego modułu może zmniejszyć ryzyko regresji.
  • Podział funkcjonalności na osobne moduły może również pomóc zmniejszyć obciążenie poznawcze podczas pracy nad kodem.

Diagnostyka aplikacji

Diagnostyka aplikacji pomaga szybciej rozpoznawać błędy i ustalać ich przyczyny, zwłaszcza gdy pojawiają się w środowisku produkcyjnym.

  • Logi aplikacji mogą ułatwiać rozwiązywanie problemów na produkcji.
  • W kodzie asynchronicznym Promise.all może prowadzić do wystąpienia Unhandled Promise Rejection.

Twierdzenia w tym opracowaniu