소프트웨어 테스팅은 작성한 코드에서 예상한 결과가 나오는 지를 테스팅하는 것입니다. 테스팅 실패 시 구조 또는 코드를 수정해야할 수 있습니다. 테스팅을 하는 이유는 소프트웨어의 결함을 확인하고, 발생할 수 있는 문제를 사전에 방지하기 위함입니다. 이를 통해 소프트웨어 구조와 품질을 개선할 수 있습니다.
메뉴얼 테스팅과 자동 테스팅
소프트웨어 테스팅은 메뉴얼 또는 자동으로 진행할 수 있습니다. 메뉴얼 테스팅은 직접 케이스를 설정하여 테스팅을 진행하는 것입니다. 반면, 자동 테스팅은 컴퓨터로 자동화된 테스팅을 진행합니다.
메뉴얼 테스팅은 자동 테스팅에 비해 불안정하고 인력과 비용이 더 많이 소모되고 확장성이 낮은 반면, 자동 테스팅은 상대적으로 안정성이 높고 인력과 비용을 절감할 수 있으며 확장성이 높습니다.
시스템 테스트를 위한 3가지 방법
1. End-to-End Test - 10%
클라이언트와 서버 사이의 테스트와 같은 단대단 테스트로 전체적 흐름을 테스트합니다. 예를 들면, 브라우저에서 직접 회원 가입을 하거나 가입 후 로그인이 되는지 등을 직접 테스트 하는 것입니다. 비용이 많이 들고, 부정확하며, 실행에 상당히 많은 시간이 소요됩니다.
2. Integration Test - 20 %
서버를 띄워놓고 백엔드 측에서 데이터베이스 통신을 진행하는 것과 같은 통합 테스트로 모듈 간의 호환성을 검증합니다. 포스트맨 API 또는 Httpie 호출로 Json 응답을 테스트하는 것이 포함됩니다.
3. Unit Test - 70%
스크립트를 작성하여 단일 로직 유닛을 테스트하는 것으로, 다른 테스트에 비해 실행 속도가 빠르고 정확합니다. 유닛 테스트를 잘 작성해 놓으면 장기적으로 유지 보수에 좋습니다.
유닛 테스트의 비중이 70%로 가장 높은데, 이는 빠르게 문제를 파악하여 시간과 비용을 절감할 수 있기 때문입니다. 또한 리팩토링 시 안정성을 확보할 수 있습니다.
'TIL' 카테고리의 다른 글
깃 에러 해결: Permission denied (publickey) - TIL 12 (0) | 2022.04.09 |
---|---|
장고 마이그레이션 초기화 방법 - TIL 10 (0) | 2022.01.30 |
장고 타임 존 설정하기: 한국 시각 설정 - TIL 9 (0) | 2022.01.20 |
HTTP 요청 GET POST 차이점 정리 - TIL 8 (0) | 2022.01.19 |
장고 모델에서 Q () 연산자 (or) 사용하는 방법 - TIL 7 (0) | 2022.01.18 |