ํ…Œ์ŠคํŠธ ์ž๋™ํ™”๋ž€๏ผŸ์ˆ˜๋™ ํ…Œ์ŠคํŠธ์™€์˜ ์ฐจ์ด๋ฅผ ์•Œ๊ธฐ ์‰ฝ๊ฒŒ ํ•ด์„คใ€์ดˆ๋ณด์ž์šฉใ€‘

ํ…Œ์ŠคํŠธ ์ž๋™ํ™”

๐Ÿ“Œ ์ด๋Ÿฐ ๋ถ„๋“ค์„ ์œ„ํ•œ ๊ธ€์ž…๋‹ˆ๋‹ค

  • ํ…Œ์ŠคํŠธ ์ž๋™ํ™”๋ผ๋Š” ๋ง์€ ๋“ค์–ด๋ดค์ง€๋งŒ ์ž˜ ๋ชจ๋ฅด๋Š” ๋ถ„
  • ์ˆ˜๋™ ํ…Œ์ŠคํŠธ์™€์˜ ์ฐจ์ด๋ฅผ ๊ตฌ์ฒด์ ์œผ๋กœ ์•Œ๊ณ  ์‹ถ์€ ์—”์ง€๋‹ˆ์–ดยทQA ๋‹ด๋‹น์ž
  • ํ…Œ์ŠคํŠธ ์ž๋™ํ™” ๋„์ž…์„ ๊ฒ€ํ†  ์ค‘์ธ ํŒ€ ๋ฆฌ๋”ยท๋งค๋‹ˆ์ €
  • ์•ž์œผ๋กœ QA ์—”์ง€๋‹ˆ์–ด๋ฅผ ๋ชฉํ‘œ๋กœ ํ•˜๋Š” ๋ถ„

โœ… ์ด ๊ธ€์„ ์ฝ์œผ๋ฉด ์•Œ ์ˆ˜ ์žˆ๋Š” ๊ฒƒ

  • ํ…Œ์ŠคํŠธ ์ž๋™ํ™”๋ž€ ๋ฌด์—‡์ธ์ง€, ์ˆ˜๋™ ํ…Œ์ŠคํŠธ์™€์˜ ๋ณธ์งˆ์ ์ธ ์ฐจ์ด
  • ํ…Œ์ŠคํŠธ ์ž๋™ํ™”์˜ 3๊ฐ€์ง€ ์ข…๋ฅ˜๏ผˆ๋‹จ์œ„ยทํ†ตํ•ฉยทE2E๏ผ‰
  • ์ž๋™ํ™”ํ•ด์•ผ ํ•  ํ…Œ์ŠคํŠธ์™€ ํ•˜์ง€ ๋ง์•„์•ผ ํ•  ํ…Œ์ŠคํŠธ์˜ ๊ตฌ๋ถ„๋ฒ•
  • ์‹ค๋ฌด์—์„œ ์ž์ฃผ ์‚ฌ์šฉ๋˜๋Š” ์ž๋™ํ™” ๋„๊ตฌ์˜ ์ข…๋ฅ˜

๐Ÿ‘ค

๊ธ€์“ด์ด ์†Œ๊ฐœ๏ผšSeleniumยทPlaywrightยทPython์„ ์‚ฌ์šฉํ•œ ํ…Œ์ŠคํŠธ ์ž๋™ํ™”๋ฅผ ์‹ค๋ฌด์—์„œ ๋‹ด๋‹นํ•˜๊ณ  ์žˆ๋Š” QA ์—”์ง€๋‹ˆ์–ด์ž…๋‹ˆ๋‹ค. ์ด ์‹œ๋ฆฌ์ฆˆ์—์„œ๋Š” ํ…Œ์ŠคํŠธ ์ž๋™ํ™”์˜ ๊ธฐ์ดˆ๋ถ€ํ„ฐ ๊ตฌํ˜„๊นŒ์ง€ ์ฒด๊ณ„์ ์œผ๋กœ ํ•ด์„คํ•ฉ๋‹ˆ๋‹ค. GitHub์—์„œ ์†Œ์Šค์ฝ”๋“œ ๊ณต๊ฐœ ์ค‘ใ€‚

๐Ÿ“Œ ์ด ๊ธ€์˜ ๊ฒฐ๋ก 

