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

テストを書くか書かないかの状況判断 / Deciding whether to write tests - DeNA Tech Talk

テストを書くか書かないかの状況判断 / Deciding whether to write tests - DeNA Tech Talk

2014/12/09 に DeNA 社内勉強会にお招きいただいて話した内容です

9f3a83db74bee75a64b5e6ed106a775c?s=128

Takuto Wada
PRO

December 09, 2014
Tweet

More Decks by Takuto Wada

Other Decks in Programming

Transcript

  1. ςετΛॻ͔͘ ॻ͔ͳ͍͔ͷ ঢ়گ൑அ ࿨ా୎ਓ BLBJEUXBEBPS!U@XBEB  %FD !%F/"

  2. ࿨ా୎ਓ JEUXBEB !U@XBEB HJUIVCUXBEB

  3. None
  4. ֤ॴͰ໠ҖΛৼΔ͏U@XBEBQOH ͪͳΈʹ͜ͷίϥը૾Λ࡞ͬͨͷ͸!ZPTVLF@GVSVLBXB

  5. ΑΖ͘͠ ͓ئ͍͠·͢

  6. lςετΛॻ͘ ͕࣌ؒແ͍z

  7. ετϨε ςετ ετϨεͱࣗಈςετͷJO fl VFODFEJBHSBN 5%%CZ&YBNQMFΑΓ നؙ෇͖໼ҹෛͷ઀ଓࠜݩ͕૿͑Ε͹ઌ͸ݮΔɻࠜݩ͕ݮΕ͹ઌ͸૿͑Δ

  8. ࣗಈςετ ετϨε ετϨεͱࣗಈςετͷJO fl VFODFEJBHSBN 5%%CZ&YBNQMFΑΓ നؙ෇͖໼ҹෛͷ઀ଓࠜݩ͕૿͑Ε͹ઌ͸ݮΔɻࠜݩ͕ݮΕ͹ઌ͸૿͑Δ

  9. ςετΛॻ͕࣌ؒ͘ͳ͍ͷͰ ͸ͳ͘ɺςετΛॻ͔ͳ͍͔ Β͕࣌ؒͳ͘ͳΔͷͰ͢ɻ

  10. ͲΜͳͱ͖ςετ Λશ͘ॻ͔ͳ͍͔

  11. wϫϯϥΠφʔ wҰճݶΓͷεΫϨΠϐϯά wσϞ౳ʹ࢖͏ίʔυ wͨͩ͠ɺ࣮ߦճ਺͕໰୊Ͱ͸ͳ͍ wҰճݶΓͷσʔλҠߦεΫϦϓτʹ͸ ςετΛॻ͘ ॻ͖ࣺͯͷίʔυ

  12. wςετʹΑΔ҆ఆͨ͠ϑΟʔυόοΫϧʔϓ Λ࡞Δલஈ֊ w৽͍͠ϑϨʔϜϫʔΫΛࢼ͍ͯ͠Δஈ֊ͳͲ ΋ؚ·ΕΔ wςετΑΓ΋଎͍ϑΟʔυόοΫ͕ཉ͍͠ w3&1-΍σόοΨͰֶΜͩ͜ͱΛςετʹ ຋༁͍ͯ͘͠ w࠶ݱੑΛςετͰิڧ͢ΔΠϝʔδ ࢼߦࡨޡஈ֊ͷͱ͖

  13. 8IZ ސ٬͸ԿނͦΕΛཉ ͍ͯ͠Δͷ͔ 8IBU ԿΛ࡞Ε͹ ྑ͍ͩΖ͏͔ )PX Ͳ͏࡞Ε͹ ྑ͍ͩΖ͏͔ සൟͳϦϦʔεͱσϞ

    ड͚ೖΕςετ Ϣχοτςετ Ӭ࿨γεςϜϚωδϝϯτՈӬࢯͷࢿྉΑΓ ର࿩؀ڥ౳ʹΑΔࢼߦࡨޡΛ͍ͯ͠Δͱ͖
  14. IUUQTXXXGBDFCPPLDPNOPUFTLFOUCFDLXIFOUEEEPFTOUNBUUFS

  15. ͲΜͳςετΛ ॻ͔ͳ͍Α͏ʹ͠ ͍ͯΔ͔

  16. wςετର৅Ҏ֎͕ϞοΫ wςετ࣮ߦΛ଎͘͢ΔͨΊ͚ͩͷϞοΫ wதؒϨΠϠͷʮϢχοτʯςετ wͨͱ͑͹ίϯτϩʔϥͷςετ wΧόϨοδ޲্ૂ͍ͷςετ wQSJWBUFϝιουͷςετ౳ खஈͷ໨తԽ

  17. wݴޠ΍ϑϨʔϜϫʔΫɺج൫ͷςετ wࣗಈੜ੒ͨ͠··ͷίʔυͷςετ wը໘ϨΠΞ΢τΛϐΫηϧϨϕϧͰ ৺഑ੑ͗͢Δςετ

  18. w৺഑͕ୀ۶ʹมΘΔ·Ͱςετ͢Δ wୀ۶͞ͱٛ຿ײΛײ͡ΔͳΒͦΕΛϓϩά ϥϛϯάର৅ʹ͢ΔɻͰ͖ͳ͚Ε͹΍ΊΔ w5%% ςετϑΝʔετʹͩ͜ΘΒͳ͍ w͋ͱ͔ΒςετΛॻ͍ͯ΋શ͔͘·Θͳ͍ wͰ͖Ε͹ͦͷ೔ͷ͏ͪʹॻ͍͓͖͍ͯͨ ٛ຿ײʹ͔ΒΕͨςετ

  19. ςετΛॻ͔ͳ͍ ٕज़

  20. Y6OJU5FTU1BUUFSOTΑΓ ςετͷϝϯςφϯείετ ཧ૝ ݱ࣮

  21. wίʔυߦ਺ςετίʔυߦ਺Λ໨ࢦͯ͠ΈΔ w·͋ී௨ͦ͜·Ͱ͍͔ͳ͍͕ɺ͕ࠩۃ୺ʹ։͖͗͢ ͳ͍Α͏ʹ͢Δ wϨΠϠؒॏෳΛݮΒ͢ wϨΠϠؒͷςετ಺༰ॏෳ͸Ұճ·Ͱͱ͢ΔɻͦΕ Ҏ্ͷॏෳ͸ঢ়گʹΑΔ wਖ਼ৗܥͷओཁಋઢ͸&&ʹدͤɺྫ֎ܥʹͳΔ΄ ͲϢχοτςετʹدͤΔ ςετΛॻ͖͗͢ͳ͍ͨΊʹ

  22. w੩తݕূΛຯํʹ෇͚Δ wࢲ͕ͨͪΑ͘ʮςετίʔυʯͱݺΜͰ͍Δ ΋ͷ͸ʮಈతςετʯɻର৅ίʔυΛಈ͔͠ ͯςετ͢Δ wର৅ίʔυΛಈ͔ͣ͞ʹςετ͢Δͷ͕੩ తݕূ wMJOU͔Βڧ͍੩తܕ෇͚·Ͱ͍Ζ͍Ζ ςετΛॻ͖͗͢ͳ͍ͨΊʹ

  23. wϨΠϠͱந৅౓දݱྗΛϦϯΫͤ͞Δ w֎෦͔Βͷςετ͸දݱྗ๛͔Ͱ୹͘ॻ͚ ΔΑ͏ʹ w%4-΍ผݴޠͰ΋ྑ͍ wϢχοτςετ͸ςετର৅ͱಉ͡ݴޠ ͰɺϞοΫ౳ΛͳΔ΂͘࢖Θͣɺͦͷ·· αϯϓϧίʔυͱͳΔΑ͏ʹॻ͘ ςετΛॻ͖͗͢ͳ͍ͨΊʹ

  24. .BLFFBDIQSPHSBNEPPOFUIJOHXFMM IUUQTHJUIVCDPNTVCTUBDLOPEFGFTU

  25. IUUQTXXX fl JDLSDPNQIPUPTUPNQBHFOFU ςετ͸඼࣭Λ্͛ͳ͍ ମॏܭʹ৐Δ͚ͩͰ͸ ૫ͤͳ͍ͷͱಉ͡

  26. lςετͰ͸඼࣭͸্͕Βͳ͍ Ͱ͢Αɻςετ͸͋͘·Ͱ΋඼ ࣭Λ͋͛Δ͖͔͚ͬɻ඼࣭Λ͋ ͛Δͷ͸ϓϩάϥϛϯάͰ͢ɻ ͜Ε͸େੲ͔Βͦ͏ɻz

  27. ࣗಈςετͷྑ͍ͱ͜Ζ͸ɺ վળΛզຫ͠ͳͯ͘΋ྑ͘ ͳͬͨ͜ͱ

  28. wଈ࠲ʹϑΟʔυόοΫΛಘΔͨΊ wॻ͍ͨίʔυʹࣗ৴Λ࣋ͭͨΊ w͜Ε͔Βॻ͘ίʔυʹࣗ৴Λ࣋ͭͨΊ 5%%΍%FWFMPQFS5FTUJOHʹ ιϑτ΢ΣΞ޻ֶతͳϝϦοτ͸͍Ζ͍ Ζ͋ΕͲɺ࠷େͷཧ༝͸৺ཧతͳ΋ͷ

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