코딩 질문을 위한 테스트 케이스 정의
Last updated: March 10, 2026
개요
테스트 케이스는 후보자의 코드 검증에 도움을 줍니다. 이들은 후보자의 코드의 자동 평가의 기초를 형성합니다. 테스트 케이스는 코드에 대한 입력과 예상 출력을 포함합니다. 후보자가 코드를 제출하면, 그것은 모든 테스트 케이스에 대해 실행됩니다. 후보자의 코드에서 나온 출력은 예상 출력과 비교되어 테스트 케이스가 통과했는지 실패했는지 확인합니다.
설명과 함께 샘플 테스트 케이스는 문제를 후보자에게 더 잘 설명하는 데도 도움이 될 수 있습니다. 이상적으로는, 프로그래머가 문제를 이해하는 데 도움이 되도록 2~3개의 샘플 테스트 케이스를 사용하는 것이 좋습니다. 모든 시나리오를 포괄하는 총 8~15개(이상적으로는 10개)의 테스트 케이스를 갖추는 것을 권장합니다. 테스트 케이스는 서로 다른 크기여야 하며, 다양한 수준의 복잡성을 다루어야 합니다. 두 개 이상의 테스트 케이스가 같은 개념을 테스트해서는 안 됩니다.
참고: 코딩 질문의 테스트 케이스를 참조하여 HackerRank 테스트를 위한 코딩 질문을 만들 때 테스트 케이스의 사용법을 이해하세요.
테스트 케이스의 유형
각 문제에는 두 가지 유형의 테스트 케이스가 있습니다. 샘플 테스트 케이스와 숨김 테스트 케이스입니다.
샘플 테스트 케이스
샘플 테스트 케이스는 후보자가 볼 수 있고 자신의 코드를 검증하는 데 사용할 수 있는 테스트 케이스입니다. 이들은 이러한 테스트 케이스에 대해 입력과 예상 출력을 모두 볼 수 있습니다. 테스트 케이스를 만들 때, 특정 테스트 케이스를 샘플 테스트 케이스로 표시할 수 있습니다.
예를 들어, 아래 그림은 코딩 질문에 대해 정의된 샘플 테스트 케이스의 예입니다. 이 질문은 후보자가 주어진 문자열에서 처음으로 반복되지 않는 문자를 찾는 코드를 작성하도록 요구합니다.
테스트에서, 후보자가 문제에 대한 코드를 작성하고 컴파일하면, 샘플 테스트 케이스는 후보자의 코드와 대조되어 검증됩니다. 후보자는 입력과 예상 출력 값을 포함한 샘플 테스트 케이스 실행 결과를 볼 수 있습니다. 샘플 테스트 케이스 실행 결과를 보는 것은 후보자가 자신의 코드가 기대하는 결과를 이해하는 데 도움이 됩니다. 후보자는 또한 자신의 샘플 테스트 케이스를 다운로드할 수 있습니다.
숨김 테스트 케이스
코딩 질문에 테스트 케이스를 추가할 때, 샘플 테스트 케이스로 표시하지 않으면 숨김으로 간주됩니다. 숨김 테스트 케이스는 경쟁 프로그래밍 시대에서 발전해 왔습니다.
여러 가지 모서리 케이스를 숨김 테스트 케이스로 포함시켜 후보자를 다양한 시나리오에 대해 평가할 수 있습니다. 후보자가 코드를 실행할 때, 숨김 테스트 케이스는 잠금 아이콘으로 표시됩니다.
샘플 테스트 케이스와 달리, 후보자는 이 숨김 테스트 케이스의 입력값과 예상 출력값을 볼 수 없습니다. 그러나, 후보자는 숨김 테스트 케이스 옵션을 클릭할 때 자신의 출력과 디버깅 가능한 출력을 볼 수 있습니다. 이 기능은 후보자에게 더 나은 디버깅 경험을 제공하기 위해 제공됩니다.
이 테스트에서, 후보자가 이 질문에 대한 코드를 작성하고 실행하면, 숨김 테스트 케이스는 후보자의 코드와 대조되어 테스트 케이스 실행 결과를 반환합니다. 후보자의 코드가 숨김 테스트 케이스를 성공적으로 실행하고 예상 출력값을 반환하면, 후보자는 이 테스트 케이스에 할당된 점수를 얻습니다.
숨김 테스트 케이스의 출력을 비활성화하기
후보자에게 숨김 테스트 케이스의 출력을 표시하지 않도록 선택할 수도 있습니다. 숨김 테스트 케이스의 출력을 비활성화하려면 아래 단계를 따르세요.
- 테스트 홈페이지에서 원하는 테스트를 클릭하세요.
- 질문을 클릭한 후, 설정 탭을 클릭하고 왼쪽에서 질문 옵션을 선택하세요.
- 질문 탭을 클릭한 후, 아래로 스크롤하면 숨김 테스트 케이스의 출력을 비활성화하는 옵션을 찾을 수 있습니다. 그러나 이는 권장되지 않습니다 왜냐하면 출력을 보여주는 것이 후보자가 코드를 효과적으로 디버깅하는 데 도움이 되기 때문입니다. 출력을 표시하는 옵션은 기본적으로 선택되어 있습니다. 출력을 숨기려면 숨김 테스트 케이스에 대한 출력 표시 체크박스의 선택을 해제하세요.
참고: 우리 보고서에 따르면, 후보자들은 숨김 테스트 케이스 때문에 해결책을 찾거나 디버깅하는 데 많은 시간을 잃는 경향이 있습니다. 이 문제를 줄이고 후보자에게 더 나은 디버깅 경험을 제공하기 위해, HackerRank는 앞으로 숨김 테스트 케이스를 제거하고 중단점 기반 디버깅 경험을 도입할 계획입니다.
채점
모든 테스트 케이스가 동일한 난이도는 아닙니다. 테스트 케이스를 만들 때, 어려운 테스트 케이스에 더 많은 점수를 할당하고 쉬운 것보다 더 높은 점수를 부여해야 합니다. 이는 뛰어난, 좋은, 평균 프로그래머 간의 구별을 더 잘 할 수 있게 합니다. 모든 테스트 케이스의 점수 합계가 특정 질문에 할당된 총 점수입니다. 필요에 따라 샘플 테스트 케이스에 0점을 부여할 수 있습니다. 코딩 질문의 전체 점수는 성공적으로 통과된 모든 테스트 케이스의 점수 합계입니다.
코드 스텁과 테스트 케이스 동기화
자동 생성된 코드 스텁을 사용할 때는 입력과 예상 출력이 코드 스텁과 일치하는지 확인하세요. 이를 이해하기 위해 꼬리 부분을 참조할 수 있습니다.
예를 들어:
배열인 경우, 항상 먼저 "n" (배열 크기)을 읽고, 그 다음 "n"개의 배열 요소를 각각 별도의 줄에서 읽어야 합니다. 이는 다양한 언어에서 입력을 읽는 일관성을 유지하는 데 필요합니다.
연결 리스트인 경우, 항상 "n" (추가할 요소 수)를 읽고, 그 다음 "n"개의 요소를 각각 별도의 줄에서 읽어야 합니다.
테스트 케이스를 생성하고 추가하는 방법에 대한 정보는 새 테스트 케이스 추가 방법를 참조하세요.