Back to Employee 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

Employee Onboarding Automation

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

This document defines the complete quality assurance process for the three-agent Employee Onboarding automation covering the Document Agent, Provisioning Agent, and Onboarding Coordinator Agent. It is written for the FullSpec engineering team responsible for building and verifying the automation. Testing is structured across three sequential phases: unit testing of individual agents, integration and edge-case testing of agent handoffs and failure scenarios, and a final end-to-end production run conducted with the process owner present. No phase begins until the previous phase fully passes. All test case IDs run in a single sequence across the document so failures can be traced to a specific case without ambiguity.

01Testing approach

Testing runs in three sequential phases. Phase 1 exercises each agent in isolation using sandbox credentials and synthetic hire records. Phase 2 validates handoffs between agents and stress-tests edge cases that are likely to occur in production. Phase 3 runs a full end-to-end flow against live credentials using a designated test hire record. No phase begins until every test case in the preceding phase carries a confirmed pass status. The FullSpec team runs Phases 1 and 2 independently. The process owner joins Phase 3 as the approving stakeholder.

1
Phase 1: Unit Testing
Individual agent behaviour in isolation
Scope
Each agent tested independently: Document Agent, Provisioning Agent, Onboarding Coordinator Agent. No cross-agent handoffs tested in this phase.
Environment
Sandbox only. BambooHR sandbox account, DocuSign developer sandbox, Google Workspace test domain, Slack sandbox workspace, Notion test workspace.
Credential rule
Only sandbox or developer-tier credentials permitted. No production API keys, OAuth tokens, or admin accounts may be loaded at this stage.
Pass condition
All cases T01 through T15 return the expected output with no unhandled exceptions. Any failure blocks progression to Phase 2.
Who runs it
FullSpec team only. Process owner not required.
2
Phase 2: Integration and Edge-Case Testing
Agent handoffs and failure scenario coverage
Scope
Agent-to-agent handoff sequences; duplicate record handling; missing or malformed field inputs; tool unavailability simulations; human timeout scenarios for the HR template-approval gate.
Environment
Sandbox for all tool calls. Simulated network-timeout and API error responses injected at the orchestration layer where real sandbox errors cannot be triggered reliably.
Credential rule
Sandbox credentials only. Error-injection done via mock responses in the automation platform configuration, not against live endpoints.
Pass condition
All cases T16 through T22 and E01 through E07 resolve to the defined pass state with correct error-handling behaviour and no data written to a production system.
Who runs it
FullSpec team only. Process owner not required.
3
Phase 3: End-to-End Production Test
Full flow on live credentials with process owner sign-off
Scope
Two complete hire flows executed against production credentials: one standard hire (role template pre-approved) and one hire where the template-approval gate is exercised. All tool outputs verified in live systems.
Environment
Production. Live BambooHR account, live DocuSign account, live Google Workspace admin, live Slack workspace, live Notion workspace. Test records flagged and voided after confirmation.
Credential rule
Production credentials loaded into the automation platform's secret store. Access limited to FullSpec build engineer and the designated IT Admin contact. Credentials rotated after go-live if required.
Pass condition
All cases T23 through T28 pass, including the process owner approval recorded in the FullSpec confirmation log. No orphaned records remain in any live system after cleanup.
Who runs it
FullSpec team executes the automation runs. Process owner (HR Manager) reviews outputs and records approval in the FullSpec confirmation step (T28).
Test and QA PlanPage 1 of 4
FS-DOC-06Quality

02Phase 1 — unit test cases

Sandbox credentials only. Before running any case in this phase, confirm that no production API keys are present in the environment configuration. BambooHR must point to the sandbox subdomain, DocuSign must use the developer sandbox base URL (account-d.docusign.com), and Google Workspace calls must target the test domain. Any case that accidentally writes to a production system must be reported immediately to support@gofullspec.com and the run halted.

Document Agent — triggers on BambooHR webhook (status: Offer Accepted), populates DocuSign template, sends Gmail information pack, and monitors for document return. Estimated build complexity: Complex.

