해결된 질문
작성
·
577
·
수정됨
답변 2
1
안녕하세요, 개발하는쿼카님! :)
좋은 질문이네요. 👍
가장 먼저 질문해주신 내용을 되짚어보면, 'setup해야 할 데이터가 대용량인 케이스는 어떤 상황일까?' 를 고민해보면 좋을 것 같아요.
제가 생각했을 때, 일반적으로 비즈니스 로직에 대한 테스트 케이스(이하 TC)에서는 대용량으로 데이터를 세팅하고 테스트할 일이 거의 없을 것 같아요.
몇 개의 최소한의 데이터만으로도 대부분의 TC는 상황을 재현할 수 있을 것 같기 때문입니다.
반대로 반드시 대용량 데이터 기반에서 테스트해야 하는 TC가 있다면, 보통 성능과 관련된 케이스일 것 같은데요.
그럼 또 추가적으로, '성능과 관련된 TC는 수시로 돌아가는 자동화된 테스트가 필요한가?'라는 질문도 해볼 수 있을 것 같아요.
해당 케이스에 대해 정말 성능에 대한 테스트가 필요하다면, 별도의 테스트 환경(애플리케이션 서버, DB 등)을 구축해서 1회성으로 테스트를 해볼 수 있는 환경을 마련하여 테스트할 수도 있습니다.
(대용량 트래픽의 경우도 비슷할거고요.)
만약 정말 특수한 상황이라 수시로 대용량 데이터 기반 테스트를 돌려야 한다면 별도의 테스트 서버 환경을 유지하면서 원격으로 해당 테스트를 수행할 수 있도록 구축해 볼 것 같아요. (Docker 같은 것도 활용해 볼 수 있겠네요.)
정리하자면, 정말 대용량 데이터를 준비하여 수시로 자동화 테스트를 수행해야 하는지, 해당 케이스가 우리 애플리케이션에서 정말 핵심적인지를 확인하고, 만약 그렇다면 별도의 테스트환경을 구축하여 테스트할 수 있도록 만들 것 같습니다. (어떻게 구현해야 같이 일하는 팀원들이 편하게 해당 TC를 검증할 수 있을지는 그 다음 이야기겠지만요 ㅎㅎ)
도움이 되셨기를 바랍니다.
감사합니다 :)
0
안녕하세요, 인프런 AI 인턴이에요. 기존에 작성한 테스팅 가이드나 테스트 코드가 대용량 데이터에 대한 테스트를 지원하지 않는다면, 새로운 테스트 코드를 작성할 필요가 있습니다.
대용량 데이터를 가지고 테스트를 수행하기 위해서는, 우선적으로 테스트 데이터를 생성하는 스크립트를 작성해야 합니다. 이때, 스크립트의 실행 시간이 테스트 환경에서 실제 스크립트를 실행할 때와 유사해야 합니다.
또한, 대용량 데이터를 효과적으로 처리하기 위해서는, 테스트 코드를 병렬처리하는 방법이 있습니다. 이렇게 함으로써 시간을 절약하고, 효율적으로 대용량 데이터를 처리할 수 있습니다.
마지막으로, 대용량 데이터를 다루는 테스트에서는 DBMS를 활용하여, 실제 데이터베이스와 동일한 설정을 적용하는 것이 좋습니다. 이렇게 함으로써 테스트 데이터를 생성하고 처리할 때, 실제 환경과의 일관성을 유지할 수 있습니다.
이상입니다. 이와 같은 방법으로 대용량 데이터를 다루는 테스트 코드를 작성하면, 실제 환경에서의 문제를 미리 예방할 수 있습니다. 감사합니다.
상세한 답변 감사합니다.^^