개요

지금 돌아가는 생성 스택

웹은 Project / Rule / Scene을 보내고 authoring.testCases를 저장하면 됩니다. 일상 생성은 testtrace-l2를 쓰면 됩니다.

testtrace · qwen2.5:14b · 실측 50.1초, TC 5개

성공/실패/흐름이 가장 고릅니다. 일상 생성은 이 레벨을 쓰면 됩니다.

지금 운영 상태Ollama 연결

Render 앱이 Cloudflare 터널 · 이 Mac Ollama를 부릅니다. 레벨은 L1=7B, L2=14B, L3=32B입니다. 기본 프로필은 testtrace-l2입니다.

Ollama

연결됨

Cloudflare 터널 · 이 Mac Ollama

받은 모델

3

qwen2.5:32b, qwen2.5:14b, qwen2.5:7b

클라우드 키

없음

GPT / Claude / Gemini

testtrace-l1준비됨

qwen2.5:7b

실측 23.3초 · HTTP 200 · TC 5

로그인 실패 규칙 아니오 · 한국어 · sceneId

가장 빠르지만 로그인 실패 규칙을 빠뜨렸고, 빈 이름 케이스가 겹칩니다.

  • 로그인 화면에서 Google OAuth 로그인 성공
  • 프로젝트 생성 화면에서 프로젝트명 입력 및 생성
  • 프로젝트 생성 화면에서 프로젝트명이 비어있을 때
  • 프로젝트 생성 화면에서 프로젝트명이 너무 짧을 때
  • 프로젝트 생성 화면에서 프로젝트명이 비어있을 때의 에러 메시지
testtrace-l2권장 · 준비됨

qwen2.5:14b

실측 50.1초 · HTTP 200 · TC 5

로그인 실패 규칙 · 한국어 · sceneId

성공/실패/흐름이 가장 고릅니다. 일상 생성은 이 레벨을 쓰면 됩니다.

  • 로그인 성공 테스트
  • 로그인 실패 테스트
  • 프로젝트 생성 성공 테스트
  • 프로젝트 생성 실패 테스트
  • 로그인 후 프로젝트 생성 흐름 테스트
testtrace-l3준비됨

qwen2.5:32b

실측 53.5초 · HTTP 200 · TC 2

로그인 실패 규칙 · 한국어 · sceneId

주어진 규칙에 맞춰 적게 짓습니다. 시간은 L2와 비슷합니다.

  • 정상 로그인 및 프로젝트 생성
  • 로그인 실패 시 에러 메시지 확인
  • 생성 기본값은 pipeline입니다. 읽기 3개 → 작성 1개 → 검수 최대 1회입니다.
  • 테스트케이스 문구는 한국어만 씁니다. 웹 저장은 authoring.testCases입니다.
  • 요청에 scenes[].id가 있으면 step.sceneId를 채워 줍니다.
  • Ollama가 끊기면 가짜 초안을 만들지 않고 오류를 냅니다. 모델 JSON만 깨지면 요약 draft로 대체합니다.
  • body.profileId가 query보다 우선합니다. Swagger 예시는 testtrace-l1입니다.
  • gpt-premium / claude-premium / gemini-premium은 클라우드 키가 없어 지금은 쓰지 않습니다.

생성 TC

authoring.testCases

0

단계

TestCaseStep

0

리스크

qaAnalysis.risk.level

-

커버리지

qaAnalysis.coverage.score

-

에이전트 구성정밀 생성 · pipeline

고정 파이프라인입니다. 도구를 마음대로 부르는 루프가 아니라, 읽기 3개 → 작성 1개 → 검수 최대 1회입니다.

  1. 1. 나눠 읽기

    세 리더가 동시에 돌아갑니다. 원문이 아니라 각자 맡은 조각만 봅니다.

    DesignReaderPrdReaderFlowMapper
  2. 2. 작성

    리더 요약 세 개만 받고 테스트케이스 JSON을 씁니다.

    TcAuthor
  3. 3. 검수

    로컬 커버리지로 빈 칸을 찾고, 있을 때만 Author를 한 번 더 부릅니다.

    Critic