ํ…Œ์ŠคํŠธ ์ž๋™ํ™”๋ž€ ๋„๊ตฌ๋‚˜ ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์‚ฌ์šฉํ•ด ์†Œํ”„ํŠธ์›จ์–ด ํ…Œ์ŠคํŠธ๋ฅผ ์ž๋™์œผ๋กœ ์‹คํ–‰ํ•˜๋Š” ๊ธฐ๋ฒ•์ž…๋‹ˆ๋‹ค. ์ˆ˜๋™ ํ…Œ์ŠคํŠธ๋ณด๋‹ค ๋น ๋ฅด๊ณ  ์ •ํ™•ํ•˜๊ฒŒ ํ…Œ์ŠคํŠธ๋ฅผ ๋ฐ˜๋ณต ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ์–ด, ํ˜„์žฌ์˜ ์†Œํ”„ํŠธ์›จ์–ด ๊ฐœ๋ฐœ์—์„œ ํ’ˆ์งˆ ํ–ฅ์ƒ๊ณผ ๊ฐœ๋ฐœ ํšจ์œจํ™” ์–‘๋ฉด์—์„œ ์ค‘์š”ํ•œ ์—ญํ• ์„ ๋‹ด๋‹นํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

ใ€Œํ…Œ์ŠคํŠธ ์ž๋™ํ™”๊ฐ€ ๋ญ์•ผ?ใ€ใ€Œ์ˆ˜๋™ ํ…Œ์ŠคํŠธ๋ž‘ ๋ญ๊ฐ€ ๋‹ค๋ฅด์ง€?ใ€โ€”โ€”์ด๋Ÿฐ ์˜๋ฌธ์„ ๊ฐ€์ง„ ์—”์ง€๋‹ˆ์–ด๋‚˜ QA ๋‹ด๋‹น์ž๊ฐ€ ๋งŽ์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

ํ…Œ์ŠคํŠธ ์ž๋™ํ™”๋Š” ์ด์ œ ์†Œํ”„ํŠธ์›จ์–ด ๊ฐœ๋ฐœ์— ์—†์–ด์„œ๋Š” ์•ˆ ๋  ๊ธฐ์ˆ ์ด์ง€๋งŒ, ใ€Œ๋ฌด์—‡์„ ์ž๋™ํ™”ํ•˜๋ฉด ์ข‹์„์ง€ใ€ใ€Œ์–ด๋””์„œ๋ถ€ํ„ฐ ์‹œ์ž‘ํ•˜๋ฉด ์ข‹์„์ง€ใ€๋ฅผ ๋ชฐ๋ผ์„œ ๋„์ž…์„ ๋ง์„ค์ด๋Š” ํŒ€๋„ ์ ์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ด ๊ธ€์—์„œ๋Š” ํ…Œ์ŠคํŠธ ์ž๋™ํ™”์˜ ๊ธฐ๋ณธ ๊ฐœ๋…๋ถ€ํ„ฐ ์ˆ˜๋™ ํ…Œ์ŠคํŠธ์™€์˜ ์ฐจ์ด, ์‹ค๋ฌด์—์„œ์˜ ํ™œ์šฉ๋ฒ•๊นŒ์ง€ ์•Œ๊ธฐ ์‰ฝ๊ฒŒ ํ•ด์„คํ•ฉ๋‹ˆ๋‹ค.

ํ…Œ์ŠคํŠธ ์ž๋™ํ™”๋ž€๏ผŸ

ํ…Œ์ŠคํŠธ ์ž๋™ํ™”๋ž€ ์†Œํ”„ํŠธ์›จ์–ด์˜ ํ…Œ์ŠคํŠธ ์ž‘์—…์„ ํ”„๋กœ๊ทธ๋žจ์ด๋‚˜ ๋„๊ตฌ๋กœ ์ž๋™์œผ๋กœ ์‹คํ–‰ํ•˜๋Š” ๊ตฌ์กฐ๋ฅผ ๋งํ•ฉ๋‹ˆ๋‹ค.

์‚ฌ๋žŒ์ด ์ˆ˜์ž‘์—…์œผ๋กœ ๋ธŒ๋ผ์šฐ์ €๋ฅผ ์กฐ์ž‘ํ•˜๊ฑฐ๋‚˜ API๋ฅผ ํ˜ธ์ถœํ•˜๋Š” ๋Œ€์‹ , ์ฝ”๋“œ๊ฐ€ ์ž๋™์œผ๋กœ ๊ทธ ์กฐ์ž‘์„ ์žฌํ˜„ํ•˜๊ณ  ๊ธฐ๋Œ€ํ•œ ๊ฒฐ๊ณผ๊ฐ€ ๋‚˜์˜ค๋Š”์ง€ ๊ฒ€์ฆํ•ฉ๋‹ˆ๋‹ค. ํ•œ ๋ฒˆ ์ž‘์„ฑํ•œ ํ…Œ์ŠคํŠธ๋Š” ๋ช‡ ๋ฒˆ์ด๋“  ๋ฐ˜๋ณต ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ์‚ฌ๋žŒ์ด ์ž๋Š” ๋™์•ˆ์—๋„, ๋ฆด๋ฆฌ์Šค๋งˆ๋‹ค ์ž๋™์œผ๋กœ ํ’ˆ์งˆ ๊ฒ€์‚ฌ๊ฐ€ ๋Œ์•„๊ฐ€๋Š” ํ™˜๊ฒฝ์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

