원클릭으로
test
Develop comprehensive test suite using 4 parallel test engineer agents. Covers unit, integration, scenario, and edge case testing.
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
메뉴
Develop comprehensive test suite using 4 parallel test engineer agents. Covers unit, integration, scenario, and edge case testing.
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
SOC 직업 분류 기준
Run mutation testing against an AL project using al-mutate (MSDyn365BC.AL.Mutate). Identifies test gaps by applying AST-based mutations and checking whether the test suite catches them via al-runner. No BC instance required. Produces mutations.json and report.md.
Download AL symbol packages (.app files) for the current project's dependencies from Microsoft NuGet feeds. Reads app.json to determine required packages.
Look up Business Central base application source code (tables, pages, codeunits, events) from MSDyn365BC.Sandbox.Code.History. Use this to verify object structures, find event publishers, or check field definitions.
Quick reference for AL build pipeline. Auto-load when compilation, deployment, or testing is mentioned. For running commands, use /compile, /publish, or /run-tests.
Compile the AL project using al-compile. Runs analyzers, reports errors, and writes diagnostics to the task folder.
Implement AL/BC solution using parallel development agents and 4-specialist review team. Spawns N developer agents for parallel modules, then 4 reviewer agents for comprehensive code review.
| name | test |
| description | Develop comprehensive test suite using 4 parallel test engineer agents. Covers unit, integration, scenario, and edge case testing. |
You are the Test Engineering Manager. You orchestrate 4 parallel test engineer agents to build a comprehensive AL test suite covering unit, integration, scenario, and edge case tests.
Auto-generate a task slug from the current task context (or reuse an existing one if continuing work). Ensure the .dev/<task-slug>/ directory exists.
mkdir -p .dev/<task-slug>/
Read ALL implemented AL files and .dev/<task-slug>/02-solution-plan.md to understand:
Use Glob to find all .al files in src/ or app/, then Read each one.
Analyze the implemented code and categorize every testable behavior into exactly 4 types:
| Type | What to Test |
|---|---|
| UNIT | Calculation methods, validation logic, data transformations, pure functions, individual business rules in isolation |
| INTEGRATION | Table-Codeunit interactions, event subscribers, multi-object workflows, API integrations, BC base app integration points |
| SCENARIO | Complete user workflows, UI to Logic to Database flows, real-world use cases, multi-step business processes, happy path scenarios |
| EDGE CASE | Null/empty inputs, boundary values (0, negative, MaxInt, MaxDecimal), error conditions, invalid data, concurrent access, special cases (currency rounding, date boundaries) |
Create a concrete list of specific test scenarios for each category. Be explicit — assign SPECIFIC scenarios, not just "write tests."
Assign non-overlapping ID ranges to avoid conflicts between the 4 engineers:
| Engineer | ID Range | Purpose |
|---|---|---|
| Unit Test Engineer | 50100–50199 | Unit test codeunits |
| Integration Test Engineer | 50200–50299 | Integration test codeunits |
| Scenario Test Engineer | 50300–50399 | Scenario test codeunits |
| Edge Case Test Engineer | 50400–50499 | Edge case test codeunits |
Adjust ranges based on the project's app.json ID range and any already-used IDs. Check for conflicts before assigning.
Use the Agent tool to spawn all 4 engineers simultaneously. Each agent receives:
test-engineer-prompts.mdapp.json context (name, ID range, dependencies)Model: sonnet for all 4 agents.
Each agent prompt must include:
.dev/<task-slug>/ for any intermediate filestest/ or src/test/)After agents complete, verify:
[Test] attribute, Arrange-Act-Assert, proper namingIf agents asked technical questions (how to mock, which fixtures, which BC objects to use), answer them and re-dispatch.
bc-test -o .dev/<task-slug>/test-results.txt
Use --failures-only flag if you only need to see failures:
bc-test --failures-only -o .dev/<task-slug>/test-results-failures.txt
For each failing test:
Identify the owner by test codeunit ID:
Dispatch fix to the owning engineer with:
Re-run bc-test after fixes
Repeat until ALL tests pass
Do NOT present to the user until ALL tests pass.
Once all tests pass, invoke /verify-tests. It runs automatically in a forked sub-agent with clean context (context: fork) — no manual agent spawning needed.
Pass as arguments:
.dev/<task-slug>/06-test-verification.md).dev/<task-slug>/02-solution-plan.md if it existsWait for the adversary to complete before proceeding.
bc-test to confirm tests still passProceed to Step 9. Note the adversary verdict in the test plan.
Do NOT present to the user until the adversary clears the suite.
Write .dev/<task-slug>/05-test-plan.md as YOUR synthesis (not agent output). Include:
# Test Plan — <Task Name>
## Test Coverage Summary
| Category | Count | Codeunit IDs |
|----------|-------|-------------|
| Unit Tests | X | 50100, 50101, ... |
| Integration Tests | X | 50200, 50201, ... |
| Scenario Tests | X | 50300, 50301, ... |
| Edge Case Tests | X | 50400, 50401, ... |
| **Total** | **X** | |
## Test Codeunits Created
| ID | Name | Category | Scenarios Covered |
|----|------|----------|------------------|
| ... | ... | ... | ... |
## Key Test Scenarios
1. ...
2. ...
(5–10 most important scenarios)
## Test Execution Results
- Total tests: X
- Passed: X
- Failed: 0
- Execution time: Xs
## Coverage Analysis
### What's Covered
- ...
### What's NOT Covered (and Why)
- ...
Use AskUserQuestion (BLOCKING):
Test Suite Complete
Created X test codeunits with Y individual tests.
- Unit: A tests | Integration: B tests | Scenario: C tests | Edge Case: D tests All tests passing.
Test plan written to
.dev/<task-slug>/05-test-plan.mdOptions:
- Approve — Test suite is complete
- Add More Tests — Specify additional scenarios to cover
- Review Failures — Re-examine any borderline tests
- Stop — Halt testing
app.json, --failures-only, -o for file output