Back to Supplier Onboarding

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

Supplier Onboarding Automation

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

This document defines the complete testing and quality assurance programme for the Supplier Onboarding automation. It covers three sequential phases: unit testing of each individual agent, integration and edge-case testing across agent handoffs, and a final end-to-end production run. The FullSpec team executes Phases 1 and 2 entirely in sandbox environments. The process owner joins the FullSpec team for Phase 3 to verify production behaviour and record formal approval. No phase begins until all test cases in the previous phase have achieved a passing result.

01Testing approach

Testing is structured across three sequential phases: Unit, Integration, and End-to-end. No phase begins until every test case in the preceding phase has passed without exception. This gate approach ensures that defects are caught at the lowest possible level before they propagate into more complex scenarios.

1
Phase 1: Unit Testing
Each agent tested in isolation before any handoff is exercised
Scope
Individual agent logic: Intake and Chaser Agent, Document Review Agent, Supplier Activation Agent — each tested independently with mocked inputs and outputs
Environment
Sandbox only. All tool connections use sandbox or test-mode credentials. No production data or live records are touched.
Credential rule
Sandbox Gmail account, Google Forms test instance, DocuSign sandbox envelope, Xero demo company, HubSpot sandbox portal, Slack test workspace. Production credentials must not be present in the environment.
Pass condition
All test cases T01 through T15 return the expected output and meet the defined pass criteria with zero critical failures
Who runs it
FullSpec team only
2
Phase 2: Integration and Edge Case Testing
Agent handoffs and exception paths tested with realistic data
Scope
Agent-to-agent handoff sequences, conditional branch logic (complete vs incomplete documents), and edge cases including duplicate suppliers, missing fields, tool unavailability, and human timeout scenarios
Environment
Sandbox only. Handoff payloads are real workflow outputs from Phase 1 agents piped into downstream agents in the sandbox environment.
Credential rule
Same sandbox credential set as Phase 1. No production credentials introduced at this stage.
Pass condition
All integration test cases T16 through T24 and all edge cases E01 through E06 pass without data loss, unhandled errors, or incorrect routing
Who runs it
FullSpec team only
3
Phase 3: End-to-End Production Test
Full live run verified by FullSpec and the process owner together
Scope
Complete onboarding flow executed in the production environment using a real but internal test supplier record, traced from trigger through to Xero and HubSpot record creation and Slack confirmation
Environment
Production. All live credentials active. Test records are voided and removed after each run.
Credential rule
Production credentials used. FullSpec holds credentials only for the duration of the test run. Access is revoked or transferred to the process owner upon sign-off.
Pass condition
All end-to-end cases T25 through T28 pass, error logs are clean, and the process owner formally approves (recorded as test case T28)
Who runs it
FullSpec team, with the process owner present and participating from T27 onward
Test and QA PlanPage 1 of 4
FS-DOC-06Quality

02Phase 1 — unit test cases

All Phase 1 tests must be executed using sandbox credentials only. Gmail sandbox account, DocuSign sandbox envelopes, Xero demo company, HubSpot sandbox portal, and the Slack test workspace must all be configured before any test case is run. Do not connect or reference production credentials at this stage. Any accidental production write must be treated as a critical incident and escalated to support@gofullspec.com immediately.

Intake and Chaser Agent — unit tests (T01 to T05)

ID
Scenario
Input
Expected Output
Pass Criteria
T01
Happy path: intake form sent on trigger
New supplier approval record detected in connected source (name: Test Supplier Pty, email: test@internal.local)
Gmail sends personalised intake form link to test@internal.local within 60 seconds of trigger
Email delivered to sandbox inbox; subject line contains supplier name; form link is valid and resolves correctly
T02
First reminder fires at 48-hour mark
Intake form not submitted 48 hours after T01 email sent (simulated by advancing workflow clock)
Automated follow-up email sent to test@internal.local with reminder copy and same form link
Second email delivered; timestamp delta from first email is 48 hours plus or minus 5 minutes; no duplicate first email sent
T03
Second reminder fires at 96-hour mark
Intake form still not submitted 96 hours after T01 (48 hours after T02)
Second automated follow-up email sent to test@internal.local
Third email delivered; copy differs from T02 reminder; escalation flag set in workflow state
T04
No supplier email address provided
Supplier approval record missing the contact email field
Agent halts, logs error 'missing_email', and routes alert to operations Slack channel in sandbox
No email attempted; error logged with supplier record ID; Slack alert received in test workspace within 60 seconds
T05
Gmail send failure (sandbox SMTP error simulated)
Valid supplier record; Gmail sandbox configured to return a 500 error on send
Agent retries send twice with 30-second back-off; after second failure, logs 'gmail_send_failed' and routes Slack alert
Exactly two retry attempts recorded in logs; Slack alert sent; no silent failure; workflow does not advance to reminder sequence

