Opis
Coraz więcej profesjonalnych środowisk produkcyjnych opiera się na oprogramowaniu. Ewentualne błędy w pracy kodu mogą prowadzić do poważnych konsekwencji - dlatego od rozwiązań informatycznych wymaga się solidności i poprawności. Równocześnie oczekuje się wydajnego działania, skalowalności i podatności na modyfikacje, a także możliwości łatwego utrzymania kodu. Aplikacje utworzone zgodnie z paradygmatem TDD są w większym stopniu testowalne i zapewniają wysoki poziom poprawnej, stabilnej pracy. Sprawia to, że coraz więcej zespołów programistycznych skłania się ku TDD, mimo że zautomatyzowane testowanie bywa czasochłonne, pracochłonne i dość trudne w implementacji.
To książka przeznaczona dla tych, którzy chcą dogłębnie zrozumieć istotę TDD. Omówiono tu wszystkie aspekty TDD, włączając w to podstawy, dzięki którym średnio zaawansowany programista komfortowo rozpocznie budowę aplikacji zgodnie z tym paradygmatem. Przedstawiono zasady definiowania i testowania granic, a także pojęcie abstrahowania kodu zewnętrznego. W książce pojawiają się też - wprowadzane stopniowo - bardziej zaawansowane koncepcje, takie jak szpiedzy, imitacje i fałszywki. Pokazano w niej, w jaki sposób za pomocą TDD można przekształcić wymagania i historie użytkownika w funkcjonującą aplikację. Sporo miejsca poświęcono pisaniu różnych rodzajów testów, również integracyjnych. Poszczególne koncepcje zostały zilustrowane praktycznymi fragmentami kodu napisanego w C# i JavaScripcie.
W tej książce między innymi:
koncepcje programowania sterowanego testami i przygotowanie środowiska do pracy
różne podejścia do budowania aplikacji i sterowania testami
poprawa elastyczności aplikacji i jej podatności na przyszłe modyfikacje
TDD w warunkach zmieniających się wymagań
rozwiązywanie problemów z kodem zastanym
TDD: tak pracują najlepsi programiści!
O autorach
John Callaway jest programistą z tytułem Microsoft MVP. Specjalizuje się w technologiach WWW. Znakomicie zna praktycznie wszystkie ważne technologie, od PHP po C#, od ReactJS po SignalR. Ceni czysty kod i profesjonalizm. Chętnie dzieli się wiedzą.
Clayton Hunt jest profesjonalnym programistą. Zajmuje się głównie programowaniem dla internetu w językach JavaScript i C#. Jest sygnatariuszem manifestów głoszących idee agile i software craftsmanship.