문서 목차
이 페이지에서목차

bug-report-template Reference

Defines the bug classification system, severity guide, and image analysis criteria.

Defines the bug classification system, severity guide, and image analysis criteria.


1. Severity Classification#

Classification Criteria#

§1 levels and §2 types are also the options of the reflex question set jev/bug-triage.json (severity, bug type). Change both together.

SeverityLabelIconDescriptionExamples
Critical severity:critical 🔴 App unusable, data loss App crash, ANR, data loss
High severity:high 🟠 Core functionality blocked Login failure, payment error, main screen inaccessible
Medium severity:medium 🟡 Functionality partially working Button not working, partial UI broken, data not displayed
Low severity:low 🟢 Minor issues Typo, alignment error, color error

Severity Decision Flow#

Does the app crash or lose data?
├── Yes → 🔴 Critical
└── No → Is core functionality (login, payment, main flow) blocked?
         ├── Yes → 🟠 High
         └── No → Is the feature not working as intended?
                  ├── Yes → 🟡 Medium
                  └── No → 🟢 Low (visual/surface-level issue)

2. Bug Type Classification#

UI/UX Bugs 🎨#

Sub-typeDescriptionExamples
LayoutLayout brokenOverflow, overlap, alignment error
StyleStyle errorColor, font, margin error
AnimationAnimation issueJank, non-functional, clipped
ResponsiveResponsive issueBroken at different screen sizes

Functional Bugs ⚙️#

Sub-typeDescriptionExamples
NavigationNavigation errorWrong screen transition, back button error
InputInput handling errorKeyboard input, touch not recognized
LogicLogic errorWrong calculation, condition branching error
StateState management errorState not updated, sync issue

Performance Bugs ⚡#

Sub-typeDescriptionExamples
LoadingLoading delaySlow API response, large data
RenderingRendering performanceFrame drops, jank
MemoryMemory issueMemory leak, OOM
BatteryBattery drainExcessive background work

Crash/ANR 💥#

Sub-typeDescriptionExamples
CrashApp force closeNPE, unhandled exception
ANRNot respondingMain thread blocking
FreezeScreen frozenInfinite loop, deadlock

Data Bugs 📊#

Sub-typeDescriptionExamples
DisplayIncorrect displayData not shown, wrong value
SyncSync errorServer-client mismatch
PersistenceStorage errorLocal save failure, cache error
ValidationValidation errorInvalid input accepted

3. Impact Area Classification#

Area Labels#

AreaLabelDescription
UIarea:uiFrontend UI components
Backendarea:backendServer API, endpoints
Dataarea:dataData layer, cache
Autharea:authAuthentication/authorization
Paymentarea:paymentPayment related
Navigationarea:navigationRouting, navigation

4. Image Analysis Guide#

Analysis Points#

Items to check when analyzing screenshots:

## Image Analysis Checklist

### UI State
- [ ] Is an error dialog displayed?
- [ ] Is it an empty screen (Empty State)?
- [ ] Is the loading state stuck?
- [ ] Is the layout broken?
- [ ] Has an overflow occurred?

### Text Extraction
- [ ] Error message text
- [ ] Screen title/header
- [ ] Button text
- [ ] Input field content

### Context Identification
- [ ] What screen is this? (list, detail, form, etc.)
- [ ] What action preceded this?
- [ ] What data is involved?

Auto-classification Logic#

## Image-based Auto-classification

### Crash/ANR Detection
- "App is not responding" → 💥 ANR
- "Force close" / "crash" → 💥 Crash
- Black screen + error stack → 💥 Crash

### UI Bug Detection
- Text truncated / "..." → 🎨 Layout
- Overlapping elements → 🎨 Layout
- Yellow area (Flutter overflow) → 🎨 Layout

### Functional Bug Detection
- Error toast/snackbar → ⚙️ Function
- Empty list + error icon → ⚙️ Data/Function
- Loading spinner persisting → ⚙️ Function / ⚡ Performance

5. Required Information Collection#

Reproduction Steps Writing Guide#

# Good example
Given the user is logged in
And on the home screen
When tapping the "Profile" tab
Then the app crashes

# Bad example
Crash when going to profile

Environment Information Checklist#

## Required Environment Information

| Item | Description | Example |
|------|-------------|---------|
| OS | Operating system version | iOS 17.2, Android 14 |
| Device | Device model | iPhone 15, Galaxy S24 |
| App Version | App version | 1.2.3 (build 456) |
| Account | Test account (optional) | test@example.com |
| Network | Network status (optional) | WiFi, LTE, Offline |

6. Auto-labeling Rules#

Default Labels#

Automatically applied to all bug issues:

  • bug

Conditional Labels#

ConditionLabel
Severity Criticalseverity:critical, priority:urgent
Severity Highseverity:high, priority:high
Crash relatedcrash, needs-investigation
UI relatedarea:ui
Reproduction uncertainneeds-reproduction

Auto Pipeline#

SeverityPipeline
CriticalIn Progress (immediate handling)
HighTriage (priority classification)
Medium/LowBacklog

7. Additional Information Formats#

Log Attachment Format#

## Logs

\`\`\`
2024-01-15 10:30:45.123 E/Flutter: Error in authentication flow
2024-01-15 10:30:45.124 E/Flutter: Stack trace:
#0      AuthBloc._onLogin (auth_bloc.dart:45)
#1      Bloc.on.<anonymous closure> (bloc.dart:123)
\`\`\`

Stack Trace Attachment Format#

## Stack Trace

\`\`\`dart
Exception: Network error
  at ApiClient.fetch (api_client.dart:78)
  at UserRepository.getUser (user_repository.dart:34)
  at GetUserUseCase.call (get_user_usecase.dart:22)
\`\`\`

검색어를 입력하면 문서를 찾습니다.

↑ ↓ 이동 · Enter 열기Esc 닫기