2019/12/01 PHP カンファレンス2019 のセッションで使用したスライドです
PHPerͷͨΊͷςετίʔυೖPHP Conference Japan 201902 / େ ௬
View Slide
Who am I?• 02 ʢେ ௬ʣ• Twitter, Github:cocoeyes02• ॴଐɿגࣜձࣾΟϧήʔτ(৽ଔ2)• PHPͱ΄΅ಉ͍ʢ1994ੜ·Εʣ• όοΫΤϯυΤϯδχΞ• ͨ·ʔʹOSSͷίϯτϦϏϡʔτͯͨ͠Γ͠·͢
͜ͱͷఆٛ• ςετ• ιϑτΣΞ͕ਖ਼͘͠ಈ࡞͢Δ͔ݕূ͢Δ͜ͱ• ςετίʔυ• ίʔυ্ͰιϑτΣΞ͕ਖ਼͘͠ಈ͍͍ͯΔ͔ࣗಈͰݕূ͢ΔΈͷ͜ͱ
͜ͷൃදͰͷௌߨऀͷΰʔϧςετίʔυΛಋೖ͢ΔલʹʮͳͥͦͷςετίʔυΛॻ͘ͷ͔ʯΛͤΔ͜ͱ
ࠓ͢͜ͱ• ͦͦͳͥςετΛॻ͘ͷ͔• ͳͥςετίʔυΛಋೖ͢Δͷ͔• ͦΕͧΕͷςετίʔυͷಛͱൺֱʹ͍ͭͯɺஅج४ྫ
ࠓ͞ͳ͍͜ͱ• ςετίʔυͷಋೖํ๏• ςετίʔυͷॻ͖ํ• ςετίʔυΛ࠾༻͢Δ্Ͱͷઈରղ
ΞδΣϯμ• ςετͷత• ςετίʔυͷత• ༷ʑͳςετίʔυΛΔ
ςετͷతͳΜͩͱࢥ͍·͔͢ʁ
ςετͷతͳΜͩͱࢥ͍·͔͢ʁ• όάΛݟ͚ͭΔ͜ͱʁ• ཁ݅Λຬ͍ͨͯ͠Δ͜ͱΛ֬ೝ͢Δ͜ͱʁ• ιϑτΣΞͷ࣭ΛߴΊΔ͜ͱʁ
ISTQBςετٕज़ऀࢿ੍֨γϥόεʹΑΔͱ• ཁ݅ɺϢʔβʔετʔϦʔɺઃܭɺ͓ΑͼίʔυͳͲͷ࡞ۀՌΛධՁ͢Δɻ• ໌֬ʹͨͯ͢͠ͷཁ݅Λຬ͍ͨͯ͠Δ͜ͱΛݕূ͢Δɻ• ςετର͕͠ɺϢʔβʔͦͷଞεςʔΫϗϧμʔͷظ௨Γͷಈ࡞༰Ͱ͋Δ͜ͱͷଥੑ֬ೝΛ͢Δɻ• ςετରͷ࣭ʹର͢Δ৴པΛੵΈॏͶͯɺॴఆͷϨϕϧʹ͋Δ͜ͱΛ֬ূ͢Δɻ• ܽؕͷ࡞Γ͜ΈΛ͙ɻ • ނোܽؕΛൃݟ͢Δɻ• εςʔΫϗϧμʔ͕ҙࢤܾఆͰ͖Δɺಛʹςετରͷ࣭Ϩϕϧʹ͍ͭͯͷेͳใΛఏڙ ͢Δɻ• ʢҎલʹݕग़͞Εͳ͔ͬͨނো͕ӡ༻ڥͰൃੜ͢ΔͳͲͷʣෆదͳιϑτΣΞ࣭ͷϦεΫϨϕϧΛݮ͢Δɻ• ܖ্ɺ๏্ɺ·ͨن੍্ͷཁ݅ඪ४Λ९क͢Δɺͦͯ͠ʗ·ͨςετର͕ͦͷΑ͏ ͳཁ݅ඪ४ʹ४ڌ͍ͯ͠Δ͜ͱΛݕূ͢Δɻhttp://jstqb.jp/dl/JSTQB-SyllabusFoundation_Version2018.J03.pdf
ͬ͘͟Γ·ͱΊΔͱɹɹɹɹɹɹɹςετͷత• ࣭ΛՄࢹԽ͢Δ͜ͱ• ιϑτΣΞͷͲͷ࣭ΛߴΊΔ͔ɺɹɹɹɹɹɹஅ͢ΔͨΊͷࡐྉΛఏڙ͢Δ͜ͱ
࣭͕कΕ͍ͯΔ͔Ͳ͏͔ݟ͑ͮΒ͍࣭ͦͷͷ͕͔ͬ͠ΓఆٛͰ͖͓ͯΒ͍ͣ͋·͍ͳέʔε࣭͕कΕ͍ͯΔ͔ࣔ͢खஈͷ1ͭͱͯ͠ɹɹɹɹςετΛͬͯ֬ೝ͢Δ
ιϑτΣΞςετ͚ͩͰɺ࣭ΛߴΊΒΕͳ͍ςετͰόάΛݟ͚ͭΔ͜ͱͰ͖Δ͕ɺɹɹɹɹόάΛमਖ਼͠ͳ͚Ε࣭ΛߴΊΔ͜ͱɹɹɹɹͰ͖ͳ͍ʮ࣭อূʯͰ͋ͬͯɺʮ্࣭ʯͰͳ͍
ΤϯδχΞ্࣭ͷͨΊ৭ʑͳஅΛ͢Δʮ༷ͱҧ͏ػೳΛൃݟͨ͠ͷͰɺमਖ਼͠Α͏ʯʮ͋Δػೳͷόά͕݅ଟ͍ͷͰɺઃܭΛݟͦ͏ʯʮϦϦʔε͢Δʹ·ͩΔ͖͜ͱ͕͋ΔͷͰɺɹɹϦϦʔεΛԆظͯ͠όάमਖ਼ςετΛ͠Α͏ʯ
ΤϯδχΞ্࣭ͷͨΊ৭ʑͳஅΛ͢Δʮ༷ͱҧ͏ػೳΛൃݟͨ͠ͷͰɺमਖ਼͠Α͏ʯʮ͋Δػೳͷόά͕݅ଟ͍ͷͰɺઃܭΛݟͦ͏ʯʮϦϦʔε͢Δʹ·ͩΔ͖͜ͱ͕͋ΔͷͰɺɹɹϦϦʔεΛԆظͯ͠όάमਖ਼ςετΛ͠Α͏ʯιϑτΣΞͷ࣭ΛߴΊΔஅͷࡐྉΛɹɹఏڙ͢Δͷ͕ςετͰ͋Δ
ྫex.γεςϜ։ൃΛ͍ͯͯ͠ϦϦʔεؒࡍͰ͋Δೲظഭ͍ͬͯΔͷͰɺૣ͘ϦϦʔεΛ͍ͨ͠
ςετ݁Ռͱ্அςετ݁Ռ ্அόάΛͨ͘͞Μൃݟͨ͠ ͢·ͰϦϦʔεΛ߇͑Δόά͕΄ͱΜͲͳ͔ͬͨۓٸੑ͕͍όά͔ΓͩͬͨɹϦϦʔε͔ͯ͠Β͢
ςετ݁Ռͱ্அςετ݁Ռ ্அόάΛͨ͘͞Μൃݟͨ͠ ͢·ͰϦϦʔεΛ߇͑Δόά͕΄ͱΜͲͳ͔ͬͨۓٸੑ͕͍όά͔ΓͩͬͨɹϦϦʔε͔ͯ͠Β͢ʮ·ͩϢʔβʹग़ͤΔϨϕϧ͡Όͳ͍͔ΒɺɹɹɹɹɹɹɹϦϦʔεΛԆظͯ͠όάΛमਖ਼͠Α͏ʯ
ςετ݁Ռͱ্அςετ݁Ռ ্அόάΛͨ͘͞Μൃݟͨ͠ ͢·ͰϦϦʔεΛ߇͑Δόά͕΄ͱΜͲͳ͔ͬͨۓٸੑ͕͍όά͔ΓͩͬͨɹϦϦʔε͔ͯ͠Β͢ʮҰϦϦʔεͯ͠ϦϦʔεޙʹɺ༏ઌ͕ߴ͍όά͔Βमਖ਼͍ͯ͜͠͏ʯ
ʮϓϩάϥϚ͕Δ͖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%E3%81%88%E3%82%8B%E3%82%88%E3%81%86%E3%81%AB/
·ͱΊʢςετͷతʣ• ςετͷత• ࣭ΛՄࢹԽ͢Δ͜ͱ• ιϑτΣΞͷͲͷ࣭ΛߴΊΔ͔ɺɹɹɹɹɹஅ͢ΔͨΊͷࡐྉΛఏڙ͢Δ͜ͱ• ςετʮ্࣭ʯͰͳ͘ʮ࣭୲อʯ
ςετίʔυͷతͳΜͩͱࢥ͍·͔͢ʁ
ςετίʔυΛಋೖ͢ΔతͳΜͩͱࢥ͍·͔͢ʁ• อकੑͷͨΊʁ• ৺ͷฏԺͷͨΊʁ• ςετͷΛݮΒͨ͢Ίʁ
ςετίʔυͷత࣭ͱ։ൃεϐʔυΛཱ྆͢Δ
ςετͷ7ݪଇΑΓ3.ૣظςετͰ࣌ؒͱίετΛઅૣ͍ஈ֊ͰܽؕΛݟ͚ͭΔͨΊʹɺ੩తςετ׆ಈͱಈతςετ׆ಈͷ྆ํΛιϑτΣΞ։ൃϥΠϑ αΠΫϧͷͳΔ͘ૣ͍࣌ظʹ։͖࢝͢Ͱ͋ΔɻૣظςετɺγϑτϨϑτͱݺΕΔɻιϑτ ΣΞ։ൃϥΠϑαΠΫϧͷૣ͍࣌ظʹςετΛߦ͏͜ͱʹΑΓɺίετΛݮ·ͨݮͰ͖Δhttp://jstqb.jp/dl/JSTQB-SyllabusFoundation_Version2018.J03.pdf
γϑτϨϑτόάΛݟ͚ͭΔͷ͕ૣ͚Εૣ͍΄ͲɺɹɹɹɹɹӨڹൣғ͕খ͍͞͏ͪʹमਖ਼Ͱ͖ΔͷͰɹɹɹɹɹमਖ਼͕গͳ͘ͳΔͱ͍͏ߟ͑
ྫɿόά͕ݟ͔ͭͬͨ࣌ͷରԠɹཁ݅ఆٛ ɹઃܭ ࣮ ςετ ϦϦʔεޙ
ྫɿόά͕ݟ͔ͭͬͨ࣌ͷରԠɹཁ݅ఆٛ ɹઃܭ ࣮ ςετ ϦϦʔεޙόάใࠂɺোௐࠪɺݪҼಛఆɺϩδοΫमਖ਼ɺϨϏϡʔɺ͓͍߹ΘͤରԠɺ࠶ൃࢭࡦΛߟ͑Δʜ
ྫɿόά͕ݟ͔ͭͬͨ࣌ͷରԠɹཁ݅ఆٛ ɹઃܭ ࣮ ςετ ϦϦʔεޙόάใࠂɺݪҼಛఆɺϩδοΫमਖ਼ɺϨϏϡʔɺ࠶ςετ
ྫɿόά͕ݟ͔ͭͬͨ࣌ͷରԠɹཁ݅ఆٛ ɹઃܭ ࣮ ςετ ϦϦʔεޙݪҼಛఆɺϩδοΫमਖ਼ɺϨϏϡʔ
ྫɿόά͕ݟ͔ͭͬͨ࣌ͷରԠɹཁ݅ఆٛ ɹઃܭ ࣮ ςετ ϦϦʔεޙఆٛॻɾઃܭॻमਖ਼ɺϨϏϡʔ
ૣ͘ݟ͚ͭΕɺͦͷόάͷमਖ਼ݮΔमਖ਼ྃ·Ͱʹ͔͔Δେখɹཁ݅ఆٛ ɹઃܭ ࣮ ςετ ϦϦʔεޙ
ૣ͘ݟ͚ͭΕɺͦͷόάͷमਖ਼ݮΔमਖ਼ͷΛݮΒ͢ʹɺɹɹɹɹɹɹɹɹɹɹɹɹগ͠Ͱૣ͍ஈ֊ͰόάΛݟ͚ͭΔ͜ͱςετίʔυͰୡͰ͖Δͷ͔ʁ
ISTQBςετٕज़ऀࢿ੍֨γϥόεʹΑΔͱςετ࣮ߦΛࢧԉ͢ΔπʔϧΛ͏જࡏతͳརҎԼͷ௨ΓͰ͋Δɻ• ෮͢Δखಈ࡞ۀͷݮͱ࣌ؒͷઅ͕Ͱ͖Δʢྫ͑ɺϦάϨογϣϯςετͷ࣮ߦɺڥͷ ४උ/෮چλεΫɺಉ͡ςετσʔλͷ࠶ೖྗɺίʔσΟϯάඪ४४ڌͷνΣοΫͳͲʣɻ• Ұ؏ੑ࠶࣮ߦੑ্͕͢Δʢྫ͑ɺ߹ੑͷ͋Δςετσʔλɺಉ͡සͱॱংͰͷςετ ࣮ߦɺཁ͔݅ΒͷҰ؏ͨ͠ςετέʔεͷநग़ͳͲʣɻ• ධՁͷ٬؍ੑ্͕͢Δʢྫ͑ɺ੩తͳܭଌɺΧόϨοδͳͲʣɻ• ςετʹؔ͢ΔใͷΞΫηεͷ༰қੑ্͕͢Δʢྫ͑ɺςετਐḿɺܽؕੑೳܭଌ ݁Ռͷूܭɺ͓Αͼάϥϑͷ࡞ͳͲʣɻhttp://jstqb.jp/dl/JSTQB-SyllabusFoundation_Version2018.J03.pdf
खಈςετͱςετίʔυΛൺֱͯ͠ΈΔ• ςετͷ࣮ߦλΠϛϯά• ࣮֬ʹςετΛ࣮ߦͰ͖Δ͔
खಈςετͱςετίʔυΛൺֱखಈςετͩͱ…ʮ࣮͕ऴΘͬͨͷͰɺΈΜͳͰςετ͢ΔɹλΠϛϯάͰ֬ೝ͠Α͏ʯཁ݅ఆٛ ɹઃܭ ࣮ ςετ ϦϦʔεޙ
खಈςετͱςετίʔυΛൺֱςετίʔυͩͱ…ʮίϚϯυҰൃͰςετͰ͖ΔͷͰɺɹɹɹɹಈ࡞֬ೝ͕ͯΒઌʹςετΛ͠Α͏ʯཁ݅ఆٛ ɹઃܭ ࣮ ςετ ϦϦʔεޙ
खಈςετͱςετίʔυΛൺֱखಈςετेʙ͔͔࣌ؒΔͷʹର͠ɺςετίʔυඵʙςετͷFBΛૉૣ͘ड͚औΔ͜ͱ͕Ͱ͖Εɺ։ൃϑϩʔͷதͰɺૣ͍ஈ֊ͰςετΛ࣮ߦ͢ΔΑ͏ʹͳΔ
खಈςετͱςετίʔυΛൺֱखಈςετ ςετίʔυώϡʔϚϯΤϥʔ ى͜Δ ىΒͳ͍Կճ࣮ߦͯ͠ಉ݁͡Ռ͕ಘΒΕΔ͔ʢႈੑʣώϡʔϚϯΤϥʔ͕ى͜ΔݶΓશʹอূͰ͖ͳ͍Կ࣮ߦͯ݁͠ՌҰॹͳͷͰอূͰ͖Δ
खಈςετͱςετίʔυΛൺֱखಈςετ ςετίʔυώϡʔϚϯΤϥʔ ى͜Δ ىΒͳ͍Կճ࣮ߦͯ͠ಉ݁͡Ռ͕ಘΒΕΔ͔ʢႈੑʣώϡʔϚϯΤϥʔ͕ى͜ΔݶΓશʹอূͰ͖ͳ͍Կ࣮ߦͯ݁͠ՌҰॹͳͷͰอূͰ͖Δʮςετͨͭ͠Γ͚ͩͬͨͲɺ࣮ࡍςετखॱΛؒҧ͍͑ͯͨʂʯͱ͔
खಈςετͱςετίʔυςετίʔυόάमਖ਼ΛݮΒ͠ͳ͕Β࣮֬ʹςετΛߦ͏͜ͱ͕Ͱ͖Δ→࣭ͱ։ൃεϐʔυΛཱ྆͢Δ͜ͱ͕Ͱ͖Δ
ςετίʔυѹউ…ͱ͍͏Θ͚Ͱͳ͍ͨͩ͠ɺςετίʔυಋೖɾϝϯςφϯείετ͕ൃੜ͢ΔखಈςετͰ͔͠νΣοΫͰ͖ͳ͍ςετ͋ΔɹɹʢςετίʔυͰ࣮ݱͰ͖ͳ͍ςετͪΖΜ͋Δʣ
ISTQBςετٕज़ऀࢿ੍֨γϥόεʹΑΔͱςετΛࢧԉ͢ΔπʔϧΛ͏જࡏతͳϦεΫҎԼͷ௨ΓͰ͋Δɻ• ςετπʔϧͷޮՌΛաେʹظ͢Δʢྫ͑ɺπʔϧͷػೳ͍͢͞ͳͲʣɻ• ςετπʔϧΛॳΊͯಋೖ͢Δ߹ʹཁ͢Δ࣌ؒɺίετɺΛաখධՁ͢Δʢྫ͑ɺڭҭ ɺ֎෦ͷઐՈͷࢧԉͳͲʣɻ• େ͖ͳޮՌΛܧଓతʹ্͛ΔͨΊʹඞཁͳ࣌ؒΛաখධՁ͢Δʢྫ͑ɺςετϓϩηε ͷมߋɺπʔϧͷ༻๏ͷܧଓతͳվળͳͲʣɻ• πʔϧ͕ੜ͢Δςετࢿ࢈Λϝϯςφϯε͢ΔͨΊʹඞཁͳΛաখධՁ͢Δɻ• πʔϧʹաͳґଘΛ͢Δʢςετઃܭ·ͨςετ࣮ߦͱஔ͖͑ΒΕΔͱߟ͑Δɺ·ͨखಈςετͷํ͕దͨ͠έʔεͰࣗಈςετΛར༻Ͱ͖Δͱߟ͑ΔͳͲʣ• πʔϧʹ͋Δςετࢿ࢈ͷόʔδϣϯཧΛଵΔɻ…http://jstqb.jp/dl/JSTQB-SyllabusFoundation_Version2018.J03.pdf
·ͱΊʢςετίʔυͷతʣ• ςετίʔυͷత• ࣭ͱ։ൃεϐʔυΛཱ྆͢Δ• ςετίʔυͳΒςετͷFBΛૉૣ͘ड͚औΕΔͷͰɺόάमਖ਼ΛݮΒ͢͜ͱ͕Ͱ͖Δ• ςετίʔυͰ࣮֬ʹςετΛߦ͏͜ͱ͕Ͱ͖Δ
Ϣχοτςετ1ͭͷؔϝιουʹରͯ͠ɺI/OΛ௨ͯ͠ɹ༷௨ΓͷڍಈΛ͍ͯ͠Δ͔ݕূ͢ΔPHPͰɺPHPUnit Λ͏ྫ͕ଟ͍
݁߹ɺ౷߹ςετfeatureςετɺAPI ςετ͕͜ΕʹͨΔಛఆͷϦΫΤετΛ͛ͯɺϨεϙϯε͞Εͨ༰͕ਖ਼͍͔͠Ͳ͏͔Λݕূ͢ΔPHPͰɺPHPUnit Λ͏ྫ͕ଟ͍
UIςετSelenium ͳͲΛར༻ͨ͠ E2E ςετ͕͜ΕʹͨΔ࠷Ϣʔβઢʹ͍ۙςετɻWebαʔϏεͰɺɹɹɹ࣮ࡍʹϒϥβ্Ͱ class id Λࢦఆ͢Δ͜ͱʹΑͬͯɹࣗಈૢ࡞Λ͠ɺظ௨Γͷಈ࡞Λ͍ͯ͠Δ͔ݕূ͢ΔPHP ͩͱɺPHPUnit ͱ PHP-WebDriver Λ͔ͭͬͨE2Eςετ͕ڍ͛ΒΕΔ
3ͭͷςετΛൺֱ͢ΔϢχοτςετ ౷߹ɾ݁߹ςετ 6*ςετ࣮ߦ࣌ؒ ͔ͳΓ͍ ͍ ͍ςετʹམͪͨ࣌ͷݪҼಛఆ͔࣌ؒͳΓ͍ʢฏۉతʹʣ͍͔ͳΓ͍ϝϯςφϯε গͳ͍ গͳ͍ ͔ͳΓଟ͍ςετൣғ ͔ͳΓڱ͍ ͍ ͔ͳΓ͍ϑϩϯτΤϯυͷڍಈ֬ೝՄ൱Ͱ͖ͳ͍ Ͱ͖ͳ͍ Ͱ͖Δ
3ͭͷςετΛൺֱ͢ΔϢχοτςετ ౷߹ɾ݁߹ςετ 6*ςετ࣮ߦ࣌ؒ ͔ͳΓ͍ ͍ ͍ςετʹམͪͨ࣌ͷݪҼಛఆ͔࣌ؒͳΓ͍ʢฏۉతʹʣ͍͔ͳΓ͍ϝϯςφϯε গͳ͍ গͳ͍ ͔ͳΓଟ͍ςετൣғ ͔ͳΓڱ͍ ͍ ͔ͳΓ͍ϑϩϯτΤϯυͷڍಈ֬ೝՄ൱Ͱ͖ͳ͍ Ͱ͖ͳ͍ Ͱ͖Δίετςετൣғɻςετൣғ͕͘ͳΕ࣮ߦ࣌ؒɺςετࣦഊͷݪҼಛఆɺϝϯςφϯεͳͲ͕૿͑Δ
3ͭͷςετΛൺֱ͢ΔϢχοτςετ ౷߹ɾ݁߹ςετ 6*ςετ࣮ߦ࣌ؒ ͔ͳΓ͍ ͍ ͍ςετʹམͪͨ࣌ͷݪҼಛఆ͔࣌ؒͳΓ͍ʢฏۉతʹʣ͍͔ͳΓ͍ϝϯςφϯε গͳ͍ গͳ͍ ͔ͳΓଟ͍ςετൣғ ͔ͳΓڱ͍ ͍ ͔ͳΓ͍ϑϩϯτΤϯυͷڍಈ֬ೝՄ൱Ͱ͖ͳ͍ Ͱ͖ͳ͍ Ͱ͖Δ6*ςετςετൣғʹ6*ΛؚΉͷͰɺجຊతʹϑϩϯτΤϯυͷಈ͖֬ೝͰ͖Δ
3ͭͷςετΛൺֱ͢Δ࣮ߦ͕࣌ؒ͘ɺςετࣦഊͷݪҼಛఆ͕༰қͳϢχοτςετΛҰ൪ॻ͘ͷ͕ཧ→ςετൣғ͕1ؔɾϝιουʹऩ·͍ͬͯΔ͔ΒϢχοτςετͰνΣοΫͰ͖ͳ͍Α͏ͳςετΛɺ݁߹ςετɾUIςετͰݕূ͢Δͱྑ͍
Mike CohnࢯߟҊʮςετϐϥϛουʯUI౷߹ɺ݁߹Ϣχοτhttps://www.mountaingoatsoftware.com/blog/the-forgotten-layer-of-the-test-automation-pyramid
Mike CohnࢯߟҊʮςετϐϥϛουʯUI౷߹ɺ݁߹Ϣχοτίετ ॻ͖͘ྔେখগଟhttps://www.mountaingoatsoftware.com/blog/the-forgotten-layer-of-the-test-automation-pyramid
ςετϐϥϛουΛͬͨྫྫɿςετίʔυ͕ͳ͘ɺखಈςετͷΈͰ࣭୲อ͍ͯ͠ΔɹαʔϏεͬͱςετ͍ͨ͠ͷܾࡁγεςϜ෦ॲཧ͕ෳࡶͰɺϢχοτςετΛ͢Δʹ֤ϝιουΛςετ͍͢͠Α͏ʹϦϑΝΫλϦϯά͢Δඞཁ͕͋Δ
ςετϐϥϛουΛͬͨྫUIϢχοτ6*ʢखಈςετʣ౷߹ɺ݁߹Ϣχοτ
ςετϐϥϛουΛͬͨྫUIϢχοτ6*౷߹ɺ݁߹Ϣχοτ·ͣ6*ςετͷςετίʔυΛॻ͍ͯɺ࣭Λ୲อ͢Δ
ςετϐϥϛουΛͬͨྫUIϢχοτ6*౷߹ɺ݁߹Ϣχοτ6*ςετΛ࣮ߦͭͭ͠ɺ6*ςετͰ୲อ͍ͯ͠Δ༰Λɺ౷߹ɾ݁߹ςετϢχοτςετͰஔ͖͑Δ
ςετϐϥϛουΛͬͨྫUIϢχοτ6*౷߹ɺ݁߹ϢχοτνʔϜͰܾࡁपΓϢχοτςετͰͳ͘ɺɹɹɹɹɹɹɹɹ౷߹ɾ݁߹ςετͰ֬ೝ͍ͨ͠ͱ͍͏ʹͳͬͨͷͰଟΊʹ͢Δ
ςετϐϥϛουΛͬͨྫαʔϏεͷੑ࣭ʹΑͬͯ࠷దղมΘΔඞͣ͠ਖ਼ࡾ֯ܗͷςετϐϥϛουʹͳΔͱݶΒͳ͍େࣄͳͷɺαʔϏεͷੑ࣭Λཧղ͢Δ͜ͱͱνʔϜօͰ͢Γ߹ΘͤΔ͜ͱ
·ͱΊʢ༷ʑͳςετίʔυΛΔʣ• ςετίʔυେ͖͚͘ΔͱɺɹɹɹɹɹɹɹɹϢχοτςετɺ౷߹ɾ݁߹ςετɺUIςετɹɹɹ3छྨͷςετ͕ଘࡏ͢Δ• ͲͷςετίʔυΛͲͷ͘Β͍ಋೖ͢Δ͔ɺɹɹςετϐϥϛουΛࢀߟʹ͢Δͱྑ͍ɹɹɹɹɹɹͨͩ͠αʔϏεϓϩμΫτͷੑ࣭ʹΑͬͯ࠷దղมΘΔͷͰɺνʔϜͰ͢Γ߹ΘͤΛߦ͏͜ͱ
࠷ޙʹ࣭Λ୲อͰ͖Εࣗͣͱ։ൃεϐʔυɹɹ্͛Δ͜ͱ͕Ͱ͖ΔͷͰɺ࣭ͱ։ൃεϐʔυτϨʔυΦϑͰͳ͍ͱࢲࢥ͍ͬͯ·࣭͢ͱ։ൃεϐʔυ྆ํΛཱ྆͢ΔͨΊɺɹɹςετίʔυΛॻ͍͍͖ͯ·͠ΐ͏