Slide 1

Slide 1 text

UIςετͷࣗಈԽʹ࢛ۤീ͍ۤͯ͠Δ࿩ ਂ͍͍ษڧձvol.5 Fuji Kinaga

Slide 2

Slide 2 text

࠳ંͷཤྺ • UIͷςετɺFacebookͱTwitterͷϩάΠϯͰͭ·ͮ͘ • FirebaseTestLabͷInstrumentationςετ࣮ߦͷ࢓ํͰͭ·ͮ͘ • FacebookͷεύϜٙ࿭ʹͭ·ͮ͘ • Pythonͷϧʔτݖݶ໰୊Ͱͭ·ͮ͘ • εΫϦʔϯγϣοτΛऔΔϥΠϒϥϦͷબఆͰͭ·ͮ͘ • ςετίʔυͷKotlinԽͰͭ·ͮ͘ • GradleɺyamlϑΝΠϧͷॻ͖ํʹͭ·ͮ͘

Slide 3

Slide 3 text

࠳ંͷཤྺ • UIͷςετɺFacebookͱTwitterͷϩάΠϯͰͭ·ͮ͘ • FirebaseTestLabͷInstrumentationςετ࣮ߦͷ࢓ํͰͭ·ͮ͘ • FacebookͷεύϜٙ࿭ʹͭ·ͮ͘ • Pythonͷϧʔτݖݶ໰୊Ͱͭ·ͮ͘ • εΫϦʔϯγϣοτΛऔΔϥΠϒϥϦͷબఆͰͭ·ͮ͘ • ςετίʔυͷKotlinԽͰͭ·ͮ͘ • GradleɺyamlϑΝΠϧͷॻ͖ํʹͭ·ͮ͘

Slide 4

Slide 4 text

FacebookɺTwitterɺ͍Ζ͍Ζͳ໰୊ • ΞϓϦ͕εϚϗʹೖ͍ͬͯΔ৔߹ͱͳ͍৔߹Ͱڍಈ͕ҧ͏ • Ωϟογϡ͕࢒͍ͬͯΔ৔߹ͱͳ͍৔߹Ͱڍಈ͕ҧ͏ • Facebook͸ΞϓϦ༗ΓͩͱΩϟογϡͰଈϩάΠϯ • Twitter͸ΞϓϦ༗ΓͰ΋࿈ܞ͢ΔϘλϯΛԡ͢ඞཁ͋Γ • WebViewͱωΠςΟϒͰIDͷऔಘͷํ๏͕શવҧ͏
 - ωΠςΟϒ : "com.twitter.android:id/ok_button"
 - ΢Σϒ : “username_or_email" and “password”

Slide 5

Slide 5 text

࠳ંͷཤྺ • UIͷςετɺFacebookͱTwitterͷϩάΠϯͰͭ·ͮ͘ • FirebaseTestLabͷInstrumentationςετ࣮ߦͷ࢓ํͰͭ·ͮ͘ • FacebookͷεύϜٙ࿭ʹͭ·ͮ͘ • Pythonͷϧʔτݖݶ໰୊Ͱͭ·ͮ͘ • εΫϦʔϯγϣοτΛऔΔϥΠϒϥϦͷબఆͰͭ·ͮ͘ • ςετίʔυͷKotlinԽͰͭ·ͮ͘ • GradleɺyamlϑΝΠϧͷॻ͖ํʹͭ·ͮ͘

Slide 6

Slide 6 text

gCloud CLI͔ΒͱAndroidStudio͔Β΋Մೳ • travisϑΝΠϧͰgCloudίϚϯυΛ࢖͍ɺApkͷσΟϨΫτϦ Λਖ਼͘͠ࢦఆͯ͠΋apkग़དྷͯ·ͤΜͱౖΒΕͨ • minSdkVersion໰୊(nana͸API17Ҏ্ɺUIςετ͸API18Ҏ্) • Test͸ReleaseϏϧυͩͱಈ͍ͯ͘Εͳ͍ • ݱࡏݟ͍͑ͯΔը໘ͷActivityΠϯελϯεΛऔಘ͢Δํ๏͕࠷ ॳΘ͔Βͳ͔ͬͨ(εΫγϣΛࡱΔ࣌ʹඞཁʹͳΔ)

