-
테스팅 원리: 어떻게테스팅 관련/Q&A 2020. 5. 27. 21:50
Q. 우리는 왜 종종 시스템 레벨보다 유닛 레벨에서 테스트를 더 엄격하게 할까?
더보기A. 유닛 테스트는 빨리 실행되어, 더 많은 테스트들을 실행할 수 있다.
유닛 레벨에서는 내부 상태를 더 볼 수 있으므로 더 강력한 오라클을 생성할 수 있다.Q. 불필요한 확인(verification)이 필요하다는 건 무슨 뜻일까?
더보기A. 같은 프로그램이나 서브 시스템을 검사하는 여러 다른 확인(verification) 테크닉들을 원한다.Q. 개발자들과 함께 시스템 오류를 줄일 수 있는 좋은 방법들은 무엇인가?
더보기A. 언어 / IDE 들을 사용하여 컴파일 시간 체크를 통해 오류들을 제거한다.
흔한 오류의 종류들을 테스트/확인하기 위한 툴을 생성한다.
테스트에서 가장 흔하게 나타나는 오류들에 기반하여 개발자들을 위한 체크리스트를 만든다.
개발자들이 자꾸 틀리는 operations을 캡슐화하기(encapsulate) 위해 라이브러리 또는 유틸리티 functions을 생성한다.Q. 프로그램이나 테스트가 이상하게 행동할 수도 있다는 말은 무슨 의미일까?
더보기A. 똑같은 입력값을 제공하는 가정 하에, 때때로 프로그램은 테스트를 pass하고 어쩔 때는 fail한다.Q. 왜 관찰가능성(observability)은 테스팅에서 중요한 문제일까?
더보기A. 프로그램들은 종종 상태기반(stateful)이다 - 테스트는 에러를 유발할 수도 있다. 하지만, 만약 긴 과정들이 실행된다면, 출력값으로만 보인다. 내부 상태를 검사해보면 바로 보일지도 모른다.
프로그램 오류가 일시적이라면, 오류가 안 보이고 테스틑 pass할지도 모른다.'테스팅 관련 > Q&A' 카테고리의 다른 글
V-모델의 V & V (0) 2020.05.28 V 모델 (0) 2020.05.27 테스팅 원리: 어디에서 (0) 2020.05.27 신뢰성(Dependability) (0) 2020.05.26 자동화: JUnit 테스트 작성 (0) 2020.05.25