작성
·
16
·
수정됨
1
"이 간단한 정규식을 사용하면 지금까지 테스트는 모두 통과할 것 같긴 한데 사용자 이름 정책에서 허용되지 않은 문자들은 걸러지겠지만 허용이 되는 문자들이 정규식에 반영되지는 않습니다"
-> 그렇기 때문에 기존 테스트는 유지하면서 새로운 테스트케이스를 추가한다로 진행이된다.
부분에서 추가되는것이 이해가 안되어 질문드립니다.
이전 "email속성이 올바른 형식을 따르지 않으면 400 상태코드를 반환" 에선 누락된 부분을 기능을 수정하는 방식으로 해결해왔는데
왜 "username 속성이 올바르지 않은 형식을 따르지 않으면" 에서도 테스트케이스 추가가아닌 기능을 수정해서 해결해야하는것 아닌가?
또 기존의 "올바르게 요청하면 204 반환" 의 케이스와 의미가겹쳐 중복된 테스트케이스 추가 즉 잘못된 케이스추가가 아닌가? 라고 생각됩니다 어떻게 생각하시는지 여쭤보고싶습니다!
초반부이지만 최고의강의 잘듣고있습니다. 감사합니다
답변 2
0
승현님 안녕하세요. 강의 수강해주셔서 고맙습니다.
질문 주신 내용에 답변 드려보겠습니다.
첫번째로 email의 경우와 다르게 username의 경우에서만 테스트 시나리오를 추가한 이유는, email에 사용된 정규식은 알려져 있는 정규식을 가져와서 사용한 반면에 username에 사용한 정규식은 처음부터 필요한 만큼씩 구성해 나갔기 때문입니다. 그래서 전자의 경우에는 입력 검증에 부족함이 없을 거라고 예상할 수 있었지만 후자의 경우에는 그렇지 않아서 테스트 시나리오 보강이 필요하다고 판단했습니다.
두번째로 "올바르게 요청하면 204 반환"의 경우는 말씀하신 것처럼 해석할 수 있고 기존 테스트를 매개변수화 테스트로 변환하는 것을 고려할 수 있습니다. 이 사례 뿐만 아니라 다른 경우에서도 제가 강의에서 사용한 방식이 유일하게 올바른 방식은 아니며, 다른 더 나은 방법이 있을 수도 있습니다. 다만 저는 가급적이면 기존에 만들어진 테스트를 수정하지 않는 방식을 우선 고려합니다. 테스트 코드를 조금이라도 수정하게 되면 테스트에 대한 신뢰를 다시 쌓아야 하기 때문인데 테스트 신뢰에 대해서는 조금 더 수강하시면 다루게 될 거에요. :)
혹시 답변이 부족하다면 말씀해주세요!
0
안녕하세요, 인프런 AI 인턴입니다.
Seunghyeon Lee님, 질문 주셔서 감사합니다.
제안하신 사례에서는, 사용자 이름 정책에서 허용되는 문자들을 반영하기 위해 기존 테스트를 보완하고 확장하는 과정이 필요합니다. ‘기능 수정’ 대신 ‘새로운 테스트 케이스 추가’를 통한 접근은, 시스템이 요구한 모든 필요한 시나리오가 테스트 커버리지가 잘 되는지 확인하기 위해 중요한 과정입니다. 이렇게 하는 이유는:
기존 기능의 유지를 위해: 이미 있는 기능이 영향을 받지 않고 유지되는지를 확인하기 위해 기존 테스트는 그대로 유지합니다. 이는 리팩토링이나 기능 추가 시 중요한 역할을 합니다.
테스트 범위 확장: 새로운 특수 케이스(예: 허용되는 문자들)가 제대로 처리되는지 확인하기 위한 테스트 케이스를 새로 추가함으로써 테스트 커버리지를 넓힙니다.
중복 및 의미 겹침을 방지: “올바르게 요청하면 204 반환” 과 완전히 다른 요청을 테스트하기 때문에, 중복 테스트라고 보기는 어렵습니다. 새로운 테스트는 서로 다른 입력에 대한 시스템의 반응을 검증하는 것이 목적입니다.
결국, 새로운 요구 사항이나 정책(예: 허용되는 사용자 이름의 문자)에 맞추어 전체 코드의 동작을 보장하기 위해 테스트를 보완하는 과정이 필수적입니다. 이번 강의를 통해 학습을 잘 이어갈 수 있길 바랍니다. 추가 질문이 있으면 언제든지 남겨주세요. 강의 즐겁게 수강하시길 바랍니다. 감사합니다!