Slide 7

Slide 7 text

࠳ંͷཤྺ • UIͷςετɺFacebookͱTwitterͷϩάΠϯͰͭ·ͮ͘ • FirebaseTestLabͷInstrumentationςετ࣮ߦͷ࢓ํͰͭ·ͮ͘ • FacebookͷεύϜٙ࿭ʹͭ·ͮ͘ • Pythonͷϧʔτݖݶ໰୊Ͱͭ·ͮ͘ • εΫϦʔϯγϣοτΛऔΔϥΠϒϥϦͷબఆͰͭ·ͮ͘ • ςετίʔυͷKotlinԽͰͭ·ͮ͘ • GradleɺyamlϑΝΠϧͷॻ͖ํʹͭ·ͮ͘

Slide 8

Slide 8 text

Fuji͕΢ϧάΞΠ͔ΒϩάΠϯ͠Α͏ͱ͍ͯ͠·͢ • FirebaseTestLabͷ୺຤͸ւ֎ʹ͋Δ • FacebookϩάΠϯͷςετέʔεͩ ͚100%ࣦഊ͢Δ • ςετͷͨͼʹύεϫʔυมߋਏ ͍… • ςετϢʔβʔ࡞Ε͹͍͚ͨ(୯७)

Slide 9

Slide 9 text

࠳ંͷཤྺ • UIͷςετɺFacebookͱTwitterͷϩάΠϯͰͭ·ͮ͘ • FirebaseTestLabͷInstrumentationςετ࣮ߦͷ࢓ํͰͭ·ͮ͘ • FacebookͷεύϜٙ࿭ʹͭ·ͮ͘ • Pythonͷϧʔτݖݶ໰୊Ͱͭ·ͮ͘ • εΫϦʔϯγϣοτΛऔΔϥΠϒϥϦͷબఆͰͭ·ͮ͘ • ςετίʔυͷKotlinԽͰͭ·ͮ͘ • GradleɺyamlϑΝΠϧͷॻ͖ํʹͭ·ͮ͘

Slide 10

Slide 10 text

Macඪ४ͷPython͸ϧʔτ੍ݶ෇͖ • screenshot-tests-for-android/facebookΛ࢖͏ͨ ΊʹPythonͷPillow(ը૾ղੳ)ϥΠϒϥϦ͕ඞཁ ͩͬͨ • pipίϚϯυड͚෇͚ͯ͘Εͳ͍ • usr/local/binʹPythonΛೖΕͯύεΛ੾Γସ͑Δ ඞཁ͕͋ͬͨ

Slide 11

Slide 11 text

࠳ંͷཤྺ • UIͷςετɺFacebookͱTwitterͷϩάΠϯͰͭ·ͮ͘ • FirebaseTestLabͷInstrumentationςετ࣮ߦͷ࢓ํͰͭ·ͮ͘ • FacebookͷεύϜٙ࿭ʹͭ·ͮ͘ • Pythonͷϧʔτݖݶ໰୊Ͱͭ·ͮ͘ • εΫϦʔϯγϣοτΛऔΔϥΠϒϥϦͷબఆͰͭ·ͮ͘ • ςετίʔυͷKotlinԽͰͭ·ͮ͘ • GradleɺyamlϑΝΠϧͷॻ͖ํʹͭ·ͮ͘

Slide 12

Slide 12 text

UIςετͷ݁ՌΛݟ͑ΔԽ͍ͨ͠ • Spoon/Square
 - Ұ൪ݹ͍ϥΠϒϥϦ
 - ҆ఆͯ͠Δ͕ɺGradleͰೖΕΔʹ͸ผͷϓϥάΠϯ͕ඞཁ • Screenshot-tests-for-android/Facebook
 - PillowΛ࢖ͬͯεΫγϣͷը૾Λൺֱͯࠩ͠෼Λݕূ͢Δ͜ͱ͕Ͱ͖Δ
 - View୯ମ(Widget/ViewGroup)΍ɺLitho/FacebookͷViewͷεΫγϣ ΛऔΕͨΓɺHierarchyViewerͷ֦ுػೳΛ࢖ͬͯViewͷ֊૚ΛݟΔ͜ ͱ΋Ͱ͖Δ • CloudTestingScreenShotter/Firebase
 - FirebaseTestLabͱ࿈ܞͰ͖Δ
 - طଘͷCIͱͷ࿈ܞ͕؆୯

