본문으로 건너뛰기
안형우

안녕하세요. 14년차 풀스택 웹개발자 안형우입니다. 이 블로그에서는 WordPress, PHP, CSS, 사용성, 리눅스 서버 등 풀스택 웹개발에서 마주하는 다양한 문제 상황과 해결책, 필요한 개념들을 다룹니다. 👉 소개


작업물

📌 CSS가 어려운 이유 — 프로젝트 중심 실전 CSS 강의 소개 2023-04-13
📌 워드프레스, 답답한 빌더와 플러그인 대신 시원하게 커스터마징하기(강의) 2023-01-15
📌 아무도 말하지 않는 PHP의 좋은 점 2018-10-13
📌 유지보수하기 쉬운 CSS 전략(슬라이드) 2016-12-20
📌 워드프레스 테마에서 템플릿 파일 매칭 순서 2013-05-12
📌 [번역] CSS 코드 냄새 2013-01-01

테스트 자동화 전에, 뭘 테스트해야 하는지부터 알아야

정상값 테스트만으로는 부족합니다. 버그가 있을 만한 값들을 테스트해야 합니다. 이에 대해 공부할 것들이 있습니다.

우리는 개발을 하면서 언제나 테스트를 합니다.

예컨대 폼을 만든다고 합시다. 그러면 처음엔 하나씩 값을 넣어 보며 제대로 저장이 되는지 테스트하겠지요.

밸리데이션 테스트도 할 겁니다. 필수값을 모두 비운 채 하나씩 채워가며 필수값이 없어도 폼이 넘어가는지 테스트할 겁니다.

테스트 케이스 코드를 짜야만 테스트를 하는 것은 아닙니다.

Kelly Sikkema

테스트 자동화로는 충분치 않습니다

그런데 이런 테스트에서 버그를 더 잘 잡아내려면 어떻게 하는 게 좋을까요?

단지 테스트를 자동화하는 것만으로는 충분하지 않다고 말할 수 있는 부분이 이 지점입니다.

자동화된 테스트를 100만 번 해도, 버그가 있는 값을 테스트하지 않는다면 테스트는 충분하지 않습니다.

그런데 후원금을 입력하는 폼이 있다고 쳐 봅시다. 이 필드의 최솟값은 1000원입니다.

이 필드는 어떻게 테스트해야 할까요? 1000을 입력해서 정상적으로 저장되면 테스트는 완료되는 것일까요?

진정 모든 것을 커버한 테스트는 1000부터 100만 원까지 1씩 올려가며 하는 테스트일까요?

아닙니다. 정상값을 여러 번 테스트하는 것은 큰 의미가 없습니다.

버그가 나올 만한 부분을 노려야

적어도 다음 값들을 테스트해야 할 것입니다.

  • 1000
  • 999
  • 0
  • -1
  • 10000000000000000000000000
  • 0.00000000001
  • -10000000000000000000000000
  • 1000.5
  • 천 원
  • "
  • '

이 숫자들은 각각 의미가 있습니다.

1000과 999는 최솟값 1000의 경계가 되는 값이므로 반드시 테스트해야 합니다.

0은 특별한 값이므로 반드시 테스트해 봅니다.

음수는 경계(1000)를 넘어간 값 중 특수한 값이니 한 번 해 봅니다.

그리고 무지하게 큰 수(이 경우 10의 25제곱)와 작은 수(이 경우 마이너스 10의 25제곱, 0에 가까운 작은 값)도 한 번 테스트해 보는 것이 좋겠습니다.

숫자로서는 정상 범위지만, 원화에서는 사용하지 않는 소수점을 사용한 값도 한 번 넣어 보고요.

숫자가 아닌 값(천 원)을 해 보는 것도 중요합니다.

SQL 인젝션(Injection, 주입) 공격을 염두에 두고 "(큰 따옴표)'(작은 따옴표)를 넣었을 때 에러가 나지 않는지도 한 번 해 봅시다.

이정도면 그래도 웬만큼 테스트했다고 할 수 있을 것 같은데요.

지식 제로부터 배우는 소프트웨어 테스트

위 내용은 《지식 제로부터 배우는 소프트웨어 테스트》에 나오는 것을 일부 적은 것입니다. TDD를 기대하고 샀다가 그게 아니라서 실망했는데, 읽어 보고 나서는 오히려 정말 잘 샀다고 생각하게 된 책입니다.

제가 간단한 필드 하나로 예를 들어 설명했는데요. 이 책은 좀더 많은 내용을 다루고 있습니다.

우리는 평소에 자연스럽게 테스트를 합니다. 설계랄 것도 없이 무의식적으로 다양한 테스트를 하고 있을 겁니다.

이 책은 좀더 체계적으로 그런 테스트를 정리하고 설명합니다. 어떻게 하면 버그를 더 잘 발견하는 테스트를 설계할 수 있을지. 어떻게 하면 충분한 테스트를 거친 제품이라고 말할 수 있는지 말입니다.

이를 기반으로 하면 자동화된 테스트도 훨씬 더 잘 작성할 수 있을 겁니다.

안녕하세요. 14년차 풀스택 웹개발자 안형우입니다. 이 블로그에서는 WordPress, PHP, CSS, 사용성, 리눅스 서버 등 풀스택 웹개발에서 마주하는 다양한 문제 상황과 해결책, 필요한 개념들을 다룹니다. 👉 소개


작업물

Leave a Reply

Your email address will not be published. Required fields are marked *