<ul><li>Bartłomiej Szafko </li></ul>
Be Driven! <ul><li>Wymagana dyscyplina </li></ul><ul><li>Szersze spojrzenie na programowanie </li></ul><ul><li>Umiejętność...
Test Driven! <ul><li>Testy </li></ul><ul><li>Kodowanie </li></ul><ul><li>Uruchamianie testów  </li></ul><ul><li>Naprawiani...
TDD jest AGILE <ul><li>AGILE: grupa metodyk projektowych </li></ul><ul><li>eXtremeProgramming: iteracje + TESTOWANIE </li>...
http://www.extremeprogramming.org
Testowanie <ul><li>Przecież sprawdzam mój kod! </li></ul><ul><li>Rodzaje testów </li></ul><ul><ul><li>Unit  </li></ul></ul...
Testowanie – cd. <ul><li>To, że przechodzą testy, nie oznacza, że nie ma błędów </li></ul><ul><li>Im więcej błędów znajdzi...
Unit Testing <ul><li>Testowanie małych kawałków kodu - unitów </li></ul><ul><li>Unit:  </li></ul><ul><ul><li>Procedura, fu...
Zasady budowania testów <ul><li>Zostajemy w obrębie procesu i hosta </li></ul><ul><li>Nie testujemy zapisywanie/pobierania...
NUNIT(www.nunit.org) <ul><li>Atrybuty: </li></ul><ul><ul><li>TestFixture – klasa  </li></ul></ul><ul><ul><li>Test – metoda...
Mock, fake  <ul><li>Oszukane implementacje interfejsów </li></ul><ul><li>Pozwala dodać listę metoda – wynik; property – wy...
Code coverage – pokrycie kodu <ul><li>Chcemy, żeby nasze testy pokrywały 100% kodu </li></ul><ul><li>Wszystkie rozgałęzien...
Testowanie UI - Winforms <ul><ul><li>NUnitForms (http://nunitforms.sourceforge.net/) </li></ul></ul><ul><ul><li>TestRecode...
Testowanie UI – ASP .NET <ul><ul><li>WatiN (http://watin.sourceforge.net/) </li></ul></ul><ul><ul><li>WatiN TestRecoder </...
Ciekawe narzędzia <ul><li>Wtyczka do VS TestDriven.NET (  http://www.testdriven.net ) </li></ul>
<ul><li>Pytania? </li></ul><ul><li>Kompilacja linków + slajdy:  http://bartekszafko.inc.pl </li></ul><ul><li>Dziękuję za u...
Upcoming SlideShare
Loading in …5
×

Poznańska grupa .Net spotkanie VI - Test Driven Development

2,600 views

Published on

Published in: Technology
  • Be the first to comment

Poznańska grupa .Net spotkanie VI - Test Driven Development

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

×