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

DevLove関西: E2E ゼロから自動まで、テストの旅

DevLove関西: E2E ゼロから自動まで、テストの旅

サビースはほとんどPHPなのでCodeceptionテストフレムワークとJenkins Pipelineを紹介させていただきたいと思います。
そして技術や人間関係での課題や感じたこと、中で改善してきた事をお話したいと思います。
クリーンなサービス、バグなしをデプロイするようにクックビズのゼロから自動までテストの旅を発表します

Avatar for Shenril

Shenril

July 22, 2016
Tweet

Other Decks in Programming

Transcript

  1. ✦ όλʔϧɹϑϩϥϯɹɿ̏̌ࡀ ✦ Twitter : @shenril ✦ ϑϥϯεਓ, ೔ຊʹॅΜͰɹɿ̎೥ ✦

    ݩʑηΩϡϦςΟʔΤϯδχΞ ✦ ࠷ۙDevOpsʹΊͬͪΌڵຯ͋Γ·͢ ✦ Πϯϑϥʴ։ൃͷϚϦΞʔδϡ ✦ ࢓ࣄ͸PHPɺ৺͸Python ࣗݾ঺հɿBatard Florent Who am i ?
  2. 1)15FTUJOH'SBNFXPSL Codeception ✦ ςετϑϨʔϜϫʔΫ ✦ 6OJU5FTUT ✦ 'VODUJPOBM5FTUT ✦ "DDFQUBODF5FTUT

    ✦ #FIBWJPVS5FTUT (IFSLJO/&8  ✦ ؆୯ ✦ ॻ͖΍͍͢ ✦ ಡΈ΍͍͢ ✦ σόοά͠΍͍͢ ✦ ϞδϡʔϧΛॻ͚·͢ ✦ Ϟμϯ΍ϨΨγʔͰ΋ߦ͚·͢ IUUQXXXDPEFDFQUJPODPN
  3. ྑ͍ͱ͜Ζ Codeception ✦ 1)16OJU#BTFE ✦ #%%ςετ ✦ 8FC4FSWJDFTͱ"1*ςετ 40"13&459.-31$ 

    ✦ ϨϙʔτΛ࡞੒ )5.-9.-+40/  ✦ ͨ͘͞Μͷ΢ΣϒϑϨʔϜϫʔΫϞδϡʔϧ ✦ ؆୯ʹࣗ෼ͷϓϥΪϯΛ࡞Ε·͢ ✦ $*πʔϧͷ౷߹ +FOLJOT#BNCPP  ✦ ೉͍͠+BWB4DSJQUͷ৔߹͸4FMFOJVN8FC%SJWFS࢖͑·͢
  4. Acceptance Tests Functional Tests Unit Tests Backend Frontend Browser Selenium

    PhantomJS HTML HTML $_GET,$_POST, $_REQUEST Module Backend Architecture 5FTUJOH-FHBDZ
  5. ॻ͖ํ Codeception <?php $I = new AcceptanceTester($scenario); $I->wantTo('create wiki page');

    $I->amOnPage('/'); $I->click('Pages'); $I->click('New'); $I->see('New Page'); $I->fillField('title', 'Hobbit'); $I->fillField('body', 'By Peter Jackson'); $I->click('Save'); $I->see('page created'); $I->see('Hobbit','h1'); $I->seeInCurrentUrl('pages/hobbit'); $I->seeInDatabase('pages', [‘title' => ‘Hobbit’]); ?>
  6. Step 1 ΫοΫϏζͷ࣮૷ ✦ "DDFQUBODFͰ࢝Ί·ͨ͠ ✦ 1IQ#SPXTFS 4FMFOJVN 41ςετ ✦

    (*5QVTIͷલʹखͰ࣮ߦ͢Δ ✦ ࣮૷࣌ؒ݁ߏ͔͔Γ·ͨ͠ˠϲ݄ ✦ 4FMFOJVNͷςετ͸ෆ҆ ✦ ͕࣌ؒɻɻɻɻ̍࣌ؒ ✦ 1)1#SPXTFS ෼  ✦ 4FMFOJVN1$ ෼  ✦ 4FMFOJVN41 ෼
  7. ՝୊ ✦ ࣗಈʹͳΓ·ͨ͠ ✦ ίʔυ඼࣭ݟ͑·ͨ͠ ✦ ϦϦʔεͷϖʔε΋ܭΕ·ͨ͠ʂDPNNJU਺ ✦ Ͱ΋·͔͔ͩ̍࣌ؒΓ·͢ɻɻɻɻ ✦

    +FOLJOTདྷ·ͨ͠ʂʂ ✦ ύϥϨϧ࣮ߦग़དྷΔ ✦ $*͸ίʔυεςοϓʹͳΓ·ͨ͠ 1JQFMJOF
  8. Groovy TUBHF5FTUJOH QBSBMMFM UFTU$VJ\ TIBOUUFTUJOH%FOW\UFTUFOW^ QVCMJTI)5.- UBSHFU<BMMPX.JTTJOHGBMTF BMXBZT-JOL5P-BTU#VJMEUSVF LFFQ"MM GBMTF

    SFQPSU%JSDPEFDFQUDVJUFTUT@PVUQVU SFQPSU'JMFTSFQPSUIUNM SFQPSU/BNF $6*Ϧϙʔτ>  ^ UFTU4FMFOJVN\ TIBOUUFTUTFMFOJVNQD%FOW\UFTUFOW^ QVCMJTI)5.- UBSHFU<BMMPX.JTTJOHGBMTF BMXBZT-JOL5P-BTU#VJMEUSVF LFFQ"MM GBMTF SFQPSU%JSDPEFDFQUTFMFOJVNUFTUT@PVUQVU SFQPSU'JMFTSFQPSUIUNM  SFQPSU/BNF4FMFOJVNϦϙʔτ>  ^ 
  9. Groovy ✦ ग़དྷΔࣄ ✦ ύϥϨϧ ✦ 4)΍"OUίϚϯυ ✦ 1MVHJOΛݺͿ ✦

    (JU.VMUJ#SBODIFTςετ ✦ ϢʔβʔμΠΞϩά ✦ "OUͷ௨Γ+FOLJOT'JMFग़དྷ·͢ʂ ✦ IUUQTKFOLJOTJPEPDQJQFMJOF
  10. ·ͱΊ ✦ खಈ͔Β ✦ ̍࣌ؒࣗಈςετग़དྷ·ͨ͠ ✦ QVTI͔ΒύϥϨϧͰ̎̌෼·Ͱग़དྷ·ͨ͠ ✦ 5%%ͱࣗಈ͢ΔΑ͏ʹɺจԽ͸େࣄʂ͘͢͝େࣄʂ ✦

    ࣗಈԽग़དྷ͔ͨΒ৭ʑͳࣄ͕ݟ͖͑ͯ·ͨ͠ɺϖʔεɺ඼࣭ɻɻ ✦ 4FMFOJVN͸ศར͚Ͳͨ·ʹਏ͍ʂ ✦ ςετνʔϜແ͠Ͱϝϯςφϯε͸೉͍͠ ✦ ΠϯϑϥΤϯδχΞແ͠Ͱվળ͸͔͔࣌ؒΓ·͢ ✦ πʔϧ͋Ε͹ɺ࢖ͬͯɺͳ͚Ε͹࡞ͬͯʂ
  11. ࣍ͷ՝୊ ✦ "DDFQUBODFςετ͔Β'VODUJPOBMͱ6OJUΛ࢖͏ ✦ ࣗಈηΩϡϦςΟςετ ✦ ϩʔΧϧͷ%PDLFS؀ڥ ✦ #MVF(SFFOσϓϩΠ ✦

    4FMFOJVNΛແ͘͢ɺ1IBOUPN+4Λ΍ͬͯΈΔ ✦ "TQFDUͱ#FIBWJPSςετˠ(IFSLJO ✦ $PEFDFQUJPOΛ΋ͬͱ೔ຊޠ'SJFOEMZʹ͢Δʂ