ID
Scenario
Input
Expected Output
Pass Criteria
T01
Happy path: known role template
BambooHR webhook payload with status=Offer Accepted, role=Marketing Manager, salary=$75,000, start_date=+14 days, manager_id present
DocuSign envelope created with correct name, role, salary, and start date; envelope sent to hire's email; Gmail information pack dispatched within 60 seconds of envelope send
DocuSign API returns envelopeId; Gmail send API returns 200; BambooHR status field updated to 'Documents Sent'
T02
Happy path: document return detected
DocuSign webhook event: envelope status=completed for envelopeId from T01
BambooHR record updated with completion flag; no further reminder emails triggered
BambooHR PATCH returns 200; completion_flag=true in hire record; reminder scheduler cancelled
T03
Reminder loop: document not returned within window
DocuSign envelope status=sent after 72-hour wait window (simulated via timestamp override)
Reminder email sent to hire via Gmail; reminder logged in BambooHR note field; second reminder scheduled at 72-hour interval
Gmail send returns 200; BambooHR note entry contains timestamp and reminder count=1
T04
Failure: no matching DocuSign template for role
BambooHR webhook payload with role=Temporary Contractor (no template mapped)
Agent halts DocuSign step; Slack alert sent to HR Manager with hire name and role; BambooHR status set to 'Requires Manual Template'
Slack message received in HR alert channel; BambooHR status field reads 'Requires Manual Template'; no envelope created in DocuSign
T05
Failure: DocuSign API returns 401 Unauthorized
Valid BambooHR payload; DocuSign access token expired or revoked
Agent retries once after 30-second pause; on second failure, Slack alert fires to HR alert channel; workflow execution paused
Retry log entry present; Slack alert received; no duplicate envelope created; execution status=paused in platform logs
T06
Failure: Gmail send fails after DocuSign success
DocuSign envelope created successfully; Gmail API returns 500 on information pack send
Agent retries Gmail send up to two times with 60-second intervals; on final failure, Slack alert sent with hire name and step detail
Retry count=2 in execution log; Slack alert contains hire name and 'Information Pack Failed' label; BambooHR note records the failure

Provisioning Agent — triggers 5 business days before start date (or immediately if start date is fewer than 5 days away), creates Google Workspace account, invites hire to Slack, and logs confirmation in BambooHR. Estimated build complexity: Complex.

ID
Scenario
Input
Expected Output
Pass Criteria
T07
Happy path: account creation 5 days before start
BambooHR hire record with start_date=today+5 business days, department=Engineering, role=Backend Developer
Google Workspace account created with email format firstname.lastname@[domain]; added to Engineering Google Group; Slack invite sent; BambooHR provisioning_log entry written
Google Admin SDK returns new user object with correct OU; Slack users.invite returns ok=true; BambooHR note contains account email and timestamp
T08
Happy path: immediate provisioning (start date under 5 days)
BambooHR hire record with start_date=today+2 business days
Provisioning Agent fires immediately on Document Agent completion flag; Google Workspace and Slack accounts created within 5 minutes
Execution timestamp within 5 minutes of completion_flag write; all account creation responses return success codes
T09
Slack channel mapping: role-specific channels added
Hire record with department=Marketing, role=Content Lead; Slack channel map config contains Marketing-General, Marketing-Content
Hire invited to Marketing-General and Marketing-Content in addition to company-wide channels
conversations.invite called for each mapped channel; Slack API returns ok=true for each; BambooHR log lists all channel names
T10
Failure: Google Workspace email conflict (name already exists)
Hire name=John Smith; john.smith@[domain] already exists in Google Workspace
Agent falls back to john.smith2@[domain] naming convention; Slack alert sent to IT Admin noting the conflict and the assigned email; BambooHR updated with resolved email
Google Admin SDK conflict error caught; fallback account created successfully; IT Admin Slack DM received; BambooHR hire record contains resolved email address
T11
Failure: Google Admin SDK 403 Insufficient Permission
Service account token present but domain-wide delegation not enabled
Agent logs error; Slack alert to IT Admin channel with error detail and remediation instruction; provisioning step status=failed in execution log
No Google account created; Slack alert received; execution log entry contains error code 403 and step name
T12
Failure: Slack API rate limit hit
Multiple hires being provisioned simultaneously; Slack API returns 429 Too Many Requests
Agent implements exponential back-off starting at 10 seconds; retries up to three times; on third failure, Slack provisioning queued and IT Admin alerted
Retry log shows back-off intervals; on success within retries, ok=true confirmed; on exhaustion, IT Admin alert received and queue entry created

