-
자동화: JUnit 테스트 작성테스팅 관련/Q&A 2020. 5. 25. 23:58
Q. r은 사용자에 의해 제공된 구의 반지름이며, 아래의 공식으로 구 A의 겉넓이를 계산하는 프로그램이 있다. 도출할 수 있는 테스트 케이스들은?
$$A = 4 \pi r^2$$
더보기A. 입력값 r = 1/2, 예상된 출력값 = 3.14
입력값 r = -1/2, 예상된 출력값 = 사용할 수 없는 입력값
입력값 r = 0 예상된 출력값 = 사용할 수 없는 입력값 → 경계조건(boundary condition) 체크
입력값 r = 100, 예상된 출력값 = 11309.73
입력값 r = -1/2, 예상된 출력값 = 사용할 수 없는 입력값Q. 커피 메이커 예제에 대해 시스템 입력값과 출력값을 재전송(redirection)한다. ~을 테스트하기 위해서:
더보기A. 메인 메소드
메인 메소드는 커피 메이커와 교류(interact)하기 위해 스탠다드 입력값과 출력값을 사용한다.Q. 테스팅은 코너 케이스로 이루어져있다.
더보기A. False
코너 케이스들을 테스트하는 건 중요하지만, 정상 사용에 있어 올바르게 시스템 기능들이 작동하는지 체크하는 것도 중요하다. 대부분의 사용자들이 자주 실행하는 코드를 체크하므로 시스템의 정상 사용을 점검하는 보통 테스트 케이스들(normal test cases)은 매우 중요하다.Q. 구현(implementation) 전에 테스트 케이스를 작성하는 전략은:
더보기A. 좋은 아이디어다. 테스트 케이스들은 예상된 출력값에 기반하여 작성되어야하며, 구현에 의해 영향받지 않아야 한다.
구현 전에 테스트 케이스를 작성하는 것은 항상 좋은 아이디어다. 구현은 미리 모든 가능한 테스트 케이스들을 다뤄야 한다.Q. 새로운 테스트 케이스가 있을 때:
더보기A. 새로운 것을 포함한 모든 테스트 케이스들은 실행되어야 한다.
전 단계에서 통과 됐다 하더라도 모든 테스트 케이스들은 실행되어야 한다. 새로운 테스트 케이스가 다른 테스트 케이스들을 변경시킬 수도 있기 때문이다. 예를 들면, 테스트 케이스가 실행 후에 스트럭쳐들을 제대로 정리하지 않고 계속 재사용한다면 새로운 테스트 케이스와 함께 변경되어 테스트를 fail하게 만들 수 있다.'테스팅 관련 > Q&A' 카테고리의 다른 글
테스팅 원리: 어디에서 (0) 2020.05.27 신뢰성(Dependability) (0) 2020.05.26 자동화: 테스팅 프레임워크 사용 (0) 2020.05.25 테스트는 무엇일까? (0) 2020.05.24 테스트 주도 개발 (0) 2020.05.23