โ–ผ ํ…Œ์ŠคํŠธ ์ž๋™ํ™”์˜ ๊ธฐ๋ณธ์ ์ธ ํ๋ฆ„

ํ…Œ์ŠคํŠธ ์ฝ”๋“œ
Python / JS
โ†’
์ž๋™ ์‹คํ–‰
CI / ๋กœ์ปฌ
โ†’
๊ฒฐ๊ณผ ๊ฒ€์ฆ
PASS / FAIL
โ†’
๋ฆฌํฌํŠธ ์ถœ๋ ฅ
CSV / HTML

์ˆ˜๋™ ํ…Œ์ŠคํŠธ์™€์˜ ์ฐจ์ด

์ˆ˜๋™ ํ…Œ์ŠคํŠธ๋Š” ์‚ฌ๋žŒ์ด ๋ธŒ๋ผ์šฐ์ €๋ฅผ ์กฐ์ž‘ํ•ด ๋™์ž‘์„ ํ™•์ธํ•˜๋Š” ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค. ์ง๊ด€์ ์ด๊ณ  ์•Œ๊ธฐ ์‰ฌ์šด ๋ฐ˜๋ฉด, ์‹œ๊ฐ„ยท๋น„์šฉยทํœด๋จผ ์—๋Ÿฌ์˜ ๋ฌธ์ œ๊ฐ€ ๋”ฐ๋ผ์˜ต๋‹ˆ๋‹ค.

ํ•ญ๋ชฉ ๐Ÿ™‹ ์ˆ˜๋™ ํ…Œ์ŠคํŠธ ๐Ÿค– ํ…Œ์ŠคํŠธ ์ž๋™ํ™”
์‹คํ–‰ ๋ฐฉ๋ฒ• ์‚ฌ๋žŒ์ด ์กฐ์ž‘ํ•ด์„œ ํ…Œ์ŠคํŠธ ์Šคํฌ๋ฆฝํŠธ๋กœ ์ž๋™ ์‹คํ–‰
์‹คํ–‰ ์†๋„ ์‹คํ–‰์— ์‹œ๊ฐ„์ด ๊ฑธ๋ฆฐ๋‹ค ์งง์€ ์‹œ๊ฐ„์— ๋ฐ˜๋ณต ์‹คํ–‰ ๊ฐ€๋Šฅ
์ •ํ™•์„ฑ ํœด๋จผ ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ•˜๊ธฐ ์‰ฝ๋‹ค ์•ˆ์ •์ ์ธ ๊ฒฐ๊ณผ๋ฅผ ์–ป์„ ์ˆ˜ ์žˆ๋‹ค
์žฅ๊ธฐ ๋น„์šฉ ์‹คํ–‰๋งˆ๋‹ค ์ธ๊ฑด๋น„ ๋ฐœ์ƒ ์ดˆ๊ธฐ ๋น„์šฉ ํ›„์—๋Š” ์ €๋น„์šฉ
์œ ์—ฐํ•œ ํŒ๋‹จ ์ง๊ฐ์ ์œผ๋กœ ๋Œ€์‘ ๊ฐ€๋Šฅ ์ฝ”๋“œ ์™ธ์˜ ํŒ๋‹จ์€ ์–ด๋ ต๋‹ค

โ–ผ ์ˆ˜๋™ ํ…Œ์ŠคํŠธ vs ํ…Œ์ŠคํŠธ ์ž๋™ํ™” ์ƒ์„ธ ๋น„๊ต

