Automatically generates executable tests that reproduce reported bugs from issue reports and code repositories. Use when users need to: (1) Create a test that reproduces a bug described in an issue report, (2) Generate failing tests from bug descriptions, stack traces, or error messages, (3) Validate bug reports by creating reproducible test cases, (4) Convert issue reports into executable regression tests. Takes a repository and issue report as input and produces test code that reliably triggers the reported bug.
Install with Tessl CLI
npx tessl i github:ArabelaTso/Skills-4-SE --skill bug-reproduction-test-generator90
Does it follow best practices?
If you maintain this skill, you can automatically optimize it using the tessl CLI to improve its score:
npx tessl skill review --optimize ./path/to/skillValidation for skill structure
Generate executable tests that reproduce reported bugs based on issue reports and code repositories.
Follow these steps to generate a bug reproduction test:
Extract key information from the issue report:
Identify relevant code and context:
Create a minimal, focused test that:
Test structure:
Assertions:
Documentation:
Provide:
Issue Report:
Title: Division by zero in calculate_average()
Description: When calling calculate_average([]) with an empty list,
the function crashes with ZeroDivisionError instead of returning 0.
Stack trace:
File "stats.py", line 15, in calculate_average
return sum(values) / len(values)
ZeroDivisionError: division by zeroGenerated Test (Python/pytest):
import pytest
from stats import calculate_average
def test_calculate_average_empty_list_reproduction():
"""
Reproduces bug: calculate_average([]) raises ZeroDivisionError
Issue: #123
Expected: Should return 0 for empty list
Actual: Raises ZeroDivisionError
"""
# Trigger the bug with empty list input
with pytest.raises(ZeroDivisionError):
result = calculate_average([])
# This test currently passes (reproduces the bug)
# After fix, change to: assert calculate_average([]) == 0Summary:
## Bug Reproduction Test
**Issue**: Division by zero in calculate_average()
**How it reproduces the bug:**
- Calls `calculate_average([])` with an empty list
- Asserts that ZeroDivisionError is raised (the buggy behavior)
**Symptoms validated:**
- Exception type: ZeroDivisionError
- Location: stats.py line 15
**Assumptions:**
- The function should return 0 for empty lists (common convention)
**Running the test:**
```bash
pytest test_stats.py::test_calculate_average_empty_list_reproductionAfter the bug is fixed:
Replace the pytest.raises assertion with:
assert calculate_average([]) == 0## Language-Specific Patterns
### Python (pytest/unittest)
```python
import pytest
def test_bug_reproduction_issue_123():
"""Reproduces bug #123: [brief description]"""
# Setup: Create conditions that trigger the bug
# Execute: Run the code that exhibits the bug
# Assert: Verify the buggy behavior occurs
with pytest.raises(ExpectedException):
buggy_function()@Test
public void testBugReproduction_Issue123() {
// Reproduces bug #123: [brief description]
// Setup: Create conditions that trigger the bug
// Execute and Assert: Verify the buggy behavior
assertThrows(ExpectedException.class, () -> {
buggyMethod();
});
}test('reproduces bug #123: [brief description]', () => {
// Setup: Create conditions that trigger the bug
// Execute and Assert: Verify the buggy behavior
expect(() => {
buggyFunction();
}).toThrow(ExpectedException);
});When the issue report lacks details:
Example:
def test_bug_reproduction_issue_456():
"""
Reproduces bug #456: Null pointer exception in processData()
ASSUMPTION: The bug occurs when input is null (not specified in issue)
ASSUMPTION: Using default configuration (not specified in issue)
"""
# Test with null input (assumed trigger)
with pytest.raises(NullPointerException):
processData(None)0f00a4f
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.