Skip to content

Manual Test

범수 edited this page Sep 12, 2026 · 1 revision

역할별 수동 테스트

한 티켓을 REQUESTER -> APPROVER -> OPERATOR 순서로 넘겨 보면서 역할 분리와 되돌리기를 확인합니다. 전체 명령과 문제 해결 표는 저장소의 수동 테스트 문서를 기준으로 합니다.

준비

개발용 대상 DB를 실행합니다.

docker compose up -d
docker exec dbtower-postgres createdb -U postgres dbtower_clicktest

별도 메타 DB와 다섯 역할 계정으로 앱을 실행합니다.

DEMO_PASSWORD=$(openssl rand -base64 24)
DEMO_TOKEN=$(openssl rand -hex 32)
LOCAL_DB_PASSWORD='<docker compose 개발 DB 비밀번호>'
SPRING_PROFILES_ACTIVE=dev \
DBTOWER_DB_URL='jdbc:postgresql://127.0.0.1:15432/dbtower_clicktest?reWriteBatchedInserts=true' \
DBTOWER_DB_USERNAME=postgres \
DBTOWER_DB_PASSWORD="$LOCAL_DB_PASSWORD" \
DBTOWER_ADMIN_PASSWORD="$DEMO_PASSWORD" \
DBTOWER_VIEWER_PASSWORD="$DEMO_PASSWORD" \
DBTOWER_REQUESTER_PASSWORD="$DEMO_PASSWORD" \
DBTOWER_APPROVER_PASSWORD="$DEMO_PASSWORD" \
DBTOWER_OPERATOR_PASSWORD="$DEMO_PASSWORD" \
DBTOWER_API_TOKEN="$DEMO_TOKEN" \
DBTOWER_WEBHOOK_URL='' \
./gradlew bootRun

웹 콘솔: http://localhost:8080

생성된 비밀번호와 토큰은 현재 터미널에서 확인해 두고 폐기 가능한 로컬 환경에서만 사용합니다. LOCAL_DB_PASSWORD에는 docker-compose.yml의 개발 PostgreSQL 비밀번호를 입력합니다.

브라우저 준비

  • 가장 간단한 방법은 역할을 바꿀 때마다 로그아웃하는 것입니다.
  • 여러 역할을 동시에 열려면 서로 다른 Chrome 프로필이나 서로 다른 브라우저를 사용합니다.
  • 로그인 직후 우측 상단의 역할 배지를 먼저 확인합니다.

빠른 권한 확인

  1. viewer: 관제 화면은 보이고 워크벤치 진입은 없어야 합니다.
  2. requester: 조회와 변경 요청은 가능하지만 승인·실행은 없어야 합니다.
  3. approver: 드라이런과 승인·반려는 가능하지만 실행은 없어야 합니다.
  4. operator: 승인된 티켓의 실행·되돌리기는 가능하지만 승인·반려는 없어야 합니다.
  5. admin: 사용자·역할과 감사 로그를 포함한 관리 기능이 보여야 합니다.

한 티켓을 끝까지 시험

requester로 현재 값을 조회합니다.

SELECT id, name, grade
FROM customers
WHERE id = 3;

다음 변경을 즉시 실행하지 않고 티켓으로 요청합니다.

UPDATE customers
SET grade = 'BRONZE'
WHERE id = 3;
  1. requester가 변경 요청을 제출합니다.
  2. approver가 드라이런 결과와 예상 영향 행 수를 확인하고 승인합니다.
  3. operator가 승인된 티켓을 실행합니다.
  4. 실행 기록에서 요청자, 승인자, 실행자가 서로 다른지 확인합니다.
  5. operator가 되돌리기를 실행해 원래 등급을 복원합니다.
  6. admin이 감사 로그에서 전체 흐름의 실제 사용자를 확인합니다.

테스트 대상을 처음 등록하는 API 명령은 전체 수동 테스트 문서에 있습니다.

Clone this wiki locally