๋น„๊ต ํ•ญ๋ชฉ ๐Ÿ™‹ ์ˆ˜๋™ ํ…Œ์ŠคํŠธ ๐Ÿค– ํ…Œ์ŠคํŠธ ์ž๋™ํ™”
โฑ ์‹คํ–‰ ์†๋„ ๋А๋ฆฌ๋‹ค๏ผˆ์‚ฌ๋žŒ์˜ ์กฐ์ž‘ ์†๋„๏ผ‰ ๋น ๋ฅด๋‹ค๏ผˆ์ปดํ“จํ„ฐ ์†๋„๏ผ‰
๐Ÿ” ๋ฐ˜๋ณต ์‹คํ–‰ ํ”ผ๋กœยท์‹ค์ˆ˜๊ฐ€ ๋Š˜์–ด๋‚œ๋‹ค ๋ช‡ ๋ฒˆ์ด๋“  ๊ฐ™์€ ์ •ํ™•๋„๋กœ ์‹คํ–‰
๐Ÿ’ฐ ์žฅ๊ธฐ ๋น„์šฉ ์‹คํ–‰๋งˆ๋‹ค ์ธ๊ฑด๋น„ ๋ฐœ์ƒ ์ดˆ๊ธฐ ๋น„์šฉ ํ›„์—๋Š” ์ €๋น„์šฉ
๐Ÿง  ์œ ์—ฐํ•œ ํŒ๋‹จ ์ง๊ฐ์ ์œผ๋กœ ๋Œ€์‘ ๊ฐ€๋Šฅ ์ฝ”๋“œ ์™ธ์˜ ํŒ๋‹จ์€ ์–ด๋ ต๋‹ค
๐Ÿ’ก ํฌ์ธํŠธ๏ผš ์ˆ˜๋™ ํ…Œ์ŠคํŠธ๊ฐ€ ใ€Œ๋ถˆํ•„์š”ใ€ํ•ด์ง€๋Š” ๊ฒƒ์€ ์•„๋‹™๋‹ˆ๋‹ค. ๋ฐ˜๋ณต ์‹คํ–‰ํ•˜๋Š” ์ •ํ˜• ํ…Œ์ŠคํŠธ๋Š” ์ž๋™ํ™”ํ•˜๊ณ , ํƒ์ƒ‰์  ํ…Œ์ŠคํŠธ๋‚˜ ์ง๊ฐ์ ์ธ ํŒ๋‹จ์ด ํ•„์š”ํ•œ ํ…Œ์ŠคํŠธ๋Š” ์ˆ˜๋™์œผ๋กœ ์ˆ˜ํ–‰ํ•˜๋Š” ๊ฒƒ์ด ์‹ค๋ฌด์—์„œ์˜ ์˜ฌ๋ฐ”๋ฅธ ๊ตฌ๋ถ„์ž…๋‹ˆ๋‹ค.

ํ…Œ์ŠคํŠธ์˜ 3๊ฐ€์ง€ ์ข…๋ฅ˜๏ผˆํ…Œ์ŠคํŠธ ํ”ผ๋ผ๋ฏธ๋“œ๏ผ‰

ํ…Œ์ŠคํŠธ ์ž๋™ํ™”์—๋Š” ํฌ๊ฒŒ 3๊ฐ€์ง€ ์ข…๋ฅ˜๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด 3์ธต ๊ตฌ์กฐ๋ฅผ ใ€Œํ…Œ์ŠคํŠธ ํ”ผ๋ผ๋ฏธ๋“œใ€๋ผ๊ณ  ๋ถ€๋ฅด๋ฉฐ, ์‹ค๋ฌด์—์„œ ์ด์ƒ์ ์ธ ํ…Œ์ŠคํŠธ ๊ตฌ์„ฑ์˜ ์ง€์นจ์œผ๋กœ ๋„๋ฆฌ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

โ–ผ ํ…Œ์ŠคํŠธ ํ”ผ๋ผ๋ฏธ๋“œ

E2E ํ…Œ์ŠคํŠธ
UI ํ…Œ์ŠคํŠธ ยท ๋ธŒ๋ผ์šฐ์ € ์ž๋™ํ™”
โ–ฒ ์ ์Œ ยท ๋น„์šฉ ๋†’์Œ

ํ†ตํ•ฉ ํ…Œ์ŠคํŠธ
API ํ…Œ์ŠคํŠธ ยท ๋ชจ๋“ˆ ๊ฐ„ ์—ฐ๊ณ„
โ–ฒ ์ค‘๊ฐ„ ์ •๋„

๋‹จ์œ„ ํ…Œ์ŠคํŠธ๏ผˆ์œ ๋‹› ํ…Œ์ŠคํŠธ๏ผ‰
ํ•จ์ˆ˜ ยท ํด๋ž˜์Šค ๋‹จ์œ„ ๋™์ž‘ ํ™•์ธ
โ–ผ ๋งŽ์Œ ยท ๊ณ ์† ยท ์ €๋น„์šฉ

๐Ÿงฑ ๋‹จ์œ„ ํ…Œ์ŠคํŠธ
ํ•จ์ˆ˜ ยท ํด๋ž˜์Šค ๋‹จ์œ„

์ตœ์†Œ ๋‹จ์œ„์˜ ๋™์ž‘ ํ™•์ธ. ๊ณ ์†ยท์ €๋น„์šฉ์œผ๋กœ ์ˆ˜๊ฐ€ ๋งŽ์„์ˆ˜๋ก ์ข‹์Œ. pytest๊ฐ€ ๋Œ€ํ‘œ ๋„๊ตฌ

๐Ÿ”— ํ†ตํ•ฉ ํ…Œ์ŠคํŠธ
๋ชจ๋“ˆ ๊ฐ„ ยท API

