ํ”ผ๋“œ๋กœ ๋Œ์•„๊ฐ€๊ธฐ
๐Ÿฆ Bridging Development and QA: My Journey from Code Design to Manual Testing Mastery
Dev.toDev.to
Backend

๊ฐœ๋ฐœ์ž๊ฐ€ ์ž์‹ ์˜ ATM ์‹œ๋ฎฌ๋ ˆ์ดํ„ฐ๋ฅผ QA ์—”์ง€๋‹ˆ์–ด ๊ด€์ ์—์„œ ์ฒด๊ณ„์  ํ…Œ์ŠคํŠธํ•˜์—ฌ ์„ค๊ณ„ ๊ฒฐํ•จ์„ ๋ฐœ๊ฒฌํ•œ ์—ฌ์ •

๐Ÿฆ Bridging Development and QA: My Journey from Code Design to Manual Testing Mastery

Enayet Rashid2026๋…„ 3์›” 31์ผ4๋ถ„beginner

Context

๊ฐœ๋ฐœ์ž๊ฐ€ ๊ตฌ์ถ•ํ•œ ATM ์‹œ๋ฎฌ๋ ˆ์ดํ„ฐ๋Š” ๋กœ๊ทธ์ธ, ์ž”์•ก ์กฐํšŒ, ์ž…์ถœ๊ธˆ, ์†ก๊ธˆ ๊ธฐ๋Šฅ์ด ์ •์ƒ ์ž‘๋™ํ•˜๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ๋ณด์˜€๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ QA ์—”์ง€๋‹ˆ์–ด ๊ด€์ ์—์„œ ์ฒด๊ณ„์  ํ…Œ์ŠคํŠธ๋ฅผ ์‹œ๋„ํ–ˆ์„ ๋•Œ ๋ช…ํ™•ํ•œ ๊ธฐ๋Œ€ ํ–‰๋™ ์ •์˜๊ฐ€ ์—†์—ˆ๋‹ค๋Š” ๋ฌธ์ œ๋ฅผ ๋ฐœ๊ฒฌํ–ˆ๋‹ค.

Technical Solution

  • ์š”๊ตฌ์‚ฌํ•ญ ์ •์˜ โ†’ ๊ฐ ๊ธฐ๋Šฅ์˜ Authentication rules, Deposit validation, Withdrawal constraints๋ฅผ ๋ฌธ์„œํ™”ํ•˜๊ณ  Acceptance Criteria ํฌํ•จ
  • ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค ์ž‘์„ฑ โ†’ ๋น„์ˆซ์ž ์ž…๋ ฅ ์ฒ˜๋ฆฌ, ์ž”์•ก๊ณผ ๋™์ผ ๊ธˆ์•ก ์ธ์ถœ, ์œ ํšจํ•˜์ง€ ์•Š์€ ๊ณ„์ขŒ ์†ก๊ธˆ ๋“ฑ ์—ฃ์ง€ ์ผ€์ด์Šค ์‹๋ณ„
  • ํ…Œ์ŠคํŠธ ์‹œ๋‚˜๋ฆฌ์˜ค ์‹คํ–‰ โ†’ Deposit validation์—์„œ ๋น„์ˆซ์ž ์ž…๋ ฅ ์ฒ˜๋ฆฌ ์‹คํŒจ, Transfer์—์„œ ์—๋Ÿฌ ๋ฉ”์‹œ์ง€ ๋ถˆ๋ช…ํ™•, Input handling์—์„œ ์‚ฌ์šฉ์ž ํ๋ฆ„ ์ค‘๋‹จ ๋ฐœ๊ฒฌ
  • ๊ฒฐํ•จ ๋ฌธ์„œํ™” โ†’ ์žฌํ˜„ ๋‹จ๊ณ„, Expected vs Actual behavior, ์ฆ๊ฑฐ, ์˜ํ–ฅ๋„ ํฌํ•จํ•˜์—ฌ ์ฒด๊ณ„์  ๊ธฐ๋ก

Key Takeaway

Poor design creates hidden defects. Testing simply reveals them. ํ…Œ์ŠคํŠธ ๊ฐ€๋Šฅํ•œ ์„ค๊ณ„๋Š” ์ฝ”๋“œ ์ž‘์„ฑ ์‹œ ์ ์šฉํ•ด์•ผ ํ•˜๋Š” ์„ค๊ณ„ ์ œ์•ฝ ์กฐ๊ฑด์ด๋ฉฐ, ์ฒด๊ณ„์  ํ…Œ์ŠคํŠธ๋Š” ์„ค๊ณ„ ๋ฏธํก์œผ๋กœ ์ธํ•œ ๊ฒฐํ•จ์„ ๋“œ๋Ÿฌ๋‚ธ๋‹ค.


์†Œํ”„ํŠธ์›จ์–ด ๊ฐœ๋ฐœ์—์„œ Testable Design์„ ์„ค๊ณ„ ๋‹จ๊ณ„ ์ดˆ๊ธฐ์— ์ ์šฉ ์‹œ ํ…Œ์ŠคํŠธ ์ž๋™ํ™”(Python pytest, UI automation) ๊ธฐ๋ฐ˜ ๊ตฌ์ถ• ๊ฐ€๋Šฅ

์›๋ฌธ ์ฝ๊ธฐ