DesignReaderLLM · 병렬 읽기

화면 읽기

입력: Scene.title, Scene.description

출력: screens[].purpose / elements / emptyStates / errors

화면이 없으면 호출하지 않습니다. JSON이 깨지면 제목·설명만 남깁니다.

PrdReaderLLM · 병렬 읽기

규칙 읽기

입력: RuleGroup.title, Rule.description

출력: requirements[].statement / constraint / exception

규칙이 없으면 호출하지 않습니다. 없는 요구사항은 만들지 않습니다.

FlowMapperLLM · 병렬 읽기

경로 읽기

입력: Scene, SceneConnection

출력: paths[].steps / kind, disconnected[]

존재하는 화면 title만 경로에 씁니다. happy / alternate / blocked.

TcAuthorLLM · 작성

테스트케이스 작성

입력: Design / PRD / Flow 요약만

출력: testCases → authoring.testCases

원문 Rule/Scene을 다시 넣지 않습니다. 요약만 보고 title과 steps를 씁니다.

Critic로컬 · 검수

빠진 영역 보강

입력: qa-engine coverage + 이미 만든 TC

출력: missingAreas, 필요 시 TC 추가

빈 칸이 있을 때만 Author를 최대 1회 더 호출합니다. 무한 루프 없음.

빠른 생성(fast)은 이 구성을 건너뛰고 한 번의 작성 호출만 합니다.

에이전트 실행실제 수행 순서

POST /api/ai/generate-testcases가 pipeline이면 아래 순서만 실행합니다. 리더는 동시에, 작성과 검수는 그 다음에 이어집니다.

원문은 웹이 보낸 Project / Rule / Scene 문장 그대로입니다. 리더가 맡은 조각만 읽고 JSON 요약으로 바꿉니다. TcAuthor는 그 원문을 다시 받지 않고, 요약 세 개만 보고 타이틀과 스텝을 씁니다.

원문

요청 정규화

Project · RuleGroup/Rule · Scene · SceneConnection

동시 3개 · 원문 in / 요약 out · 서로 기다리지 않음

LLM · 원문

DesignReader

Scene title/description

요약: CTA · 입력 · 빈 상태 · 오류

LLM · 원문

PrdReader

RuleGroup / Rule

요약: 요구 · 제약 · 예외

LLM · 원문

FlowMapper

Scene + Connection

요약: happy / alternate / blocked

LLM · 작성 1회

TcAuthor

원문 재투입 없음 · 요약만으로 title + steps 작성

받는 것

Design / PRD / Flow 요약 JSON

안 넣는 것

Rule · Scene 원문 전체

쓰는 것

TC title · step action · expectedResult

로컬

Critic

커버리지 빈 칸 확인

빈 칸 없음

응답 조립

authoring · qaAnalysis · usage

빈 칸 있음 · 최대 1회

TcAuthor 보강

