Biz2Test — AI-Powered Child Work Item Generator
Biz2Test adds a dedicated tab to every Azure DevOps work item form (Feature / User Story) that uses AI to suggest, review, and create child work items — Tasks or Test Cases — directly inside Azure Boards.
What It Does
When you open a Feature or User Story, the Biz2Test tab:
- Shows all existing child work items (title, state, assigned to) with direct links.
- Sends the work item's title, description, and acceptance criteria to your AI backend.
- Returns up to 8 AI-suggested children — each with an editable title and a description tooltip.
- Lets you select, edit, and create the children you want, with parent–child linking handled automatically.
- Supports regeneration with a plain "Regenerate" button or a custom free-text instruction (e.g., "focus on edge cases", "add negative test scenarios").
Key Features
| Feature |
Detail |
| Existing children panel |
Lists current child items with state badge and assignee |
| AI-generated suggestions |
Up to 8 actionable, non-duplicate suggestions per work item |
| Inline title editing |
Edit any suggestion before creating it |
| Work item type selector |
Choose Task or Test Case per creation batch |
| Duplicate prevention |
Skips items whose titles already exist as children |
| Custom instruction |
Free-text field to steer the AI toward specific test concerns |
| One-click create |
Creates and links selected children via the Azure DevOps REST API |
| Retry on error |
Surfaced error banner with a Retry button on backend timeout |
| No-description warning |
Inline warning when the work item has no description |
| Theme support |
Respects Azure DevOps light / dark / high-contrast themes |
Architecture
Azure DevOps Work Item Form
└── Biz2Test tab (this extension)
├── Reads work item fields via Azure DevOps Extension SDK
├── Fetches existing children via WorkItemTracking REST API
└── POST /api/generate-children → Vercel Backend (backend/)
└── Azure OpenAI
└── Returns structured JSON suggestions
The extension never stores work item data. All AI processing happens in your own backend deployment.
Backend API Contract
POST /api/generate-children
Request body:
{
"workItemId": 123,
"fields": {
"title": "User can reset password",
"description": "As a user I want to reset my password...",
"acceptanceCriteria": "Given the user is on the login page..."
},
"attachments": [
{ "fileName": "spec.pdf", "extractedText": "..." }
],
"relatedWorkItems": [
{ "id": 45, "title": "Authentication service", "type": "Child" }
],
"customInstruction": "Focus on negative scenarios and session expiry"
}
Response:
{
"suggestions": [
{
"title": "Validate reset link expires after 24 hours",
"description": "Ensure token-based reset links are time-bounded"
},
{
"title": "Handle invalid or already-used reset token",
"description": "Return a user-friendly error for invalid/expired tokens"
}
]
}
Rules enforced by the backend:
- Maximum 8 suggestions per call
- Each title capped at 120 characters
- No generic items ("Write code", "Fix bug")
- Suggestions pre-filtered to exclude exact title matches with existing children
Backend Deployment (Vercel)
The backend/ folder in this repository is a self-contained Vercel Python project.
Required environment variables (set in Vercel project settings or a local .env):
| Variable |
Description |
AZURE_OPENAI_ENDPOINT |
Your Azure OpenAI resource endpoint |
AZURE_OPENAI_API_KEY |
Azure OpenAI API key |
AZURE_OPENAI_API_VERSION |
API version, e.g. 2024-02-01 |
CHAT_COMPLETIONS_DEPLOYMENT_NAME |
Your deployed model name, e.g. gpt-4o |
Deploy steps:
- Fork or clone this repository.
- In Vercel, create a new project and set the Root Directory to
backend/.
- Add the four environment variables above in the Vercel project settings.
- Deploy. Your endpoint will be
https://<your-app>.vercel.app/api/generate-children.
- Set that URL as
BACKEND_URL in src/Samples/Biz2Test/api.ts, rebuild, and republish the extension.
Extension Configuration
After deploying the backend, update the backend URL in the extension source:
// src/Samples/Biz2Test/api.ts
export const BACKEND_URL = "https://<your-app>.vercel.app";
Then rebuild and package:
npm run build
npm run package-extension
Security
- All Azure DevOps API calls use the user's own OAuth token (handled by the Extension SDK).
- The backend receives work item context only — no credentials are forwarded.
- No work item data is persisted by the backend; it is forwarded to Azure OpenAI and discarded.
Phase 2 Roadmap
- Full Test Case generation with structured test steps (Action / Expected Result)
- Severity tagging (Critical / High / Medium / Low)
- Bulk export to Test Plans
- Duplicate detection across the entire project backlog
- Risk-based test generation
- Per-project prompt templates
Learn more at https://busin3ss.info