Back to Budget Planning & Approval

Test and QA Plan

How the build is validated before go-live: three sequential test phases, edge cases, and production verification.

4 pagesPDF · Quality
FS-DOC-06Quality

Test and QA Plan

Budget Planning and Approval

[YourCompany.com] · Management Department · Prepared by FullSpec · [Today's Date]

This document defines the complete quality assurance programme for the Budget Planning and Approval automation. It is written for the FullSpec team executing the build and covers every test case required before the workflow goes live. Testing runs in three sequential phases: unit tests against isolated agents, integration tests covering agent handoffs and edge conditions, and a final end-to-end production run. The process owner (Finance Manager) joins Phase 3 to confirm real-world behaviour and record sign-off. No phase begins until the previous phase has fully passed.

01Testing approach

All testing follows three phases in strict sequence. No phase begins until every test case in the previous phase carries a passing result. Failures block progression and must be resolved, retested, and marked passed before the next phase opens. The FullSpec team owns execution for Phases 1 and 2; the process owner joins Phase 3 for final validation against live production data.

1
Phase 1 — Unit Testing
Each agent tested in isolation against sandbox data
Scope
Individual agent logic: Submission Coordinator Agent, Budget Consolidation Agent, Approval Routing Agent — each tested independently with no cross-agent dependencies.
Environment
Sandbox only. No production credentials, no live Xero data, no live DocuSign envelopes, no real Slack channels.
Credential rule
Sandbox API keys for Xero, DocuSign test account (demo environment), Slack test workspace, and a cloned Google Sheet with synthetic submission data. Real OAuth tokens must not be used.
Pass condition
All cases T01 through T15 return the expected output with no unhandled errors. Each failure mode must surface the correct error log entry.
Who runs it
FullSpec team only.
2
Phase 2 — Integration and Edge Case Testing
Agent handoffs and boundary conditions validated end to end in sandbox
Scope
Cross-agent handoffs, tool-to-tool data passing, and all identified edge conditions including duplicate submissions, missing fields, Xero API unavailability, and approver non-response.
Environment
Sandbox only. Full workflow chain active but all credentials remain in sandbox or demo mode.
Credential rule
Same sandbox credential set as Phase 1. Xero sandbox tenancy, DocuSign demo, Slack test workspace, and synthetic Google Sheets data. No production tokens.
Pass condition
Integration cases T16 through T22 and edge cases E01 through E06 all pass. Every failure path routes to the correct fallback or alert without silent data loss.
Who runs it
FullSpec team only.
3
Phase 3 — End-to-End Production Test
Full live run using production credentials and a test budget record
Scope
One complete budget cycle run from scheduled trigger through to signed document archived in Google Drive, executed against live production systems using an internal test submission.
Environment
Production. Live Xero OAuth token, live DocuSign account, live Slack workspace, live Google Drive folder. A dedicated test folder and voided DocuSign envelope must be prepared before the run.
Credential rule
Production credentials in use. All credentials must be stored in the automation platform's secrets manager, not in plaintext. The test DocuSign envelope must be voided immediately after the run.
Pass condition
Cases T23 through T27 all pass, including process owner review and approval confirmation recorded in the FullSpec confirmation log.
Who runs it
FullSpec team executes; process owner (Finance Manager) participates in final review step T27.
Test and QA PlanPage 1 of 4
FS-DOC-06Quality

02Phase 1 — unit test cases

Sandbox credentials only during Phase 1. Do not connect production Xero OAuth tokens, live DocuSign accounts, or real Slack channels at any point in this phase. All Google Sheets used must be copies containing synthetic data. Connecting real credentials before Phase 3 is a blocker and must be raised with the FullSpec team lead immediately.

Submission Coordinator Agent — monitors Google Forms submission tracker, detects missing responses, and sends Slack reminders. Trigger: submission deadline within 48 hours with one or more departments pending.

ID
Scenario
Input
Expected Output
Pass Criteria
T01
Happy path: all submissions received before deadline
Google Sheet shows all 8 departments as submitted; deadline is 48 hours away
No Slack reminders sent; status column in tracking sheet remains unchanged
Zero Slack messages fired; agent execution log records 'no action required'
T02
Happy path: 48-hour reminder fires for pending departments
3 of 8 departments pending; deadline timestamp is exactly 48 hours from now
Slack reminder sent to the 3 pending department channels; submitted departments receive no message
Exactly 3 Slack messages sent; message content includes department name and deadline datetime
T03
24-hour reminder fires for remaining pending departments
2 of 8 departments still pending; deadline timestamp is exactly 24 hours from now
Slack reminder sent to the 2 remaining pending departments with escalated urgency copy
Exactly 2 Slack messages sent; log records trigger timestamp within 60 seconds of the 24-hour mark
T04
Failure: Slack API returns 429 rate limit error
3 pending departments; Slack sandbox returns HTTP 429 on first call
Agent retries after 60-second backoff; on second attempt the message is delivered; error logged
Retry executed within configured backoff window; message eventually delivered; error entry present in run log
T05
Failure: Google Sheets read returns empty submission tracker
Submission tracker tab is blank (simulating sheet misconfiguration)
Agent halts; writes 'tracker_empty' error to run log; sends alert to FullSpec monitoring channel
No reminders sent; error log entry present; monitoring alert received in test Slack channel

Budget Consolidation Agent — ingests validated form responses, maps to cost centres, pulls Xero actuals, runs variance checks, and writes output to master Google Sheet. Trigger: all submissions received or deadline passed.

ID
Scenario
Input
Expected Output
Pass Criteria
T06
Happy path: all 8 submissions valid, no variance flags
8 complete form responses with all required fields; Xero sandbox returns matching actuals
Master sheet populated with all 8 department rows; variance columns appended; no rows flagged
All 8 rows present in master sheet; variance column values calculated correctly against Xero actuals; flag column empty
T07
Happy path: 2 submissions exceed variance threshold
8 complete responses; 2 departments show submitted figures deviating more than configured threshold from Xero actuals
Master sheet populated; 2 rows marked as flagged in the variance flag column; flag summary list written to review tab
Exactly 2 rows flagged; flag column value is 'REVIEW'; review tab lists department name, variance amount, and percentage
T08
Deadline passed with 1 submission missing
7 of 8 departments submitted by deadline; 1 department has no form response
Agent fires on deadline; consolidates 7 valid submissions; missing department row written with 'NO_SUBMISSION' status
7 rows consolidated correctly; missing department row present with correct status; run log records trigger as 'deadline_passed'
T09
Failure: form response contains missing required field (cost centre blank)
One form response where the cost centre field is blank
Row rejected from master sheet consolidation; rejection written to exceptions tab with field name and department; Slack alert to finance channel
Row absent from master sheet; exceptions tab entry present; Slack alert received in test channel
T10
Failure: Xero API returns 503 service unavailable
All 8 submissions valid; Xero sandbox returns HTTP 503 on actuals pull
Consolidation proceeds without Xero data; variance columns marked 'XERO_UNAVAILABLE'; alert written to run log
Master sheet written without variance data; all variance cells read 'XERO_UNAVAILABLE'; run log error entry present
T11
Failure: out-of-range figure in submission (negative revenue value)
One form response containing a negative revenue figure
Row flagged as invalid; written to exceptions tab; not included in consolidated totals
Exceptions tab entry present with field name and submitted value; consolidated revenue total excludes the invalid row

Approval Routing Agent — generates the budget summary document, initiates the DocuSign envelope in signing order, and archives to Google Drive with Slack notification. Trigger: finance manager marks consolidated draft as cleared for approval.

ID
Scenario
Input
Expected Output
Pass Criteria
T12
Happy path: draft cleared, envelope sent to all signatories in order
Master sheet status set to 'CLEARED'; 3 signatories configured in correct order (Finance Manager, CEO, Operations Director)
DocuSign envelope created; sent to signatory 1; subsequent signatories queued in order; Slack notification sent to finance channel
DocuSign demo envelope status is 'sent'; recipient order matches configuration; Slack message received in test channel
T13
Happy path: all signatories complete; document archived to Google Drive
DocuSign webhook fires 'envelope_completed' event
Signed PDF saved to correct Google Drive folder path; master sheet status updated to 'APPROVED'; Slack completion notice sent
File present in target Drive folder; filename includes period label; master sheet status reads 'APPROVED'; Slack message received
T14
Failure: DocuSign envelope creation fails (invalid template ID)
Master sheet status set to 'CLEARED'; DocuSign demo returns 400 on envelope creation
Error written to run log; Slack alert sent to finance channel with error code; envelope not created
Run log contains error entry with DocuSign response code; Slack alert received; no envelope created in DocuSign demo account
T15
Failure: Google Drive upload fails (permission denied)
DocuSign webhook fires 'envelope_completed'; Drive API returns 403
Error written to run log; Slack alert sent with Drive path and error; signed PDF stored in fallback holding folder
Run log contains 403 error entry; Slack alert received; fallback folder contains the signed PDF
Test and QA PlanPage 2 of 4
FS-DOC-06Quality

03Phase 2 — integration and edge case tests

Integration tests verify that data passes correctly between agents and that each handoff triggers the next agent as expected. All tests remain in the sandbox environment. IDs continue from the Phase 1 sequence.

ID
Scenario
Input
Expected Output
Pass Criteria
T16
Handoff: Submission Coordinator to Budget Consolidation Agent fires on deadline
All Slack reminders sent; deadline timestamp reached; 6 of 8 departments submitted
Budget Consolidation Agent triggers automatically; processes 6 valid submissions; 2 missing departments written with NO_SUBMISSION status
Consolidation agent run log shows trigger as 'deadline_reached'; 6 rows in master sheet; 2 NO_SUBMISSION rows present
T17
Handoff: Budget Consolidation Agent to Approval Routing Agent on finance clearance
Master sheet status updated to 'CLEARED' by finance manager test account
Approval Routing Agent fires within 60 seconds; DocuSign envelope created; Slack notification sent
Agent run log shows trigger event 'status_changed:CLEARED'; DocuSign demo envelope present; Slack message received within 90 seconds
T18
End-to-end data integrity: form submission values match master sheet output
Synthetic form response with known values for all cost centre fields across 8 departments
Master sheet row values match form response values exactly for all numeric fields; no rounding or truncation
Field-by-field comparison of form response JSON and master sheet cell values confirms zero discrepancy for all 8 departments
T19
Xero actuals mapped to correct cost centres in master sheet
Xero sandbox returns actuals for 5 cost centres; master sheet has 8 cost centre rows
5 rows populated with Xero actuals; 3 rows without a Xero match have actuals column marked 'NO_MATCH'
Correct actuals values in 5 rows; NO_MATCH label in remaining 3; no cross-contamination between cost centre rows
T20
DocuSign signing sequence enforced: second signer not notified until first completes
Envelope created with 3 signatories in order; first signatory signs in DocuSign demo
Second signatory receives email notification; third signatory remains in 'waiting' state
DocuSign demo recipient list shows signatory 2 as 'sent' and signatory 3 as 'waiting' after signatory 1 completion event
T21
Slack notifications reach correct channels for each event type
Full workflow run from submission reminder through to archive completion in sandbox
Reminder messages go to department test channels; finance alerts go to finance test channel; completion notice goes to finance test channel
Each Slack message received in the correct test channel; no cross-channel messages; message content includes correct dynamic fields
T22
Google Drive archive creates correct folder path including period label
Envelope completed event with period label 'Q1-2025' in metadata
Signed PDF saved to /BudgetApprovals/Q1-2025/ in test Drive; filename is BudgetApproval_Q1-2025_signed.pdf
File present at exact path; filename matches convention; no files created in root or incorrect subfolders

Edge case tests cover boundary and failure conditions that fall outside the standard happy path. These cases confirm that the workflow degrades gracefully and never loses data silently.

ID
Scenario
Input
Expected Output
Pass Criteria
E01
Duplicate form submission from the same department
Department A submits the Google Form twice within 10 minutes with different figures
Second submission detected as duplicate; first submission retained; duplicate written to exceptions tab with timestamp and department name
Master sheet contains only the first submission for Department A; exceptions tab has duplicate entry; no double-counting in totals
E02
Form submission with all numeric fields blank
Department submits form with department name populated but all cost and revenue fields empty
Submission rejected at validation; written to exceptions tab as 'all_fields_empty'; Slack alert sent to finance channel
Exceptions tab entry present; master sheet has no row for that department; Slack alert received
E03
Xero API rate limit hit during actuals pull (HTTP 429)
Budget Consolidation Agent calls Xero API; Xero sandbox returns 429 after the third request
Agent pauses for configured retry interval (90 seconds); retries remaining requests; completes actuals pull on second attempt
All actuals eventually populated in master sheet; run log shows 429 error and retry timestamp; no permanent data gap
E04
DocuSign primary signer does not respond within the configured reminder window
Envelope sent to signatory 1; no action taken for 48 hours (simulated in demo by test account non-response)
DocuSign sends automated reminder to signatory 1 per envelope reminder settings; Slack alert sent to finance channel after 48 hours
DocuSign demo shows reminder sent event; Slack alert received in finance test channel with signer name and elapsed time
E05
Submission received after the deadline has passed
Budget Consolidation Agent has already fired at deadline; a late form response arrives 2 hours afterwards
Late submission detected; not merged into the already-consolidated master sheet; written to exceptions tab as 'late_submission' with timestamp
Master sheet unchanged after late submission; exceptions tab contains late submission entry; Slack alert sent to finance channel
E06
Finance manager marks draft as CLEARED before all exceptions are resolved
Master sheet status set to 'CLEARED' while exceptions tab still contains unresolved rows
Approval Routing Agent blocked; warning written to run log; Slack alert sent to finance channel listing unresolved exception count
DocuSign envelope not created; Slack alert received with count of unresolved exceptions; master sheet status reverted to 'PENDING_REVIEW'
Test and QA PlanPage 3 of 4
FS-DOC-06Quality

04Phase 3 — end-to-end production test

Important before running Phase 3: Use an internal test email address for all form submissions and DocuSign signatories. Do not use external stakeholder emails. The DocuSign envelope generated during this test must be voided immediately after the run is complete. The test Google Drive folder must be cleared of test files before the first live budget cycle opens. If the Xero OAuth token has not been validated against the live tenancy, halt and resolve this before proceeding. Raising a live DocuSign envelope against real signatories during testing is not acceptable.

Phase 3 runs one complete cycle from the scheduled trigger through to a signed document archived in Google Drive, using live production credentials and real tool connections. The Finance Manager participates in the final review and approval step. Every step is traced and logged; the FullSpec team records the outcome in the confirmation log before handover is finalised.

ID
Scenario
Input
Expected Output
Pass Criteria
T23
Scheduled trigger fires and form links sent to test department contacts
Planning calendar date set to today; 3 internal test contacts assigned as department heads in master sheet
Google Form personalised links sent to all 3 test contacts via the automation; links pre-populated with department name and prior period actuals from live Xero
All 3 test contacts receive their form links; Xero actuals visible in pre-populated form fields; run log records trigger event with correct timestamp
T24
Slack reminders fire correctly against live workspace
2 of 3 test departments have not submitted; deadline set to 48 hours from now in master sheet
Slack messages posted in live finance channel tagging the 2 pending test department contacts
Slack messages visible in live channel; correct department names referenced; no message sent for the submitted department
T25
Full consolidation run against live Xero data with variance flags
All 3 test form submissions complete; one submission intentionally set above variance threshold
Master sheet populated with 3 rows; variance columns populated from live Xero actuals; 1 row flagged for finance review
All 3 rows present in live master sheet; variance values match live Xero actuals within rounding tolerance; flagged row visible in review tab
T26
Approval Routing Agent sends live DocuSign test envelope and archives on completion
Finance manager marks master sheet status as 'CLEARED' using their live account; 2 internal test signatories configured in signing order
DocuSign envelope created and sent to test signatory 1; on completion by both test signatories, signed PDF archived to live Google Drive test folder; Slack completion notice posted
DocuSign account shows completed envelope; signed PDF present in correct live Drive folder; Slack completion notice received; master sheet status reads 'APPROVED'; DocuSign envelope voided immediately after confirmation
T27
Error log verification and process owner review and approval
Full Phase 3 run log available in the automation platform; Finance Manager reviews the complete run trace
Run log contains a timestamped entry for every workflow step from trigger to archive; no unhandled errors; Finance Manager confirms the run matches expected behaviour and records approval in the FullSpec confirmation log
Run log reviewed and confirmed complete by FullSpec team; Finance Manager confirms accuracy of all steps verbally and in writing via the FullSpec confirmation log entry; Phase 3 declared passed; handover authorised
T27 is the process owner's formal sign-off point. The Finance Manager's confirmation is recorded in the FullSpec project confirmation log, not a separate signature block. Once T27 is marked passed, the FullSpec team closes the QA phase and the automation is cleared for live use in the first real budget cycle. Any outstanding items from Phases 1 or 2 that were conditionally waived must be resolved before T27 can be attempted. Contact the FullSpec team at support@gofullspec.com with any queries.
Test and QA PlanPage 4 of 4

More documents for this process

Every document generated for Budget Planning & Approval.

Launch Plan
Operations · Owner
View
ROI and Business Case
Finance · Owner
View
Process Runbook / SOP
Operations · Owner
View
Developer Handover Pack
Technical · Developer
View
Integration and API Spec
Technical · Developer
View