$30 off During Our Annual Pro Sale. View Details »

ハイブリッドアプリの 受け入れテスト自動化

shida
December 06, 2013

ハイブリッドアプリの 受け入れテスト自動化

pgcafe 2013年 忘年会でのLT。

shida

December 06, 2013
Tweet

More Decks by shida

Other Decks in Programming

Transcript

  1. ϋΠϒϦουΞϓϦͷ
    ड͚ೖΕςετࣗಈԽ
    QHDBGF೥๨೥ձ
    ࢤా༟थ
    14೥1݄6೔݄༵೔

    View Slide

  2. ࣗݾ঺հ
    w ࢤా༟थ
    w ೥݄ಠཱ ג
    ϏʔɾΞδϟΠϧ୅ද
    w ΞδϟΠϧɺϦʔϯɾελʔτΞοϓΛ࢖ͬͨελʔ
    τΞοϓͷ͓ख఻͍
    w ٕज़ऀɻ3VCZPO3BJMT΍3VCZ.PUJPOͳͲɺ3VCZ
    ޷͖ɻ
    w $4. $410औಘ
    14೥1݄6೔݄༵೔

    View Slide

  3. ελʔτΞοϓ
    • ৽͍͠ϏδωεϞσϧΛ։ൃ͘͠͝୹࣌ؒͷ͏ͪʹٸ
    ܹͳ੒௕ͱΤΫδοτΛૂ͏ࣄͰҰᏁઍۚΛૂ͏ਓʑ
    ͷҰ࣌తͳू߹ମ (ࢀߟ: http://blog.btrax.com/jp/
    2013/04/22/startup-2/ )
    14೥1݄6೔݄༵೔

    View Slide

  4. ৽͍͠ϏδωεϞσϧ
    • Ϣʔβʔ͕ԿʹۚΛ෷ͬͯ͘ΕΔͷ͔෼͔Βͳ͍
    • ԿͰṶ͚Δ͔ܾ·͍ͬͯͳ͍
    • ԿΛ࡞Δͷ͔ܾ·ͬͯͳ͍
    • ࢼߦࡨޡɺԾઆݕূɺτϥΠΞϯυΤϥʔ
    • ͍͔ʹૉૣ͘ϓϩτλΠϓΛ࡞Γɺૉૣ͘ݕূ͠ɺૉ
    ૣࣦ͘ഊ͠ɺૉૣ͘࢓༷มߋ(ϐϘοτ)͢Δ͔
    14೥1݄6೔݄༵೔

    View Slide

  5. ϋΠϒϦουΞϓϦ
    w ωΠςΟϒΞϓϦͷதʹ8FC7JFXΛຒΊࠐΜͰɺΞϓϦͷத
    ͷҰ෦ ·ͨ͸େ෦෼
    Λ8FCΞϓϦͰ࣮ݱ͢Δ࡞Γํ
    w ΫϩεσόΠεʹ༗ޮ 1$ɺJ04 "OESPJE εϚϗ λϒϨο
    τ

    w ৹ࠪ΍ϢʔβʔͷΞϓϦόʔδϣϯΞοϓ ߋ৽
    Λཁͣ͞ʹස
    ൟʹΞοϓσʔτ ΧΠθϯ
    ͕Մೳ
    w ࢓༷มߋʹ༗ޮ
    w ύϑΥʔϚϯεɺૢ࡞ੑɺ6*ͷ౷ҰײͳͲʹ೉͋Γ
    w ωΠςΟϒͱɺ8FCͷ࢖͍෼͚͕ॏཁ
    14೥1݄6೔݄༵೔

    View Slide

  6. ςετͷࣗಈԽ
    ͞·͟·ͳޮೳ͕͏ͨΘΕ͍ͯΔ͚Ͳʜ
    w සൟͳ࢓༷มߋ͕͓͖ͯ΋ίʔυΛDMFBOʹอͭ
    w ࢓༷มߋΛ୲อ͢Δ
    14೥1݄6೔݄༵೔

    View Slide

  7. 8FC7JFXͱ/BUJWFͷ
    ੾Γ෼͚ྫ
    8FC7JFX
    /BUJWF
    /BUJWF
    5BQ
    "OJNBUJPO
    TFUUJUMF
    14೥1݄6೔݄༵೔

    View Slide

  8. 8FC7JFXͱ/BUJWFͷ࿈ܞͷྫ
    w 8FC7JFX্ͷϦϯΫΛλοϓ
    w /BUJWFଆ͕ͦͷΠϕϯτΛԣऔΓ
    w ͦͷϦϯΫઌΛදࣔ͢Δը໘Λੜ੒ͯ͠ɺ/BUJWFͷػ
    ೳͰը໘ભҠ
    w 8FC7JFXଆ͔Βɺ্෦όʔ /BUJWF
    ͷλΠτϧΛߋ
    ৽ͤ͞Δ
    w /BUJWFͱ8FC7JFXΛߦͬͨΓདྷͨΓ
    w 8FCͱ/BUJWFͦΕͧΕͰͷϢχοτςετͰ͸ςετ
    ͕ෆे෼Ͱɺಈ͖ͷݟ௨͠΋ѱ͍ɻ
    14೥1݄6೔݄༵೔

    View Slide

  9. "QQJVN
    ϞόΠϧΞϓϦͷड͚ೖΕςετࣗಈԽΤϯδϯ
    TFMFOJVN
    8FC%SJWFS
    JSON wire protocol
    (RESTful web service)
    "QQJVN
    J04
    "OESPJE
    UIAutomation
    UiAutomator
    Listen 0.0.0.0:4723
    14೥1݄6೔݄༵೔

    View Slide

  10. σϞ
    w IUUQZPVUVCFC'O3937@7KP
    w "QQJVNΛΠϯετʔϧͯ͠
    w ىಈ͓ͯ͘͠ -JTUFO

    14೥1݄6೔݄༵೔

    View Slide

  11. σϞ
    JSC
    SFRVJSFSVCZHFNT
    SFRVJSFTFMFOJVNXFCESJWFS
    DBQT\CSPXTFS/BNFJ04
    QMBUGPSN.BD
    WFSTJPO
    BQQ"11@1"5)^
    VSMIUUQ\)045^\1035^XEIVC
    PQUT\EFTJSFE@DBQBCJMJUJFTDBQT CSPXTFSSFNPUF VSMVSM^
    ESJWFS4FMFOJVN8FC%SJWFSGPS SFNPUF EFTJSFE@DBQBCJMJUJFTDBQT VSMVSM

    14೥1݄6೔݄༵೔

    View Slide

  12. σϞ
    8FC7JFXʹରͯ͠ΫϦοΫͯ͠ΈΔ
    XFCWJFXESJWFSXJOEPX@IBOEMFT<>
    ESJWFSTXJUDI@UPXJOEPX XFCWJFX

    FMNESJWFSpOE@FMFNFOU DTT ηϨΫλ`

    FMNDMJDL

    14೥1݄6೔݄༵೔

    View Slide

  13. σϞ
    OBUJWFʹରͯ͠஋ΛͱͬͯདྷͯΈΔ
    ESJWFSFYFDVUF@TDSJQU NPCJMFMFBWF8FC7JFX

    FMNESJWFSpOE@FMFNFOU YQBUI OBWJHBUJPO#BS`

    FMNBUUSJCVUF OBNF

    14೥1݄6೔݄༵೔

    View Slide

  14. 3BJMT$VDVNCFS
    "QQJVN
    • Appium͸ɺSeleniumͷϓϩτίϧΛ࢖͍ͬͯΔ͔Β
    Rspec΍Cucumber͔Β࣮ߦͰ͖Δ
    • αʔόʔαΠυ͔ΒCucumber → Capybara →
    Selenium::WebDriver → Appium → UIAutomation →
    ΞϓϦ ͱͯ͠ςετΛ࣮ߦͰ͖Δ
    • Database Cleaner΍ɺFactoryGirlͳͲʹΑΔσʔλϕ
    ʔεͷॳظԽΛͨ͠ޙʹςετΛ࣮ߦͰ͖Δ
    • ϚϧνσόΠεରԠ͍ͯ͠Δ৔߹ɺෳ਺ͷ؀ڥͰಉ͡ς
    ετγφϦΦΛڞ༻ग़དྷΔ(ϫϯιʔε)
    14೥1݄6೔݄༵೔

    View Slide

  15. ·ͱΊ
    • ࢓༷มߋΛ܁Γฦ͢Α͏ͳਐΊํʹ͸ϋΠϒϦουΞϓ
    ϩʔν΍ςετͷࣗಈԽ͕༗ޮ
    • AppiumͰϋΠϒϦουΞϓϦͷςετΛࣗಈԽͰ͖Δ
    • Appium͸SeleniumͷϓϩτίϧΛ࠾༻͍ͯ͠ΔͷͰɺ
    طଘͷΞʔΩςΫνϟʹͦͷ··૊ࠐΉࣄ͕Ͱ͖Δ
    14೥1݄6೔݄༵೔

    View Slide

  16. ͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠
    14೥1݄6೔݄༵೔

    View Slide