결코 실패하지 않는 검증 규칙 노트

결코 실패하지 않는 검증 규칙

저자의 스튜디오는 언어 모델, 텍스트 음성 변환, 렌더링을 포함하는 자동화된 파이프라인을 통해 애니메이션 어린이 만화를 제작합니다. 이 과정의 중요한 부분은 콘텐츠의 정확성을 보장하는 검증 게이트입니다. 이러한 게이트 중 하나는 음성 단어가 가르치는 글자와 올바르게 일치하는지 확인하여 어린 시청자의 사실 오류를 방지합니다.이 글자 확인 게이트를 기존 에피소드 전체에 테스트했을 때 대부분의 에피소드에서 문제가 보고되어 유용성을 입증했습니다. 그러나 글자-단어 쌍을 확인하는 특정 규칙에서는 문제가 보고되지 않았습니다. 조사 후 저자는 검증에 사용된 정규 표현식에서 치명적인 버그를 발견했습니다.단어 경계를 확인하기 위한 정규식 패턴은 문자열 처리로 인해 '\b'를 리터럴 백스페이스 문자로 잘못 해석했습니다. 이로 인해 패턴이 실제 텍스트와 일치할 수 없게 되어 검증 규칙이 완전히 무효화되었습니다. 잘못된 패턴이 오류 없이 컴파일되고 출력을 생성하지 않아 올바르게 작동하는 것처럼 보였기 때문에 문제는 미묘했습니다.이 침묵은 사실 오류가 포함된 에피소드를 게이트가 통과시켰을 것이기 때문에 심각한 문제를 숨겼습니다. 저자는 코드를 직접 읽는 것이 아니라 알려진 잘못된 입력에 새로운 게이트를 테스트하는 규칙을 따름으로써 이 버그를 발견했습니다. 이 관행은 실패한 적이 없는 게이트의 신뢰할 수 없음을 드러냈습니다.저자는 결함 있는 입력을 귀중한 테스트 케이스로 유지하고 긍정적인 결과를 주장하며, "깨끗한 입력에 대한 문제 없음" 테스트와 "더러운 입력에 대한 정확히 이 문제" 테스트를 쌍으로 하는 것을 옹호합니다. 또한 불일치를 포착하기 위해 소스가 아닌 컴파일된 패턴을 인쇄하는 것을 강조합니다. 백스페이스 버그는 아무것도 보고하지 않는 표시기의 고전적인 예로, 건강한 상태로 오인될 수 있습니다.정규식이 수정된 후 게이트는 두 개의 다른 에피소드에서 'P'로 시작하는 꽃에 대한 부정확한 주장을 성공적으로 식별했습니다. 파일 형식에 대한 특정 문장이 아니라 세상에 대한 문장으로 규칙을 작성한 데서 비롯된 이러한 중복성은 유익한 것으로 입증되었습니다. 이 경험은 엄격한 테스트의 중요성과 자동화된 시스템에서 침묵하는 실패의 기만적인 본질을 강조합니다.