inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

Practical Testing: 실용적인 테스트 가이드

setup 해야하는 데이터가 대용량인 경우 테스팅 가이드

해결된 질문

674

개발하는쿼카

작성한 질문수 43

0

안녕하세요. 우빈님

양질의 강의 제공해주셔서 감사의 말씀드립니다.

 

강의를 듣던 도중 실무에서는 어떻게 해결을 할까? 🤔

라는 궁금증이 생겨 질문 드립니다.

 

만약에 테스트 코드 작성시에 setup해야 할 데이터가 대용량이라면

실무에서는 주로 어떤 방식으로 테스트 코드를 작성하여 해결하나요?

 

감사합니다.

 

 

spring tdd jpa mockito 소프트웨어-테스트 junit5

답변 2

1

박우빈

안녕하세요, 개발하는쿼카님! :)
좋은 질문이네요. 👍

가장 먼저 질문해주신 내용을 되짚어보면, 'setup해야 할 데이터가 대용량인 케이스는 어떤 상황일까?' 를 고민해보면 좋을 것 같아요.

제가 생각했을 때, 일반적으로 비즈니스 로직에 대한 테스트 케이스(이하 TC)에서는 대용량으로 데이터를 세팅하고 테스트할 일이 거의 없을 것 같아요.
몇 개의 최소한의 데이터만으로도 대부분의 TC는 상황을 재현할 수 있을 것 같기 때문입니다.

반대로 반드시 대용량 데이터 기반에서 테스트해야 하는 TC가 있다면, 보통 성능과 관련된 케이스일 것 같은데요.

그럼 또 추가적으로, '성능과 관련된 TC는 수시로 돌아가는 자동화된 테스트가 필요한가?'라는 질문도 해볼 수 있을 것 같아요.

해당 케이스에 대해 정말 성능에 대한 테스트가 필요하다면, 별도의 테스트 환경(애플리케이션 서버, DB 등)을 구축해서 1회성으로 테스트를 해볼 수 있는 환경을 마련하여 테스트할 수도 있습니다.
(대용량 트래픽의 경우도 비슷할거고요.)
만약 정말 특수한 상황이라 수시로 대용량 데이터 기반 테스트를 돌려야 한다면 별도의 테스트 서버 환경을 유지하면서 원격으로 해당 테스트를 수행할 수 있도록 구축해 볼 것 같아요. (Docker 같은 것도 활용해 볼 수 있겠네요.)

정리하자면, 정말 대용량 데이터를 준비하여 수시로 자동화 테스트를 수행해야 하는지, 해당 케이스가 우리 애플리케이션에서 정말 핵심적인지를 확인하고, 만약 그렇다면 별도의 테스트환경을 구축하여 테스트할 수 있도록 만들 것 같습니다. (어떻게 구현해야 같이 일하는 팀원들이 편하게 해당 TC를 검증할 수 있을지는 그 다음 이야기겠지만요 ㅎㅎ)

도움이 되셨기를 바랍니다.
감사합니다 :)

0

개발하는쿼카

상세한 답변 감사합니다.^^

0

인프런 AI 인턴

안녕하세요, 인프런 AI 인턴이에요. 기존에 작성한 테스팅 가이드나 테스트 코드가 대용량 데이터에 대한 테스트를 지원하지 않는다면, 새로운 테스트 코드를 작성할 필요가 있습니다.

대용량 데이터를 가지고 테스트를 수행하기 위해서는, 우선적으로 테스트 데이터를 생성하는 스크립트를 작성해야 합니다. 이때, 스크립트의 실행 시간이 테스트 환경에서 실제 스크립트를 실행할 때와 유사해야 합니다.

또한, 대용량 데이터를 효과적으로 처리하기 위해서는, 테스트 코드를 병렬처리하는 방법이 있습니다. 이렇게 함으로써 시간을 절약하고, 효율적으로 대용량 데이터를 처리할 수 있습니다.

마지막으로, 대용량 데이터를 다루는 테스트에서는 DBMS를 활용하여, 실제 데이터베이스와 동일한 설정을 적용하는 것이 좋습니다. 이렇게 함으로써 테스트 데이터를 생성하고 처리할 때, 실제 환경과의 일관성을 유지할 수 있습니다.

이상입니다. 이와 같은 방법으로 대용량 데이터를 다루는 테스트 코드를 작성하면, 실제 환경에서의 문제를 미리 예방할 수 있습니다. 감사합니다.

private 상수 테스트 관련 질문

0

83

1

void는 어떻게 테스트하나요..? void로 애초에 코딩하면 안되나요??

0

126

2

커버리지는 어떻게 활용하시는지 궁금합니다.

0

161

2

테스트 문서화 질문입니다

0

105

2

단위테스트 질문이 있습니다

0

96

2

컨트롤러는 모킹을 한 이유가 궁금합니다.

0

103

2

ERD 가장자리에 있는 도메인 테스트 질문

0

89

2

DTO 검증 필드에 대한 테스트 코드 작성은 어디까지?

0

135

2

OrderCreateRequest DTO에 대해서 궁금한점

0

102

2

고전파의 테스트 대역 사용 대상, 공유 의존성

0

156

2

계층 관련 질문이 있습니다.

0

139

3

'코틀린'에서는 빌더를 따로 쓰지 않는데, 이 때는 어떻게 test fixture를 만드시는지 궁금합니다

1

124

2

혹시 update 로직은 어떻게 테스트하나요? (@Setter?)

0

135

2

단위테스트와 통합테스트의 경계가 궁금합니다.

0

229

2

Service+Repository 통합테스트 관련 질문입니다.

0

150

2

OrderControllerDocsTest 작성 해봤는데요. 날짜 형식이 이상하게 나와요

0

185

2

test 용 .yml

0

90

2

throws Exception

0

80

2

카페키오스크 클래스 문의 ,,

0

89

2

Rest docs 문서용 테스트코드를 따로 작성해야 되나요?

0

174

2

테스트 코드에서 필요한 생성자

0

138

1

tearDown 순서

0

116

2

@Builder 생성자 private

0

136

2

@DisplayName gradle / intellJ

0

93

2