Slide 1

Slide 1 text

&&UFTUJOHPO3BJMT !:VTVLF*XBLJ,BJHJPO3BJMT

Slide 2

Slide 2 text

&&UFTUJOHPO3BJMT ຊ೔ͷ͓୊

Slide 3

Slide 3 text

&OEUP&OEUFTUJOH ɾ3BJMT͔ΒγεςϜςετ͕࢖͑Δ ɾ$BQZCBSB 4FMFOJVNͰॻ͘ϒϥ΢βςετ ˠ͓ੈࣙʹ΋։ൃମݧ͕ྑ͍ͱ͸ݴ͑ͳ͍ɻ ͋ʔɺ͜ΕམͪΔςετͳɻ ϦτϥΠɹΆͪͬ

Slide 4

Slide 4 text

γεςϜςετղ๤ֶ ͳͥςετ͕ෆ҆ఆʹͳΔͷ͔ɺͲ͏ରॲ͢Ε͹Α͍ͷ͔Λߟ࡯ͨ͠ɻ IUUQTLBJHJPOSBJMTPSHUBMLT:VTVLF*XBLJ

Slide 5

Slide 5 text

ੈͷதͷྲྀΕ͸/PEFKTʹ IUUQTTUBSIJTUPSZDPNUFBNDBQZCBSBDBQZCBSBDZQSFTTJPDZQSFTTNJDSPTPGUQMBZXSJHIU%BUF /PEFKTϕʔεͷςετϥϯφʔΛओ࣠ͱͯ͠ 3BJMTͱͲͷΑ͏ʹڠௐ͍͔ͤͯ͘͞ʁΛߟ͑Δɻ

Slide 6

Slide 6 text

ຊ೔࿩͢͜ͱɾ࿩͞ͳ͍͜ͱ w࿩͢͜ͱ w3BJMTͷγεςϜςετͷಈ͖ wطଘͷ࢓૊Έ wDZQSFTTPOSBJMT DZQSFTTSBJMT w/PEFKTϕʔεͷςετϥϯφʔͱڠௐͤ͞ΔͨΊʹɺ3BJMT͕Ͱ͖Δ͜ͱ w࿩͞ͳ͍͜ͱ w̋̋ϥΠϒϥϦ࢖͏ͱ͍͍Αʙ wෆ҆ఆͳςετΛͳ͘͢ʹ͸˚˚ͨ͠΄͏͕͍͍Αʙ

Slide 7

Slide 7 text

3BJMTͷγεςϜςετ͓͞Β͍

Slide 8

Slide 8 text

3BJMTͷγεςϜςετ 3BJMTىಈˠϒϥ΢βىಈˠࣗಈૢ࡞

Slide 9

Slide 9 text

34QFD ͜ͷஈ֊Ͱ͸ 3BJMTαʔόʔ΋ ϒϥ΢β΋ىಈ͍ͯ͠ͳ͍

Slide 10

Slide 10 text

34QFD ॳΊͯ$BQZCBSB%4-Λ࢖͏৔ॴ 3BJMTαʔόʔىಈ ϒϥ΢βىಈ

Slide 11

Slide 11 text

,BJHJPO3BJMTγεςϜςετղ๤ֶɹͷεϥΠυ͔Βൈਮ 3BJMTαʔόʔىಈ

Slide 12

Slide 12 text

$BQZCBSBTFMFOJVNESJWFS DBQZCBSBQMBZXSJHIUESJWFS ϒϥ΢βىಈ

Slide 13

Slide 13 text

MPDBMIPTUMPHJO $BQZCBSB #SPXTFS υϥΠό $BQZCBSB 4FTTJPO WJTJU WJTJU WJTJU υϥΠόͷ ࣮૷ʹΑΔ (&5MPHJO MPDBMIPTUMPHJO -PHJO

Slide 14

Slide 14 text

MPDBMIPTUMPHJO $BQZCBSB #SPXTFS υϥΠό $BQZCBSB 4FTTJPO pMM@JO pMM@JO pOE TFU -PHJO MPDBMIPTUMPHJO -PHJO JOQVU :VTVLF*XBLJ

Slide 15

Slide 15 text

