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

残して価値のあるテスト設計 / Test design by specification map

残して価値のあるテスト設計 / Test design by specification map

#gotanda.rb 第37回目 で発表したスライドです。

B6ca010a1b12d9c36360b2091b7dcc09?s=128

Yuji Imagawa

June 26, 2019
Tweet

Transcript

  1. ࢒ͯ͠Ձ஋ͷ͋Δ ςετઃܭ 2019-06-26 @ gotanda.rb # 37 Yuji Imagawa (

    @ug23_ )
  2. εϚʔτΩϟϯϓͷࠓ઒Ͱ͢ • ࠓ઒༟࢜ @ug23_ • ΤϯδχΞ4೥໨ • લ৬͕QAΤϯδχΞ • ͍·͸Rails΋΍Δ͠Vue΋΍Δ͠Πϯϑϥ΋΍Δ

    • #tddyyχ ͷͳ͔ͷͻͱ • ؾʹͳ͍ͬͯΔ͜ͱ: Sorbet
  3. ࠓि͔ΒΦϑΟεҠస͠·ͨ͠

  4. We are hiring! ࣄۀΛ૑Γ͍ͨΤϯδχΞืूதͰ͢
 [εϚʔτΩϟϯϓ ΤϯδχΞ] [ݕࡧ]

  5. ࠓ೔ͷςʔϚ RSpec ͱ ςετ

  6. ࢲͷ࿩͸ ςετઃܭͷ࿩ͷ΄͏͕ ϝΠϯͰ͢

  7. ͓͠ͳ͕͖ • QAΤϯδχΞ࣌୅ͷ࿩ • Α͘΍͍ͬͯΔςετઃܭ • RSpecʹԠ༻͢Δ

  8. QAΤϯδχΞ࣌୅ͷ࿩

  9. ςετͷϨϏϡʔ͸೉͍͠ • ϨϏϡʔͯ͠ʂͱ౉͞ΕΔExcel • ্Լʹ௕͘ηϧ݁߹͞ΕͨΧςΰϦ • ҧ͍͕Θ͔Βͳ͍ࣅͨςετέʔε

  10. ࢥͬͨ͜ͱ Excelͷςετέʔε͸ ϨϏϡʔ͢Δͷ͕೉͍͠

  11. ࢥͬͨ͜ͱ ExcelʹͳΔલʹϨϏϡʔ͍ͨ͠

  12. ͨͲΓண͍ͨ౴͑ • ϚΠϯυϚοϓ͔Β࢝ΊΔ ιϑτ΢ΣΞςετ • ஑ా ڿ (ஶ), ླ໦ ࡾل෉

    (ஶ) • ϚΠϯυϚοϓͷ
 ࡉ͔͍࿩͸ׂѪ͠·͢
  13. ϚΠϯυϚοϓͷΑ͍ͱ͜Ζ • ॻ͘աఔͰ΋಄Λ੔ཧͰ͖Δ • ݟΔଆ΋จষΑΓ͸ݟ΍͍͢ • πϦʔͳͷͰࣗ෼ͷݟΔ໨తʹΑͬͯ
 ୳ࡧ๏Λબ୒Ͱ͖Δ • ਂ͞༏ઌ

    or ෯༏ઌ • ༿·ͰݟΔ or ͋Δ֊૚͚ͩ௥͏ ※ޮՌʹ͸ݸਓ͕ࠩ͋Γ·͢
  14. Α͘΍͍ͬͯΔςετઃܭ

  15. ϚΠϯυϚοϓΛ࢖͍·͢ • ํ਑΍େ·͔ͳέʔεΛߟ͑Δ࣌
 ϚΠϯυϚοϓΛॻ͖·͢ • ޙ͔ΒRSpecॻ࣌͘ͱ͔ɺखಈͷγεςϜςετʹͳΔ৔߹ • ࣗ෼͚ͩͷͱ͖͸εέονϒοΫʹ
 ඳ͖·͕͢Gitʹ͋͛ΒΕͳ͍…

  16. GitͰ؅ཧͰ͖ΔϚΠϯυϚοϓΛ࡞Δ • Markdown→ϚΠϯυϚοϓԽ͢Δ • ࣗ෼͸ Atomͷ Markdown Mindmap 
 Λར༻͍ͯ͠·͢

  17. σϞ

  18. ςετઃܭ༻ϚΠϯυϚοϓͷॻ͖ํ • ֊૚਺͸ߟ͑ͳ͍ • ͷͼͷͼॻ͘ʂ • ը໘ΛΠϝʔδͯ͠΋͍͍͠
 Ϋϥε౳ผͷ୯ҐΛΠϝʔδͯ͠΋ྑ͍ • ༿ͷཁૉ͕1ͭҎ্ͷςετέʔεʹ


    ରԠ͢ΔΑ͏ʹॻ͘
  19. ࢖͍ํ • ςετέʔεͷϨϏϡʔ࣌ʹ࢖͏ • ৽ϝϯόʔ͕ೖͬͨ࣌ͳͲ
 ͦͷγεςϜͷ࢓༷Ұཡͱͯ͠ݟͤΔ • ΈΜͳͰख෼͚ͯ͠ಈ࡞֬ೝ͍ͨ࣌͠
 ʮ͜ͷล΍ͬͯʯͱ͔ਤࣔ͢Δ •

    ػೳ͕େ͖͘มΘͬͨΒϓϧϦΫग़͢
  20. ෭࡞༻ͱͯ͠ γεςϜͷػೳΛࣔͨ͠
 ஍ਤʹ΋ͳΔ

  21. RSpecʹԠ༻͢Δ

  22. ͦ΋ͦ΋RSpec͸ • ΋ͱ΋ͱBDDπʔϧ • ࢲୡ͸SpecificationΛॻ͍͍ͯΔ • "rpsec --format documentation" ͱ


    ࣮ߦͯ͠Έͯ΄͍͠ • ڵຯΛ࣋ͬͨํ͸
 ʰςετۦಈ։ൃʱ(ΦʔϜࣾ)ͷ෇࿥C΁
  23. RSpecΛ࢓༷ॻͰ͋Δ͔ͷΑ͏ʹॻ͖͍ͨ • ςετΛ࣮ߦͯ݁͠ՌΛಡΉͱ
 ͦͷ෦෼ͷίʔυͷ࢓༷͕Θ͔ΔΑ͏ʹ
 ͍͖͍ͯͨ͠ • ͖ͬ͞ͷϚΠϯυϚοϓͱؔ࿈෇͚Δ

  24. ࣮ࡍʹ΍ͬͯΈͨ • FizzBuzzͰྫʹͯ͠Έͨ

  25. ࣮૷ • ݟͤ·͢ • Gistʹ͋͛·ͨ͠ • https://gist.github.com/ ug23/9aafd9e7666ffaa9a1aaba3640d6 d5d8

  26. rspec࣮ߦ݁Ռ fizzbuzz indexΛදࣔจࣈྻʹม׵͢Δ 3ͷഒ਺ͷͱ͖͸Fizz 5ͷഒ਺ͷͱ͖͸Buzz 15ͷഒ਺ͷͱ͖͸FizzBuzz 3ͷഒ਺Ͱ΋5ͷഒ਺Ͱ΋ͳ͍ͱ͖͸ͦͷ·· ग़ྗ͢Δ index:1ͷͱ͖ͷදࣔจࣈྻΛվߦ۠੾ΓͰඪ४ग़ྗ͢Δ index:15ͷͱ͖ͷදࣔจࣈྻΛվߦ۠੾ΓΛඪ४ग़ྗ͢Δ

    ճ౴͢Δ 1͔Β100·ͰͰग़ྗ͢Δ
  27. ஫ҙ • ͳʹ͔ΛΞ΢τϓοτ͢Δࡍʹ
 ϚΠϯυϚοϓΛϕʔεʹ͢ΔΠϝʔδ • ٯ͸͋·Γߟ͍͑ͯ·ͤΜ
 ٯʹ໘౗ʹͳΔ͔΋͠Ε·ͤΜ
 • ΋ͬͱ͍͍࢖͍ํ͋Ε͹ڭ͍͑ͯͩ͘͞

  28. ·ͱΊ

  29. ·ͱΊ • ςετઃܭͷखஈͱͯ͠
 ϚΠϯυϚοϓΛར༻ͯ͠·͢ • ςετઃܭͷϚΠϯυϚοϓ͕
 ͦͷ··ػೳҰཡʹͳͬͯ
 ͍Ζ͍Ζ࢖͑·͢ • ͦͷ··RSpec΍ςετέʔεʹ


    མͱ͠ࠐΜͰ͍·͢