์—ฌ๋Ÿฌ ๋ชจ๋“ˆ์ด๋‚˜ API๊ฐ€ ์—ฐ๊ณ„ํ•ด ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ๋™์ž‘ํ•˜๋Š”์ง€ ํ™•์ธ. requests๊ฐ€ ๋Œ€ํ‘œ ๋„๊ตฌ

๐ŸŒ E2E ํ…Œ์ŠคํŠธ
์‚ฌ์šฉ์ž ์กฐ์ž‘ ์ „์ฒด

์‹ค์ œ ๋ธŒ๋ผ์šฐ์ €๋ฅผ ์กฐ์ž‘ํ•ด ์‚ฌ์šฉ์ž์˜ ์กฐ์ž‘ ํ”Œ๋กœ์šฐ๋ฅผ ์žฌํ˜„. SeleniumยทPlaywright๊ฐ€ ๋Œ€ํ‘œ ๋„๊ตฌ

์ž๋™ํ™”ํ•ด์•ผ ํ•  ํ…Œ์ŠคํŠธ ยท ํ•˜์ง€ ๋ง์•„์•ผ ํ•  ํ…Œ์ŠคํŠธ

ใ€Œ์ „๋ถ€ ์ž๋™ํ™”ํ•˜๋ฉด ๋˜์ง€ ์•Š๋‚˜ใ€๋ผ๊ณ  ์ƒ๊ฐํ•˜๊ธฐ ์‰ฝ์ง€๋งŒ, ํ…Œ์ŠคํŠธ์—๋Š” ์ž๋™ํ™”์— ์ ํ•ฉํ•œ ๊ฒƒ๊ณผ ์ ํ•ฉํ•˜์ง€ ์•Š์€ ๊ฒƒ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์‹ค๋ฌด์—์„œ๋Š” ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ๊ตฌ๋ถ„ํ•˜๋Š” ๊ฒƒ์ด ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค.

โœ… ์ž๋™ํ™”์— ์ ํ•ฉํ•œ ํ…Œ์ŠคํŠธ

  • ๋งค๋ฒˆ ๊ฐ™์€ ์ ˆ์ฐจ๋กœ ๋ฐ˜๋ณตํ•˜๋Š” ํ…Œ์ŠคํŠธ
  • ๋ฆด๋ฆฌ์Šค๋งˆ๋‹ค ์‹คํ–‰ํ•˜๋Š” ํšŒ๊ท€ ํ…Œ์ŠคํŠธ
  • ๋Œ€๋Ÿ‰ ๋ฐ์ดํ„ฐ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ํ…Œ์ŠคํŠธ
  • ๋กœ๊ทธ์ธยทํผ ์ž…๋ ฅ ๋“ฑ ์ •ํ˜• ์กฐ์ž‘
  • API ์‘๋‹ต ๊ฒ€์ฆ
  • ์ƒํƒœ ์ฝ”๋“œยท์—๋Ÿฌ ์ฒดํฌ

โŒ ์ž๋™ํ™”์— ์ ํ•ฉํ•˜์ง€ ์•Š์€ ํ…Œ์ŠคํŠธ

  • ๋””์ž์ธ ์™ธ๊ด€ยท์ƒ‰์ƒ ํ™•์ธ
  • ์‚ฌ์šฉ์„ฑ๏ผˆUX๏ผ‰ํ‰๊ฐ€
  • ํƒ์ƒ‰์  ํ…Œ์ŠคํŠธ๏ผˆ์ง๊ฐ์œผ๋กœ ์กฐ์ž‘ํ•ด ์ฐพ๋Š”๏ผ‰
  • ํ•œ ๋ฒˆ๋งŒ ์‹คํ–‰ํ•˜๋Š” ์ž„์‹œ ํ…Œ์ŠคํŠธ
  • ์‚ฌ์–‘์ด ์ž์ฃผ ๋ฐ”๋€Œ๋Š” ํ…Œ์ŠคํŠธ
  • ์‚ฌ๋žŒ์˜ ๊ฐ์„ฑ์ด ํ•„์š”ํ•œ ํŒ๋‹จ

ํ…Œ์ŠคํŠธ ์ž๋™ํ™”์˜ ๋ฉ”๋ฆฌํŠธยท๋ฐ๋ฉ”๋ฆฌํŠธ

โœ… ๋ฉ”๋ฆฌํŠธ

โšก
๊ณ ์†ยท๋ฐ˜๋ณต ์‹คํ–‰

์‚ฌ๋žŒ์ด ๋ช‡ ์‹œ๊ฐ„ ๊ฑธ๋ฆฌ๋Š” ํ…Œ์ŠคํŠธ๋ฅผ ๋ช‡ ๋ถ„ ๋งŒ์— ์™„๋ฃŒ. ๋ช‡ ๋ฒˆ์ด๋“  ๊ฐ™์€ ํ’ˆ์งˆ๋กœ ์‹คํ–‰ ๊ฐ€๋Šฅ

