- Created docs/TESTING_PHASE5.md with test scenarios and metrics - Includes pre-testing checklist - 5 test scenarios from quiet exploration to swarm enemies - Glitch rating scale and configuration tuning guide - Test report template for iteration
298 lines
5.8 KiB
Markdown
298 lines
5.8 KiB
Markdown
# Phase 5: Testing & Iteration Guide
|
|
|
|
## Overview
|
|
This phase documents the testing protocol for validating audio mod fixes and improvements.
|
|
|
|
**Note:** Actual testing must be performed by playing the game. This document provides the testing workflow and evaluation criteria.
|
|
|
|
---
|
|
|
|
## Pre-Testing Checklist
|
|
|
|
### 1. BepInEx Installation
|
|
- [ ] BepInEx installed in game directory
|
|
- [ ] `winhttp.dll` present in game root
|
|
- [ ] `BepInEx\LogOutput.log` generated after first run
|
|
|
|
### 2. Plugin Installation
|
|
- [ ] `HomuraHimeAudioMod.dll` in `BepInEx\plugins\`
|
|
- [ ] Config file generated at `BepInEx\config\com.homurahime.audiomod.cfg`
|
|
|
|
### 3. Original Bank Backup
|
|
- [ ] Original banks backed up to `backup_banks_original\`
|
|
|
|
### 4. FMOD Banks (Optional)
|
|
- [ ] Modified banks copied to game directory (if using Phase 3 FMOD changes)
|
|
|
|
---
|
|
|
|
## Testing Scenarios
|
|
|
|
### Test 1: Quiet Exploration (Baseline)
|
|
|
|
**Purpose:** Verify mod doesn't break normal audio
|
|
|
|
**Steps:**
|
|
1. Launch game with mod enabled
|
|
2. Start new game or load save
|
|
3. Move through quiet area (hub, menu, cutscenes)
|
|
4. Listen for 5+ minutes
|
|
|
|
**Success Criteria:**
|
|
- [ ] No audio distortion or pops
|
|
- [ ] BGM plays smoothly without cutting out
|
|
- [ ] UI sounds (menu navigation) work correctly
|
|
- [ ] No crashes or errors in LogOutput.log
|
|
|
|
**Log Check:**
|
|
```
|
|
Filter: Look for "HomuraHimeAudio" entries
|
|
Expected: "initialized successfully"
|
|
```
|
|
|
|
---
|
|
|
|
### Test 2: Combat with 3+ Enemies
|
|
|
|
**Purpose:** Test voice limit fixes under moderate load
|
|
|
|
**Steps:**
|
|
1. Find an area with 3+ enemies (early game stages)
|
|
2. Engage in combat
|
|
3. Observe audio behavior during:
|
|
- Multiple attack impacts
|
|
- Enemy death sounds
|
|
- Player attack sounds
|
|
- Dodge/roll sounds
|
|
|
|
**Success Criteria:**
|
|
- [ ] No audio distortion during impact sounds
|
|
- [ ] Sounds don't cut out prematurely
|
|
- [ ] Enemy voices don't override each other harshly
|
|
- [ ] Can distinguish individual sound sources
|
|
|
|
**Failure Signs:**
|
|
- Crackling/popping sounds
|
|
- Sudden audio cutoff
|
|
- "Muffled" audio
|
|
- Missing sound effects
|
|
|
|
---
|
|
|
|
### Test 3: Boss Fights (Heavy Load)
|
|
|
|
**Purpose:** Stress test audio system
|
|
|
|
**Steps:**
|
|
1. Enter boss arena
|
|
2. Engage boss
|
|
3. Observe during:
|
|
- Boss special attacks
|
|
- Phase transitions
|
|
- Multiple minions spawning
|
|
- Intense combo sequences
|
|
|
|
**Success Criteria:**
|
|
- [ ] No audio glitches during phase transitions
|
|
- [ ] Music continues playing smoothly
|
|
- [ ] Voice lines play without cutoff
|
|
- [ ] Attack sounds remain distinguishable
|
|
|
|
**Challenge:** If glitches occur, reduce `MaxVoiceCount` in config
|
|
|
|
---
|
|
|
|
### Test 4: Swarm Enemy Encounters
|
|
|
|
**Purpose:** Test rapid sound triggering
|
|
|
|
**Steps:**
|
|
1. Find area with many weak enemies (swarms)
|
|
2. Use area-of-effect attacks
|
|
3. Observe:
|
|
- Rapid footstep sounds
|
|
- Multiple death sounds
|
|
- Attack impact sounds overlapping
|
|
|
|
**Success Criteria:**
|
|
- [ ] No stuttering or repeating sounds
|
|
- [ ] Audio doesn't "stick" or loop
|
|
- [ ] Clean sound transitions
|
|
|
|
---
|
|
|
|
### Test 5: Enemy Behavior State Changes
|
|
|
|
**Purpose:** Validate enemy audio indicator improvements
|
|
|
|
**Steps:**
|
|
1. Approach enemies and observe state changes
|
|
2. Listen for audio cues during:
|
|
- Enemy idle (subtle ambient)
|
|
- Enemy alert (noticing player)
|
|
- Enemy chase (pursuing)
|
|
- Enemy attack (warning + strike)
|
|
|
|
**Success Criteria:**
|
|
| State | Expected Audio |
|
|
|-------|----------------|
|
|
| Idle | Subtle, low-volume ambient |
|
|
| Alert | Distinct warning/notice sound |
|
|
| Chase | Intensified pursuit audio |
|
|
| Attack | Clear attack indicator + impact |
|
|
|
|
**Rating Scale:**
|
|
- 1: Cannot hear/identify
|
|
- 2: Barely audible
|
|
- 3: Audible but unclear
|
|
- 4: Clear and distinguishable
|
|
- 5: Very distinct and helpful
|
|
|
|
---
|
|
|
|
## Metrics Tracking
|
|
|
|
### Audio Glitch Rating
|
|
|
|
| Rating | Description |
|
|
|--------|-------------|
|
|
| 0 | No glitches ever |
|
|
| 1 | Rare glitches (<1 per minute) |
|
|
| 2 | Occasional glitches (1-5 per minute) |
|
|
| 3 | Frequent glitches (>5 per minute) |
|
|
| 4 | Constant glitches |
|
|
|
|
### Target: Rating 0-1 for all scenarios
|
|
|
|
---
|
|
|
|
## Configuration Tuning
|
|
|
|
### If Distortion/Pops Occur
|
|
|
|
```ini
|
|
[VoiceManager]
|
|
MaxVoiceCount = 64 ; Reduce from 128
|
|
|
|
[Ducking]
|
|
DuckFadeTime = 0.08 ; Increase for smoother transitions
|
|
```
|
|
|
|
### If Sounds Cut Out
|
|
|
|
```ini
|
|
[VoiceManager]
|
|
MaxVoiceCount = 256 ; Increase if hardware supports
|
|
EnableVoiceLimitFix = true
|
|
```
|
|
|
|
### If Enemy Cues Unclear
|
|
|
|
```ini
|
|
[EnemyAudio]
|
|
EnemyIndicatorBoost = 1.5
|
|
AlertSoundBoost = 1.6
|
|
AttackSoundBoost = 1.4
|
|
```
|
|
|
|
---
|
|
|
|
## Iteration Loop
|
|
|
|
```
|
|
Test Scenario
|
|
│
|
|
▼
|
|
┌─────────────┐
|
|
│ Glitch? │
|
|
└─────────────┘
|
|
│
|
|
┌──┴──┐
|
|
Yes No
|
|
│ │
|
|
▼ ▼
|
|
Adjust Next
|
|
Config Test
|
|
│
|
|
▼
|
|
Rebuild & Redeploy
|
|
│
|
|
▼
|
|
Retest
|
|
```
|
|
|
|
---
|
|
|
|
## Log Analysis
|
|
|
|
### Enable Debug Logging
|
|
|
|
```ini
|
|
[General]
|
|
EnableDebugLogging = true
|
|
```
|
|
|
|
### Check Log During Gameplay
|
|
|
|
```
|
|
BepInEx\LogOutput.log
|
|
```
|
|
|
|
### Key Log Entries
|
|
|
|
| Entry | Meaning |
|
|
|-------|---------|
|
|
| `HomuraHime Audio Mod initialized` | Plugin loaded OK |
|
|
| `Voice count X exceeds limit Y` | Voice limiting active |
|
|
| `DuckVolume adjusted` | Ducking patch working |
|
|
| `Enemy voice event: X` | Enemy audio hook active |
|
|
|
|
---
|
|
|
|
## Test Report Template
|
|
|
|
```markdown
|
|
## Test Report - [Date]
|
|
|
|
### Environment
|
|
- Game Version: [Check in game]
|
|
- Mod Version: 1.0.0
|
|
- Config: [Default/Custom]
|
|
|
|
### Results
|
|
|
|
| Scenario | Glitch Rating | Notes |
|
|
|----------|---------------|-------|
|
|
| Quiet Exploration | [0-4] | |
|
|
| 3+ Enemy Combat | [0-4] | |
|
|
| Boss Fight | [0-4] | |
|
|
| Swarm Enemies | [0-4] | |
|
|
| Enemy State Cues | [1-5] | |
|
|
|
|
### Configuration Changes Made
|
|
|
|
```ini
|
|
[Section]
|
|
Setting = Value
|
|
```
|
|
|
|
### Overall Assessment
|
|
|
|
[ ] Ready for distribution
|
|
[ ] Needs iteration
|
|
|
|
### Next Steps
|
|
|
|
1.
|
|
2.
|
|
```
|
|
|
|
---
|
|
|
|
## Next: Phase 6
|
|
|
|
Once testing yields satisfactory results (glitch rating 0-1, cue clarity 4-5):
|
|
- Proceed to Phase 6: Distribution
|
|
- Package mod for sharing
|
|
- Write installation instructions
|