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 |
