통제되지 않은 입력 식별
무작위 적 위치, 경과 시간, 애니메이션 프레임 타이밍, 저장된 최고 점수, 뷰포트 크기, 사용자 입력 순서 등 실행 간에 달라질 수 있는 모든 항목을 나열합니다. 테스트 중인 동작에 어떤 변수가 중요한지 결정합니다. 충돌 확인을 위해 고정된 적 위치와 알려진 플레이어 시작을 사용합니다. 생성 패턴 검사의 경우 무작위 순서를 제어하되 선택한 여러 개의 시드를 테스트하여 한 번의 설정으로 잘못된 패턴을 숨기지 않도록 합니다.
플레이어 행동을 정지시키지 않고 시간 제어
타이머 규칙의 경우 명시적인 시작 시간을 제공하고 남은 시간이 3초이고 정확히 0인 등 의미 있는 경계에서 어떤 일이 발생하는지 확인합니다. 프레임 기반 이동의 경우 동일한 수의 렌더링된 프레임 대신 동일한 경과 기간을 비교합니다. MDN은 requestAnimationFrame 콜백 빈도가 일반적으로 디스플레이 새로 고침 빈도를 따르며 숨겨진 탭에 대한 대부분의 브라우저에서 콜백이 일시 중지된다는 점에 주목합니다. 따라서 애니메이션 코드는 진행률을 계산할 때 타임스탬프나 다른 시간 소스를 사용해야 합니다.
결정론적 게임 테스트 관련 질문
결정론적 테스트는 무작위 게임플레이를 제거하는 것을 의미합니까?
아니요. 이는 동작을 비교하기 위해 선택된 테스트의 무작위성을 제어하는 것을 의미합니다. 다양한 시드에 대해 별도의 탐색 테스트를 실행하여 게임 범위를 검사할 수 있습니다.
테스트가 로컬에서는 통과하고 브라우저 실행에서는 실패할 수 있는 이유는 무엇입니까?
다른 타이밍, 뷰포트, 저장된 상태 또는 임의 순서가 설정을 변경할 수 있습니다. 해당 조건을 기록하고 확인 중인 동작과 관련된 조건을 제어합니다.
추가 읽을거리
오래된 정보를 발견하셨나요? 수정 사항 제보