Czas trwania
2-3 dni
Abstrakt
Szkolenie poświęcone jest zagadnieniu tworzenia testowalnego oprogramowania ze szczególnym uwzględnieniem Test Driven Development. Podczas szkolenia zostaną zaprezentowane różne techniki testowania oprogramowania: testy jednostkowe, integracyjne, automatyczne jak i akceptacyjne. Zostanie zaprezentowana przykładowa architektura wraz z zestawem testów przecinających wszystkie warstwy.
Szkolenie jest prowadzone z użyciem języka C#, choć wszystkie koncepcje są łatwo przenośne na inne języki i platformy. Jeżeli uczestnik zna komplementarne narzędzie może bez problemu uczestniczyć w szkoleniu i bardzo dużo z niego wynieść.
Zagadnienia
Co i jak testować? |
Testy jednostkowe |
Testy integracyjne |
Testy akceptacyjne |
Testy automatyczne |
Kod wysokiej jakości |
Zasady GRASP |
Zasady SOLID |
Wzorce projektowe, a testowalność systemów |
Testy jednostkowe |
NUnit i MsTest |
Narzędzia do testowania jednostkowego i nie tylko |
Niekonwencjonalne zastosowania NUnita i MsTestu |
Testowanie wydajnościowe |
Prototypowanie API |
NSubstitute |
Narzędzie do mockowania zależności |
Co mockować i kiedy mockować? |
Pokrycie kodu |
Co może nam powiedzieć wskaźnik pokrycia kodu? |
Test-Driven Development |
Metodyka podejścia |
Pisz test |
Cechy dobrych testów |
Strategie odkrywania testów |
Weryfikacja testów |
Dane testowe |
Częste problemy i rozwiązania |
Twórz kod |
Stwórz projekt |
Refaktoryzacja |
Techniki refaktoryzacji |
Wzorce i antywzorce |
Kiedy warto używać? |
Testy integracyjne |
Testy bazodanowe |
Baza danych, a stan |
Testy mapowania NHibernate |
Testy automatyczne |
Selenium |
Testowanie klikalne interfejsu webowego |
Testy akceptacyjne |
Podejście Behavior-driven development |
Pisanie scenariuszy testowych |
Mapowanie scenariuszy tekstowych na testy jednostkowe |
SpecFlow |
Narzędzie wspierające BDD |
Przykład testowalnej architektury aplikacji biznesowych |
Techniczne wzorce domeny biznesowej |
Encje, ValueObject, Aggregate, Service, Factory, Repository |
Aplikacja sterowana zdarzeniami – DomainEvents |
Testowanie zdarzeń |
Warstwy aplikacji, a testy |
Techniki zmniejszania couplingu |
Wzorce i techniki lokalizacja komponentów |
Dependency Injection |
EventBroker |
Programowanie aspektowe |
Przykłady testów przez przekrój całej architektury |