좋은 시험 문장은 기술이 아니라 논리로 만든다
실제 CSV 문서에서 흔히 보게 되는 문장들:
시스템은 알람 기능을 제공해야 한다.
트렌드는 30일 데이터를 표시할 수 있어야 한다.
사용자 계정은 권한에 따라 관리된다.
이 문장들이 틀렸다고 말하긴 어렵습니다.
그런데 문제는, 테스트가 불가능하다는 것입니다.
시험 항목은 ‘있는지 없는지’를 보는 것이 아니라,
어떤 조건에서, 누가, 어떻게 동작하게 되는지를 입증해야 하기 때문입니다.
시험 조건이 명확히 서술되어 있어야 합니다. 예: “로그인 실패가 연속 5회 발생할 경우”
동작 주체가 명확해야 합니다. 예: “시스템은”, “관리자는”, “사용자는”
시스템 동작 내용이 구체적으로 서술되어야 합니다. 예: “계정을 자동으로 잠금 처리한다”, “데이터를 외부 서버로 백업한다”
그 결과가 기록 또는 상태로 남아야 합니다. 예: “Audit Trail에 기록되어야 한다”, “삭제 불가능해야 한다”
검증 기준 또는 통제 기준이 명확해야 합니다. 예: “관리자만 변경할 수 있다”, “5년간 보존되어야 한다”
이 5가지가 포함되어야
EU GMP Annex 11, GAMP5, DI 가이드라인에서 말하는 ‘검증 가능하고 해석의 여지가 없는 문장’이 됩니다.
[사용자 계정 관리 기능]
단순 문장: “시스템은 계정 잠금 기능을 제공해야 한다.”
개선 문장: “로그인 실패가 연속 5회 발생한 경우, 시스템은 해당 계정을 자동 잠금 처리하고, 해제는 관리자 권한으로만 가능해야 한다. 이 과정은 Audit Trail에 자동으로 기록되어야 하며, 사용자가 임의로 삭제하거나 수정할 수 없어야 한다.”
[트렌드 조회 기능]
단순 문장: “시스템은 트렌드를 표시해야 한다.”
개선 문장: “사용자가 선택한 기간(최대 30일)에 대해 시스템은 온도 데이터를 시간 순으로 그래프로 제공해야 하며, 트렌드 조회 내역은 Audit Trail에 자동 기록되어야 한다. 출력된 그래프는 조회 시점 기준의 정적인 데이터로 저장되어야 하며, 이후 수정이 불가능해야 한다.”
[백업 기능]
단순 문장: “시스템은 백업 기능을 제공해야 한다.”
개선 문장: “운영 데이터는 5분 주기로 외부 서버에 자동 백업되어야 하며, 백업 성공 여부와 오류 내역은 Audit Trail에 기록되어야 한다. 백업 설정은 관리자만 변경할 수 있어야 하고, 변경 이력은 삭제 불가능한 형태로 저장되어야 한다.”
숫자를 넣어라: “5분 주기”, “30일”, “5회 실패” 같은 수치는 시험 조건을 구체화시켜 준다.
권한 구분을 명시하라: “관리자만 가능”, “사용자는 조회만 가능” 등은 통제 구조를 명확히 해준다.
기록을 반드시 언급하라: 아무리 기능이 잘 작동해도 기록이 없으면 검증도, 감사도 불가능하다.
조건–동작–결과 순서로 문장을 구성하라: 독자와 감사관이 빠르게 이해할 수 있는 흐름이다.
시험 문장은 ‘단순하게’ 쓰는 게 아니라
‘정확하게 설계’해야 하는 문장입니다.
그 기능이 어떤 상황에서 어떻게 작동하고,
누가 통제하며, 어떤 기록이 남아야 하는지를
처음부터 품질 기반의 언어로 써야 합니다.
이건 감각이 아니라 훈련입니다.
오늘 글이 그 훈련의 출발점이 되기를 바랍니다.