Slide 13

Slide 13 text

࠳ંͷཤྺ • UIͷςετɺFacebookͱTwitterͷϩάΠϯͰͭ·ͮ͘ • FirebaseTestLabͷInstrumentationςετ࣮ߦͷ࢓ํͰͭ·ͮ͘ • FacebookͷεύϜٙ࿭ʹͭ·ͮ͘ • Pythonͷϧʔτݖݶ໰୊Ͱͭ·ͮ͘ • εΫϦʔϯγϣοτΛऔΔϥΠϒϥϦͷબఆͰͭ·ͮ͘ • ςετίʔυͷKotlinԽͰͭ·ͮ͘ • GradleɺyamlϑΝΠϧͷॻ͖ํʹͭ·ͮ͘

Slide 14

Slide 14 text

࠳ંͷཤྺ • UIͷςετɺFacebookͱTwitterͷϩάΠϯͰͭ·ͮ͘ • FirebaseTestLabͷInstrumentationςετ࣮ߦͷ࢓ํͰͭ·ͮ͘ • FacebookͷεύϜٙ࿭ʹͭ·ͮ͘ • Pythonͷϧʔτݖݶ໰୊Ͱͭ·ͮ͘ • εΫϦʔϯγϣοτΛऔΔϥΠϒϥϦͷબఆͰͭ·ͮ͘ • ςετίʔυͷKotlinԽͰͭ·ͮ͘ @Rule @JvmFieldΛ෇͚Δ • GradleɺyamlϑΝΠϧͷॻ͖ํʹͭ·ͮ͘

Slide 15

Slide 15 text

࠳ંͷཤྺ • UIͷςετɺFacebookͱTwitterͷϩάΠϯͰͭ·ͮ͘ • FirebaseTestLabͷInstrumentationςετ࣮ߦͷ࢓ํͰͭ·ͮ͘ • FacebookͷεύϜٙ࿭ʹͭ·ͮ͘ • Pythonͷϧʔτݖݶ໰୊Ͱͭ·ͮ͘ • εΫϦʔϯγϣοτΛऔΔϥΠϒϥϦͷબఆͰͭ·ͮ͘ • ςετίʔυͷKotlinԽͰͭ·ͮ͘ • GradleɺyamlϑΝΠϧͷॻ͖ํʹͭ·ͮ͘

Slide 16

Slide 16 text

ࢼߦࡨޡͨ͠ • androidTest༻ͷManifestϑΝΠϧΛ࡞ͬͯ minSdkVersionΛΦʔόʔϥΠυͯ͠มߋ͢Δ ඞཁ͕͋ͬͨ • debugDevelopmentͱ debugDevelopmentAndroidTestͷapkϑΝΠ ϧΛ࡞Δඞཁ͕͋ͬͨ

Slide 17

Slide 17 text

ϝϞ • Jenkins×OpenSTF×FacebookScreenshotͰ࡞ͬͨΓ͔͕ͨͬͨ͠ OpenSTF͕҆ఆ͠ͳ͍Β͘͠ɺ࣮༻తͰ͸ͳ͍Β͍͠ by ΫοΫύου • Genymotion on Demand͕͍͍Β͍͠ by ΫοΫύου • SpoonͱFacebookScreenshot͸ಋೖͰ͖ͨ΋ͷͷɺϏϧυλΠϓͷࢦఆ ΍ϨϙʔτϑΝΠϧ΍εΫγϣͷॻ͖ग़͠৔ॴͷࢦఆͷ࢓ํ͕ෳࡶͰ্ख ͍͔͘ͳ͔ͬͨ • Ϟδϡʔϧ෼͚΋·ͩ·ͩෆ໌ྎͳ෦෼͕ଟ͍ • AndroidStudio͔ΒϏϧυ͢Δͱςετ੒ޭ͢Δ͕ɺcronͰճ͢ͱ FacebookͱTwitterͷςετ্͕ख͍͔͘ͳ͍