PHPerのための テストコード入門.

De4cef85165e8a063b5e40fe1f24daa4?s=47 02
December 01, 2019

PHPerのための テストコード入門.

2019/12/01
PHP カンファレンス2019 のセッションで使用したスライドです

De4cef85165e8a063b5e40fe1f24daa4?s=128

02

December 01, 2019
Tweet

Transcript

  1. PHPerͷͨΊͷ ςετίʔυೖ໳ PHP Conference Japan 2019 02 / େ௡ ࿨௬

  2. Who am I? • 02 ʢେ௡ ࿨௬ʣ • Twitter, Github:cocoeyes02

    • ॴଐɿגࣜձࣾ΢Οϧήʔτ(৽ଔ2೥໨) • PHPͱ΄΅ಉ͍೥ʢ1994೥ੜ·Εʣ • όοΫΤϯυΤϯδχΞ • ͨ·ʔʹOSSͷίϯτϦϏϡʔτͯͨ͠Γ͠·͢
  3. ͜ͱ͹ͷఆٛ • ςετ • ιϑτ΢ΣΞ͕ਖ਼͘͠ಈ࡞͢Δ͔ݕূ͢Δ͜ͱ • ςετίʔυ • ίʔυ্Ͱιϑτ΢ΣΞ͕ਖ਼͘͠ಈ͍͍ͯΔ ͔ࣗಈͰݕূ͢Δ࢓૊Έͷ͜ͱ

  4. ͜ͷൃදͰͷௌߨऀͷΰʔϧ ςετίʔυΛಋೖ͢Δલʹ ʮͳͥͦͷςετίʔυΛॻ͘ͷ͔ʯ Λ࿩ͤΔ͜ͱ

  5. ࠓ೔࿩͢͜ͱ • ͦ΋ͦ΋ͳͥςετΛॻ͘ͷ͔ • ͳͥςετίʔυΛಋೖ͢Δͷ͔ • ͦΕͧΕͷςετίʔυͷಛ௃ͱൺֱʹ͍ͭ ͯɺ൑அج४ྫ

  6. ࠓ೔࿩͞ͳ͍͜ͱ • ςετίʔυͷಋೖํ๏ • ςετίʔυͷॻ͖ํ • ςετίʔυΛ࠾༻͢Δ্Ͱͷઈରղ

  7. ΞδΣϯμ • ςετͷ໨త • ςετίʔυͷ໨త • ༷ʑͳςετίʔυΛ஌Δ

  8. ΞδΣϯμ • ςετͷ໨త • ςετίʔυͷ໨త • ༷ʑͳςετίʔυΛ஌Δ

  9. ςετͷ໨త͸ ͳΜͩͱࢥ͍·͔͢ʁ

  10. ςετͷ໨త͸ ͳΜͩͱࢥ͍·͔͢ʁ • όάΛݟ͚ͭΔ͜ͱʁ • ཁ݅Λຬ͍ͨͯ͠Δ͜ͱΛ֬ೝ͢Δ͜ͱʁ • ιϑτ΢ΣΞͷ඼࣭ΛߴΊΔ͜ͱʁ

  11. ISTQBςετٕज़ऀࢿ੍֨౓ γϥόεʹΑΔͱ • ཁ݅ɺϢʔβʔετʔϦʔɺઃܭɺ͓ΑͼίʔυͳͲͷ࡞ۀ੒Ռ෺ΛධՁ͢Δɻ • ໌֬ʹͨ͢͠΂ͯͷཁ݅Λຬ͍ͨͯ͠Δ͜ͱΛݕূ͢Δɻ • ςετର৅͕׬੒͠ɺϢʔβʔ΍ͦͷଞεςʔΫϗϧμʔͷظ଴௨Γͷಈ࡞಺༰Ͱ͋Δ͜ͱͷଥ౰ੑ֬ೝΛ͢ Δɻ •

    ςετର৅ͷ඼࣭ʹର͢Δ৴པΛੵΈॏͶͯɺॴఆͷϨϕϧʹ͋Δ͜ͱΛ֬ূ͢Δɻ • ܽؕͷ࡞Γ͜ΈΛ๷͙ɻ • ނো΍ܽؕΛൃݟ͢Δɻ • εςʔΫϗϧμʔ͕ҙࢤܾఆͰ͖Δɺಛʹςετର৅ͷ඼࣭Ϩϕϧʹ͍ͭͯͷे෼ͳ৘ใΛఏڙ ͢Δɻ • ʢҎલʹݕग़͞Εͳ͔ͬͨނো͕ӡ༻؀ڥͰൃੜ͢ΔͳͲͷʣෆద੾ͳιϑτ΢ΣΞ඼࣭ͷϦεΫϨϕϧΛ௿ ݮ͢Δɻ • ܖ໿্ɺ๏཯্ɺ·ͨ͸ن੍্ͷཁ݅΍ඪ४Λ९क͢Δɺͦͯ͠ʗ·ͨ͸ςετର৅͕ͦͷΑ͏ ͳཁ݅΍ඪ४ ʹ४ڌ͍ͯ͠Δ͜ͱΛݕূ͢Δɻ http://jstqb.jp/dl/JSTQB-SyllabusFoundation_Version2018.J03.pdf
  12. ͬ͘͟Γ·ͱΊΔͱɹɹɹɹɹɹɹ ςετͷ໨త͸ • ඼࣭ΛՄࢹԽ͢Δ͜ͱ • ιϑτ΢ΣΞͷͲͷ඼࣭ΛߴΊΔ͔ɺɹɹɹɹɹɹ ൑அ͢ΔͨΊͷࡐྉΛఏڙ͢Δ͜ͱ

  13. ͬ͘͟Γ·ͱΊΔͱɹɹɹɹɹɹɹ ςετͷ໨త͸ • ඼࣭ΛՄࢹԽ͢Δ͜ͱ • ιϑτ΢ΣΞͷͲͷ඼࣭ΛߴΊΔ͔ɺɹɹɹɹɹɹ ൑அ͢ΔͨΊͷࡐྉΛఏڙ͢Δ͜ͱ

  14. ඼࣭͕कΕ͍ͯΔ͔Ͳ͏͔͸ ݟ͑ͮΒ͍ ඼࣭ͦͷ΋ͷ͕͔ͬ͠ΓఆٛͰ͖͓ͯΒ͍ͣ͋·͍ ͳέʔε΋ ඼࣭͕कΕ͍ͯΔ͔ࣔ͢खஈͷ1ͭͱͯ͠ɹɹɹɹ ςετΛ࢖ͬͯ֬ೝ͢Δ

  15. ιϑτ΢ΣΞςετ͚ͩͰ͸ɺ ඼࣭ΛߴΊΒΕͳ͍ ςετͰόάΛݟ͚ͭΔ͜ͱ͸Ͱ͖Δ͕ɺɹɹɹɹ όάΛमਖ਼͠ͳ͚Ε͹඼࣭ΛߴΊΔ͜ͱ͸ɹɹɹɹ Ͱ͖ͳ͍ ʮ඼࣭อূʯͰ͋ͬͯɺʮ඼࣭޲্ʯͰ͸ͳ͍

  16. ͬ͘͟Γ·ͱΊΔͱɹɹɹɹɹɹɹ ςετͷ໨త͸ • ඼࣭ΛՄࢹԽ͢Δ͜ͱ • ιϑτ΢ΣΞͷͲͷ඼࣭ΛߴΊΔ͔ɺɹɹɹɹɹɹ ൑அ͢ΔͨΊͷࡐྉΛఏڙ͢Δ͜ͱ

  17. ΤϯδχΞ͸඼࣭޲্ͷͨΊ ৭ʑͳ൑அΛ͢Δ ʮ࢓༷ͱҧ͏ػೳΛൃݟͨ͠ͷͰɺमਖ਼͠Α͏ʯ ʮ͋Δػೳͷόά݅਺͕ଟ͍ͷͰɺઃܭΛݟ௚ͦ͏ʯ ʮϦϦʔε͢Δʹ͸·ͩ΍Δ΂͖͜ͱ͕͋ΔͷͰɺɹɹ ϦϦʔε೔ΛԆظͯ͠όάमਖ਼΍ςετΛ͠Α͏ʯ

  18. ΤϯδχΞ͸඼࣭޲্ͷͨΊ ৭ʑͳ൑அΛ͢Δ ʮ࢓༷ͱҧ͏ػೳΛൃݟͨ͠ͷͰɺमਖ਼͠Α͏ʯ ʮ͋Δػೳͷόά݅਺͕ଟ͍ͷͰɺઃܭΛݟ௚ͦ͏ʯ ʮϦϦʔε͢Δʹ͸·ͩ΍Δ΂͖͜ͱ͕͋ΔͷͰɺɹɹ ϦϦʔε೔ΛԆظͯ͠όάमਖ਼΍ςετΛ͠Α͏ʯ ιϑτ΢ΣΞͷ඼࣭ΛߴΊΔ൑அͷࡐྉΛɹɹ ఏڙ͢Δͷ͕ςετͰ͋Δ

  19. ྫ୊ ex.γεςϜ։ൃΛ͍ͯͯ͠ϦϦʔεؒࡍͰ͋Δ ೲظ΋ഭ͍ͬͯΔͷͰɺૣ͘ϦϦʔεΛ͍ͨ͠

  20. ςετ݁Ռͱ্௕൑அ ςετ݁Ռ ্௕൑அ όάΛͨ͘͞Μൃݟͨ͠ ௚͢·ͰϦϦʔεΛ߇͑Δ όά͕΄ͱΜͲͳ͔ͬͨ ۓٸੑ͕௿͍όά͹͔Γͩͬͨɹ ϦϦʔε͔ͯ͠Β௚͢

  21. ςετ݁Ռͱ্௕൑அ ςετ݁Ռ ্௕൑அ όάΛͨ͘͞Μൃݟͨ͠ ௚͢·ͰϦϦʔεΛ߇͑Δ όά͕΄ͱΜͲͳ͔ͬͨ ۓٸੑ͕௿͍όά͹͔Γͩͬͨɹ ϦϦʔε͔ͯ͠Β௚͢ ʮ·ͩϢʔβʹग़ͤΔϨϕϧ͡Όͳ͍͔Βɺɹɹɹɹɹɹɹ ϦϦʔε೔ΛԆظͯ͠όάΛमਖ਼͠Α͏ʯ

  22. ςετ݁Ռͱ্௕൑அ ςετ݁Ռ ্௕൑அ όάΛͨ͘͞Μൃݟͨ͠ ௚͢·ͰϦϦʔεΛ߇͑Δ όά͕΄ͱΜͲͳ͔ͬͨ ۓٸੑ͕௿͍όά͹͔Γͩͬͨɹ ϦϦʔε͔ͯ͠Β௚͢ ʮҰ౓ϦϦʔεͯ͠ϦϦʔεޙʹɺ ༏ઌ౓͕ߴ͍όά͔Βमਖ਼͍ͯ͜͠͏ʯ

  23. ʮϓϩάϥϚ͕஌Δ΂͖97ͷ͜ͱʯΑΓ Jon Jaggerࢯʮݟ͑ͳ͍΋ͷΛݟ͑ΔΑ͏ʹʯ ιϑτ΢ΣΞ։ൃϓϩδΣΫτΛਐΊΔ࣌͸͍ͭͰ΋ɺ ໨ʹݟ͑Δূڌ͕ͨ͘͞Μ͋Δͱ͍͏ঢ়ଶΛҡ࣋͢΂͖ Ͱ͠ΐ͏ɻ ໨ʹݟ͑Δূڌ͕͋Ε͹ɺਐḿঢ়گ΋ਖ਼֬ʹ೺ѲͰ͖· ͢ɻܾͯ͠಄ͷத͚ͩͷࢥ͍ࠐΈͰ൑அ͠ͳ͘ͳΓ· ͢ɻ https://xn--97-273ae6a4irb6e2hsoiozc2g4b8082p.com/%E3%82%A8%E3%83%83%E3%82%BB%E3%82%A4/

    %E8%A6%8B%E3%81%88%E3%81%AA%E3%81%84%E3%82%82%E3%81%AE%E3%82%92%E8%A6%8B%E 3%81%88%E3%82%8B%E3%82%88%E3%81%86%E3%81%AB/
  24. ·ͱΊʢςετͷ໨తʣ • ςετͷ໨త • ඼࣭ΛՄࢹԽ͢Δ͜ͱ • ιϑτ΢ΣΞͷͲͷ඼࣭ΛߴΊΔ͔ɺɹɹɹɹɹ ൑அ͢ΔͨΊͷࡐྉΛఏڙ͢Δ͜ͱ • ςετ͸ʮ඼࣭޲্ʯͰ͸ͳ͘ʮ඼࣭୲อʯ

  25. ΞδΣϯμ • ςετͷ໨త • ςετίʔυͷ໨త • ༷ʑͳςετίʔυΛ஌Δ

  26. ςετίʔυͷ ໨త͸ͳΜͩͱࢥ͍·͔͢ʁ

  27. ςετίʔυΛಋೖ͢Δ໨త͸ ͳΜͩͱࢥ͍·͔͢ʁ • อकੑͷͨΊʁ • ৺ͷฏԺͷͨΊʁ • ςετͷ޻਺ΛݮΒͨ͢Ίʁ

  28. ςετίʔυͷ໨త͸ ඼࣭ͱ։ൃεϐʔυΛཱ྆͢Δ

  29. ςετͷ7ݪଇΑΓ 3.ૣظςετͰ࣌ؒͱίετΛઅ໿ ૣ͍ஈ֊ͰܽؕΛݟ͚ͭΔͨΊʹɺ੩తςετ׆ಈͱಈతςετ׆ ಈͷ྆ํΛιϑτ΢ΣΞ։ൃϥΠϑ αΠΫϧͷͳΔ΂͘ૣ͍࣌ظʹ ։࢝͢΂͖Ͱ͋Δɻ ૣظςετ͸ɺγϑτϨϑτͱ΋ݺ͹ΕΔɻιϑτ ΢ΣΞ։ൃϥΠ ϑαΠΫϧͷૣ͍࣌ظʹςετΛߦ͏͜ͱʹΑΓɺίετΛ௿ݮ· ͨ͸࡟ݮͰ͖Δ

    http://jstqb.jp/dl/JSTQB-SyllabusFoundation_Version2018.J03.pdf
  30. γϑτϨϑτ όάΛݟ͚ͭΔͷ͕ૣ͚Ε͹ૣ͍΄Ͳɺɹɹɹɹɹ Өڹൣғ͕খ͍͞͏ͪʹमਖ਼Ͱ͖ΔͷͰɹɹɹɹɹ मਖ਼޻਺͕গͳ͘ͳΔͱ͍͏ߟ͑

  31. ྫɿόά͕ݟ͔ͭͬͨ࣌ͷରԠ ɹ ཁ݅ఆٛ ɹઃܭ ࣮૷ ςετ ϦϦʔεޙ

  32. ྫɿόά͕ݟ͔ͭͬͨ࣌ͷରԠ ɹ ཁ݅ఆٛ ɹઃܭ ࣮૷ ςετ ϦϦʔεޙ όάใࠂɺো֐ௐࠪɺݪҼಛఆɺϩδοΫमਖ਼ɺ ϨϏϡʔɺ͓໰͍߹ΘͤରԠɺ࠶ൃ๷ࢭࡦΛߟ͑Δʜ

  33. ྫɿόά͕ݟ͔ͭͬͨ࣌ͷରԠ ɹ ཁ݅ఆٛ ɹઃܭ ࣮૷ ςετ ϦϦʔεޙ όάใࠂɺݪҼಛఆɺϩδοΫमਖ਼ɺ ϨϏϡʔɺ࠶ςετ

  34. ྫɿόά͕ݟ͔ͭͬͨ࣌ͷରԠ ɹ ཁ݅ఆٛ ɹઃܭ ࣮૷ ςετ ϦϦʔεޙ ݪҼಛఆɺϩδοΫमਖ਼ɺϨϏϡʔ

  35. ྫɿόά͕ݟ͔ͭͬͨ࣌ͷରԠ ɹ ཁ݅ఆٛ ɹઃܭ ࣮૷ ςετ ϦϦʔεޙ ఆٛॻɾઃܭॻमਖ਼ɺϨϏϡʔ

  36. ૣ͘ݟ͚ͭΕ͹ɺ ͦͷ෼όάͷमਖ਼޻਺͸ݮΔ मਖ਼׬ྃ·Ͱʹ͔͔Δ޻਺ େ খ ɹ ཁ݅ఆٛ ɹઃܭ ࣮૷ ςετ

    ϦϦʔεޙ
  37. ૣ͘ݟ͚ͭΕ͹ɺ ͦͷ෼όάͷमਖ਼޻਺͸ݮΔ मਖ਼ͷ޻਺ΛݮΒ͢ʹ͸ɺɹɹɹɹɹɹɹɹɹɹɹɹ গ͠Ͱ΋ૣ͍ஈ֊ͰόάΛݟ͚ͭΔ͜ͱ ςετίʔυͰୡ੒Ͱ͖Δͷ͔ʁ

  38. ISTQBςετٕज़ऀࢿ੍֨౓ γϥόεʹΑΔͱ ςετ࣮ߦΛࢧԉ͢ΔπʔϧΛ࢖͏જࡏతͳར఺͸ҎԼͷ௨ΓͰ͋Δɻ • ൓෮͢Δखಈ࡞ۀͷ࡟ݮͱ࣌ؒͷઅ໿͕Ͱ͖Δʢྫ͑͹ɺϦάϨογϣϯςετ ͷ࣮ߦɺ؀ڥͷ ४උ/෮چλεΫɺಉ͡ςετσʔλͷ࠶ೖྗɺίʔσΟϯάඪ४ ४ڌͷνΣοΫͳͲʣɻ • Ұ؏ੑ΍࠶࣮ߦੑ͕޲্͢Δʢྫ͑͹ɺ੔߹ੑͷ͋Δςετσʔλɺಉ͡ස౓ͱ

    ॱংͰͷςετ ࣮ߦɺཁ͔݅ΒͷҰ؏ͨ͠ςετέʔεͷநग़ͳͲʣɻ • ධՁͷ٬؍ੑ͕޲্͢Δʢྫ͑͹ɺ੩తͳܭଌɺΧόϨοδͳͲʣɻ • ςετʹؔ͢Δ৘ใ΁ͷΞΫηεͷ༰қੑ͕޲্͢Δʢྫ͑͹ɺςετਐḿɺܽ ؕ཰΍ੑೳܭଌ ݁Ռͷूܭɺ͓Αͼάϥϑͷ࡞੒ͳͲʣɻ http://jstqb.jp/dl/JSTQB-SyllabusFoundation_Version2018.J03.pdf
  39. खಈςετͱ ςετίʔυΛൺֱͯ͠ΈΔ • ςετͷ࣮ߦλΠϛϯά • ࣮֬ʹςετΛ࣮ߦͰ͖Δ͔

  40. खಈςετͱ ςετίʔυΛൺֱͯ͠ΈΔ • ςετͷ࣮ߦλΠϛϯά • ࣮֬ʹςετΛ࣮ߦͰ͖Δ͔

  41. खಈςετͱςετίʔυ Λൺֱ खಈςετͩͱ… ʮ࣮૷͕ऴΘͬͨͷͰɺΈΜͳͰςετ͢Δɹ λΠϛϯάͰ֬ೝ͠Α͏ʯ ཁ݅ఆٛ ɹઃܭ ࣮૷ ςετ ϦϦʔεޙ

  42. खಈςετͱςετίʔυ Λൺֱ ςετίʔυͩͱ… ʮίϚϯυҰൃͰςετͰ͖ΔͷͰɺɹɹɹɹ ಈ࡞֬ೝ͕ͯΒઌʹςετΛ͠Α͏ʯ ཁ݅ఆٛ ɹઃܭ ࣮૷ ςετ ϦϦʔεޙ

  43. खಈςετͱςετίʔυ Λൺֱ खಈςετ͸਺े෼ʙ਺͔͔࣌ؒΔͷʹର͠ɺ ςετίʔυ͸਺ඵʙ਺෼ ςετͷFBΛૉૣ͘ड͚औΔ͜ͱ͕Ͱ͖Ε͹ɺ ։ൃϑϩʔͷதͰ΋ɺૣ͍ஈ֊ͰςετΛ࣮ߦ ͢ΔΑ͏ʹͳΔ

  44. खಈςετͱ ςετίʔυΛൺֱͯ͠ΈΔ • ςετͷ࣮ߦλΠϛϯά • ࣮֬ʹςετΛ࣮ߦͰ͖Δ͔

  45. खಈςετͱςετίʔυ Λൺֱ खಈςετ ςετίʔυ ώϡʔϚϯΤϥʔ ى͜Δ ىΒͳ͍ Կճ࣮ߦͯ͠΋ ಉ݁͡Ռ͕ಘΒΕΔ͔ ʢႈ౳ੑʣ

    ώϡʔϚϯΤϥʔ͕ ى͜ΔݶΓ ׬શʹ͸อূͰ͖ͳ͍ Կ౓࣮ߦͯ͠΋ ݁Ռ͸ҰॹͳͷͰ อূͰ͖Δ
  46. खಈςετͱςετίʔυ Λൺֱ खಈςετ ςετίʔυ ώϡʔϚϯΤϥʔ ى͜Δ ىΒͳ͍ Կճ࣮ߦͯ͠΋ ಉ݁͡Ռ͕ಘΒΕΔ͔ ʢႈ౳ੑʣ

    ώϡʔϚϯΤϥʔ͕ ى͜ΔݶΓ ׬શʹ͸อূͰ͖ͳ͍ Կ౓࣮ߦͯ͠΋ ݁Ռ͸ҰॹͳͷͰ อূͰ͖Δ ʮςετͨͭ͠΋Γͩͬͨ ͚Ͳɺ࣮ࡍ͸ςετखॱΛ ؒҧ͍͑ͯͨʂʯͱ͔
  47. खಈςετͱςετίʔυ ςετίʔυ͸όάमਖ਼޻਺ΛݮΒ͠ͳ͕Β΋ ࣮֬ʹςετΛߦ͏͜ͱ͕Ͱ͖Δ →඼࣭ͱ։ൃεϐʔυΛཱ྆͢Δ͜ͱ͕Ͱ͖Δ

  48. ςετίʔυѹউ… ͱ͍͏Θ͚Ͱ͸ͳ͍ ͨͩ͠ɺςετίʔυ͸ಋೖɾϝϯςφϯείετ͕ൃ ੜ͢Δ खಈςετͰ͔͠νΣοΫͰ͖ͳ͍ςετ΋͋Δɹɹ ʢςετίʔυͰ࣮ݱͰ͖ͳ͍ςετ΋΋ͪΖΜ͋Δʣ

  49. ISTQBςετٕज़ऀࢿ੍֨౓ γϥόεʹΑΔͱ ςετΛࢧԉ͢ΔπʔϧΛ࢖͏જࡏతͳϦεΫ͸ҎԼͷ௨ΓͰ͋Δɻ • ςετπʔϧͷޮՌΛաେʹظ଴͢Δʢྫ͑͹ɺπʔϧͷػೳ΍࢖͍΍͢͞ͳͲʣɻ • ςετπʔϧΛॳΊͯಋೖ͢Δ৔߹ʹཁ͢Δ࣌ؒɺίετɺ޻਺ΛաখධՁ͢Δʢྫ͑͹ɺڭҭ ΍ɺ֎෦ͷઐ ໳ՈͷࢧԉͳͲʣɻ •

    େ͖ͳޮՌΛܧଓతʹ্͛ΔͨΊʹඞཁͳ࣌ؒ΍޻਺ΛաখධՁ͢Δʢྫ͑͹ɺςετϓϩηε ͷมߋɺπʔ ϧͷ࢖༻๏ͷܧଓతͳվળͳͲʣɻ • πʔϧ͕ੜ੒͢Δςετࢿ࢈Λϝϯςφϯε͢ΔͨΊʹඞཁͳ޻਺ΛաখධՁ͢Δɻ • πʔϧʹա৒ͳґଘΛ͢Δʢςετઃܭ·ͨ͸ςετ࣮ߦͱஔ͖׵͑ΒΕΔͱߟ͑Δɺ·ͨ͸खಈςετͷํ ͕దͨ͠έʔεͰࣗಈςετΛར༻Ͱ͖Δͱߟ͑ΔͳͲʣ • πʔϧ಺ʹ͋Δςετࢿ࢈ͷόʔδϣϯ؅ཧΛଵΔɻ … http://jstqb.jp/dl/JSTQB-SyllabusFoundation_Version2018.J03.pdf
  50. ·ͱΊʢςετίʔυͷ໨తʣ • ςετίʔυͷ໨త • ඼࣭ͱ։ൃεϐʔυΛཱ྆͢Δ • ςετίʔυͳΒςετͷFBΛૉૣ͘ड͚औΕ ΔͷͰɺόάमਖ਼޻਺ΛݮΒ͢͜ͱ͕Ͱ͖Δ • ςετίʔυͰ࣮֬ʹςετΛߦ͏͜ͱ͕Ͱ͖Δ

  51. ΞδΣϯμ • ςετͷ໨త • ςετίʔυͷ໨త • ༷ʑͳςετίʔυΛ஌Δ

  52. Ϣχοτςετ 1ͭͷؔ਺΍ϝιουʹରͯ͠ɺI/OΛ௨ͯ͠ɹ ࢓༷௨ΓͷڍಈΛ͍ͯ͠Δ͔ݕূ͢Δ PHPͰ͸ɺPHPUnit Λ࢖͏ྫ͕ଟ͍

  53. ݁߹ɺ౷߹ςετ featureςετɺAPI ςετ͕͜Εʹ౰ͨΔ ಛఆͷϦΫΤετΛ౤͛ͯɺϨεϙϯε͞Εͨ ಺༰͕ਖ਼͍͔͠Ͳ͏͔Λݕূ͢Δ PHPͰ͸ɺPHPUnit Λ࢖͏ྫ͕ଟ͍

  54. UIςετ Selenium ͳͲΛར༻ͨ͠ E2E ςετ͕͜Εʹ౰ͨΔ ࠷΋Ϣʔβ໨ઢʹ͍ۙςετɻWebαʔϏεͰ͸ɺɹɹɹ ࣮ࡍʹϒϥ΢β্Ͱ class ΍ id

    Λࢦఆ͢Δ͜ͱʹΑͬͯɹ ࣗಈૢ࡞Λ͠ɺظ଴௨Γͷಈ࡞Λ͍ͯ͠Δ͔ݕূ͢Δ PHP ͩͱɺPHPUnit ͱ PHP-WebDriver Λ͔ͭͬͨE2Eς ετ͕ڍ͛ΒΕΔ
  55. 3ͭͷςετΛൺֱ͢Δ Ϣχοτςετ ౷߹ɾ݁߹ςετ 6*ςετ ࣮ߦ࣌ؒ ͔ͳΓ୹͍ ୹͍ ௕͍ ςετʹམͪͨ࣌ ͷݪҼಛఆ࣌ؒ

    ͔ͳΓ୹͍ ʢฏۉతʹ͸ʣ ௕͍ ͔ͳΓ௕͍ ϝϯςφϯε޻਺ গͳ͍ গͳ͍ ͔ͳΓଟ͍ ςετൣғ ͔ͳΓڱ͍ ޿͍ ͔ͳΓ޿͍ ϑϩϯτΤϯυͷ ڍಈ΋֬ೝՄ൱ Ͱ͖ͳ͍ Ͱ͖ͳ͍ Ͱ͖Δ
  56. 3ͭͷςετΛൺֱ͢Δ Ϣχοτςετ ౷߹ɾ݁߹ςετ 6*ςετ ࣮ߦ࣌ؒ ͔ͳΓ୹͍ ୹͍ ௕͍ ςετʹམͪͨ࣌ ͷݪҼಛఆ࣌ؒ

    ͔ͳΓ୹͍ ʢฏۉతʹ͸ʣ ௕͍ ͔ͳΓ௕͍ ϝϯςφϯε޻਺ গͳ͍ গͳ͍ ͔ͳΓଟ͍ ςετൣғ ͔ͳΓڱ͍ ޿͍ ͔ͳΓ޿͍ ϑϩϯτΤϯυͷ ڍಈ΋֬ೝՄ൱ Ͱ͖ͳ͍ Ͱ͖ͳ͍ Ͱ͖Δ ίετςετൣғɻςετൣғ͕޿͘ͳΕ͹࣮ߦ࣌ؒɺ ςετࣦഊͷݪҼಛఆɺϝϯςφϯε޻਺ͳͲ͕૿͑Δ
  57. 3ͭͷςετΛൺֱ͢Δ Ϣχοτςετ ౷߹ɾ݁߹ςετ 6*ςετ ࣮ߦ࣌ؒ ͔ͳΓ୹͍ ୹͍ ௕͍ ςετʹམͪͨ࣌ ͷݪҼಛఆ࣌ؒ

    ͔ͳΓ୹͍ ʢฏۉతʹ͸ʣ ௕͍ ͔ͳΓ௕͍ ϝϯςφϯε޻਺ গͳ͍ গͳ͍ ͔ͳΓଟ͍ ςετൣғ ͔ͳΓڱ͍ ޿͍ ͔ͳΓ޿͍ ϑϩϯτΤϯυͷ ڍಈ΋֬ೝՄ൱ Ͱ͖ͳ͍ Ͱ͖ͳ͍ Ͱ͖Δ 6*ςετ͸ςετൣғʹ6*ΛؚΉͷͰɺ جຊతʹ͸ϑϩϯτΤϯυͷಈ͖΋֬ೝͰ͖Δ
  58. 3ͭͷςετΛൺֱ͢Δ ࣮ߦ͕࣌ؒ୹͘ɺςετࣦഊͷݪҼಛఆ͕༰қ ͳϢχοτςετΛҰ൪ॻ͘ͷ͕ཧ૝ →ςετൣғ͕1ؔ਺ɾϝιου಺ʹऩ·͍ͬͯ Δ͔Β ϢχοτςετͰνΣοΫͰ͖ͳ͍Α͏ͳςε τΛɺ݁߹ςετɾUIςετͰݕূ͢Δͱྑ͍

  59. Mike CohnࢯߟҊ ʮςετϐϥϛουʯ UI ౷߹ɺ݁߹ Ϣχοτ https://www.mountaingoatsoftware.com/blog/the-forgotten-layer-of-the-test-automation-pyramid

  60. Mike CohnࢯߟҊ ʮςετϐϥϛουʯ UI ౷߹ɺ݁߹ Ϣχοτ ίετ ॻ͘΂͖ྔ େ খ

    গ ଟ https://www.mountaingoatsoftware.com/blog/the-forgotten-layer-of-the-test-automation-pyramid
  61. ςετϐϥϛουΛ࢖ͬͨྫ ྫɿ ςετίʔυ͕ͳ͘ɺखಈςετͷΈͰ඼࣭୲อ͍ͯ͠Δɹ αʔϏε ΋ͬͱ΋ςετ͍ͨ͠ͷ͸ܾࡁγεςϜ ಺෦ॲཧ͕ෳࡶͰɺϢχοτςετΛ͢Δʹ͸֤ϝιουΛ ςετ͠΍͍͢Α͏ʹϦϑΝΫλϦϯά͢Δඞཁ͕͋Δ

  62. ςετϐϥϛουΛ࢖ͬͨྫ UI Ϣχοτ 6*ʢखಈςετʣ ౷߹ɺ݁߹ Ϣχοτ

  63. ςετϐϥϛουΛ࢖ͬͨྫ UI Ϣχοτ 6* ౷߹ɺ݁߹ Ϣχοτ ·ͣ͸6*ςετͷςετίʔυ Λॻ͍ͯɺ඼࣭Λ୲อ͢Δ

  64. ςετϐϥϛουΛ࢖ͬͨྫ UI Ϣχοτ 6* ౷߹ɺ݁߹ Ϣχοτ 6*ςετΛ࣮ߦͭͭ͠ɺ6*ςετͰ୲อ͍ͯ͠Δ಺༰ Λɺ౷߹ɾ݁߹ςετ΍ϢχοτςετͰஔ͖׵͑Δ

  65. ςετϐϥϛουΛ࢖ͬͨྫ UI Ϣχοτ 6* ౷߹ɺ݁߹ Ϣχοτ νʔϜ಺ͰܾࡁपΓ͸ϢχοτςετͰ͸ͳ͘ɺɹɹɹɹɹɹɹɹ ౷߹ɾ݁߹ςετͰ֬ೝ͍ͨ͠ͱ͍͏࿩ʹͳͬͨͷͰଟΊʹ͢Δ

  66. ςετϐϥϛουΛ࢖ͬͨྫ αʔϏεͷੑ࣭ʹΑͬͯ࠷దղ͸มΘΔ ඞͣ͠΋ਖ਼ࡾ֯ܗͷςετϐϥϛουʹͳΔͱ ͸ݶΒͳ͍ େࣄͳͷ͸ɺαʔϏεͷੑ࣭Λཧղ͢Δ͜ͱͱ νʔϜօͰ͢Γ߹ΘͤΔ͜ͱ

  67. ·ͱΊ ʢ༷ʑͳςετίʔυΛ஌Δʣ • ςετίʔυ͸େ͖͘෼͚Δͱɺɹɹɹɹɹɹɹɹ Ϣχοτςετɺ౷߹ɾ݁߹ςετɺUIςετɹ ɹ ɹ 3छྨͷςετ͕ଘࡏ͢Δ • ͲͷςετίʔυΛͲͷ͘Β͍ಋೖ͢Δ͔͸ɺɹɹ

    ςετϐϥϛουΛࢀߟʹ͢Δͱྑ͍ɹɹɹɹɹɹ ͨͩ͠αʔϏε΍ϓϩμΫτͷੑ࣭ʹΑͬͯ࠷దղ ͸มΘΔͷͰɺνʔϜ಺Ͱ͢Γ߹ΘͤΛߦ͏͜ͱ
  68. ͜ͷൃදͰͷௌߨऀͷΰʔϧ ςετίʔυΛಋೖ͢Δલʹ ʮͳͥͦͷςετίʔυΛॻ͘ͷ͔ʯ Λ࿩ͤΔ͜ͱ

  69. ࠷ޙʹ ඼࣭Λ୲อͰ͖Ε͹ࣗͣͱ։ൃεϐʔυ΋ɹɹ ্͛Δ͜ͱ͕Ͱ͖ΔͷͰɺ඼࣭ͱ։ൃεϐʔυ ͸τϨʔυΦϑͰ͸ͳ͍ͱࢲ͸ࢥ͍ͬͯ·͢ ඼࣭ͱ։ൃεϐʔυ྆ํΛཱ྆͢ΔͨΊɺɹɹ ςετίʔυΛॻ͍͍͖ͯ·͠ΐ͏