Zaawansowane techniki obiektowe
Ewolucja obiektów czyli Programowanie Sterowane …Driven TDD BDD RDD ATDD DDD EVOlucja
TDD Testy Testy przed kodem Red-Green-Refactor Test jednostkowy Czy jednostkowy oznacza jedna klase ? Jak bardzo jednostkowy musi byc test ?
BDD Poprawnie robione TDD ? Piszemy testy czy może specyfikujemy zachowanie ? Wartość biznesowa - co to znaczy użyteczny test? Test powinien wyrażać zachowanie – co to znaczy zrozumiały test ? Czy wystarczy zrozumiały tytuł?
BDD - kierunki Zachowania na poziomie kodu - testy jednostkowe - MSPEC Zachowania na poziomie systemu - testy end to end / akceptacyjne - cucomber
ATDD Acceptance Test Driven Jak opisać i sprawdzić zachowanie systemu? Stan bazy Interakcje z GUI Jak wyrazić testy dla biznesu?
Baza Stan bazy sie zmienia …. Niedotykalne/odtwarzane dane testowe Przeładowanie bazy przed każdym testem Przeładowanie bazy przed testami Testy z robackowaną transakcją Testy samo kompensujące “Inteligentne” testy dostosowujące się do stanu bazy
GUI Wrażliwość na zminy wyglądu, rodzaj przeglądarki itd Selenium + page objects Sikuli ? A może troche pooszukiwać na poziomie API.
Obszar pomiędzy czyli kompromis … czyli testy integracyjne
Cucomber - scenariusz
Cucomber – podstawowe definicje
Cucomber – test nie przechodzi
Cucomber – troche wiecej kodu
Cucomber – i test przechodzi
Continuous Continuous integration Continuous delivery Na podst. WIKIPEDIA
Contineous integration Budowa – automatyzacja I powtarzalnośc budowy testów – w środowisku deweloperskim, na serwerze buildów, na UAT Depoument – uzgodnienia z infrastructure team testy – automatyzacja testów integracyjnych I akceptacyjnych konfiguracje – wersjonowanie, aplikowanie – co z pakietami instalacyjnymi? Infrastruktura - provisioning, instalacja systemów, konfiguracja I wersjownowanie
Narzędzia Mspec Spec Flow Configatron Team city