5.2 기능 테스트 방법
- 수동 테스트 : 앱을 실행하고 어떤 입력을 주어 예상한 작업을 수행하는지 확인하는 방법.
- 자동화된 테스트 : 테스트할 것을 빠뜨릴 걱정 없이 원하는 만큼 여러 번 실행할 수 있는 테스트를 작성할 수 있게 함. 피드백 루프를 강화하여 변경 사항이 예상한 동작을 하지 않는 지를 빠르게 확인할 수 있게 됨.
- 수락 테스트 : 시스템의 상위 수준의 요구 사항을 검사. 종종 비즈니스 이해관계자가 수동으로 수행하지만, 엔드-투-엔드 테스트를 통해 어느 정도 자동화할 수 있음. 엔드-투-엔드 테스트는 일반적으로 비즈니스에서 가치가 높은 영역을 검사. 작은 단위로 세분화된 테스트 세트를 생성하면 전체 워크플로우뿐만 아니라 실패한 단계를 구체화할 수 있음.
- 단위 테스트 : 소프트웨어의 모든 작은 부분들이 동작하는지 확인. 앱의 모든 개별 코드 단위가 올바르게 동작하는지, 소프트웨어의 작은 부분들이 예상한 대로 작업하는지 검사.
- 통합 테스트 : 일련의 단위 작업 전체가 잘 동작하는지에 초점을 둠. 사용자 관점이라기보다는 코드의 동작에 더 초점을 둠. 서로 다른 개념임. 여러 개의 단위 코드들을 함께 돌려야 하므로 강한 결합을 만들게 되며 일정한 결과를 내고 있는 코드를 수정하면 테스트가 깨질 수 있음을 유념할 것.
- 테스트 피라미드 : 단위 테스트와 통합 테스트 같은 기능 테스트는 자유롭게 적용해야 하지만, 테스트에 걸리는 시간이 길고 테스트 결과를 확신하기 힘든 수동 테스트는 더욱 보수적으로 해야 한다는 개념을 나타냄.
- 회귀 테스트 : 테스트 방법이라기보다는 앱을 개발할 때 따라야 할 프로세스라고 할 수 있음. 원하지 않는(또는 기대하지 않은) 상태로 이동하는 개념. 제품으로 출시하기 전 코드 수정 후 기존에 만들어둔 테스트를 실행하는 방법.