๐ŸŽฏ
ํœด๋จผ ์—๋Ÿฌ ๋ฐฐ์ œ

ํ”ผ๋กœ๋กœ ์ธํ•œ ๋†“์นจ์ด๋‚˜ ์กฐ์ž‘ ์‹ค์ˆ˜๊ฐ€ ์—†์–ด์ ธ ํ…Œ์ŠคํŠธ ํ’ˆ์งˆ์ด ์•ˆ์ •๋จ

๐Ÿ”„
CI/CD์— ํ†ตํ•ฉ ๊ฐ€๋Šฅ

๋ฐฐํฌ๋งˆ๋‹ค ์ž๋™์œผ๋กœ ํ…Œ์ŠคํŠธ๊ฐ€ ์‹คํ–‰๋˜์–ด ํ’ˆ์งˆ์„ ์ง€์†์ ์œผ๋กœ ๋‹ด๋ณด ๊ฐ€๋Šฅ

๐Ÿ’ฐ
์žฅ๊ธฐ์ ์ธ ๋น„์šฉ ์ ˆ๊ฐ

์ดˆ๊ธฐ ํˆฌ์ž๋Š” ํ•„์š”ํ•˜์ง€๋งŒ ์žฅ๊ธฐ์ ์œผ๋กœ๋Š” ์ˆ˜๋™ ํ…Œ์ŠคํŠธ๋ณด๋‹ค ๋น„์šฉ์„ ํฌ๊ฒŒ ์ ˆ๊ฐ ๊ฐ€๋Šฅ

โš ๏ธ ๋ฐ๋ฉ”๋ฆฌํŠธยท์ฃผ์˜์ 

๐Ÿ› 
์ดˆ๊ธฐ ๊ตฌ์ถ• ๋น„์šฉ์ด ๋“ ๋‹ค

ํ…Œ์ŠคํŠธ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜๋Š” ์‹œ๊ฐ„๊ณผ ๊ธฐ์ˆ  ์Šคํ‚ฌ์ด ํ•„์š”. ๋ฐ”๋กœ ํšจ๊ณผ๋Š” ๋‚˜์˜ค์ง€ ์•Š๋Š”๋‹ค

๐Ÿ”ง
์œ ์ง€๋ณด์ˆ˜๊ฐ€ ํ•„์š”ํ•˜๋‹ค

์‚ฌ์–‘ ๋ณ€๊ฒฝ๋งˆ๋‹ค ํ…Œ์ŠคํŠธ ์ฝ”๋“œ๋„ ๊ฐฑ์‹ ์ด ํ•„์š”. ๋ฐฉ์น˜ํ•˜๋ฉด ๋ง๊ฐ€์ง„ ์ฑ„๋กœ ๋ฐฉ์น˜๋จ

๐Ÿ‘
์ „๋ถ€ ์ž๋™ํ™”๋Š” ๋ถˆ๊ฐ€

๋””์ž์ธ์ด๋‚˜ UX ๋“ฑ ์‚ฌ๋žŒ์˜ ๊ฐ์„ฑ์ด ํ•„์š”ํ•œ ํ…Œ์ŠคํŠธ๋Š” ์ž๋™ํ™”๋กœ ๋Œ€์ฒด ๋ถˆ๊ฐ€

์ฃผ์š” ํ…Œ์ŠคํŠธ ์ž๋™ํ™” ๋„๊ตฌ

ํ…Œ์ŠคํŠธ์˜ ์ข…๋ฅ˜์— ๋”ฐ๋ผ ์‚ฌ์šฉํ•˜๋Š” ๋„๊ตฌ๊ฐ€ ๋‹ค๋ฆ…๋‹ˆ๋‹ค. ์‹ค๋ฌด์—์„œ ์ž์ฃผ ์‚ฌ์šฉ๋˜๋Š” ๋Œ€ํ‘œ์ ์ธ ๋„๊ตฌ๋ฅผ ์ •๋ฆฌํ–ˆ์Šต๋‹ˆ๋‹ค.

