Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Testowanie w Androidzie

Testowanie w Androidzie

Testing in Android overview (in Polish)

Marek Defeciński

December 09, 2011
Tweet

More Decks by Marek Defeciński

Other Decks in Programming

Transcript

  1. O autorze Wst¦p Troch¦ (mojej) historii Testujemy Testowanie w systemie

    Android Marek Defeci«ski Mobica oddziaª w Šodzi Cracow.mobi Conference, 2011 Marek Defeci«ski Testowanie w systemie Android
  2. O autorze Wst¦p Troch¦ (mojej) historii Testujemy Agenda 1 O

    autorze 2 Wst¦p 3 Troch¦ (mojej) historii J2ME - przeszªo±¢ Android - tera¹niejszo±¢ 4 Testujemy Podej±cia Out of the box Robotium Robolectric Inne Marek Defeci«ski Testowanie w systemie Android
  3. O autorze Wst¦p Troch¦ (mojej) historii Testujemy Kim jestem? Programista

    aplikacji mobilnych w rmie Mobica Prawie 3 lata do±wiadczenia w j2me Ponad 1 w Androidzie Chciaªby pisa¢ bloga: Blog programisty Android blogprogramistyandroid.blogspot.com Animator JUG Šód¹ info.lodz.jug.pl Organizator konferencji Mobilization.pl w Šodzi Marek Defeci«ski Testowanie w systemie Android
  4. O autorze Wst¦p Troch¦ (mojej) historii Testujemy Kim jestem? Programista

    aplikacji mobilnych w rmie Mobica Prawie 3 lata do±wiadczenia w j2me Ponad 1 w Androidzie Chciaªby pisa¢ bloga: Blog programisty Android blogprogramistyandroid.blogspot.com Animator JUG Šód¹ info.lodz.jug.pl Organizator konferencji Mobilization.pl w Šodzi Marek Defeci«ski Testowanie w systemie Android
  5. O autorze Wst¦p Troch¦ (mojej) historii Testujemy Kim jestem? Programista

    aplikacji mobilnych w rmie Mobica Prawie 3 lata do±wiadczenia w j2me Ponad 1 w Androidzie Chciaªby pisa¢ bloga: Blog programisty Android blogprogramistyandroid.blogspot.com Animator JUG Šód¹ info.lodz.jug.pl Organizator konferencji Mobilization.pl w Šodzi Marek Defeci«ski Testowanie w systemie Android
  6. O autorze Wst¦p Troch¦ (mojej) historii Testujemy Kim jestem? Programista

    aplikacji mobilnych w rmie Mobica Prawie 3 lata do±wiadczenia w j2me Ponad 1 w Androidzie Chciaªby pisa¢ bloga: Blog programisty Android blogprogramistyandroid.blogspot.com Animator JUG Šód¹ info.lodz.jug.pl Organizator konferencji Mobilization.pl w Šodzi Marek Defeci«ski Testowanie w systemie Android
  7. O autorze Wst¦p Troch¦ (mojej) historii Testujemy Co teraz robi¦?

    Projekt, w którym mnie nie ma Urz¡dzenie oparte o Android Dedykowany sprz¦t (nie telefon) Wspóªpraca z zewn¦trznymi interfejsami (bluetooth, radio, CAN, rozpoznawanie mowy) Wspomaganie testowania Automatyzacja testów (instrumentacja/robotium/junit) Raportowanie (+timeline) Integracja z zewn¦trznymi narz¦dziami Biblioteki wspomagania testów Marek Defeci«ski Testowanie w systemie Android
  8. O autorze Wst¦p Troch¦ (mojej) historii Testujemy Co teraz robi¦?

    Projekt, w którym mnie nie ma Urz¡dzenie oparte o Android Dedykowany sprz¦t (nie telefon) Wspóªpraca z zewn¦trznymi interfejsami (bluetooth, radio, CAN, rozpoznawanie mowy) Wspomaganie testowania Automatyzacja testów (instrumentacja/robotium/junit) Raportowanie (+timeline) Integracja z zewn¦trznymi narz¦dziami Biblioteki wspomagania testów Marek Defeci«ski Testowanie w systemie Android
  9. O autorze Wst¦p Troch¦ (mojej) historii Testujemy Testowa¢ czy nie

    testowa¢, o to jest pytanie? Jednostkowo/Funkcjonalnie/Integracyjne Manualnie/Automatycznie Wydajno±ciowo Nie wa»ne jak, ale wa»ne »eby testowa¢ Marek Defeci«ski Testowanie w systemie Android
  10. O autorze Wst¦p Troch¦ (mojej) historii Testujemy Testowa¢ czy nie

    testowa¢, o to jest pytanie? Jednostkowo/Funkcjonalnie/Integracyjne Manualnie/Automatycznie Wydajno±ciowo Nie wa»ne jak, ale wa»ne »eby testowa¢ Marek Defeci«ski Testowanie w systemie Android
  11. O autorze Wst¦p Troch¦ (mojej) historii Testujemy Testowa¢ czy nie

    testowa¢, o to jest pytanie? Jednostkowo/Funkcjonalnie/Integracyjne Manualnie/Automatycznie Wydajno±ciowo Nie wa»ne jak, ale wa»ne »eby testowa¢ Marek Defeci«ski Testowanie w systemie Android
  12. O autorze Wst¦p Troch¦ (mojej) historii Testujemy (Potencjalne) zalety Sprawdzamy

    poprawno±¢ kodu Czy robi to co chcemy? Wykrywamy bª¦dy Testy to kontrakt na pi±mie rodzaj dokumentacji (samodokumentuj¡cy si¦ kod) istniej¡ce testy pozwalaj¡ na wykrycie bª¦dów regresji Zwi¦kszaj¡ jako±¢ kodu czy kod jest u»ywalny (ªatwo go testowa¢)? czy jest moduªowy? ªatwo si¦ integruje skutkuje lepszym designem Marek Defeci«ski Testowanie w systemie Android
  13. O autorze Wst¦p Troch¦ (mojej) historii Testujemy (Potencjalne) zalety Sprawdzamy

    poprawno±¢ kodu Czy robi to co chcemy? Wykrywamy bª¦dy Testy to kontrakt na pi±mie rodzaj dokumentacji (samodokumentuj¡cy si¦ kod) istniej¡ce testy pozwalaj¡ na wykrycie bª¦dów regresji Zwi¦kszaj¡ jako±¢ kodu czy kod jest u»ywalny (ªatwo go testowa¢)? czy jest moduªowy? ªatwo si¦ integruje skutkuje lepszym designem Marek Defeci«ski Testowanie w systemie Android
  14. O autorze Wst¦p Troch¦ (mojej) historii Testujemy (Potencjalne) zalety Sprawdzamy

    poprawno±¢ kodu Czy robi to co chcemy? Wykrywamy bª¦dy Testy to kontrakt na pi±mie rodzaj dokumentacji (samodokumentuj¡cy si¦ kod) istniej¡ce testy pozwalaj¡ na wykrycie bª¦dów regresji Zwi¦kszaj¡ jako±¢ kodu czy kod jest u»ywalny (ªatwo go testowa¢)? czy jest moduªowy? ªatwo si¦ integruje skutkuje lepszym designem Marek Defeci«ski Testowanie w systemie Android
  15. O autorze Wst¦p Troch¦ (mojej) historii Testujemy (Potencjalne) zalety Sprawdzamy

    poprawno±¢ kodu Czy robi to co chcemy? Wykrywamy bª¦dy Testy to kontrakt na pi±mie rodzaj dokumentacji (samodokumentuj¡cy si¦ kod) istniej¡ce testy pozwalaj¡ na wykrycie bª¦dów regresji Zwi¦kszaj¡ jako±¢ kodu czy kod jest u»ywalny (ªatwo go testowa¢)? czy jest moduªowy? ªatwo si¦ integruje skutkuje lepszym designem Marek Defeci«ski Testowanie w systemie Android
  16. O autorze Wst¦p Troch¦ (mojej) historii Testujemy Wady (do wytrenowania)

    Wymagaj¡ czasu na napisanie na utrzymanie Wymagaj¡ wi¦cej od programisty umiej¦tno±ci dyscypliny Marek Defeci«ski Testowanie w systemie Android
  17. O autorze Wst¦p Troch¦ (mojej) historii Testujemy Wady (do wytrenowania)

    Wymagaj¡ czasu na napisanie na utrzymanie Wymagaj¡ wi¦cej od programisty umiej¦tno±ci dyscypliny Marek Defeci«ski Testowanie w systemie Android
  18. O autorze Wst¦p Troch¦ (mojej) historii Testujemy Wady (do wytrenowania)

    Wymagaj¡ czasu na napisanie na utrzymanie Wymagaj¡ wi¦cej od programisty umiej¦tno±ci dyscypliny Marek Defeci«ski Testowanie w systemie Android
  19. O autorze Wst¦p Troch¦ (mojej) historii Testujemy J2ME - przeszªo±¢

    Android - tera¹niejszo±¢ Agenda 1 O autorze 2 Wst¦p 3 Troch¦ (mojej) historii J2ME - przeszªo±¢ Android - tera¹niejszo±¢ 4 Testujemy Podej±cia Out of the box Robotium Robolectric Inne Marek Defeci«ski Testowanie w systemie Android
  20. O autorze Wst¦p Troch¦ (mojej) historii Testujemy J2ME - przeszªo±¢

    Android - tera¹niejszo±¢ Dlaczego byªo tak trudno? Nie my±lano o testowaniu projektuj¡c technologi¦ brak narz¦dzi Brak reeksji (java.lang.reect) Trudno±¢ w automatyzacji brak narz¦dzi commandline niestandardowy deployment Brak klas JAVA SE Brak mo»liwo±ci komunikacji z urz¡dzeniem Debugging wsz¦dzie inaczej albo w ogóle Marek Defeci«ski Testowanie w systemie Android
  21. O autorze Wst¦p Troch¦ (mojej) historii Testujemy J2ME - przeszªo±¢

    Android - tera¹niejszo±¢ Dlaczego byªo tak trudno? Nie my±lano o testowaniu projektuj¡c technologi¦ brak narz¦dzi Brak reeksji (java.lang.reect) Trudno±¢ w automatyzacji brak narz¦dzi commandline niestandardowy deployment Brak klas JAVA SE Brak mo»liwo±ci komunikacji z urz¡dzeniem Debugging wsz¦dzie inaczej albo w ogóle Marek Defeci«ski Testowanie w systemie Android
  22. O autorze Wst¦p Troch¦ (mojej) historii Testujemy J2ME - przeszªo±¢

    Android - tera¹niejszo±¢ Dlaczego byªo tak trudno? Nie my±lano o testowaniu projektuj¡c technologi¦ brak narz¦dzi Brak reeksji (java.lang.reect) Trudno±¢ w automatyzacji brak narz¦dzi commandline niestandardowy deployment Brak klas JAVA SE Brak mo»liwo±ci komunikacji z urz¡dzeniem Debugging wsz¦dzie inaczej albo w ogóle Marek Defeci«ski Testowanie w systemie Android
  23. O autorze Wst¦p Troch¦ (mojej) historii Testujemy J2ME - przeszªo±¢

    Android - tera¹niejszo±¢ Dlaczego byªo tak trudno? Nie my±lano o testowaniu projektuj¡c technologi¦ brak narz¦dzi Brak reeksji (java.lang.reect) Trudno±¢ w automatyzacji brak narz¦dzi commandline niestandardowy deployment Brak klas JAVA SE Brak mo»liwo±ci komunikacji z urz¡dzeniem Debugging wsz¦dzie inaczej albo w ogóle Marek Defeci«ski Testowanie w systemie Android
  24. O autorze Wst¦p Troch¦ (mojej) historii Testujemy J2ME - przeszªo±¢

    Android - tera¹niejszo±¢ Dlaczego byªo tak trudno? Nie my±lano o testowaniu projektuj¡c technologi¦ brak narz¦dzi Brak reeksji (java.lang.reect) Trudno±¢ w automatyzacji brak narz¦dzi commandline niestandardowy deployment Brak klas JAVA SE Brak mo»liwo±ci komunikacji z urz¡dzeniem Debugging wsz¦dzie inaczej albo w ogóle Marek Defeci«ski Testowanie w systemie Android
  25. O autorze Wst¦p Troch¦ (mojej) historii Testujemy J2ME - przeszªo±¢

    Android - tera¹niejszo±¢ Dlaczego byªo tak trudno? Nie my±lano o testowaniu projektuj¡c technologi¦ brak narz¦dzi Brak reeksji (java.lang.reect) Trudno±¢ w automatyzacji brak narz¦dzi commandline niestandardowy deployment Brak klas JAVA SE Brak mo»liwo±ci komunikacji z urz¡dzeniem Debugging wsz¦dzie inaczej albo w ogóle Marek Defeci«ski Testowanie w systemie Android
  26. O autorze Wst¦p Troch¦ (mojej) historii Testujemy J2ME - przeszªo±¢

    Android - tera¹niejszo±¢ Agenda 1 O autorze 2 Wst¦p 3 Troch¦ (mojej) historii J2ME - przeszªo±¢ Android - tera¹niejszo±¢ 4 Testujemy Podej±cia Out of the box Robotium Robolectric Inne Marek Defeci«ski Testowanie w systemie Android
  27. O autorze Wst¦p Troch¦ (mojej) historii Testujemy J2ME - przeszªo±¢

    Android - tera¹niejszo±¢ Dlaczego ªatwiej. Testowanie byªo wzi¦te pod uwag¦ na etapie projektowania zintegrowany junit 3 annotacje Wspólne metody na ró»nych urz¡dzeniach instalacja (adb) uruchamianie testów (am instrument) Marek Defeci«ski Testowanie w systemie Android
  28. O autorze Wst¦p Troch¦ (mojej) historii Testujemy J2ME - przeszªo±¢

    Android - tera¹niejszo±¢ Dlaczego ªatwiej. Testowanie byªo wzi¦te pod uwag¦ na etapie projektowania zintegrowany junit 3 annotacje Wspólne metody na ró»nych urz¡dzeniach instalacja (adb) uruchamianie testów (am instrument) Marek Defeci«ski Testowanie w systemie Android
  29. O autorze Wst¦p Troch¦ (mojej) historii Testujemy J2ME - przeszªo±¢

    Android - tera¹niejszo±¢ Co przychodzi z Androidem? Narz¦dzia (SDK lub kod) logcat hierarchyviewer monkey monkeyrunner google test runner Otwarty kod mo»na odnale¹¢ nieudokumentowane narz¦dzia mo»na czyta¢ kod i patrze¢ jak dziaªaj¡ narz¦dzia mo»na wybiera¢ kawaªki kodu i u»ywa¢ ponownie Debugging przewa»nie dziaªa tak»e na urz¡dzeniu Marek Defeci«ski Testowanie w systemie Android
  30. O autorze Wst¦p Troch¦ (mojej) historii Testujemy J2ME - przeszªo±¢

    Android - tera¹niejszo±¢ Co przychodzi z Androidem? Narz¦dzia (SDK lub kod) logcat hierarchyviewer monkey monkeyrunner google test runner Otwarty kod mo»na odnale¹¢ nieudokumentowane narz¦dzia mo»na czyta¢ kod i patrze¢ jak dziaªaj¡ narz¦dzia mo»na wybiera¢ kawaªki kodu i u»ywa¢ ponownie Debugging przewa»nie dziaªa tak»e na urz¡dzeniu Marek Defeci«ski Testowanie w systemie Android
  31. O autorze Wst¦p Troch¦ (mojej) historii Testujemy J2ME - przeszªo±¢

    Android - tera¹niejszo±¢ Co przychodzi z Androidem? Narz¦dzia (SDK lub kod) logcat hierarchyviewer monkey monkeyrunner google test runner Otwarty kod mo»na odnale¹¢ nieudokumentowane narz¦dzia mo»na czyta¢ kod i patrze¢ jak dziaªaj¡ narz¦dzia mo»na wybiera¢ kawaªki kodu i u»ywa¢ ponownie Debugging przewa»nie dziaªa tak»e na urz¡dzeniu Marek Defeci«ski Testowanie w systemie Android
  32. O autorze Wst¦p Troch¦ (mojej) historii Testujemy J2ME - przeszªo±¢

    Android - tera¹niejszo±¢ Anatomia testowania Aplikacje w androidzie zorganizowane s¡ w paczki (Android PacKage) Test w Androidzie to te» paczka (apk) Paczki w Androidzie nie maj¡ dost¦pu do swojego kodu (security) Testowanie u»ywa instrumentacji Dzi¦ki instrumentacji test i aplikacja testowana pracuj¡ w tym samym procesie warunek: podpisane s¡ tym samym kluczem Marek Defeci«ski Testowanie w systemie Android
  33. O autorze Wst¦p Troch¦ (mojej) historii Testujemy J2ME - przeszªo±¢

    Android - tera¹niejszo±¢ Anatomia testowania Aplikacje w androidzie zorganizowane s¡ w paczki (Android PacKage) Test w Androidzie to te» paczka (apk) Paczki w Androidzie nie maj¡ dost¦pu do swojego kodu (security) Testowanie u»ywa instrumentacji Dzi¦ki instrumentacji test i aplikacja testowana pracuj¡ w tym samym procesie warunek: podpisane s¡ tym samym kluczem Marek Defeci«ski Testowanie w systemie Android
  34. O autorze Wst¦p Troch¦ (mojej) historii Testujemy J2ME - przeszªo±¢

    Android - tera¹niejszo±¢ Anatomia testowania Aplikacje w androidzie zorganizowane s¡ w paczki (Android PacKage) Test w Androidzie to te» paczka (apk) Paczki w Androidzie nie maj¡ dost¦pu do swojego kodu (security) Testowanie u»ywa instrumentacji Dzi¦ki instrumentacji test i aplikacja testowana pracuj¡ w tym samym procesie warunek: podpisane s¡ tym samym kluczem Marek Defeci«ski Testowanie w systemie Android
  35. O autorze Wst¦p Troch¦ (mojej) historii Testujemy Podej±cia Out of

    the box Robotium Robolectric Inne Agenda 1 O autorze 2 Wst¦p 3 Troch¦ (mojej) historii J2ME - przeszªo±¢ Android - tera¹niejszo±¢ 4 Testujemy Podej±cia Out of the box Robotium Robolectric Inne Marek Defeci«ski Testowanie w systemie Android
  36. O autorze Wst¦p Troch¦ (mojej) historii Testujemy Podej±cia Out of

    the box Robotium Robolectric Inne Sposoby testowania na urz¡dzeniach mobilnych Brak testów nie ma czasu nie umiemy Testy funkcjonalne (instrumentacja/robotium) wolne (kompilacja, dex, adb install) jeszcze wolniej (emulator) Marek Defeci«ski Testowanie w systemie Android
  37. O autorze Wst¦p Troch¦ (mojej) historii Testujemy Podej±cia Out of

    the box Robotium Robolectric Inne Sposoby testowania na urz¡dzeniach mobilnych Brak testów nie ma czasu nie umiemy Testy funkcjonalne (instrumentacja/robotium) wolne (kompilacja, dex, adb install) jeszcze wolniej (emulator) Marek Defeci«ski Testowanie w systemie Android
  38. O autorze Wst¦p Troch¦ (mojej) historii Testujemy Podej±cia Out of

    the box Robotium Robolectric Inne Sposoby testowania c.d. Mocki Reverse engineering istniej¡cego kodu Ci¦»ko si¦ czyta Nie pomagaj¡ w refaktoryzacji Tworzenie bilbiotek POJO - niezale»nych od systemu i dobrze przetestowanych Dobra idea, ale Za du»o kodu Za du»o implementacji Za du»o adapterów Marek Defeci«ski Testowanie w systemie Android
  39. O autorze Wst¦p Troch¦ (mojej) historii Testujemy Podej±cia Out of

    the box Robotium Robolectric Inne Sposoby testowania c.d. Mocki Reverse engineering istniej¡cego kodu Ci¦»ko si¦ czyta Nie pomagaj¡ w refaktoryzacji Tworzenie bilbiotek POJO - niezale»nych od systemu i dobrze przetestowanych Dobra idea, ale Za du»o kodu Za du»o implementacji Za du»o adapterów Marek Defeci«ski Testowanie w systemie Android
  40. O autorze Wst¦p Troch¦ (mojej) historii Testujemy Podej±cia Out of

    the box Robotium Robolectric Inne Sposoby testowania c.d. Mocki Reverse engineering istniej¡cego kodu Ci¦»ko si¦ czyta Nie pomagaj¡ w refaktoryzacji Tworzenie bilbiotek POJO - niezale»nych od systemu i dobrze przetestowanych Dobra idea, ale Za du»o kodu Za du»o implementacji Za du»o adapterów Marek Defeci«ski Testowanie w systemie Android
  41. O autorze Wst¦p Troch¦ (mojej) historii Testujemy Podej±cia Out of

    the box Robotium Robolectric Inne Agenda 1 O autorze 2 Wst¦p 3 Troch¦ (mojej) historii J2ME - przeszªo±¢ Android - tera¹niejszo±¢ 4 Testujemy Podej±cia Out of the box Robotium Robolectric Inne Marek Defeci«ski Testowanie w systemie Android
  42. Instrumentacja Przykªad POJO Style - CommunicationTest Po co testowa¢ to

    na urz¡dzeniu? Instrumentation style - MobilizationScheduleActivityWithInstrumentationTest activity.runOnUiThread() instrumentation.waitForIdleSync() Nieczytelnie Wolno!
  43. Instrumentacja Przykªad POJO Style - CommunicationTest Po co testowa¢ to

    na urz¡dzeniu? Instrumentation style - MobilizationScheduleActivityWithInstrumentationTest activity.runOnUiThread() instrumentation.waitForIdleSync() Nieczytelnie Wolno!
  44. Instrumentacja Przykªad POJO Style - CommunicationTest Po co testowa¢ to

    na urz¡dzeniu? Instrumentation style - MobilizationScheduleActivityWithInstrumentationTest activity.runOnUiThread() instrumentation.waitForIdleSync() Nieczytelnie Wolno!
  45. Instrumentacja Przykªad POJO Style - CommunicationTest Po co testowa¢ to

    na urz¡dzeniu? Instrumentation style - MobilizationScheduleActivityWithInstrumentationTest activity.runOnUiThread() instrumentation.waitForIdleSync() Nieczytelnie Wolno!
  46. O autorze Wst¦p Troch¦ (mojej) historii Testujemy Podej±cia Out of

    the box Robotium Robolectric Inne Agenda 1 O autorze 2 Wst¦p 3 Troch¦ (mojej) historii J2ME - przeszªo±¢ Android - tera¹niejszo±¢ 4 Testujemy Podej±cia Out of the box Robotium Robolectric Inne Marek Defeci«ski Testowanie w systemie Android
  47. O autorze Wst¦p Troch¦ (mojej) historii Testujemy Podej±cia Out of

    the box Robotium Robolectric Inne Robotium Selenium dla Android Testy typu black box nie wymagaj¡ kodu aplikacji testowanej Testy przyjazne w dotyku ªatwo si¦ pisz¦ ªatwo si¦ czyta Du»e i aktywne community Regularne release-y (3.0 w listopadzie) Marek Defeci«ski Testowanie w systemie Android
  48. O autorze Wst¦p Troch¦ (mojej) historii Testujemy Podej±cia Out of

    the box Robotium Robolectric Inne Robotium Selenium dla Android Testy typu black box nie wymagaj¡ kodu aplikacji testowanej Testy przyjazne w dotyku ªatwo si¦ pisz¦ ªatwo si¦ czyta Du»e i aktywne community Regularne release-y (3.0 w listopadzie) Marek Defeci«ski Testowanie w systemie Android
  49. O autorze Wst¦p Troch¦ (mojej) historii Testujemy Podej±cia Out of

    the box Robotium Robolectric Inne Robotium Selenium dla Android Testy typu black box nie wymagaj¡ kodu aplikacji testowanej Testy przyjazne w dotyku ªatwo si¦ pisz¦ ªatwo si¦ czyta Du»e i aktywne community Regularne release-y (3.0 w listopadzie) Marek Defeci«ski Testowanie w systemie Android
  50. O autorze Wst¦p Troch¦ (mojej) historii Testujemy Podej±cia Out of

    the box Robotium Robolectric Inne Robotium Selenium dla Android Testy typu black box nie wymagaj¡ kodu aplikacji testowanej Testy przyjazne w dotyku ªatwo si¦ pisz¦ ªatwo si¦ czyta Du»e i aktywne community Regularne release-y (3.0 w listopadzie) Marek Defeci«ski Testowanie w systemie Android
  51. O autorze Wst¦p Troch¦ (mojej) historii Testujemy Podej±cia Out of

    the box Robotium Robolectric Inne Robotium Selenium dla Android Testy typu black box nie wymagaj¡ kodu aplikacji testowanej Testy przyjazne w dotyku ªatwo si¦ pisz¦ ªatwo si¦ czyta Du»e i aktywne community Regularne release-y (3.0 w listopadzie) Marek Defeci«ski Testowanie w systemie Android
  52. Robotium Przykªad MobilizationScheduleActivityWithRobotiumTest pro±ciej ni» instrumentacja EventDetailsActivityWithRobotiumTest Wi¦cej sposobów na

    szukanie tekstu Przyjazne API MobilizationScheduleActivityTest rozbudowane scenariusze Mo»e ªadnie, ale nadal wolno
  53. Robotium Przykªad MobilizationScheduleActivityWithRobotiumTest pro±ciej ni» instrumentacja EventDetailsActivityWithRobotiumTest Wi¦cej sposobów na

    szukanie tekstu Przyjazne API MobilizationScheduleActivityTest rozbudowane scenariusze Mo»e ªadnie, ale nadal wolno
  54. Robotium Przykªad MobilizationScheduleActivityWithRobotiumTest pro±ciej ni» instrumentacja EventDetailsActivityWithRobotiumTest Wi¦cej sposobów na

    szukanie tekstu Przyjazne API MobilizationScheduleActivityTest rozbudowane scenariusze Mo»e ªadnie, ale nadal wolno
  55. O autorze Wst¦p Troch¦ (mojej) historii Testujemy Podej±cia Out of

    the box Robotium Robolectric Inne Agenda 1 O autorze 2 Wst¦p 3 Troch¦ (mojej) historii J2ME - przeszªo±¢ Android - tera¹niejszo±¢ 4 Testujemy Podej±cia Out of the box Robotium Robolectric Inne Marek Defeci«ski Testowanie w systemie Android
  56. O autorze Wst¦p Troch¦ (mojej) historii Testujemy Podej±cia Out of

    the box Robotium Robolectric Inne Robolectric java.lang.RuntimeException: Stub! android.jar - fasada potrzebna do kompilacji Testy uruchamiane w zwykªej Javie Szybkie! Typu black-box Šatwo zrefaktorowa¢ Testuj¡ zachowanie a nie implementacje (vs Mock) Šatwo osi¡gn¡¢ du»e pokrycie testami bo szybko si¦ pisze i szybko uruchamia Marek Defeci«ski Testowanie w systemie Android
  57. O autorze Wst¦p Troch¦ (mojej) historii Testujemy Podej±cia Out of

    the box Robotium Robolectric Inne Robolectric java.lang.RuntimeException: Stub! android.jar - fasada potrzebna do kompilacji Testy uruchamiane w zwykªej Javie Szybkie! Typu black-box Šatwo zrefaktorowa¢ Testuj¡ zachowanie a nie implementacje (vs Mock) Šatwo osi¡gn¡¢ du»e pokrycie testami bo szybko si¦ pisze i szybko uruchamia Marek Defeci«ski Testowanie w systemie Android
  58. O autorze Wst¦p Troch¦ (mojej) historii Testujemy Podej±cia Out of

    the box Robotium Robolectric Inne Robolectric java.lang.RuntimeException: Stub! android.jar - fasada potrzebna do kompilacji Testy uruchamiane w zwykªej Javie Szybkie! Typu black-box Šatwo zrefaktorowa¢ Testuj¡ zachowanie a nie implementacje (vs Mock) Šatwo osi¡gn¡¢ du»e pokrycie testami bo szybko si¦ pisze i szybko uruchamia Marek Defeci«ski Testowanie w systemie Android
  59. O autorze Wst¦p Troch¦ (mojej) historii Testujemy Podej±cia Out of

    the box Robotium Robolectric Inne Robolectric java.lang.RuntimeException: Stub! android.jar - fasada potrzebna do kompilacji Testy uruchamiane w zwykªej Javie Szybkie! Typu black-box Šatwo zrefaktorowa¢ Testuj¡ zachowanie a nie implementacje (vs Mock) Šatwo osi¡gn¡¢ du»e pokrycie testami bo szybko si¦ pisze i szybko uruchamia Marek Defeci«ski Testowanie w systemie Android
  60. O autorze Wst¦p Troch¦ (mojej) historii Testujemy Podej±cia Out of

    the box Robotium Robolectric Inne Robolectric java.lang.RuntimeException: Stub! android.jar - fasada potrzebna do kompilacji Testy uruchamiane w zwykªej Javie Szybkie! Typu black-box Šatwo zrefaktorowa¢ Testuj¡ zachowanie a nie implementacje (vs Mock) Šatwo osi¡gn¡¢ du»e pokrycie testami bo szybko si¦ pisze i szybko uruchamia Marek Defeci«ski Testowanie w systemie Android
  61. O autorze Wst¦p Troch¦ (mojej) historii Testujemy Podej±cia Out of

    the box Robotium Robolectric Inne Robolectric java.lang.RuntimeException: Stub! android.jar - fasada potrzebna do kompilacji Testy uruchamiane w zwykªej Javie Szybkie! Typu black-box Šatwo zrefaktorowa¢ Testuj¡ zachowanie a nie implementacje (vs Mock) Šatwo osi¡gn¡¢ du»e pokrycie testami bo szybko si¦ pisze i szybko uruchamia Marek Defeci«ski Testowanie w systemie Android
  62. O autorze Wst¦p Troch¦ (mojej) historii Testujemy Podej±cia Out of

    the box Robotium Robolectric Inne Robolectric java.lang.RuntimeException: Stub! android.jar - fasada potrzebna do kompilacji Testy uruchamiane w zwykªej Javie Szybkie! Typu black-box Šatwo zrefaktorowa¢ Testuj¡ zachowanie a nie implementacje (vs Mock) Šatwo osi¡gn¡¢ du»e pokrycie testami bo szybko si¦ pisze i szybko uruchamia Marek Defeci«ski Testowanie w systemie Android
  63. O autorze Wst¦p Troch¦ (mojej) historii Testujemy Podej±cia Out of

    the box Robotium Robolectric Inne Robolectric Shadow objects Przechwytuje ªadowanie klas z android.jar i zamienia kod na u»ywalny (javassist) - podstawowe zachowanie Podpina obiekty shadow do klas androida Klasy androida sªu»¡ jako proxy do shadow Obiekty zapami¦tuj¡ stan (mo»na sprawdza¢ w testach) Dodaje troch¦ nowych metod Marek Defeci«ski Testowanie w systemie Android
  64. O autorze Wst¦p Troch¦ (mojej) historii Testujemy Podej±cia Out of

    the box Robotium Robolectric Inne Robolectric Widoki i resource-y Tworzy map¦ widoków na podstawie resourców (res!) Tworzy map¦ obiektów cieni Przetwarza layouty - cz¦±¢ atrybutów jest przepisywana do cieni Marek Defeci«ski Testowanie w systemie Android
  65. O autorze Wst¦p Troch¦ (mojej) historii Testujemy Podej±cia Out of

    the box Robotium Robolectric Inne Robolectric przykªad EventDetailsActivityWithRoboelectric Test typu JUnit4 @Test @RunWith(RobolectricTestRunner.class) Maven Szybko! Robolectric.shadowOf(...) CommunicationWithRobolectricTest Šatwe mockowanie http I znowu szybko! Robolectric.addPendingHttpResponse(...) Marek Defeci«ski Testowanie w systemie Android
  66. O autorze Wst¦p Troch¦ (mojej) historii Testujemy Podej±cia Out of

    the box Robotium Robolectric Inne Agenda 1 O autorze 2 Wst¦p 3 Troch¦ (mojej) historii J2ME - przeszªo±¢ Android - tera¹niejszo±¢ 4 Testujemy Podej±cia Out of the box Robotium Robolectric Inne Marek Defeci«ski Testowanie w systemie Android
  67. O autorze Wst¦p Troch¦ (mojej) historii Testujemy Podej±cia Out of

    the box Robotium Robolectric Inne android.test.mock - a co to? To nie jest mocking framework typu mockito lub easymock Bardziej zbli»one do denicji stubów (M. Fowler) To klasy których: metody rzucaj¡ wyj¡tkami nadpisujemy metody które chcemy u»y¢ Sªu»¡ izolacji od ±rodowiska MockContext MockContentProvider (baza danych) MockContentResolver (j.w.) Šatwiej co± wstrzykn¡¢ Przykªad: EventListAdapterTest Marek Defeci«ski Testowanie w systemie Android
  68. O autorze Wst¦p Troch¦ (mojej) historii Testujemy Podej±cia Out of

    the box Robotium Robolectric Inne android.test.mock - a co to? To nie jest mocking framework typu mockito lub easymock Bardziej zbli»one do denicji stubów (M. Fowler) To klasy których: metody rzucaj¡ wyj¡tkami nadpisujemy metody które chcemy u»y¢ Sªu»¡ izolacji od ±rodowiska MockContext MockContentProvider (baza danych) MockContentResolver (j.w.) Šatwiej co± wstrzykn¡¢ Przykªad: EventListAdapterTest Marek Defeci«ski Testowanie w systemie Android
  69. O autorze Wst¦p Troch¦ (mojej) historii Testujemy Podej±cia Out of

    the box Robotium Robolectric Inne android.test.mock - a co to? To nie jest mocking framework typu mockito lub easymock Bardziej zbli»one do denicji stubów (M. Fowler) To klasy których: metody rzucaj¡ wyj¡tkami nadpisujemy metody które chcemy u»y¢ Sªu»¡ izolacji od ±rodowiska MockContext MockContentProvider (baza danych) MockContentResolver (j.w.) Šatwiej co± wstrzykn¡¢ Przykªad: EventListAdapterTest Marek Defeci«ski Testowanie w systemie Android
  70. O autorze Wst¦p Troch¦ (mojej) historii Testujemy Podej±cia Out of

    the box Robotium Robolectric Inne android.test.mock - a co to? To nie jest mocking framework typu mockito lub easymock Bardziej zbli»one do denicji stubów (M. Fowler) To klasy których: metody rzucaj¡ wyj¡tkami nadpisujemy metody które chcemy u»y¢ Sªu»¡ izolacji od ±rodowiska MockContext MockContentProvider (baza danych) MockContentResolver (j.w.) Šatwiej co± wstrzykn¡¢ Przykªad: EventListAdapterTest Marek Defeci«ski Testowanie w systemie Android
  71. O autorze Wst¦p Troch¦ (mojej) historii Testujemy Podej±cia Out of

    the box Robotium Robolectric Inne android.test.mock - a co to? To nie jest mocking framework typu mockito lub easymock Bardziej zbli»one do denicji stubów (M. Fowler) To klasy których: metody rzucaj¡ wyj¡tkami nadpisujemy metody które chcemy u»y¢ Sªu»¡ izolacji od ±rodowiska MockContext MockContentProvider (baza danych) MockContentResolver (j.w.) Šatwiej co± wstrzykn¡¢ Przykªad: EventListAdapterTest Marek Defeci«ski Testowanie w systemie Android
  72. O autorze Wst¦p Troch¦ (mojej) historii Testujemy Podej±cia Out of

    the box Robotium Robolectric Inne android.test.mock - a co to? To nie jest mocking framework typu mockito lub easymock Bardziej zbli»one do denicji stubów (M. Fowler) To klasy których: metody rzucaj¡ wyj¡tkami nadpisujemy metody które chcemy u»y¢ Sªu»¡ izolacji od ±rodowiska MockContext MockContentProvider (baza danych) MockContentResolver (j.w.) Šatwiej co± wstrzykn¡¢ Przykªad: EventListAdapterTest Marek Defeci«ski Testowanie w systemie Android
  73. O autorze Wst¦p Troch¦ (mojej) historii Testujemy Podej±cia Out of

    the box Robotium Robolectric Inne Co jeszcze mo»na u»y¢? Android-mock u»ywa annotacji tworzy klasy mock podczas kompilacji record and replay (easy mock) mocki s¡ pakowane do apk Powermock oparty o mockito lub easymocka wspiera TestNG i JUnit testy w JVM Calculon DSL dla Androida czytelne testy assertThat(R.id.button_2).isVisible(); assertThat(R.id.button_2).click().implies(R.id.launch_bar_button).is Marek Defeci«ski Testowanie w systemie Android
  74. O autorze Wst¦p Troch¦ (mojej) historii Testujemy Podej±cia Out of

    the box Robotium Robolectric Inne Co jeszcze mo»na u»y¢? RenamingDelegatingContext zmiany w systemie plików s¡ przekierowywane do innego miejsca (prex) IsolatedContext pozwala na rozmawianie z innymi pakietami ale nie z urz¡dzeniem android.test.* Marek Defeci«ski Testowanie w systemie Android
  75. O autorze Wst¦p Troch¦ (mojej) historii Testujemy Podej±cia Out of

    the box Robotium Robolectric Inne Pytania? [email protected] Dzi¦kuj¦ za uwag¦! Marek Defeci«ski Testowanie w systemie Android
  76. O autorze Wst¦p Troch¦ (mojej) historii Testujemy Podej±cia Out of

    the box Robotium Robolectric Inne Pytania? [email protected] Dzi¦kuj¦ za uwag¦! Marek Defeci«ski Testowanie w systemie Android
  77. O autorze Wst¦p Troch¦ (mojej) historii Testujemy Podej±cia Out of

    the box Robotium Robolectric Inne Pytania? [email protected] Dzi¦kuj¦ za uwag¦! Marek Defeci«ski Testowanie w systemie Android
  78. Bonus pack TestDroid recorder TestDroid recorder Bitbar «scy managerowie, polscy

    programi±ci plugin do eclipse nagrywanie do testów robotium lub monkeyrunner screenshoty
  79. Bonus pack inne monkeyrunner recorder ($AN- DROID_SOURCE/sdk/monkeyrunner/scripts/monkey_recorder.py) monkeyrunner help ($ANDROID_SOURCE/sdk/monkeyrunner/scripts/help.py)

    adb completion ($ANDROID_SOURCE/sdk/bash_completion/adb.bash) screenshot2 ($ANDROID_SOURCE/out/host/linux-x86/bin)