서론정보처리기사를 준비하던 중 2024년 1회 기출문제에 나왔던 문제에 대한 개념중에 도움될만한것을 한개씩 공부해보려고 한다. 이번 1회에서는 테스트 스텁, 테스트 드라이버, 테스트 슈트, 테스트 케이스에 대해서 정리해보려고 합니다.테스트 스텁(Test Stub)테스트 중인 모듈에서 호출하는 외부 의존성이나 컴포넌트의 동작을 미리 정의된 결과로 대체하는 것을 의미합니다. 테스트할 모듈이 외부 컴포넌트에 의존하지 않고 독립적으로 테스트할수 있게 하는 것으로 단위테스트에서 많이 사용됩니다.주로 Top-down 테스트에서 사용되며, 외부 서비스, DB와 같은 I/O 의존성을 단절하고 결과를 정의합니다.외부 서비스가 느리거나 해당 비용이 드는경우나 예측 불가능한 결과를 테스트하는 경우에 많이 사용합니다.코드로 ..
FIRST 원칙 FIRST 원칙이란? 클린코드 책의 저자인 Bob Martin이 처음으로 제시한 규칙 이 규칙의 목적은 효율적이고 좋은 단위 테스트를 하기 위함 아래와 같이 5가지의 요소로 이루어져 있음. 빠르고(Fast) 독립적이고(Independent) 반복가능하며(Repeatable) 자체 검증가능하며(Self-validating) 철저하고 적시에(Thorugh & Timely) Fast 유닛테스트는 빠르게 실행되고 빠르게 결과를 알아야 한다는 의미. 빠르게 하기 위해선, 테스트 케이스의 단위가 최대한 작게 작성. 또한, 빠르게 단위테스트를 진행하기 위해 실제 서버나, DB와 통신하지 않고 Mock(가짜 데이터)를 이용. 즉, 실제 테스트를 하고 싶은 부분만 잘라서 테스트를 하는것이 중요함. Ind..
통합 테스트는 독립적으로 개발된 소프트웨어의 단위가 서로 연결되어 있을 때 올바르게 작동하는지 확인합니다. 이 용어는 소프트웨어 산업의 확산된 표준임에도 불구하고 이 용어를 글에 사용하는 것이 조심스러웠습니다. 특히 많은 사람들이 반드시 통합 테스트의 범위는 넓어야 한다고 하지만, 좁은 범위에서 더 효과적으로 수행할 수 있습니다 흔히 이러한 것은 약간의 역사로 시작하는 것이 가장 좋습니다. 통합 테스트를 맨처음 알았을 때는 1980년대 폭포수(Waterfall) 개발 방법론의 지배적인 영향때문이였습니다. 큰 프로젝트에서는 시스템의 다양한 모듈의 인터페이스와 동작을 명시하는 설계 단계가 있습니다. 모듈들을 개발자들이 할당받아 프로그래밍합니다. 보통 한명의 개발자가 하나의 모듈만 담당하는 일은 흔치 않는 일..