๋„๊ตฌ ์ข…๋ณ„ ํŠน๊ธฐ ์‚ฌํ•ญ ์–ธ์–ด
Selenium E2E ํ…Œ์ŠคํŠธ ๋ธŒ๋ผ์šฐ์ € ์ž๋™ ์กฐ์ž‘ยทํผ ํ…Œ์ŠคํŠธ Python / Java / JS
Playwright E2E ํ…Œ์ŠคํŠธ ๋ชจ๋˜ํ•œ ๋ธŒ๋ผ์šฐ์ € ์ž๋™ํ™”ยท๋…นํ™” ๊ธฐ๋Šฅ Python / JS / TS
pytest ๋‹จ์œ„ยทํ†ตํ•ฉ ํ…Œ์ŠคํŠธ Python ํ•จ์ˆ˜ยทAPI ํ…Œ์ŠคํŠธ ๊ด€๋ฆฌ Python
requests API ํ…Œ์ŠคํŠธ REST API HTTP ์š”์ฒญยท๊ฒ€์ฆ Python
Cypress E2E ํ…Œ์ŠคํŠธ ํ”„๋ก ํŠธ์—”๋“œ ํŠนํ™” ๊ณ ์† ํ…Œ์ŠคํŠธ JavaScript
Appium ๋ชจ๋ฐ”์ผ ํ…Œ์ŠคํŠธ iOS / Android ์•ฑ ์ž๋™ํ™” Python / Java / JS
๐Ÿ’ก ์ด ๋ธ”๋กœ๊ทธ์—์„œ๋Š” Python ร— SeleniumยทPlaywrightยทpytestยทrequests๋ฅผ ์ค‘์‹ฌ์œผ๋กœ ํ•ด์„คํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

์ด ๋ธ”๋กœ๊ทธ์—์„œ ๋ฐฐ์šธ ์ˆ˜ ์žˆ๋Š” ๊ฒƒ๏ผˆ์‹œ๋ฆฌ์ฆˆ ์†Œ๊ฐœ๏ผ‰

์ด ์‹œ๋ฆฌ์ฆˆ์—์„œ๋Š” ํ…Œ์ŠคํŠธ ์ž๋™ํ™”์˜ ๊ธฐ์ดˆ๋ถ€ํ„ฐ ์‹ค์ฒœ๊นŒ์ง€ ์ฒด๊ณ„์ ์œผ๋กœ ํ•ด์„คํ•ฉ๋‹ˆ๋‹ค.

๐Ÿ“š ์‹œ๋ฆฌ์ฆˆ ๊ตฌ์„ฑ

  • โ‘  ํ…Œ์ŠคํŠธ ์ž๋™ํ™”๋ž€๏ผŸ๏ผˆ์ด ๊ธ€๏ผ‰โ† ์ง€๊ธˆ ์—ฌ๊ธฐ
  • โ‘ก Selenium์œผ๋กœ ๋งํฌ ๋Š๊น€ ์ž๋™ ๊ฐ์ง€ โ†’ ๊ธ€ ์ฝ๊ธฐ
  • โ‘ข Selenium์œผ๋กœ ๋กœ๊ทธ์ธ ํผ ์œ ํšจ์„ฑ ๊ฒ€์‚ฌ ํ…Œ์ŠคํŠธ โ†’ ๊ธ€ ์ฝ๊ธฐ
  • โ‘ฃ Playwright๋กœ E2E ํ…Œ์ŠคํŠธ ์ž๋™ํ™” โ†’ ๊ธ€ ์ฝ๊ธฐ
  • โ‘ค pytest + requests๋กœ API ํ…Œ์ŠคํŠธ ์ž๋™ํ™”๏ผˆ๊ทผ์ผ ๊ณต๊ฐœ๏ผ‰

์ •๋ฆฌ

์ด ๊ธ€์—์„œ๋Š” ํ…Œ์ŠคํŠธ ์ž๋™ํ™”์˜ ๊ธฐ๋ณธ ๊ฐœ๋…๋ถ€ํ„ฐ ์ˆ˜๋™ ํ…Œ์ŠคํŠธ์™€์˜ ์ฐจ์ด, ํ…Œ์ŠคํŠธ์˜ ์ข…๋ฅ˜, ์ž๋™ํ™”์— ์ ํ•ฉํ•œ ํ…Œ์ŠคํŠธ๊นŒ์ง€ ํ•ด์„คํ–ˆ์Šต๋‹ˆ๋‹ค.