Onboarding Coordinator Agent — triggers on Provisioning Agent success log, creates Notion onboarding page, sends Slack briefing to hiring manager, and dispatches day-one welcome email via Gmail. Estimated build complexity: Moderate.

ID
Scenario
Input
Expected Output
Pass Criteria
T13
Happy path: Notion page created and shared
Provisioning Agent success log entry; hire department=Sales, role=Account Executive; Notion template ID for Sales mapped in config
Notion page duplicated from Sales template; page title updated to hire's name; hire's new Google Workspace email and manager email added as page members
Notion API returns new page_id; page title matches hire name; share confirmation shows both hire and manager emails with editor access
T14
Happy path: manager Slack briefing sent
Manager Slack user ID resolved from BambooHR manager_id field
Structured Slack DM sent to manager containing hire name, role, start date, Notion page link, and manager task checklist
Slack chat.postMessage returns ok=true; message body contains all five required fields; no message sent to public channel
T15
Happy path: day-one welcome email timed to start date
Start date=5 days from now; hire Gmail account now active
Welcome email scheduled and delivered to hire's new company inbox 3 days before start date; email contains login instructions, Notion page link, and outstanding document reminder if applicable
Gmail send timestamp is start_date minus 3 calendar days; email received in test inbox; subject line matches configured template; Notion link is valid and resolves
Test and QA PlanPage 2 of 4
FS-DOC-06Quality

03Phase 2 — integration and edge case tests

Phase 2 validates that agents hand off correctly to one another and that the automation behaves safely when inputs are malformed, tools are unavailable, or a human approval step times out. Integration test IDs continue the T sequence from Phase 1. Edge-case IDs use the separate E sequence.

Integration tests: agent handoffs

ID
Scenario
Input
Expected Output
Pass Criteria
T16
Document Agent to Provisioning Agent handoff: completion flag triggers provisioning on schedule
Document Agent writes completion_flag=true to BambooHR; start_date=today+6 business days
Provisioning Agent scheduler registers trigger for today+1 business day (5 days before start); no immediate provisioning fires
Scheduler log shows correct trigger timestamp; Provisioning Agent execution does not fire until the scheduled time
T17
Document Agent to Provisioning Agent handoff: immediate provisioning when start date is close
completion_flag=true written; start_date=today+3 business days
Provisioning Agent fires immediately rather than waiting; accounts created within 5 minutes of flag write
Execution log shows Provisioning Agent start within 5 minutes of Document Agent completion; all account creation calls succeed
T18
Provisioning Agent to Onboarding Coordinator Agent handoff
Provisioning Agent writes provisioning_log entry with account_email, slack_member_id, and status=success
Onboarding Coordinator Agent reads provisioning_log; uses account_email in Notion share call and in welcome email; uses slack_member_id to resolve manager for Slack DM
Notion page share contains account_email not the personal email used at offer stage; welcome email delivered to account_email; no data from provisioning_log is null
T19
HR template-approval gate: Document Agent waits for manual approval
BambooHR webhook fires for a role type with no confirmed DocuSign template; HR must approve a new template before dispatch
Document Agent pauses; Slack alert sent to HR Manager with approval link; agent remains in waiting state for up to 48 hours before escalating
Execution status=waiting_approval in platform log; Slack alert received; no DocuSign envelope created; 48-hour escalation timer confirmed in scheduler
T20
HR template-approval gate: approval received, flow resumes
HR Manager approves template via Slack approval action or configured approval endpoint
Document Agent resumes; DocuSign envelope created using newly approved template; remainder of flow continues as per T01
Execution log shows resumed status; DocuSign envelope created with approved template ID; no steps skipped after resumption
T21
Provisioning Agent fails: Onboarding Coordinator Agent does not fire
Provisioning Agent logs status=failed due to Google Admin SDK 403 error
Onboarding Coordinator Agent does not execute; Slack alert sent to IT Admin and HR Manager noting that coordinator steps are blocked pending provisioning resolution
No Notion page created; no manager briefing sent; no welcome email dispatched; Slack alert received by both IT Admin and HR Manager channels
T22
Full three-agent sequence in sandbox: clean run
BambooHR webhook with all required fields present; role has confirmed DocuSign template; start_date=today+7 business days
Document Agent completes; Provisioning Agent scheduled and executes on day 2 (5 days before start); Onboarding Coordinator Agent executes after provisioning; all outputs present in sandbox tools
All three agents log success status; no Slack alerts fired to error channels; BambooHR hire record contains completion_flag, provisioning_log, and onboarding_page_url