Document Review Agent — unit tests (T06 to T11)

ID
Scenario
Input
Expected Output
Pass Criteria
T06
Happy path: all required documents present and valid
Intake form submission payload with three attached documents: insurance certificate (expiry 12 months out), signed NDA, and tax ID form
Completeness report: all items checked green; DocuSign trading agreement envelope generated and sent; Slack notification to finance lead with full summary
Report contains all three checklist items marked present; DocuSign envelope status is 'sent'; Slack message received in test workspace with correct supplier name
T07
One document missing (insurance certificate absent)
Intake form submission with NDA and tax form only; insurance certificate field empty
Completeness report flags insurance certificate as missing; Slack alert to finance lead lists gap; DocuSign envelope not sent
Report shows one red flag for insurance certificate; Slack alert copy references the specific missing document; no DocuSign envelope created
T08
Expired document detected
Intake form submission with insurance certificate showing expiry date 30 days in the past
Completeness report flags certificate as expired; Slack alert to finance lead includes expiry date; DocuSign envelope withheld
Report shows 'expired' status with the extracted expiry date; Slack message includes the date; supplier not advanced to activation
T09
DocuSign envelope sent and acknowledged
All documents valid; DocuSign sandbox configured to accept the envelope
Envelope created with correct supplier name and trading agreement template; sent successfully; envelope ID logged
DocuSign sandbox shows envelope in 'sent' status; envelope ID stored in workflow state; no duplicate envelope created
T10
DocuSign API returns authentication error
Valid documents; DocuSign sandbox credential deliberately invalidated
Agent logs 'docusign_auth_failed'; Slack alert sent to operations channel; workflow paused pending credential fix
Error logged with status code and timestamp; Slack alert received; no silent continuation; workflow state set to 'paused'
T11
Intake form submission arrives with no document attachments
Form submission payload with all text fields populated but zero file attachments
Agent flags 'no_documents_received'; routes structured Slack alert to finance lead listing all expected documents as missing
Slack alert lists all checklist items as absent; no completeness report generated as complete; no DocuSign envelope sent

Supplier Activation Agent — unit tests (T12 to T15)

ID
Scenario
Input
Expected Output
Pass Criteria
T12
Happy path: Xero supplier record created on compliance approval
Finance lead approval signal received from Slack sandbox; intake form data payload with supplier name, ABN, bank account, and payment terms
New contact created in Xero demo company with all fields populated; Xero contact ID returned and logged
Xero demo company shows new supplier contact; all mapped fields (name, ABN, BSB, account number, payment terms) populated correctly; no duplicate record
T13
HubSpot contact created and tagged as active supplier
Xero contact ID from T12; supplier details payload
New contact created in HubSpot sandbox with business name, email, phone, and lifecycle stage set to 'Supplier - Active'
HubSpot sandbox shows new contact; tag 'active-supplier' present; Xero ID stored in custom field; no duplicate contact
T14
Slack activation confirmation posted to operations channel
Xero contact ID and HubSpot contact ID from T12 and T13; supplier name and activation date
Slack message posted to sandbox operations channel confirming supplier name, Xero ID, and activation date
Slack test workspace operations channel receives message; supplier name, Xero ID, and formatted date all present; message posted within 30 seconds of HubSpot write
T15
Xero API rate limit or write failure
Valid approval payload; Xero demo company API configured to return 429 Too Many Requests
Agent retries Xero write with exponential back-off (30 s, 60 s, 120 s); after three failures logs 'xero_write_failed' and sends Slack alert; HubSpot write not attempted
Three retry attempts logged with correct intervals; 'xero_write_failed' error in logs with timestamp; Slack alert received; HubSpot and Slack activation steps not executed
Test and QA PlanPage 2 of 4
FS-DOC-06Quality

03Phase 2 — integration and edge case tests

Integration tests verify that agents hand off correctly to one another and that the full conditional branching behaves as designed. All tests remain in sandbox. Test case IDs continue from Phase 1.

