FS-DOC-06Quality
Test and QA Plan
Proposal & SOW Creation
Process
Proposal & SOW Creation
Build option
Standard (3-4 weeks, $4,200 build cost)
Volume
~25 proposals/month
01Testing approach
Testing is split into three sequential phases. Each phase must reach its defined pass condition before the next phase begins. Failures in any phase block progression. All test results are recorded against the test case IDs defined in sections 02 to 04.
1Phase 1: Unit Testing
Isolated agent and tool validation in a sandbox environment
Scope
Each agent (Scope Extraction, Estimate & Proposal, Send & Track) tested in isolation with mocked inputs and outputs
Environment
FullSpec Automation sandbox; HubSpot sandbox CRM; Google Docs test workspace; PandaDoc sandbox account
Data
Synthetic scoping notes and dummy rate-card values; no live client data
Pass condition
All unit test cases in section 02 return expected output with zero critical failures; minor formatting issues logged as low-severity
2Phase 2: Integration and Edge Case Testing
Cross-agent data flow and failure-path validation
Scope
End-to-end data flow across all three agents; edge cases including missing fields, out-of-range pricing, API errors, and duplicate triggers
Environment
FullSpec Automation staging; connected to HubSpot sandbox, Google Docs test workspace, and PandaDoc sandbox
Data
Semi-realistic synthetic proposals including boundary values and deliberately malformed inputs
Pass condition
All integration test cases in section 03 pass; all edge cases either handle gracefully with correct error routing or surface a logged alert; no silent data loss
3Phase 3: End-to-End Production Test
Full pipeline validation against live credentials with real proposal data
Scope
Two complete runs of the full pipeline from trigger to signed proposal using real credentials; human review step included
Environment
Production FullSpec Automation workspace; live HubSpot CRM; live Google Docs; live PandaDoc account
Data
Two real (or approved representative) scoping records from [YourCompany.com]; rate card configured to production values
Pass condition
Both runs complete without manual intervention outside the designated pricing review step; proposal and SOW match expected structure; PandaDoc envelope delivered and trackable; all section 04 cases pass
Test and QA PlanPage 1 of 4
FS-DOC-06Quality
02Phase 1 unit test cases
The following tables cover each agent independently. Test IDs prefixed U (unit) followed by the agent initial and sequence number.
Scope Extraction Agent: reads HubSpot scoping notes and outputs a structured scope object containing modules, assumptions, and constraints.
ID
Scenario
Input
Expected Output
Pass Criteria
U-SE-01
Standard scoping notes
HubSpot deal note with 3 modules, 2 assumptions, 1 constraint
Structured scope JSON: modules array length 3, assumptions array length 2, constraints array length 1
Output JSON validates against scope schema; all fields populated; no null values in required keys
U-SE-02
Minimal notes (one module only)
HubSpot note with single module description, no explicit assumptions
Structured scope JSON: modules array length 1, assumptions array empty or defaulted, constraints array empty
Schema valid; agent does not error on sparse input; defaults applied where noted
U-SE-03
Notes contain non-English characters and special symbols
HubSpot note with accented characters and ampersands
Structured scope JSON with characters correctly preserved in string values
No encoding errors; output strings match input literals
U-SE-04
Empty note field
HubSpot deal note field is blank
Error event raised; pipeline halted; alert dispatched to monitoring channel
No downstream agent triggered; error logged with deal ID and timestamp
U-SE-05
HubSpot API returns 401 Unauthorized
Mocked 401 response from HubSpot notes endpoint
Authentication error event raised; retry not attempted; alert raised
Error type correctly classified as auth failure; no credentials exposed in log output
Estimate & Proposal Agent: consumes structured scope, applies rate card, and drafts proposal and SOW into Google Docs templates.
ID
Scenario
Input
Expected Output
Pass Criteria
U-EP-01
Standard scope with 3 modules at mid-range hours
Structured scope JSON, rate card $55/hr, 3 modules at 10/20/15 hrs each
Google Doc draft with total estimate $2,475; SOW containing 3 scope sections
Doc created in correct template folder; pricing formula matches (45 hrs x $55); no placeholder tokens remaining
U-EP-02
Single-module minimal scope
Structured scope JSON, 1 module at 8 hrs
Google Doc draft with estimate $440; SOW with 1 scope section
Doc created; pricing correct; template variables resolved
U-EP-03
Rate card value missing from config
Structured scope JSON; rate card config key absent
Error event raised; pipeline halted; alert dispatched
No partially-priced doc created; error message references missing config key
U-EP-04
Google Docs API returns 503
Mocked 503 response on doc creation call
Retry attempted up to 3 times with exponential backoff; error event raised after final failure
Retry count recorded in log; alert raised after 3rd failure; no duplicate docs
U-EP-05
Scope contains module with zero estimated hours
Structured scope JSON with one module hours = 0
Module included in doc with $0 line item; warning flag set in output metadata
Doc created; zero-hour line visible; warning flag present in output JSON
Send & Track Agent: receives approved proposal, creates PandaDoc envelope, sends to client, and begins status tracking.
ID
Scenario
Input
Expected Output
Pass Criteria
U-ST-01
Standard approved proposal
Google Doc ID, recipient email, recipient name
PandaDoc envelope created and sent; envelope ID stored in HubSpot deal record
Envelope status = sent within 60 seconds; HubSpot deal field pandadoc_envelope_id populated
U-ST-02
Recipient email malformed
Google Doc ID, malformed email string (missing @)
Validation error raised before PandaDoc API call; pipeline halted
No envelope created; error logged with field reference; alert raised
U-ST-03
PandaDoc API rate limit hit (429)
Valid inputs; mocked 429 response
Retry with backoff; success on retry if mock resolves; error event if retries exhausted
Retry logic fires; log entry per attempt; no duplicate envelopes
U-ST-04
Proposal already sent (duplicate trigger)
Same deal ID triggered twice within 5 minutes
Second run detected as duplicate; skipped; deduplication log entry created
Exactly one envelope per deal ID; duplicate event logged with timestamp
U-ST-05
Status webhook received: document opened
PandaDoc webhook payload with event type document_viewed
HubSpot deal activity updated with opened timestamp; no re-send triggered
HubSpot activity log contains viewed event; deal stage unchanged
Test and QA PlanPage 2 of 4
FS-DOC-06Quality
03Phase 2 integration and edge case tests
Integration tests validate the handoff between agents and the end-to-end data flow across the connected tools. Edge case tests validate system behaviour under abnormal or boundary conditions.
Integration tests: cross-agent handoffs and tool connectivity across FullSpec Automation, HubSpot, Google Docs, and PandaDoc in staging.
ID
Scenario
Input
Expected Output
Pass Criteria
I-01
Full pipeline: trigger to draft
HubSpot deal set to scoping call complete with valid notes
Scope extracted, estimate calculated, Google Docs draft created; pipeline paused at human review step
All three artifacts present: scope JSON in run log, Google Doc draft in target folder, pricing review notification sent to Studio Owner
I-02
Human review: pricing approved
Studio Owner marks pricing as approved in review interface
Send & Track Agent triggered; PandaDoc envelope created and sent
Envelope created with correct recipient; HubSpot deal updated; end-to-end elapsed time under 5 minutes excluding human review wait
I-03
Human review: pricing rejected, resubmitted
Studio Owner marks pricing as rejected; adjusts line item; reapproves
Revised Google Doc updated; Send & Track Agent triggered on reapproval
Original doc version retained; new version created with revision marker; single envelope sent on reapproval
I-04
HubSpot field mapping: all required deal fields present in downstream docs
HubSpot deal with company name, contact name, deal value, scoping notes
Company name and contact name appear correctly in proposal header and SOW signatory block
Zero placeholder tokens in final Google Doc; field values match HubSpot source
I-05
Concurrent triggers: two deals complete at the same time
Two separate HubSpot deals set to scoping call complete within 30 seconds of each other
Two independent pipeline runs execute without data bleed; each deal produces its own artifacts
Each run references only its own deal ID; no field values cross between runs; both pipelines complete successfully
Edge case tests: boundary values, missing data, API failures, and unexpected input formats.
ID
Scenario
Input
Expected Output
Pass Criteria
E-01
Scoping notes exceed 5,000 characters
HubSpot note field with 6,200-character string
Scope Extraction Agent truncates or chunks input; structured scope produced without truncating module names
Scope JSON valid; no runtime error; truncation logged if applied; no module name cut mid-word
E-02
Estimate total exceeds pricing threshold ($50,000)
Scope with modules totalling 950 hrs at $55/hr = $52,250
Pipeline paused at pricing review regardless of auto-approve setting; Studio Owner notified with high-value flag
Human review mandatory; high-value flag present in notification; no auto-send path taken
E-03
Google Docs template file deleted or moved
Agent attempts to copy template; file not found (404)
Error event raised; pipeline halted; alert sent with template file ID reference
No empty doc created; error references correct file ID; pipeline does not continue
E-04
PandaDoc recipient has no email in HubSpot contact
Deal contact record with blank email field
Send & Track Agent raises validation error before envelope creation
No envelope created; error logged with contact ID; alert raised to Account Lead
E-05
FullSpec Automation webhook delivery fails (no acknowledgement from downstream)
Outbound webhook to FullSpec returns timeout
Retry up to 3 times; if all fail, error logged and manual intervention alert raised
Retry attempts recorded; no silent failure; alert contains enough context to resume manually
E-06
Proposal sent but PandaDoc status never updates (stale)
Envelope created; no webhook received within 48 hours
Staleness check fires; HubSpot activity updated with follow-up prompt to Account Lead
Follow-up task created in HubSpot at 48-hour mark; no duplicate envelopes sent
Test and QA PlanPage 3 of 4
FS-DOC-06Quality
04Phase 3 end-to-end production test
Phase 3 runs two complete pipeline executions against live credentials. Both runs must pass before go-live sign-off is requested. The human pricing review step is included as designed. Test observers record elapsed time at each agent boundary.
ID
Scenario
Input
Steps Observed
Expected Output
Pass Criteria
P3-01
Run 1: standard mid-complexity proposal
Live HubSpot deal with 3-module scoping notes; rate card at production values; designated test recipient email
Trigger fires on deal stage change; Scope Extraction Agent runs; Estimate & Proposal Agent runs; draft appears in Google Drive; Studio Owner review notification sent; Owner approves; Send & Track Agent fires; PandaDoc envelope delivered
Google Doc draft created within 90 seconds of trigger; pricing review notification received within 2 minutes; PandaDoc envelope delivered within 60 seconds of approval
All timing SLAs met; zero unhandled errors; proposal and SOW contain no placeholder tokens; envelope trackable in PandaDoc dashboard; HubSpot deal fields updated
P3-02
Run 2: high-value proposal triggering mandatory review flag
Live HubSpot deal with 4-module scoping notes; estimated total intentionally set above $50,000 threshold
Full pipeline as P3-01; pricing review notification includes high-value flag; Owner manually adjusts one line item before approving
High-value flag present in review notification; revised doc version created on adjustment; envelope sent only after final approval
Mandatory review enforced; revision creates new doc version; single envelope sent; HubSpot records revised pricing; no auto-send bypass
P3-03
Signature received: deal stage update
PandaDoc envelope from P3-01 signed by test recipient
PandaDoc webhook fires document_completed event; FullSpec Automation receives webhook; HubSpot deal stage updated
HubSpot deal stage changes to Proposal Signed; activity log records signed timestamp
Deal stage updated within 2 minutes of signature; activity log entry present; no duplicate stage transitions
P3-04
Pipeline observability: run log and audit trail
Logs from P3-01 and P3-02 runs
Review FullSpec Automation run logs for both executions
Each run has a complete log: trigger timestamp, each agent start and end time, input and output summaries, any warnings
Logs present and parseable; no sensitive credential values in log output; both run IDs traceable end to end
05Go-live pass criteria
All requirements below must be met before the automation is cleared for production go-live. Each requirement is linked to the test IDs that validate it. Items marked To Confirm require explicit sign-off from the named role before clearance.
Requirement
Test IDs
Owner
Status
All Phase 1 unit test cases pass with zero critical failures
U-SE-01 to U-SE-05, U-EP-01 to U-EP-05, U-ST-01 to U-ST-05
Developer
To Confirm
All Phase 2 integration test cases pass with no data bleed between concurrent runs
I-01 to I-05
Developer
To Confirm
All Phase 2 edge cases handled gracefully with no silent failures
E-01 to E-06
Developer
To Confirm
Both Phase 3 production runs complete within SLA timings
P3-01, P3-02
Developer + Process Owner
To Confirm
PandaDoc signature webhook correctly updates HubSpot deal stage
P3-03
Developer
To Confirm
Run logs are complete, auditable, and free of exposed credentials
P3-04
Developer
To Confirm
High-value proposal threshold ($50,000) enforces mandatory human review with no auto-send bypass
E-02, P3-02
Process Owner
To Confirm
Deduplication logic prevents more than one envelope per deal ID
U-ST-04
Developer
To Confirm
All production credentials rotated from sandbox values and stored in secrets manager
P3-01, P3-02
Developer
To Confirm
Process Owner has reviewed and approved the end-to-end flow in production
P3-01, P3-02, P3-03
Process Owner
To Confirm
If any go-live criterion is not met at the scheduled launch date, the go-live is postponed. A remediation window of up to 3 business days is permitted before escalation to the project lead.
06Sign-off
Both signatories below confirm that all test phases have been executed, all go-live pass criteria in section 05 are satisfied, and the Proposal & SOW Creation automation is cleared for production operation.
Test and QA PlanPage 4 of 4