Edge-case tests

ID
Scenario
Input
Expected Output
Pass Criteria
E01
Duplicate webhook: BambooHR fires the Offer Accepted event twice for the same hire
Two identical webhook payloads for hire_id=12345 within 30 seconds
Idempotency check detects duplicate hire_id; second execution discarded; one DocuSign envelope created; one Gmail send dispatched
Execution log shows one active run and one discarded duplicate; DocuSign shows single envelope for hire_id=12345
E02
Missing required field: start_date absent from BambooHR record
BambooHR webhook payload with start_date=null
Document Agent halts before any tool call; Slack alert to HR Manager listing the missing field; BambooHR status set to 'Incomplete Record'
No DocuSign envelope created; no Gmail sent; Slack alert received within 2 minutes; BambooHR status field updated correctly
E03
Missing required field: manager_id absent from BambooHR record
BambooHR webhook payload with manager_id=null
Document Agent and Provisioning Agent complete normally; Onboarding Coordinator Agent skips Slack manager briefing; Slack alert to HR Manager noting missing manager_id; welcome email still dispatched
Notion page created without manager share; manager Slack DM not sent; HR Manager Slack alert received; welcome email delivered to hire
E04
Same-week start date: hire accepted with start_date=tomorrow
BambooHR webhook with start_date=today+1 business day
Document Agent fires immediately; Provisioning Agent fires immediately without scheduling delay; Onboarding Coordinator Agent fires within 10 minutes of provisioning success; welcome email sent to personal email because company email may not yet be active
All three agents complete within 15 minutes of webhook receipt; welcome email sent to personal email (from BambooHR personal_email field); BambooHR log reflects expedited run
E05
BambooHR unavailable: webhook received but BambooHR API returns 503 on subsequent calls
Webhook received; BambooHR API returns 503 on any PATCH or GET call during the run
Agent retries BambooHR calls up to three times with exponential back-off; on exhaustion, Slack alert to HR Manager; execution paused; webhook payload preserved for replay
Retry log shows three attempts; Slack alert received; execution status=paused; webhook payload stored in dead-letter queue or equivalent platform mechanism
E06
DocuSign envelope expired: hire did not sign within the configured expiry window (14 days)
DocuSign webhook event: envelope status=voided due to expiry
Document Agent detects voided status; Slack alert to HR Manager with hire name and expiry detail; BambooHR status updated to 'Envelope Expired'; no automatic resend without HR confirmation
Slack alert received; BambooHR status field reads 'Envelope Expired'; no new DocuSign envelope created automatically
E07
HR approval gate timeout: no approval received within 48 hours for new role template
Document Agent in waiting_approval state for 48 hours with no HR response
Escalation Slack alert sent to HR Manager and Ops Lead after 48 hours; execution remains paused; a second escalation fires at 72 hours; workflow does not auto-cancel
First escalation Slack message timestamp is exactly 48 hours after initial alert; second escalation fires at 72 hours; execution log status remains paused throughout
Test and QA PlanPage 3 of 4
FS-DOC-06Quality