ID
Scenario
Input
Expected Output
Pass Criteria
T16
Intake and Chaser Agent handoff to Document Review Agent on form submission
Supplier submits completed intake form in sandbox Google Forms instance; form response webhook fires
Document Review Agent receives the form payload within 30 seconds; begins document completeness check automatically
Document Review Agent logs receipt of payload; intake form field values mapped correctly to review checklist; no manual trigger required
T17
Document Review Agent handoff to Supplier Activation Agent on full approval
Finance lead posts ':white_check_mark: approved' in designated Slack sandbox thread in response to T06-style notification
Supplier Activation Agent fires within 60 seconds of Slack approval message; Xero and HubSpot writes begin
Activation agent log shows trigger source as Slack approval event; Xero and HubSpot writes complete without error; Slack confirmation posted
T18
Exception path: incomplete documents routed to finance lead for manual review, then resubmission
Document Review Agent raises T07-type gap flag; finance lead posts corrections in Slack thread; supplier resubmits corrected document
Resubmission triggers a fresh document review cycle; updated completeness report generated; if now complete, flow advances to approval
Second review cycle completes without restarting the whole workflow; corrected document reflected in updated report; no orphaned workflow state
T19
DocuSign envelope signed; signature event triggers downstream steps
DocuSign sandbox webhook fires 'envelope_completed' event after simulated supplier signature
Workflow receives webhook; advances to compliance review stage; Document Review Agent notes agreement as signed
Workflow state updated to 'agreement_signed'; no polling loop left open; downstream Slack notification to finance lead includes signed status
T20
Compliance approval arrives after reminder timeout has already fired
Finance lead approval Slack message arrives 73 hours after initial notification (past a 72-hour reminder threshold)
Workflow accepts the late approval; no duplicate activation triggered; reminder sequence halted cleanly
Single activation run initiated; reminder sequence cancelled in workflow state; no duplicate Xero or HubSpot records created
T21
Full happy-path integration run: trigger through Slack confirmation
New supplier approval detected; all documents valid; finance lead approves promptly in Slack sandbox
All three agents fire in sequence; Xero record, HubSpot contact, and Slack confirmation created within a total elapsed time of under 5 minutes
All records present in sandbox systems; elapsed time logged and under 5 minutes; no errors in any agent log; workflow state set to 'complete'
T22
Finance lead Slack approval message uses non-standard wording
Finance lead posts 'looks good, go ahead' instead of the configured trigger phrase
Workflow does not advance; a Slack reply from the bot prompts the finance lead to use the approved response format
Activation agent not triggered; bot reply received within 30 seconds; workflow state remains 'awaiting_approval'; no data written to Xero or HubSpot
T23
Slack API unavailable during finance lead notification step
Document Review Agent attempts to post Slack notification; Slack API returns 503
Agent retries twice with 60-second intervals; after failure logs 'slack_notify_failed'; emails finance lead directly via Gmail as fallback
Two retry attempts logged; fallback Gmail sent to finance lead sandbox address; workflow state set to 'slack_fallback_active'; manual resolution note added
T24
HubSpot deduplication check before contact creation
Supplier email address already exists as a contact in HubSpot sandbox from a prior test run
Activation agent detects existing contact, updates rather than creates; logs 'hubspot_contact_updated'; Slack confirmation notes update not creation
No duplicate HubSpot contact; existing record updated with latest supplier data; Slack confirmation message includes 'record updated' language

Edge case tests — independent table

