Cracowmobi
Upcoming SlideShare
Loading in...5
×
 

Cracowmobi

on

  • 379 views

Presentation deliverd for cracow.mobi.

Presentation deliverd for cracow.mobi.
Again on android testing, includes robotium, robolectric and mention about testdroid

Statistics

Views

Total Views
379
Views on SlideShare
379
Embed Views
0

Actions

Likes
0
Downloads
2
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Cracowmobi Cracowmobi Presentation Transcript

  • O autorze Wst¦p Troch¦ (mojej) historii TestujemyTestowanie w systemie Android Marek Defeci«ski Mobica oddziaª w Šodzi Cracow.mobi Conference, 2011 Marek Defeci«ski Testowanie w systemie Android
  • O autorze Wst¦p Troch¦ (mojej) historii TestujemyAgenda 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
  • O autorze Wst¦p Troch¦ (mojej) historii TestujemyKim 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 View slide
  • O autorze Wst¦p Troch¦ (mojej) historii TestujemyKim 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 View slide
  • O autorze Wst¦p Troch¦ (mojej) historii TestujemyKim 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
  • O autorze Wst¦p Troch¦ (mojej) historii TestujemyKim 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
  • O autorze Wst¦p Troch¦ (mojej) historii TestujemyCo 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
  • O autorze Wst¦p Troch¦ (mojej) historii TestujemyCo 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
  • O autorze Wst¦p Troch¦ (mojej) historii TestujemyTestowa¢ 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
  • O autorze Wst¦p Troch¦ (mojej) historii TestujemyTestowa¢ 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
  • O autorze Wst¦p Troch¦ (mojej) historii TestujemyTestowa¢ 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
  • 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
  • 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
  • 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
  • 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
  • O autorze Wst¦p Troch¦ (mojej) historii TestujemyWady (do wytrenowania) Wymagaj¡ czasu na napisanie na utrzymanie Wymagaj¡ wi¦cej od programisty umiej¦tno±ci dyscypliny Marek Defeci«ski Testowanie w systemie Android
  • O autorze Wst¦p Troch¦ (mojej) historii TestujemyWady (do wytrenowania) Wymagaj¡ czasu na napisanie na utrzymanie Wymagaj¡ wi¦cej od programisty umiej¦tno±ci dyscypliny Marek Defeci«ski Testowanie w systemie Android
  • O autorze Wst¦p Troch¦ (mojej) historii TestujemyWady (do wytrenowania) Wymagaj¡ czasu na napisanie na utrzymanie Wymagaj¡ wi¦cej od programisty umiej¦tno±ci dyscypliny Marek Defeci«ski Testowanie w systemie Android
  • O autorze Wst¦p J2ME - przeszªo±¢ Troch¦ (mojej) historii Android - tera¹niejszo±¢ TestujemyAgenda 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
  • O autorze Wst¦p J2ME - przeszªo±¢ Troch¦ (mojej) historii Android - tera¹niejszo±¢ TestujemyDlaczego 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
  • O autorze Wst¦p J2ME - przeszªo±¢ Troch¦ (mojej) historii Android - tera¹niejszo±¢ TestujemyDlaczego 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
  • O autorze Wst¦p J2ME - przeszªo±¢ Troch¦ (mojej) historii Android - tera¹niejszo±¢ TestujemyDlaczego 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
  • O autorze Wst¦p J2ME - przeszªo±¢ Troch¦ (mojej) historii Android - tera¹niejszo±¢ TestujemyDlaczego 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
  • O autorze Wst¦p J2ME - przeszªo±¢ Troch¦ (mojej) historii Android - tera¹niejszo±¢ TestujemyDlaczego 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
  • O autorze Wst¦p J2ME - przeszªo±¢ Troch¦ (mojej) historii Android - tera¹niejszo±¢ TestujemyDlaczego 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
  • O autorze Wst¦p J2ME - przeszªo±¢ Troch¦ (mojej) historii Android - tera¹niejszo±¢ TestujemyAgenda 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
  • O autorze Wst¦p J2ME - przeszªo±¢ Troch¦ (mojej) historii Android - tera¹niejszo±¢ TestujemyDlaczego ª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
  • O autorze Wst¦p J2ME - przeszªo±¢ Troch¦ (mojej) historii Android - tera¹niejszo±¢ TestujemyDlaczego ª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
  • O autorze Wst¦p J2ME - przeszªo±¢ Troch¦ (mojej) historii Android - tera¹niejszo±¢ TestujemyCo 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
  • O autorze Wst¦p J2ME - przeszªo±¢ Troch¦ (mojej) historii Android - tera¹niejszo±¢ TestujemyCo 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
  • O autorze Wst¦p J2ME - przeszªo±¢ Troch¦ (mojej) historii Android - tera¹niejszo±¢ TestujemyCo 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
  • O autorze Wst¦p J2ME - przeszªo±¢ Troch¦ (mojej) historii Android - tera¹niejszo±¢ TestujemyAnatomia 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
  • O autorze Wst¦p J2ME - przeszªo±¢ Troch¦ (mojej) historii Android - tera¹niejszo±¢ TestujemyAnatomia 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
  • O autorze Wst¦p J2ME - przeszªo±¢ Troch¦ (mojej) historii Android - tera¹niejszo±¢ TestujemyAnatomia 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
  • Podej±cia O autorze Out of the box Wst¦p Robotium Troch¦ (mojej) historii Robolectric Testujemy InneAgenda 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
  • Podej±cia O autorze Out of the box Wst¦p Robotium Troch¦ (mojej) historii Robolectric Testujemy InneSposoby 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
  • Podej±cia O autorze Out of the box Wst¦p Robotium Troch¦ (mojej) historii Robolectric Testujemy InneSposoby 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
  • Podej±cia O autorze Out of the box Wst¦p Robotium Troch¦ (mojej) historii Robolectric Testujemy InneSposoby 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
  • Podej±cia O autorze Out of the box Wst¦p Robotium Troch¦ (mojej) historii Robolectric Testujemy InneSposoby 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
  • Podej±cia O autorze Out of the box Wst¦p Robotium Troch¦ (mojej) historii Robolectric Testujemy InneSposoby 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
  • Podej±cia O autorze Out of the box Wst¦p Robotium Troch¦ (mojej) historii Robolectric Testujemy InneAgenda 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
  • InstrumentacjaPrzykªad POJO Style - CommunicationTest Po co testowa¢ to na urz¡dzeniu? Instrumentation style - MobilizationScheduleActivityWithInstrumentationTest activity.runOnUiThread() instrumentation.waitForIdleSync() Nieczytelnie Wolno!
  • InstrumentacjaPrzykªad POJO Style - CommunicationTest Po co testowa¢ to na urz¡dzeniu? Instrumentation style - MobilizationScheduleActivityWithInstrumentationTest activity.runOnUiThread() instrumentation.waitForIdleSync() Nieczytelnie Wolno!
  • InstrumentacjaPrzykªad POJO Style - CommunicationTest Po co testowa¢ to na urz¡dzeniu? Instrumentation style - MobilizationScheduleActivityWithInstrumentationTest activity.runOnUiThread() instrumentation.waitForIdleSync() Nieczytelnie Wolno!
  • InstrumentacjaPrzykªad POJO Style - CommunicationTest Po co testowa¢ to na urz¡dzeniu? Instrumentation style - MobilizationScheduleActivityWithInstrumentationTest activity.runOnUiThread() instrumentation.waitForIdleSync() Nieczytelnie Wolno!
  • Podej±cia O autorze Out of the box Wst¦p Robotium Troch¦ (mojej) historii Robolectric Testujemy InneAgenda 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
  • Podej±cia O autorze Out of the box Wst¦p Robotium Troch¦ (mojej) historii Robolectric Testujemy InneRobotium 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
  • Podej±cia O autorze Out of the box Wst¦p Robotium Troch¦ (mojej) historii Robolectric Testujemy InneRobotium 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
  • Podej±cia O autorze Out of the box Wst¦p Robotium Troch¦ (mojej) historii Robolectric Testujemy InneRobotium 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
  • Podej±cia O autorze Out of the box Wst¦p Robotium Troch¦ (mojej) historii Robolectric Testujemy InneRobotium 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
  • Podej±cia O autorze Out of the box Wst¦p Robotium Troch¦ (mojej) historii Robolectric Testujemy InneRobotium 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
  • RobotiumPrzykª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
  • RobotiumPrzykª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
  • RobotiumPrzykª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
  • Podej±cia O autorze Out of the box Wst¦p Robotium Troch¦ (mojej) historii Robolectric Testujemy InneAgenda 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
  • Podej±cia O autorze Out of the box Wst¦p Robotium Troch¦ (mojej) historii Robolectric Testujemy InneRobolectric 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
  • Podej±cia O autorze Out of the box Wst¦p Robotium Troch¦ (mojej) historii Robolectric Testujemy InneRobolectric 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
  • Podej±cia O autorze Out of the box Wst¦p Robotium Troch¦ (mojej) historii Robolectric Testujemy InneRobolectric 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
  • Podej±cia O autorze Out of the box Wst¦p Robotium Troch¦ (mojej) historii Robolectric Testujemy InneRobolectric 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
  • Podej±cia O autorze Out of the box Wst¦p Robotium Troch¦ (mojej) historii Robolectric Testujemy InneRobolectric 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
  • Podej±cia O autorze Out of the box Wst¦p Robotium Troch¦ (mojej) historii Robolectric Testujemy InneRobolectric 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
  • Podej±cia O autorze Out of the box Wst¦p Robotium Troch¦ (mojej) historii Robolectric Testujemy InneRobolectric 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
  • Podej±cia O autorze Out of the box Wst¦p Robotium Troch¦ (mojej) historii Robolectric Testujemy InneRobolectricShadow 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
  • Podej±cia O autorze Out of the box Wst¦p Robotium Troch¦ (mojej) historii Robolectric Testujemy InneRobolectricWidoki 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
  • Podej±cia O autorze Out of the box Wst¦p Robotium Troch¦ (mojej) historii Robolectric Testujemy InneRobolectricprzykª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
  • Podej±cia O autorze Out of the box Wst¦p Robotium Troch¦ (mojej) historii Robolectric Testujemy InneAgenda 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
  • Podej±cia O autorze Out of the box Wst¦p Robotium Troch¦ (mojej) historii Robolectric Testujemy Inneandroid.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
  • Podej±cia O autorze Out of the box Wst¦p Robotium Troch¦ (mojej) historii Robolectric Testujemy Inneandroid.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
  • Podej±cia O autorze Out of the box Wst¦p Robotium Troch¦ (mojej) historii Robolectric Testujemy Inneandroid.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
  • Podej±cia O autorze Out of the box Wst¦p Robotium Troch¦ (mojej) historii Robolectric Testujemy Inneandroid.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
  • Podej±cia O autorze Out of the box Wst¦p Robotium Troch¦ (mojej) historii Robolectric Testujemy Inneandroid.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
  • Podej±cia O autorze Out of the box Wst¦p Robotium Troch¦ (mojej) historii Robolectric Testujemy Inneandroid.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
  • Podej±cia O autorze Out of the box Wst¦p Robotium Troch¦ (mojej) historii Robolectric Testujemy InneCo 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
  • Podej±cia O autorze Out of the box Wst¦p Robotium Troch¦ (mojej) historii Robolectric Testujemy InneCo 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
  • Podej±cia O autorze Out of the box Wst¦p Robotium Troch¦ (mojej) historii Robolectric Testujemy InnePytania? marekdef+cracow.mobi@gmail.com Dzi¦kuj¦ za uwag¦! Marek Defeci«ski Testowanie w systemie Android
  • Podej±cia O autorze Out of the box Wst¦p Robotium Troch¦ (mojej) historii Robolectric Testujemy InnePytania? marekdef+cracow.mobi@gmail.com Dzi¦kuj¦ za uwag¦! Marek Defeci«ski Testowanie w systemie Android
  • Podej±cia O autorze Out of the box Wst¦p Robotium Troch¦ (mojej) historii Robolectric Testujemy InnePytania? marekdef+cracow.mobi@gmail.com Dzi¦kuj¦ za uwag¦! Marek Defeci«ski Testowanie w systemie Android
  • Bonus packTestDroid recorder TestDroid recorder Bitbar «scy managerowie, polscy programi±ci plugin do eclipse nagrywanie do testów robotium lub monkeyrunner screenshoty
  • Bonus packlogcat http://imgur.com/jacoj
  • Bonus packinne ($AN- monkeyrunner recorder 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)