ํฌ์ธํŠธ ๋‚ด์šฉ
ํ…Œ์ŠคํŠธ ์ž๋™ํ™”๋ž€ ํ…Œ์ŠคํŠธ ์ž‘์—…์„ ํ”„๋กœ๊ทธ๋žจ์œผ๋กœ ์ž๋™์œผ๋กœ ์‹คํ–‰ํ•˜๋Š” ๊ตฌ์กฐ
์ˆ˜๋™ ํ…Œ์ŠคํŠธ์™€์˜ ์ฐจ์ด ์†๋„ยท๋ฐ˜๋ณต ์ •ํ™•๋„ยท์žฅ๊ธฐ ๋น„์šฉ์—์„œ ์ž๋™ํ™”๊ฐ€ ์šฐ์œ„
3๊ฐ€์ง€ ์ข…๋ฅ˜ ๋‹จ์œ„ ํ…Œ์ŠคํŠธยทํ†ตํ•ฉ ํ…Œ์ŠคํŠธยทE2E ํ…Œ์ŠคํŠธ๏ผˆํ…Œ์ŠคํŠธ ํ”ผ๋ผ๋ฏธ๋“œ๏ผ‰
์ž๋™ํ™”ํ•ด์•ผ ํ•  ํ…Œ์ŠคํŠธ ๋ฐ˜๋ณต ์‹คํ–‰ํ•˜๋Š” ์ •ํ˜• ํ…Œ์ŠคํŠธยทํšŒ๊ท€ ํ…Œ์ŠคํŠธยทAPI ํ…Œ์ŠคํŠธ
๋Œ€ํ‘œ ๋„๊ตฌ SeleniumยทPlaywright๏ผˆE2E๏ผ‰/ pytestยทrequests๏ผˆ๋‹จ์œ„ยทAPI๏ผ‰

๐Ÿ“‹ ์ด ๊ธ€์˜ ์ •๋ฆฌ

  • ํ…Œ์ŠคํŠธ ์ž๋™ํ™”๋Š” ์†Œํ”„ํŠธ์›จ์–ด ํ…Œ์ŠคํŠธ๋ฅผ ์Šคํฌ๋ฆฝํŠธ๋กœ ์ž๋™ ์‹คํ–‰ํ•˜๋Š” ๊ตฌ์กฐ
  • ์ˆ˜๋™ ํ…Œ์ŠคํŠธ๋ณด๋‹ค ๋น ๋ฅด๊ณ  ์ •ํ™•ํ•˜๊ฒŒ ํ…Œ์ŠคํŠธ๋ฅผ ๋ฐ˜๋ณต ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๋‹ค
  • ๋‹จ์œ„ ํ…Œ์ŠคํŠธยทํ†ตํ•ฉ ํ…Œ์ŠคํŠธยทE2E ํ…Œ์ŠคํŠธ์˜ 3์ข…๋ฅ˜๊ฐ€ ์žˆ๋‹ค๏ผˆํ…Œ์ŠคํŠธ ํ”ผ๋ผ๋ฏธ๋“œ๏ผ‰
  • ๋ฐ˜๋ณต ์‹คํ–‰ํ•˜๋Š” ์ •ํ˜• ํ…Œ์ŠคํŠธ๋Š” ์ž๋™ํ™”ํ•˜๊ณ , ํƒ์ƒ‰์  ํ…Œ์ŠคํŠธ๋Š” ์ˆ˜๋™์œผ๋กœ ๊ตฌ๋ถ„ํ•˜๋Š” ๊ฒƒ์ด ์ค‘์š”
  • ํ’ˆ์งˆ ํ–ฅ์ƒยท๊ฐœ๋ฐœ ํšจ์œจ ๊ฐœ์„ ยท๋น„์šฉ ์ ˆ๊ฐ์— ๊ธฐ์—ฌํ•œ๋‹ค

ํ˜„์žฌ์˜ ์†Œํ”„ํŠธ์›จ์–ด ๊ฐœ๋ฐœ์—์„œ ํ…Œ์ŠคํŠธ ์ž๋™ํ™”๋Š” ๋งค์šฐ ์ค‘์š”ํ•œ ๊ธฐ์ˆ  ์ค‘ ํ•˜๋‚˜์ž…๋‹ˆ๋‹ค. ์šฐ์„  ์ฃผ๋ณ€์— ์žˆ๋Š” ๋ฐ˜๋ณต ํ…Œ์ŠคํŠธ๋ฅผ ์ž๋™ํ™”ํ•˜๋Š” ๊ฒƒ๋ถ€ํ„ฐ ์‹œ์ž‘ํ•ด ๋ณด์„ธ์š”.

๋‹ค์Œ ๊ธ€๋ถ€ํ„ฐ๋Š” ์‹ค์ œ ์ฝ”๋“œ๋ฅผ ์‚ฌ์šฉํ•ด ๊ฐ ๋„๊ตฌ์˜ ์‚ฌ์šฉ๋ฒ•์„ ํ•ด์„คํ•ฉ๋‹ˆ๋‹ค. ๋จผ์ € Selenium์œผ๋กœ ๋งํฌ ๋Š๊น€์„ ์ž๋™ ๊ฐ์ง€ํ•˜๋Š” ๋ฐฉ๋ฒ• ๋ถ€ํ„ฐ ์ฝ์–ด๋ณด์„ธ์š”๐Ÿ‘‡

ใ‚ฟใ‚คใƒˆใƒซใจURLใ‚’ใ‚ณใƒ”ใƒผใ—ใพใ—ใŸ