ID
Edge Case
Simulated Condition
Expected Behaviour
Pass Criteria
E01
Duplicate supplier detected before intake form is sent
New supplier approval record shares the same ABN as an existing Xero demo company contact
Intake and Chaser Agent halts before sending form; routes Slack alert to operations channel with duplicate flag and existing record ID
No intake email sent; Slack alert received with correct existing Xero contact ID; workflow state set to 'duplicate_detected'; human review required
E02
Intake form submitted with required text fields blank
Supplier submits the Google Form with business name and ABN fields left empty
Document Review Agent flags validation errors for missing required fields; Slack alert sent to operations; supplier notified via Gmail to resubmit
Validation error log lists blank field names; supplier resubmission email sent to sandbox address; no document review attempted until resubmission
E03
Google Forms webhook fails to fire on submission
Supplier submits form; webhook delivery to automation platform times out
Platform's webhook retry mechanism fires up to three times over 10 minutes; after final failure logs 'forms_webhook_failed' and sends Slack alert to FullSpec operations channel
Three retry attempts with timestamps in logs; Slack alert received; workflow does not silently stall; manual reprocessing note added to alert
E04
DocuSign sandbox unavailable during agreement send
Document Review Agent attempts to send DocuSign envelope; DocuSign returns 502 Bad Gateway
Agent pauses envelope send; retries after 5 minutes; after two failed retries logs 'docusign_unavailable' and alerts operations channel; workflow state set to 'envelope_pending'
Retry count and timestamps logged; operations Slack alert received; envelope not marked as sent; workflow resumes automatically when DocuSign availability is restored or on manual trigger
E05
Finance lead does not respond to Slack approval request within 72 hours
Slack notification sent at T=0; no approval or rejection response from finance lead by T=72 hours
Workflow sends a reminder Slack message to finance lead and copies the operations channel at T=72 hours; workflow remains in 'awaiting_approval' state; no activation proceeds
Reminder message sent at correct timestamp; operations channel copied; no Xero or HubSpot writes attempted; workflow state unchanged; second reminder logic documented and ready
E06
Supplier submits the intake form twice (double submission)
Supplier clicks the form submit button twice in quick succession; two identical webhook payloads arrive within 10 seconds
Automation platform's idempotency check detects duplicate form response ID; second payload discarded; single document review cycle initiated
Only one document review run logged; no duplicate DocuSign envelope; no duplicate Slack notification; second payload discard event recorded in logs
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 controlled by your team for the supplier contact field (for example, onboarding-test@[YourCompany.com]). Do not use a real external supplier address. After each production test run, void the test supplier record in Xero, delete or archive the HubSpot contact, and remove the DocuSign envelope from the live account. The FullSpec team will confirm each clean-up step before the next case is run. Running Phase 3 without completing clean-up between cases risks creating live supplier records that cannot be easily distinguished from real ones.

Phase 3 test cases use the live production environment and real credentials. The process owner should be present for T27 and T28. All cases continue the sequential ID from Phase 2.

ID
Scenario
Input
Expected Output
Pass Criteria
T25
Full production happy-path run: trigger to Slack activation confirmation
New internal test supplier approval added to the live connected trigger source (Google Form, CRM, or spreadsheet row as configured); all documents valid; finance lead approves via production Slack
All three agents execute in production: intake form sent via live Gmail, documents reviewed, DocuSign envelope sent and signed, Xero supplier record created, HubSpot contact created, Slack confirmation posted to live operations channel
All records verified in live Xero, HubSpot, and Slack within 5 minutes of finance lead approval; no errors in production logs; all field values match the test supplier input data exactly; elapsed total time from trigger to Slack confirmation logged
T26
Production exception path: missing document flagged and routed correctly
Test supplier submits intake form with one document deliberately omitted (insurance certificate); finance lead reviews gap in Slack
Document Review Agent posts gap alert to production Slack; finance lead receives structured summary listing the missing item; workflow paused at 'awaiting_resubmission'; no Xero or HubSpot record created
Production Slack finance lead channel receives alert; missing document listed correctly; no premature record creation in Xero or HubSpot; workflow resumes correctly when corrected document provided and finance lead re-approves
T27
Production error log verification
Review of automation platform logs following T25 and T26 production runs
Logs show clean execution for T25 (no errors, all steps timestamped); T26 logs show expected 'document_incomplete' event and correct pause state; no unhandled exceptions or silent failures in either run
FullSpec team and process owner jointly review production logs; all expected events present with correct timestamps; no unexpected error codes; log retention confirmed active; process owner confirms readability and completeness of log output
T28
Process owner review and formal approval
Process owner reviews T25 and T26 outcomes, production records (subsequently voided), log outputs from T27, and the overall automation behaviour against the agreed KPIs (under 15 minutes human time per supplier, under 24 hours to active supplier, 98% record completeness)
Process owner confirms the automation meets the agreed acceptance criteria and records formal approval in the FullSpec confirmation step
Process owner formally approves. Approval recorded in the FullSpec platform confirmation step. No separate sign-off document required. FullSpec team marks Phase 3 complete and transitions the process to live operational status.
Once T28 approval is recorded, the FullSpec team will remove all sandbox credential references from the production configuration, confirm that all test records have been voided, and hand over the SOP and runbook. For any post-launch issues, contact support@gofullspec.com.
Test and QA PlanPage 4 of 4

More documents for this process

Every document generated for Supplier Onboarding.

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