인프런 강의 중 구현했던 페이지에서 테스트 자동화를 해보려고 한다.
크리핵티브라는 강사님의 강의인데, 개인적으로는 상당히 괜찮은 강의라고 생각한다.
크리핵티브님의 강의 - 인프런 | 온라인 강의 플랫폼 (inflearn.com)
테스트는 [테스트 계획 -> 테스트 분석 및 디자인 -> 테스트 케이스 구현 및 수행 -> 테스트 결과 및 리포팅] 총 4단계로 진행하였다.
테스트 계획
테스트 목적 : 사람의 직관과 지식이 필요 없는 행위를 자동화하여 인적 자원의 투자를 줄이는 것이다.
테스트 범위 : Main Page, Home, Board, Join 기능 사용 시 예상한대로 happy path(200 ok)인지 확인한다.
왜 happy path만 자동화? happy path가 아닌 400, 500 에러 등 모든 테스트 시나리오를 테스트하는 코드를 작성하면 무수히 많은 case를 고려해야 하고 이는 수동 점검보다 비효율적일 수 있다. 스크립트 개발부터 관리, 유지보수에 어려움이 생길 수 있음 |
테스트 수행 방법 : 블랙박스 테스트로 사용자 입장에서, 기능을 중심으로 테스트를 진행한다.
테스트 종료 조건 : 테스트는 위에 명시한 4가지 기능을 모두 확인하였을 때 종료한다.
테스트 일정 : 2022.07.11
테스트 수행 인원 : 1명
테스트 분석 및 디자인
테스트 분석 : 점검 대상 페이지는 아래와 같음
Home 기능을 호출 시 main page가 나오며,
Board 기능 호출 시 아래와 같은 게시판이 나온다.
마지막으로 Join 기능 호출 시 아래와 같이 회원가입을 진행할 수 있는 페이지가 나온다.
테스트의 목적은 해당 기능 호출 시 정상적으로 동작하는지 확인하는 간단한 기능 테스트이기 때문에 매우 단순하고 인간의 지식이 필요하지 않아 자동화하는 것이 효율적이라고 판단된다.
테스트 케이스 디자인 : 각 기능이 정상적으로 작동하는지, 페이지간 이동이 가능한지 테스트하려 한다.
중요도는 '최상, 상, 중, 하, 최하'로 나눴으며 서비스에 해당 기능이 미치는 영향도에 따라 중요도를 평가했다. 단독적인 기능은 모두 동작해야 하기 때문에 '최상'으로 평가했으며 페이지간 이동은 불가능할 경우 편의성이 떨어질 뿐, 서비스의 이용이 불가능한 것은 아니기 때문에 '중'으로 평가하였다.
중요도에 따라 셀의 색상이 변경되도록, 처리현황에 따라 해당 행의 색이 변경되도록 조건부 서식을 지정했다.
테스트 환경 및 도구 준비 : 실제 상용되고 있는 서비스와 별도의 공간에서 테스팅 하여야 한다.
해당 테스트에서는 셀레니움을 이용하여 자동화를 구현할 계획이다.
테스트 케이스 구현 및 수행
테스트 케이스 구현 및 스크립트 작성 :
코드는 아래와 같다.
test_field/xssboard_tc.py at master · laoching/test_field (github.com)
개통 테스트(테스트 케이스가 제대로 작동하는지) :
제대로 작동하는 것을 확인했다.
결함 리포팅 : 워낙 간단한 기능을 가지고 있기 때문에 결함은 발견되지 않았다.
테스트 결과 평가 및 리포팅
테스트 결과 정리 : 모든 테스트를 통과하였다.
테스트 결과를 보고해야하는 상황이라면, 보고 대상에 따라 보고 자료가 변경되어야 할 것이다.
임원진이 대상이라면 코드 커버리지, 테스트 성공률, 발생한 결함의 수와 중요도 등을 포함한 정량화된 품질의 지표가 필요할 것이다.
만약 개발자들이 대상이라면 결함에 대해 중점적으로 기록한 내용과 발생 상황, CPU 등의 자원 사용률과 로그 정보, 결함의 재현 순서 기록 등이 필요할 것이다.
테스트 프로세스 및 결과 평가 :
테스트 성공률 : 9/9(100%)
발생한 결함의 수 : 0
중요도 : 9(최상(3), 중(6))
개인 회고
1. 코드에 반복되는 부분이 많아 테스팅하는 부분을 함수로 만들면 효율적으로 코드 작성이 가능할 것 같다.
2. 테스트 결과를 따로 결과 파일로 빼내면 더 보기 편할 것 같다.
3. 절차와 실제 테스팅 한 방법, 결과 도출 방식까지 전부 제대로 한건지 피드백을 받고 싶다.
'QA' 카테고리의 다른 글
테스트 케이스의 우선순위 결정 방법 (0) | 2022.07.10 |
---|
댓글