빠진 영역만 추가 후 응답 조립

  1. 1. 요청 정규화한 번 · LLM 없음

    프로필을 고르고 Rule/Scene을 정규화합니다. 이 단계에서는 모델을 부르지 않습니다.

    • mode가 fast이면 아래 파이프라인을 건너뛰고 한 번만 작성합니다.
    • 기본값은 pipeline입니다.
  2. 2. 나눠 읽기동시 3개

    DesignReader, PrdReader, FlowMapper를 같이 돌립니다. 서로 결과를 기다리지 않습니다.

    • DesignReader는 Scene title/description만 보고 CTA, 입력, 빈 상태, 오류를 요약합니다.
    • PrdReader는 RuleGroup/Rule에서 요구사항, 제약, 예외만 뽑습니다.
    • FlowMapper는 Scene + SceneConnection으로 happy/alternate/blocked 경로를 만듭니다.
    • 화면이 없으면 DesignReader와 FlowMapper는 LLM을 건너뜁니다.
    • 규칙이 없으면 PrdReader는 LLM을 건너뜁니다.
    • JSON이 깨지거나 모델이 실패하면 그 리더만 원문 fallback을 쓰고, 나머지는 계속 갑니다.
    • 리더 토큰은 프로필 maxTokens와 1200 중 작은 값입니다.
  3. 3. 작성순차 1회

    세 리더가 끝난 뒤에만 TcAuthor가 돕니다. 원문이 아니라 요약 세 개만 받습니다.

    • 원문 Project/Rule/Scene을 다시 넣지 않습니다. 리더 요약 JSON만 받습니다.
    • 그 요약으로 TC title과 step action/expectedResult를 같이 씁니다.
    • 기존 testCases JSON 스키마로 작성합니다.
    • 작성 실패는 fallback이 없습니다. 여기가 깨지면 요청 전체가 실패합니다.
    • 직후 중복을 줄이고 sceneHint를 sceneId에 붙입니다.
    • 작성 토큰은 프로필 maxTokens를 그대로 씁니다.
  4. 4. 검수로컬 먼저 · 보강 최대 1회

    Critic 자체는 모델을 부르지 않습니다. 로컬 커버리지로 빈 칸을 찾습니다.

    • Rule/Scene 키워드가 TC에 없으면 missingAreas로 남깁니다.
    • 빈 칸이 없으면 끝입니다. critic.ran = false입니다.
    • 빈 칸이 있으면 TcAuthor를 한 번만 더 부릅니다. 빠진 영역과 기존 제목을 같이 줍니다.
    • 보강 토큰은 최대 1600입니다. 실패해도 첫 작성 결과는 그대로 돌려줍니다.
    • 도구를 마음대로 부르는 루프는 없습니다.
  5. 5. 응답 조립한 번 · LLM 없음

    웹 저장본과 품질 분석을 붙이고, 모든 호출 토큰을 합칩니다.

    • authoring.testCases가 웹 저장 계약입니다.
    • qaAnalysis는 로컬 ISTQB 엔진입니다.
    • 리더·작성·보강 usage를 더해 usage 하나로 내려줍니다.
    • 각 에이전트 요약은 agents에 실려 생성 결과 위에 보입니다.
    • 한 요청의 LLM은 보통 3+1이고, 커버리지가 비면 +1까지입니다.

세션 토큰

이 브라우저에서 호출한 합계

0

입력

promptTokens

0

출력

completionTokens

0

호출

LLM 요청 횟수

0

토큰 사용 기록

테스트케이스를 생성하거나 매핑/커버리지를 실행하면 여기에 쌓입니다. QA 분석은 LLM을 쓰지 않아 토큰이 없습니다.

사용 가능한 프로필

Quttack Builtin

builtin · quttack-builtin

클라우드 키나 Ollama가 없을 때 쓰는 내장 작성기입니다. Rule/Scene으로 TC와 스텝을 만듭니다.

TestTrace AI Level 1

준비됨

testtrace · qwen2.5:7b · L1

빠른 초안용. qwen2.5:7b. 23초대로 나오지만 규칙을 빠뜨리거나 케이스가 겹칠 수 있습니다.

TestTrace AI Level 2

권장 · 준비됨

testtrace · qwen2.5:14b · L2

일상 기본. qwen2.5:14b. 성공/실패/흐름이 가장 고릅니다. 권장 프로필입니다.

TestTrace AI Level 3

준비됨

testtrace · qwen2.5:32b · L3

고급. qwen2.5:32b. 주어진 규칙에 맞춰 적게 짓습니다. 케이스는 적고 시간은 L2와 비슷합니다.

Local Fast

ollama · qwen2.5:7b

L1과 같은 qwen2.5:7b를 직접 부르는 가벼운 로컬 프로필입니다.

GPT Premium

openai · gpt-4o-mini

OpenAI profile for high-quality generation.

Claude Premium

anthropic · claude-3-5-sonnet-latest

Anthropic profile for long-context QA reasoning.

Gemini Premium

gemini · gemini-1.5-pro

Gemini profile for multimodal-ready future workflows.