04Phase 3 — end-to-end production test

Important before running Phase 3: use a designated internal test email address (for example onboarding-test@[yourdomain]) as the hire email address throughout. Set the hire name to a clearly recognisable test value (for example 'FS Test Hire') so records are easy to identify in each tool. After the FullSpec team confirms all Phase 3 cases have passed, void the DocuSign test envelope, delete the Google Workspace test account, remove the test user from Slack, archive the test Notion page, and delete or archive the BambooHR test hire record. Do not leave test records in any live system. If a production record cannot be cleanly voided or deleted, contact support@gofullspec.com before proceeding.
ID
Scenario
Input
Expected Output
Pass Criteria
T23
Full production run: standard hire with pre-approved role template
BambooHR hire record created with name='FS Test Hire', role=Marketing Manager (pre-approved DocuSign template), start_date=today+8 business days, manager_id=valid production manager
DocuSign envelope created and delivered to test email; Gmail information pack received at test email; provisioning scheduled for today+3 business days (5 days before start); BambooHR status updated to 'Documents Sent'
DocuSign API confirms envelopeId in production account; Gmail delivery confirmed in sent items; BambooHR audit log shows status change with timestamp; no errors in platform execution log
T24
Production provisioning: Google Workspace account and Slack created
Provisioning Agent trigger fires on scheduled date from T23
Google Workspace account created at production domain with correct OU; Slack invite delivered; hire added to company-wide channels and role-mapped channels; BambooHR provisioning_log entry written
Google Admin console shows new user account; Slack workspace shows new member; BambooHR note contains account email, Slack member ID, and provisioning timestamp
T25
Production coordination: Notion page created and manager briefed
Onboarding Coordinator Agent fires after T24 provisioning_log entry
Notion page duplicated from correct department template, titled 'FS Test Hire Onboarding', shared with test hire email and manager; manager receives Slack DM with structured briefing containing all five required fields
Notion page visible in workspace with correct title and share permissions; Slack DM received by manager account with hire name, role, start date, Notion link, and task checklist all present
T26
Production welcome email: delivered to new company inbox
Start date is 3 calendar days away (relative to scheduled send); hire's Google Workspace inbox is active
Welcome email delivered to FS Test Hire's Google Workspace inbox containing login instructions, Notion page link, and outstanding document status
Email received in production Google Workspace inbox; send timestamp matches start_date minus 3 days within a 5-minute tolerance; Notion link resolves correctly
T27
Error log verification: clean run produces no error entries
Review all platform execution logs for the T23 through T26 run
No error-level log entries; all steps show status=success; no unhandled exceptions; no Slack alerts fired to error channels during the run
Platform execution log reviewed by FullSpec engineer and confirmed clean; error channel in Slack shows no messages generated by the test run
T28
Process owner review and approval: HR Manager confirms Phase 3 pass
HR Manager (process owner) reviews outputs from T23 through T27: DocuSign envelope, Gmail sends, Google Workspace account, Slack membership, Notion page, manager briefing, welcome email, and execution logs
HR Manager confirms all outputs are accurate, correctly personalised, and delivered to the right recipients. Approval recorded in the FullSpec confirmation log with timestamp and reviewer name. Test records voided and cleaned up across all production systems.
Process owner approval recorded in FullSpec confirmation log. All test records removed from production systems. Phase 3 declared complete. Automation cleared for go-live.
Once T28 is recorded, the FullSpec team will update the project status to Go-Live Ready and issue the final SOP and monitoring runbook to your team. For any questions about test cases, credential setup, or cleanup procedures, contact support@gofullspec.com.
Test and QA PlanPage 4 of 4

More documents for this process

Every document generated for Employee 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