-
자동 테스트를 작성할 때 고려해야 하는 사항테스팅 관련/자동화 2021. 5. 23. 11:52
"무엇을 테스트하려는 중인가?"
어떤 유스케이스를 검증하려는 중인가?
'전체 스택 or 부분 통합 or 단위' 를 테스트 하려는 중인가?
어떤 기술을 검증하려는 중인가?
어떤 아키텍처 계층을 검증하려는 중인가?
새로운 코드, 깔끔하고 잘 작성된 코드를 테스트하는 중인가?
아니면, 복잡하고 엉킨 레거시 코드를 구해내는 중인가?
테스팅 문제를 유용하게 더 작고 다루기 쉬운 조각들로 나눌 수 있는가?
범위를 파악하기 위해서는 위와 같은 질문들에 답해야 한다
"무난 경로"를 테스트하라
무난 경로란, 소프트웨어가 존재하는 주된 목적이며 이유다
무난 경로를 테스트하면 남은 테스트들을 구축하는 토대가 놓인다
무난 경로 테스트가 기초 컨텍스트를 정립하면 그 위에 온갖 변형을 통해 부가가치를 더한다
무난 경로를 완전히 검증하려면, 테스트 범위에 따라 여러가지 테스트가 필요할지도 모른다
초기 테스트 시에는 1~2가지 대표적인 목적으로 시작하라
단위 테스트에서는 개별 테스트가 목적을 정확히 담아내야 하며,
전체 스택 시스템 테스트에서는 기능 분야별로 나눈 테스트 스윗을 사용한다
"에러 경로"를 테스트하라
소프트웨어 품질에 대한 인식은 대부분 소프트웨어가 장애를 일으키는지가 아니라,
장애는 결국 발생하기 때문에, 어떻게 장애를 다루느냐에 따라 형성된다
에러 처리 검증은 익숙한 환경에서 벗어난 변형 동작에 대해서
우발적으로 대응하지 않고 계획적으로 대응하도록 보장한다
계획적인 에러 처리 = 사용자에게 의도한 경험, 사용자가 바라는 경험 제공
테스트를 공들여 작성하라
테스트 코드는 제품 코드와 거의 동일한 수준으로 공들여 작성해야 한다
테스트의 의도를 테스트 코드에 확실히 나타내라
의도만을 나타내고 그 외에는 아무것도 나타내지 않도록 최대한 노력해라
테스트 코드를 간단하고 깔끔히 유지해라
제품 코드와 동일한 도구, 환경 설정을 맞춰 사용해라
필요하면 리팩터링을 해라
4단계 테스트 구조 <설치 - 실행 - 검증 - 해제>는 리팩터링을 하든 그렇지 않든 보존되어야 한다
AAA 구조 <준비, 행동, 단언>에 더 친숙하다면 이 단계가 보존할 경계이다
각 단계의 경계를 넘어서 리팩터링 하지 말아야 한다
출처: 퀄리티 코드, 소프트웨어 테스팅 원칙과 실제 패턴
'테스팅 관련 > 자동화' 카테고리의 다른 글
Jira에 JUnit XML 리포트 연동하기 (w/ Jenkins, Xray) (0) 2021.05.22 Jenkins에서 Selenium 프레임워크 빌드 (로컬) (0) 2021.05.07 리그레션 자동화 테스트 in 애자일 (0) 2021.03.07 지속적 통합(CI)에 자동화 테스트를 효율적으로 적용시킬 수 있을까? (0) 2021.03.07 지속적 배포에서의 테스트 자동화 (0) 2020.09.29