MPDBMIPTUMPHJO $BQZCBSB υϥΠό pMM@JO pOE TFU -PHJO JOQVU MPDBMIPTUMPHJO -PHJO :VTVLF*XBLJ

Slide 16

Slide 16 text

MPDBMIPTUMPHJO υϥΠό pOE DMJDL -PHJO CVUUPO MPDBMIPTUMPHJO MPDBMIPTUMPHJO -PHJO :VTVLF*XBLJ $BQZCBSB DMJDL@CVUUPO

Slide 17

Slide 17 text

MPDBMIPTUTFTTJPOT MPDBMIPTUEBTICPBSE MPDBMIPTUEBTICPBSE -PHJO 1045TFTTJPOT (&5EBTICPBSE  $BQZCBSB υϥΠό HPUP WJTJU ϩάΠϯ׬ྃΛ଴ͨͣʹ࣍ʹਐΉ ͓ͬͱɾɾɾ

Slide 18

Slide 18 text

$BQZCBSB υϥΠό IBWF@UFYU pOE@YQBUI MPDBMIPTUEBTICPBSE %"4)#0"3%

Slide 19

Slide 19 text

34QFD 3FQPSU $POTPMF "MMVSFSFQPSU

Slide 20

Slide 20 text

1MBZXSJHIUςετϥϯφʔ w OQYDSFBUFQMBZXSJHIU OQNJOJUQMBZXSJHIU Ͱ؀ڥߏங w QMBZXSJHIUDPO fi HUTͰ8FCαʔόʔ΍ςετϒϥ΢β؀ڥΛهड़ w 1Z5FTUͬΆ͍ fi YUVSFTΛར༻ͨ͠ςετσʔλੜ੒

Slide 21

Slide 21 text

QMBZXSJHIUDPO fi HUT w QSPKFDUTͰ؀ڥهड़ w $ISPNJVN 'JSFGPY 8FC,JUʹɹ ΑΔςετ w XFC4FSWFSͰςεταʔόʔهड़ w ෳ਺αʔόʔىಈ΋Մೳ

Slide 22

Slide 22 text

ςεταʔόʔىಈ

Slide 23

Slide 23 text

ϒϥ΢βىಈ

Slide 24

Slide 24 text

ࣗಈૢ࡞ :VTVLF*XBLJ ͳΜͯ஌Βͳ͍Αʁ

Slide 25

Slide 25 text

MPDBMIPTUMPHJO -PHJO :VTVLF*XBLJ ਖ਼͍͠৘ใΛೖྗ͍ͯͩ͘͠͞

Slide 26

Slide 26 text

3FQPSU -JOF "MMVSFSFQPSU )UNM ;JQ

Slide 27

Slide 27 text

1MBZXSJHIUςετϥϯφʔ w OQYDSFBUFQMBZXSJHIU OQNJOJUQMBZXSJHIU Ͱ؀ڥߏங w QMBZXSJHIUDPO fi HUTͰ8FCαʔόʔ΍ςετϒϥ΢β؀ڥΛهड़ w 1Z5FTUͬΆ͍ fi YUVSFTΛར༻ͨ͠ςετσʔλੜ੒

Slide 28

Slide 28 text

1Z5FTUͷ'JYUVSFT

Slide 29

Slide 29 text

1Z5FTUͷ'JYUVSFT ґଘ͢ΔϑΟΫενϟΛݺͼग़͠ ґଘ͢ΔϑΟΫενϟΛݺͼग़͠ ґଘ͢ΔϑΟΫενϟΛݺͼग़͠

Slide 30

Slide 30 text

1Z5FTUͷ'JYUVSFT ϑΟΫενϟͷޙॲཧ΋ॻ͚Δ 34QFDͩͱ #&(*/30--#"$, Ͱશ෦ϩʔϧόοΫ͢Δͷ͕ৗ

Slide 31

Slide 31 text

1MBZXSJHIUͷ fi YUVSFT ґଘ͢ΔϑΟΫενϟΛݺͼग़͠

Slide 32

Slide 32 text

ͦ͏͸͍ͬͯ΋ ϑΝΫτϦͱϞοΫ͸࢖͍͍ͨʜ ຊ౰ʹ'JSFCBTFϓογϡΛૹΔΘ͚ʹ͸͍͔ͳ͍ 'BDUPSZ#PUͷఆٛ͸࠶ར༻͍ͨ͠

Slide 33

Slide 33 text

طଘϥΠϒϥϦ͕ ͲΜͳ޻෉͍ͯ͠Δ͔ݟͯΈΔ

Slide 34

Slide 34 text

طଘϥΠϒϥϦ w DZQSFTTSBJMT w DZQSFTTPOSBJMT

Slide 35

Slide 35 text

DZQSFTTSBJMT w 1VNB ςεταʔόʔ $ZQSFTTηοτͷಠࣗςετ؀ڥΛཱͯΔ w SBLFDZQSFTTYYYͱ͍͏DZQSFTTϥοϓίϚϯυ͕༻ҙ͞Ε͍ͯΔɻ w σϑΥϧτͰ͸3"*-4@&/7UFTUͰαʔόʔىಈ w 1VNBαʔόʔىಈ෦෼͸ɺ$BQZCBSBͷίʔυͷίϐʔ࣮૷ w 5SBOTBDUJPOBM5FTUΛߦ͏ɻ%#ίωΫγϣϯڞ༗ʢMPDL@UISFBEʣ͸ɹɹ ΄ͱΜͲ"DUJWF3FDPSEͷίʔυͷίϐʔ࣮૷

Slide 36

Slide 36 text

DZQSFTTSBJMT 1VNB ಠࣗϛυϧ΢ΣΞ SBLFDZQSFTTSVO (&5@@JEFOUJUZ@@ ϧʔτఆٛ ىಈ׬ྃ͢Δ·ͰϙʔϦϯά (&5@@JEFOUJUZ@@ (&5DZQSFTT@SBJMT@SFTFU@TUBUF ϧʔτఆٛ 3"*-4@&/7UFTUͰαʔόʔىಈ $ZQSFTTىಈ DZQSFTTSVO beforeEach(() => { cy.request('/cypress_rails_reset_state') }) GET /cypress_rails_reset_state GET /cypress_rails_reset_state UFTU %# ROLLBACK BEGIN ROLLBACK BEGIN reset_stateϦΫΤετΛड͚ͨ ࣍ͷHTTPϦΫΤετ࣌ʹ ROLLBACKͱBEGIN͢Δ

Slide 37

Slide 37 text

DZQSFTTPOSBJMT w ͋ͳͨͷ3BJMTΞϓϦέʔγϣϯΛɺ$ZQSFTT΍1MBZXSJHIUͱର޲ͤ͞ΔͨΊͷ ςεταʔόʔʹ͢Δ͚ͩ w 3BJMTαʔόʔ͸खͰىಈ͢Δɻ w 3BJMTଆʹίϯτϩʔϧ༻ͷΤϯυϙΠϯτΛੜ΍͚ͩ͢ w 'BDUPSZ#PUΛݺͼग़͢ΤϯυϙΠϯτGBDUPSZ@CPU w ೚ҙͷ3BJMTίʔυΛ࣮ߦͰ͖ΔΤϯυϙΠϯτFWBM w %BUBCBTF$MFBOFSΛ࢖ͬͯɺςετσʔλΛ࡟আ͢ΔΤϯυϙΠϯτDMFBO

Slide 38

Slide 38 text

DZQSFTTPOSBJMT ಠࣗϛυϧ΢ΣΞ $:13&44CJOSBJMTTFSWFS (&5@@FF@@DPNNBOE ϧʔτఆٛ ɾFactoryBot ݺͼग़͠ ɾ೚ҙͷίϚϯυ࣮ߦ ɾσʔλ clean ςετπʔϧ͸/PEFKTͷ΋ͷΛͦͷ··࢖͏ ඞཁͳλΠϛϯάͰ )551ΞΫηεͯ͠ݺͼग़͠

Slide 39

Slide 39 text

ͦ͏͸͍ͬͯ΋ ϑΝΫτϦͱϞοΫ͸࢖͍͍ͨʜ ຊ౰ʹ'JSFCBTFϓογϡΛૹΔΘ͚ʹ͸͍͔ͳ͍ 'BDUPSZ#PUͷఆٛ͸࠶ར༻͍ͨ͠

Slide 40

Slide 40 text

ϞοΫελϒ w 34QFDͩͱಛఆͷςετͷ͚ؒͩϝιουͷڍಈΛม͑Δ͜ͱ͸Ͱ͖Δ w BMMPX@BOZ@JOTUBODF@PGʜ 3F fi OFNFOUT ͳͲ w (&5IPHF͞Ε͔ͯΒ(&5GVHB͞ΕΔ·ͰϞοΫ͸Ͳ͏͢Δɾɾɾʁ w ຊ౰ʹͳ͍ͳΒࣗ෼Ͱ࡞Δ͔͠ͳ͍ʜ

Slide 41

Slide 41 text

TJNQMF@TUVC ಠࣗϛυϧ΢ΣΞ ςετલ४උ DVSSFOU@VTFSΛϞοΫ ςετલ४උ VTFSΛ̍ਓ࡞੒ ςετޙॲཧ DVSSFOU@VTFSϞοΫղআ 1045@@FF@@FWBM 4JNQMF4UVCGPS@JOTUBODF@NFUIPE  "QQMJDBUJPO$POUSPMMFS  DVSSFOU@VTFS \6TFS fi STU^BQQMZ 1045@@FF@@FWBM 4JNQMF4UVCGPS@JOTUBODF@NFUIPE  "QQMJDBUJPO$POUSPMMFS  DVSSFOU@VTFS \6TFS fi STU^SFTFU

Slide 42

Slide 42 text

1MBZXSJHIUͷ fi YUVSFTͰϞοΫΛ࣮ݱ ಠࣗϛυϧ΢ΣΞ ςετલ४උ VTFSΛ̍ਓ࡞੒ ςετલ४උ DVSSFOU@VTFSΛϞοΫ ςετޙॲཧ DVSSFOU@VTFSϞοΫղআ +PIO

Slide 43

Slide 43 text

1MBZXSJHIUͷ fi YUVSFTͰϞοΫΛ࣮ݱ ಠࣗϛυϧ΢ΣΞ ςετલ४උ VTFSΛ̍ਓ࡞੒ ςετલ४උ DVSSFOU@VTFSΛϞοΫ ςετޙॲཧ DVSSFOU@VTFSϞοΫղআ +PIO $VSSFOUVTFS

Slide 44

Slide 44 text

1MBZXSJHIUͷ fi YUVSFTͰϞοΫΛ࣮ݱ ಠࣗϛυϧ΢ΣΞ ςετલ४උ VTFSΛ̍ਓ࡞੒ ςετલ४උ DVSSFOU@VTFSΛϞοΫ ςετޙॲཧ DVSSFOU@VTFSϞοΫղআ +PIO $VSSFOUVTFS +PIO

Slide 45

Slide 45 text

1MBZXSJHIUͷ fi YUVSFTͰϞοΫΛ࣮ݱ ಠࣗϛυϧ΢ΣΞ ςετલ४උ VTFSΛ̍ਓ࡞੒ ςετલ४උ DVSSFOU@VTFSΛϞοΫ ςετޙॲཧ DVSSFOU@VTFSϞοΫղআ +PIO

Slide 46

Slide 46 text

3BJMTΒ͘͠ɺϞοΫ΍ϑΝΫτϦΛ׆༻ͭͭ͠ /PEFKTϕʔεͷϥϯφʔͰςετͰ͖ͨʂʂ ʘ ?P? ʗ

Slide 47

Slide 47 text

ʂ

Slide 48

Slide 48 text

ʂ ಠࣗϛυϧ΢ΣΞ +PIOΛ࡞੒ͯ͠ $VSSFOUVTFSʹ *%:VTVLF*XBLJ 1BTT  ͰϩάΠϯ %BTICPBSETQFD -PHJOTQFD +PIO $VSSFOUVTFS

Slide 49

Slide 49 text

ʂ ಠࣗϛυϧ΢ΣΞ +PIOΛ࡞੒ͯ͠ $VSSFOUVTFSʹ *%:VTVLF*XBLJ 1BTT  ͰϩάΠϯ %BTICPBSETQFD -PHJOTQFD +PIO $VSSFOUVTFS /PEFKTϕʔεͷςετϥϯφʔ͸ ϊϯϒϩοΩϯά*0ϑϧ׆༻ جຊతʹ͸ฒྻςετʂ

Slide 50

Slide 50 text

ʂ ಠࣗϛυϧ΢ΣΞ +PIOΛ࡞੒ͯ͠ $VSSFOUVTFSʹ *%:VTVLF*XBLJ 1BTT  ͰϩάΠϯ %BTICPBSETQFD -PHJOTQFD +PIO $VSSFOUVTFS $BQZCBSBͷͱ͖ʹฒྻ࣮ߦͳΜͯ ҙࣝͯ͠ॻ͍ͯͳ͔ͬͨʜPS[

Slide 51

Slide 51 text

ςετϫʔΧʔ͝ͱʹର޲αʔόʔΛม͍͑ͨ %BTICPBSETQFD -PHJOTQFD ಠࣗϛυϧ΢ΣΞ %# ಠࣗϛυϧ΢ΣΞ %# +PIO $VSSFOUVTFS :VTVLF*XBLJ

Slide 52

Slide 52 text

ςετϫʔΧʔ͝ͱʹର޲αʔόʔΛม͍͑ͨ %BTICPBSETQFD -PHJOTQFD ಠࣗϛυϧ΢ΣΞ %# ಠࣗϛυϧ΢ΣΞ %# +PIO $VSSFOUVTFS :VTVLF*XBLJ

Slide 53

Slide 53 text

4IBSEJOHͰແཧ΍ΓฒྻԽʜ %BTICPBSETQFD -PHJOTQFD ಠࣗϛυϧ΢ΣΞ %# ಠࣗϛυϧ΢ΣΞ %# +PIO $VSSFOUVTFS :VTVLF*XBLJ OQYQMBZXSJHIUUFTU ŠTIBSEŠSFQPSUFSCMPC OQYQMBZXSJHIUUFTU ŠTIBSEŠSFQPSUFSCMPC 1035  1035 

Slide 54

Slide 54 text

4IBSEJOHͰແཧ΍ΓฒྻԽʜ %BTICPBSETQFD -PHJOTQFD ಠࣗϛυϧ΢ΣΞ %# ಠࣗϛυϧ΢ΣΞ %# +PIO $VSSFOUVTFS :VTVLF*XBLJ OQYQMBZXSJHIUUFTU ŠTIBSEŠSFQPSUFSCMPC OQYQMBZXSJHIUUFTU ŠTIBSEŠSFQPSUFSCMPC QPSU  QPSU  ίϨδϟφΠײ ฒྻςετ͸ըظత͕ͩɺզʑʹ͸·ͩ଎͗͢Δɻ

Slide 55

Slide 55 text

·ͣ͸௚ྻςετ͔Β࢝ΊΑ͏

Slide 56

Slide 56 text

·ͱΊ&OEUP&OEUFTUJOHPO3BJMT ɾ3BJMTΞϓϦέʔγϣϯΛ/PEFKTϕʔεͷςετϥϯφʔ Ͱ3BJMTͬΆ͍΍Γ͔ͨͰγεςϜςετ͢Δํ๏Λߟ࡯ͨ͠ ɾ3BDLϛυϧ΢ΣΞͰɺίϯτϩʔϧ༻ΤϯυϙΠϯτΛ༻ ҙ͢Δ͚ͩͰɺ1MBZXSJHIUςετϥϯφʔͷ։ൃମݧͷྑ͞ Λڗड͢Δ͜ͱ͸Ͱ͖ͨɻ ɾͨͩ͠ฒྻςετ͸·ͩզʑʹ͸ૣ͔ͬͨʜɻ௚ྻςετ ͔Β࢝ΊͯΈΑ͏ɻ

Slide 57

Slide 57 text

એ఻1MBZXSJHIUΛ3VCZ͔Β࢖͑Δ044 ɾͦ͏͸͍ͬͯ΋ɺ$BQZCBSBͰ1MBZXSJHIU࢖͍͍ͨΑͶX w 1MBZXSJHIUΛ3VCZ͔Β࢖͑ΔΑ͏(FN։ൃ͍ͯ͠·͢ɻ ͥͻ࢖ͬͯΈ͍ͯͩ͘͞ˍ࣮ӡ༻Ͱվળ఺͕͋Ε͹ͲΜͲΜཁ๬͍ͩ͘͞ʂ

Slide 58

Slide 58 text

͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