소프트웨어 테스팅은 소프트웨어가 의도한 대로 동작하는지 검증하는 과정입니다. 즉, 올바르게 동작하는지, 요구사항을 충족하는지, 결함이 없는지 확인하는 일입니다. 신뢰할 수 있고 품질 높은 소프트웨어를 제공하고, 문제가 사용자에게 도달하기 전에 잡아내기 위해 필수적입니다.
테스팅이란
테스팅 = 소프트웨어가 올바르게 동작하는지 체계적으로 검증하는 것:
→ 해야 할 일을 제대로 하는가? (요구사항 충족)
→ 엣지 케이스, 오류, 잘못된 입력을 처리하는가?
→ 변경이 기존 기능을 깨뜨리는가? (회귀, regression)
→ 수동 테스트(사람이 확인)부터 자동화 테스트(코드를 검사하는 코드)까지
테스팅이 중요한 이유
✓ 버그 포착 — 사용자보다 먼저 결함을 발견 (운영 환경보다 초기에 고치는 것이 더 싸고 쉬움)
✓ 자신감 — 테스트가 회귀를 잡아줄 것을 알고 코드를 변경/리팩터링
✓ 품질 — 신뢰할 수 있는 소프트웨어; 운영 장애, 충돌, 데이터 문제가 적음
✓ 문서화 — 테스트는 코드가 어떻게 사용/동작하도록 의도되었는지 보여줌
✓ 장기적으로 더 빠름 — 자동화 테스트는 느린 수동 재확인 대비 빠르게 문제 포착
→ 버그를 늦게 발견할수록 그 비용은 커진다 (개발 < 테스트 < 운영).
