Poznańska grupa .Net spotkanie VI - Test Driven Development
-
Upload
bartlomiejszafko -
Category
Technology
-
view
2.207 -
download
2
Transcript of Poznańska grupa .Net spotkanie VI - Test Driven Development
Bartłomiej Szafko
Be Driven!Be Driven!
Wymagana dyscyplina Szersze spojrzenie na
programowanie Umiejętność zastosowania się do
zaleceń
Test Driven!Test Driven!
Testy Kodowanie Uruchamianie
testów Naprawianie kodu Uruchamianie
testów(znowu) Refaktoryzacja
Za Asutosh Nilkanth http://www.nilkanth.com
TDD jest AGILETDD jest AGILE
AGILE: grupa metodyk projektowych eXtremeProgramming: iteracje +
TESTOWANIE Szybko dostarczamy działające
oprogramowanie Klient może sobie podziałać na
prawie gotowej aplikacji Silne nastawienie na zmianę
http://www.extremeprogramming.org
TestowanieTestowanie Przecież sprawdzam mój kod! Rodzaje testów
Unit Integration(moduły) Functional(według specyfikacji, user
story) System( wymagania)
System integration ( współpraca z innymi aplikacjami)
Acceptance – akceptacji: Alfa + Beta
Testy dokumentują kod
Testowanie – cd.Testowanie – cd.
To, że przechodzą testy, nie oznacza, że nie ma błędów
Im więcej błędów znajdziesz – tym więcej ich jest (nieodkrytych?)
Nie wszystkie błędy naprawiamy ???
Unit TestingUnit Testing
Testowanie małych kawałków kodu - unitów
Unit: Procedura, funkcja ( w językach
proceduralnych) Metoda
Zasady budowania testówZasady budowania testów
Zostajemy w obrębie procesu i hosta Nie testujemy zapisywanie/pobierania z
bazy danych Problem: taki sam stan bazy przed testami Problem: zewnętrzna zależność serwer SQL
Nie testujemy wywołań web service, ani niczego sieciowego
Pojedyncze sprawdzenie wyniku(Assert), jeśli więcej rozbijamy test
Czasem osobny test dla każdej metody Testy na wyjątki na końcu
NUNIT(www.nunit.org)NUNIT(www.nunit.org)
Atrybuty: TestFixture – klasa Test – metoda – właściwy test + Asserty
ExpectedException SetUp – metoda – stan na start TearDown – metoda – przywrócenie
stanu orginalego Assert – sprawdzanie wartości DEMO
Mock, fake Mock, fake
Oszukane implementacje interfejsów Pozwala dodać listę metoda – wynik;
property – wynik; Pozwalają ominąć kawałki sięgające na
zewnątrz (np. baza danych, web service) Nmock ( http://www.nmock.org) Pozwala na wielokrotne wywołania
metod DEMO
Code coverage – pokrycie Code coverage – pokrycie kodukodu Chcemy, żeby nasze testy pokrywały
100% kodu Wszystkie rozgałęzienia:
If, case, exceptions, catch Pozwala stwierdzić ile i _JAKI_ kod nie
jest testowany NCover (http://www.ncover.org/),
niestety płatny
Testowanie UI - WinformsTestowanie UI - Winforms
NUnitForms (http://nunitforms.sourceforge.net/)
TestRecoder Problem: okna modalne, własne
kontrolki DEMO
Testowanie UI – ASP .NETTestowanie UI – ASP .NET
WatiN (http://watin.sourceforge.net/) WatiN TestRecoder WatiN nadaje się do stress testów WADY:
Wolno działa Zmiany w .aspx mogą uniemożliwić
testowanie VSTS ma dobre narzędzia do testowania
Web: Symulowanie różnych rozkładów obciążeń
DEMO
Ciekawe narzędziaCiekawe narzędzia
Wtyczka do VS TestDriven.NET ( http://www.testdriven.net)
Pytania? Kompilacja linków + slajdy:
http://bartekszafko.inc.pl Dziękuję za uwagę