[DevCamp] ๐Ÿงช ์ธ์ˆ˜ ํ…Œ์ŠคํŠธ์™€ ์ž๋™ํ™”

๋™๊ฑดยท2025๋…„ 5์›” 17์ผ
0

DevCamp

๋ชฉ๋ก ๋ณด๊ธฐ
67/85

๐Ÿงช ์ธ์ˆ˜ ํ…Œ์ŠคํŠธ์™€ ์ž๋™ํ™”

์ธ์ˆ˜ ํ…Œ์ŠคํŠธ(acceptance test)๋Š” ์‹œ์Šคํ…œ์ด ์š”๊ตฌ์‚ฌํ•ญ์„ ์ถฉ์กฑํ•˜๋Š”์ง€ ํ™•์ธํ•˜๋Š” ํ…Œ์ŠคํŠธ๋‹ค.
๋ณดํ†ต ์‹ค์ œ ์‚ฌ์šฉ์ž์˜ ์‹œ๋‚˜๋ฆฌ์˜ค๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ํ…Œ์ŠคํŠธํ•˜๋ฉฐ, ๊ธฐ๋Šฅ์ด ์ œ๋Œ€๋กœ ๋™์ž‘ํ•˜๋Š”์ง€๋ฅผ ๊ฒ€์ฆํ•œ๋‹ค.

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


๐Ÿ” ์ธ์ˆ˜ ํ…Œ์ŠคํŠธ๋ž€?

์ธ์ˆ˜ ํ…Œ์ŠคํŠธ๋Š” ์‚ฌ์šฉ์ž์˜ ์š”๊ตฌ์‚ฌํ•ญ์ด๋‚˜ ์‹œ๋‚˜๋ฆฌ์˜ค๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ์ž‘์„ฑํ•œ๋‹ค. ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋ชฉ์ ์ด ์žˆ๋‹ค:

  • ์š”๊ตฌ์‚ฌํ•ญ ์ถฉ์กฑ ์—ฌ๋ถ€ ๊ฒ€์ฆ
  • ์‚ฌ์šฉ์ž ์‹œ๋‚˜๋ฆฌ์˜ค ๊ธฐ๋ฐ˜ ํ…Œ์ŠคํŠธ
  • ๊ฐœ๋ฐœ์ž, QA, ๊ธฐํš์ž ๊ฐ„์˜ ๊ณตํ†ต๋œ ์ดํ•ด ๊ธฐ๋ฐ˜ ์ œ๊ณต

โš™๏ธ ์ธ์ˆ˜ ํ…Œ์ŠคํŠธ ์ž๋™ํ™” ๋„๊ตฌ

๋„๊ตฌ์„ค๋ช…
Cypress๋ธŒ๋ผ์šฐ์ € ๊ธฐ๋ฐ˜ E2E ํ…Œ์ŠคํŠธ ํ”„๋ ˆ์ž„์›Œํฌ
Playwrightํฌ๋กœ์Šค ๋ธŒ๋ผ์šฐ์ € ์ž๋™ํ™” ํ”„๋ ˆ์ž„์›Œํฌ, Microsoft ์ œ๊ณต
Selenium์ „ํ†ต์ ์ธ ์ž๋™ํ™” ํ”„๋ ˆ์ž„์›Œํฌ, ๋‹ค์–‘ํ•œ ์–ธ์–ด ์ง€์›

๐Ÿงฑ ์˜ˆ์ œ: Cypress๋กœ ์ธ์ˆ˜ ํ…Œ์ŠคํŠธ ์ž๋™ํ™”

# ์„ค์น˜
$ npm install cypress --save-dev

# ์‹คํ–‰
$ npx cypress open
// cypress/e2e/sample.cy.js

describe('๋กœ๊ทธ์ธ ๊ธฐ๋Šฅ ํ…Œ์ŠคํŠธ', () => {
  it('์‚ฌ์šฉ์ž๋Š” ์˜ฌ๋ฐ”๋ฅธ ์ •๋ณด๋ฅผ ์ž…๋ ฅํ•˜๋ฉด ๋กœ๊ทธ์ธํ•  ์ˆ˜ ์žˆ๋‹ค', () => {
    cy.visit('http://localhost:3000/login');
    cy.get('input[name="email"]').type('test@example.com');
    cy.get('input[name="password"]').type('12345678');
    cy.get('button[type="submit"]').click();
    cy.url().should('include', '/dashboard');
  });
});

โœ… ์ž๋™ํ™”์˜ ์žฅ์ 

  • ๋ฐ˜๋ณต ์ž‘์—… ์ œ๊ฑฐ โ†’ ๊ฐœ๋ฐœ ์ƒ์‚ฐ์„ฑ ํ–ฅ์ƒ
  • ํšŒ๊ท€ ํ…Œ์ŠคํŠธ ๊ฐ€๋Šฅ โ†’ ํ’ˆ์งˆ ์œ ์ง€
  • ์‹œ๋‚˜๋ฆฌ์˜ค ๋ณ€๊ฒฝ ์‹œ ํ…Œ์ŠคํŠธ ์—…๋ฐ์ดํŠธ๋กœ ์š”๊ตฌ์‚ฌํ•ญ ๊ด€๋ฆฌ ์šฉ์ด

๐Ÿ“Œ ๊ณ ๋ ค์‚ฌํ•ญ

  • ํ…Œ์ŠคํŠธ ์‹œ๋‚˜๋ฆฌ์˜ค์˜ ์œ ์ง€๋ณด์ˆ˜ ๋น„์šฉ
  • ์ž๋™ํ™”์™€ ์ˆ˜๋™ ํ…Œ์ŠคํŠธ์˜ ๊ท ํ˜•
  • ์‹ค์ œ ์‚ฌ์šฉ์ž ํ๋ฆ„์— ๊ธฐ๋ฐ˜ํ•œ ์‹œ๋‚˜๋ฆฌ์˜ค ์„ค๊ณ„

๐Ÿ”จ TIL

  • ์ธ์ˆ˜ ํ…Œ์ŠคํŠธ๋Š” ์‹ค์ œ ์‚ฌ์šฉ์ž ๊ด€์ ์—์„œ ์‹œ์Šคํ…œ์„ ๊ฒ€์ฆํ•˜๋Š” ํ…Œ์ŠคํŠธ๋‹ค.
  • Cypress๋ฅผ ํ™œ์šฉํ•ด ๋ธŒ๋ผ์šฐ์ € ๊ธฐ๋ฐ˜ ์ž๋™ํ™” ํ…Œ์ŠคํŠธ๋ฅผ ๊ตฌ์„ฑํ–ˆ๋‹ค.
  • ์ž๋™ํ™”๋ฅผ ํ†ตํ•ด ๋ฐ˜๋ณต ํ…Œ์ŠคํŠธ์— ์†Œ์š”๋˜๋Š” ์‹œ๊ฐ„์„ ์ ˆ์•ฝํ•  ์ˆ˜ ์žˆ์Œ์„ ๊ฒฝํ—˜ํ–ˆ๋‹ค.
profile
๋ฐฐ๊ณ ํ”ˆ ๊ฐœ๋ฐœ์ž

0๊ฐœ์˜ ๋Œ“๊ธ€