Back to Probation Period Management

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

Probation Period Management

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

This document defines every test case the FullSpec team runs before the Probation Period Management automation is permitted to touch live employee records. It is structured across three sequential phases: unit tests against individual agents in a sandbox environment, integration and edge-case tests covering agent handoffs and failure conditions, and a final end-to-end production run conducted under HR Manager observation. No phase begins until every test case in the previous phase carries a pass status. The process owner joins Phase 3 to verify the production run and record approval.

01Testing approach

Testing runs in three phases in sequence. No phase begins until the previous phase fully passes. Each phase has a defined environment, a credential rule, a clear pass condition, and an assigned runner. The FullSpec team runs Phases 1 and 2 independently. The process owner joins the FullSpec team for Phase 3.

1
Phase 1: Unit Tests
Each agent tested in isolation
Scope
Each of the three agents tested independently: Probation Schedule Agent, Feedback Chase Agent, Outcome and Documentation Agent.
Environment
Sandbox only. BambooHR sandbox account, Notion test workspace, Gmail test alias, Slack sandbox workspace, DocuSign sandbox environment.
Credential rule
No production credentials may be loaded or active during Phase 1. All API keys and OAuth tokens must point to sandbox instances.
Pass condition
All test cases T01 through T12 return the expected output with no errors. Any failure blocks progression to Phase 2.
Who runs it
FullSpec team only. Process owner is not required for this phase.
2
Phase 2: Integration and Edge Case Tests
Agent handoffs and failure scenarios
Scope
End-to-end data flow across agent boundaries, plus edge cases covering duplicates, missing fields, unavailable tools, and human timeout scenarios.
Environment
Sandbox only. All agent-to-agent handoffs tested using the same sandbox credentials as Phase 1. No production data introduced.
Credential rule
Sandbox credentials remain in force. Production OAuth tokens must not be substituted at any point during Phase 2 testing.
Pass condition
All integration test cases T13 through T20 and all edge cases E01 through E06 pass. No unhandled exceptions. All failure branches reach the correct fallback behaviour.
Who runs it
FullSpec team only. Process owner is not required for this phase.
3
Phase 3: End-to-End Production Test
Full production run with live credentials
Scope
A complete production run from BambooHR trigger through to signed DocuSign letter and BambooHR write-back, using a real internal test employee record.
Environment
Production. Live BambooHR, Notion, Google Workspace, Slack, and DocuSign accounts. Test record must be clearly marked as a test hire and voided after completion.
Credential rule
Production credentials active. All test communications must route to an internal test email address. No external employee receives any document during this phase.
Pass condition
All production test cases T21 through T24 pass, including the final process owner review case T24. Error logs are clean with no unhandled exceptions.
Who runs it
FullSpec team executes. Process owner (HR Manager) observes and confirms approval at T24. Sign-off is recorded in the FullSpec confirmation system.
Test and QA PlanPage 1 of 4
FS-DOC-06Quality

02Phase 1 — unit test cases

Sandbox credentials only. Before running any test in this phase, confirm that all API keys, OAuth tokens, and webhook URLs point to sandbox or test instances of BambooHR, Notion, Gmail, Slack, and DocuSign. No production credential may be present in the environment configuration during Phase 1.

Probation Schedule Agent — watches BambooHR for new employee records, calculates milestone dates, and writes the Notion tracker entry. Estimated build time: 8 hours. Complexity: Moderate.

ID
Scenario
Input
Expected Output
Pass Criteria
T01
Happy path: new employee record with valid start date
BambooHR sandbox record: employee_id=TEST001, start_date=2024-06-03, probation_weeks=12
Notion tracker row created with milestone dates: 4-week (2024-07-01), 8-week (2024-07-29), end-of-probation (2024-08-26). All fields populated.
Notion row exists within 60 seconds of trigger. All three milestone date fields match expected values exactly.
T02
Start date changes after record creation
BambooHR sandbox record TEST001 start_date updated from 2024-06-03 to 2024-06-10
Notion tracker row for TEST001 updated with recalculated milestone dates: 4-week (2024-07-08), 8-week (2024-08-05), end-of-probation (2024-09-02).
Notion row reflects new dates within 60 seconds. No duplicate row created.
T03
Employee record missing probation end date field
BambooHR sandbox record: employee_id=TEST002, start_date=2024-06-03, probation_end_date=null
Agent logs an error to the automation platform error log. No Notion row created. Alert posted to the FullSpec monitoring channel.
Error entry present in log with field name identified. No partial Notion row created. No silent failure.
T04
BambooHR webhook payload malformed (missing employee_id)
Webhook payload with start_date present but employee_id field absent
Agent discards the payload, logs a structured error including the raw payload excerpt, and does not attempt Notion write.
Error log entry present. Notion write count remains zero. Automation does not crash or enter an infinite retry loop.

Feedback Chase Agent — sends milestone feedback requests via Gmail and posts Slack reminders if no response is received within 48 hours. Estimated build time: 10 hours. Complexity: Moderate.

ID
Scenario
Input
Expected Output
Pass Criteria
T05
Happy path: milestone date reached, feedback request sent
Notion tracker row for TEST001 with 4-week milestone date matching today (sandbox). Manager email: manager-test@sandbox.local
Gmail sends feedback request to manager-test@sandbox.local at scheduled time. Notion row updated with sent timestamp.
Email delivered to sandbox inbox within 5 minutes of milestone date trigger. Notion timestamp field populated.
T06
Manager responds within 48 hours
Feedback form submission received for TEST001 within 48-hour window
Notion tracker updated with feedback_received=true and submission timestamp. No Slack reminder triggered.
Notion field updated. Slack sandbox workspace shows zero new messages for this record. Chase timer cancelled.
T07
Manager does not respond within 48 hours — first Slack reminder
48-hour timer expires with no feedback submission for TEST001
Slack direct message sent to sandbox manager user with form link. Notion chase log updated with first_reminder timestamp.
Slack message visible in sandbox DM. Notion chase log entry present. Second reminder timer activated.
T08
Manager does not respond to first Slack reminder — second reminder and escalation
Second 48-hour window expires with no feedback for TEST001
Second Slack reminder sent to manager. Separate Slack alert posted to HR escalation channel in sandbox workspace. Notion chase log updated.
Two Slack messages in manager DM. One message in HR escalation channel. Notion log shows both timestamps.
T09
Manager Slack account not found (user not in workspace)
Feedback Chase Agent attempts to DM a manager whose Slack user ID is not resolvable
Agent logs error, falls back to sending a second Gmail reminder, and posts alert to HR escalation channel noting Slack DM failure.
Fallback Gmail sent to sandbox manager email. Error logged with Slack API response code. HR channel alert visible.

Outcome and Documentation Agent — generates the outcome letter from a Google Docs template, sends the DocuSign envelope, and writes the final status back to BambooHR. Estimated build time: 10 hours. Complexity: Complex.

ID
Scenario
Input
Expected Output
Pass Criteria
T10
Happy path: outcome logged as Pass, letter generated and signed
Notion tracker for TEST001 updated with outcome=pass by HR Manager sandbox account
Google Docs pass letter generated from correct template, populated with employee name and date. DocuSign envelope sent to manager-test@sandbox.local then employee-test@sandbox.local sequentially. BambooHR sandbox record updated with status=confirmed.
Correct template used (not extension or exit). DocuSign envelope shows sequential signing order. BambooHR field updated within 5 minutes of final signature event.
T11
Outcome logged as Extend — extension letter with conditions populated
Notion tracker for TEST001 updated with outcome=extend, extension_weeks=4, extension_conditions='Performance targets to be reviewed'
Google Docs extension letter generated with extension period and conditions merged. DocuSign envelope sent. BambooHR updated with status=extended.
Extension letter template used. Merged fields match Notion input exactly. BambooHR status field reads 'extended'.
T12
Google Docs template missing or inaccessible at run time
Outcome=pass logged but the pass letter Google Doc template has been moved or permissions revoked in sandbox
Agent logs error with template file ID and permission error detail. No DocuSign envelope created. HR escalation Slack alert posted with error summary.
No DocuSign envelope created. Error log contains file ID and API error code. Slack alert visible in HR escalation channel.
Test and QA PlanPage 2 of 4
FS-DOC-06Quality

03Phase 2 — integration and edge case tests

Integration tests verify that data passes correctly across agent boundaries: from the Probation Schedule Agent into the Feedback Chase Agent, and from the Feedback Chase Agent into the Outcome and Documentation Agent. All tests remain in the sandbox environment. IDs continue the T sequence from Phase 1.

ID
Scenario
Input
Expected Output
Pass Criteria
T13
Schedule Agent to Chase Agent handoff: milestone date triggers feedback request correctly
Notion tracker row written by Schedule Agent for TEST003 with 4-week milestone date set to today
Feedback Chase Agent detects the milestone date from the Notion row and sends the Gmail feedback request to the mapped manager without any manual intervention.
Gmail sent to correct manager within 5 minutes of milestone date. No duplicate sends. Manager field sourced from the Notion row written by Schedule Agent, not hardcoded.
T14
Chase Agent to Outcome Agent handoff: outcome logged by HR triggers letter generation
HR Manager sandbox account updates Notion tracker for TEST003 with outcome=pass
Outcome and Documentation Agent detects the Notion field change, reads employee name and outcome from the same row written by the Chase Agent, and generates the correct letter.
Letter populated with data from the Notion row. No prompts or manual field entries required. Agent detects change within 2 minutes.
T15
Full three-agent data chain for an Exit outcome
BambooHR sandbox new hire TEST004 created, milestones calculated, feedback submitted, outcome=exit logged in Notion
Schedule Agent creates row, Chase Agent sends requests and receives feedback, Outcome Agent generates exit letter, DocuSign envelope sent, BambooHR updated with status=exited.
Each agent's output is consumed correctly by the next. BambooHR final status reads 'exited'. No orphaned records in Notion or DocuSign sandbox.
T16
DocuSign completion webhook triggers BambooHR update
DocuSign sandbox envelope for TEST003 marked as completed (all parties signed)
BambooHR sandbox record for TEST003 updated with final_status and signed_letter_url within 3 minutes of DocuSign webhook receipt.
BambooHR field updated. Signed document URL stored in the correct BambooHR custom field. Notion tracker row marked closed.
T17
Two simultaneous new hires: no cross-contamination between records
BambooHR sandbox records TEST005 and TEST006 created within 60 seconds of each other with different managers
Two independent Notion tracker rows created. Feedback requests sent to the correct manager for each hire. No field values from one record appear in the other.
Notion rows contain correct employee-specific data. Gmail recipients match the correct manager per record. DocuSign envelopes, if triggered, go to correct signers.
T18
HR outcome logged before all milestone feedback is collected (out-of-order scenario)
HR Manager logs outcome=pass for TEST005 before the 8-week milestone feedback request has been sent
Outcome Agent proceeds to generate and send the letter based on the logged outcome. Pending milestone sends are cancelled or flagged. No double-send on the remaining milestone.
Letter generated and sent. Remaining milestone send cancelled in the Feedback Chase Agent queue. No second Gmail sent after outcome is logged.
T19
DocuSign signer declines to sign (manager rejects envelope)
DocuSign sandbox manager signer clicks 'Decline' on the envelope for TEST003
Automation detects the declined status via webhook, logs the event, sends a Slack alert to the HR escalation channel with the envelope ID and decliner name. No BambooHR update triggered.
Slack alert posted with correct envelope ID. BambooHR status not changed. Notion row flagged with declined_signature=true for manual follow-up.
T20
Notion API unavailable during milestone write (Schedule Agent)
Notion API returns 503 for TEST007 tracker write attempt
Agent retries up to three times with exponential backoff. If all retries fail, error is logged with employee ID and a Slack alert is sent to the HR escalation channel.
Retry behaviour confirmed in automation platform logs. After three failures, Slack alert posted. No silent data loss. Employee ID preserved in error record.

Edge case tests cover scenarios outside the normal flow: duplicate records, missing data fields, tool unavailability, and human timeout situations. These use the E-series numbering, separate from the T sequence.

ID
Scenario
Input
Expected Output
Pass Criteria
E01
Duplicate BambooHR record for the same employee (re-trigger scenario)
BambooHR sandbox fires two new-hire webhook events for the same employee_id=TEST008 within 5 minutes
Schedule Agent detects duplicate via employee_id check against existing Notion rows, suppresses the second run, and logs a deduplication event.
Only one Notion row exists for TEST008. Deduplication log entry present with both event timestamps.
E02
Manager email address missing from BambooHR employee record
New hire TEST009 created in BambooHR with manager field null or blank
Schedule Agent creates the Notion row but flags manager_email=missing. Chase Agent does not attempt Gmail send. HR escalation Slack alert posted requesting manual manager assignment.
Notion row created with missing manager flag. No Gmail sent for TEST009. Slack alert visible with employee name and record ID.
E03
Outcome letter template contains merge field mismatch (field name changed in Google Doc)
Google Docs template has {{employee_name}} renamed to {{full_name}} in sandbox; Outcome Agent attempts merge
Agent catches the merge error, logs the unresolved field name, does not send a broken letter via DocuSign, and posts a Slack alert to HR escalation with the template file ID.
No DocuSign envelope created. Error log identifies the unresolved field. Slack alert posted. Template file ID included in both log entry and alert.
E04
HR Manager never logs an outcome in Notion (probation end date passes without action)
Notion tracker row for TEST010 reaches probation end date with outcome field still blank
Automation detects the overdue outcome via a scheduled check, posts a Slack alert to the HR escalation channel flagging the lapsed review, and logs the event. No letter is generated.
Slack alert posted on or before end-of-probation date. Alert includes employee name and probation end date. Notion row flagged with outcome_overdue=true.
E05
Slack workspace is unavailable when reminder is due
Slack API returns 503 when Feedback Chase Agent attempts to post the 48-hour reminder for TEST011
Agent logs the Slack failure, falls back to sending a second Gmail reminder to the manager, and retries the Slack message once after a 15-minute delay.
Fallback Gmail sent to manager. Slack retry attempted after 15 minutes. Both events logged. HR is not left without any notification.
E06
DocuSign envelope expires before all parties sign (default expiry reached)
DocuSign sandbox envelope for TEST012 set to expire after 3 days; no signer action taken
DocuSign webhook delivers 'voided' or 'expired' status. Automation logs the event, posts a Slack alert to HR escalation with the envelope ID and expiry date. BambooHR status not updated.
Slack alert posted with correct envelope details. BambooHR not updated. Notion row flagged with envelope_expired=true for manual reissue.
Test and QA PlanPage 3 of 4
FS-DOC-06Quality

04Phase 3 — end-to-end production test

Important before running Phase 3: All communications during this phase must route to an internal test email address controlled by the FullSpec team or the process owner. No external employee, manager, or third party should receive any document, email, or DocuSign request generated during this test. The BambooHR record created for this test must be clearly labelled '[TEST RECORD - DO NOT PROCESS]' and must be voided and deleted from BambooHR and Notion immediately after T24 is confirmed as passed. The DocuSign sandbox envelope created in earlier phases must not be reused; a new sandbox envelope must be issued for Phase 3 to test the production credential path cleanly.

Phase 3 runs against live production credentials and tools. The FullSpec team executes each case in sequence while the process owner (HR Manager) observes. The final test case T24 requires the process owner to confirm their approval, which is recorded in the FullSpec confirmation system. No separate signoff block is required.

ID
Scenario
Input
Expected Output
Pass Criteria
T21
Full production run: Pass outcome, end-to-end trace from BambooHR trigger to signed letter and HRIS update
Production BambooHR test record: employee_id=PROD-TEST-001, start_date=current date, probation_weeks=12, manager mapped to internal test email. All milestone dates fall within the test window via a date override configuration.
Probation Schedule Agent creates Notion tracker row. Feedback Chase Agent sends Gmail to internal test email at milestone. HR Manager logs outcome=pass in production Notion. Outcome Agent generates pass letter from production Google Docs template, sends DocuSign envelope to internal signers, receives completion webhook, updates BambooHR with status=confirmed and signed letter URL. Notion row closes.
Each step completes without manual intervention. Data flows from BambooHR through Notion to Gmail to DocuSign to BambooHR write-back. All field values match the input record. Total elapsed time from trigger to BambooHR update logged and under 10 minutes (excluding human signing delay).
T22
Production error log verification: confirm no unhandled exceptions during T21 run
Automation platform error log reviewed immediately after T21 completes
Error log contains zero unhandled exceptions for the PROD-TEST-001 run. Any retries that occurred are logged with resolution. No silent failures.
Error log reviewed by FullSpec team and confirmed clean. Any warning-level entries are documented and assessed. No exception with severity ERROR or CRITICAL present for this run.
T23
Production Slack escalation path: verify HR channel alert fires correctly in a production workspace
Using a separate production test record PROD-TEST-002, simulate a 48-hour timeout by configuring the chase timer to fire immediately in the test configuration
Slack direct message posted to internal test manager user in production workspace. Slack alert posted to the configured HR escalation channel in production workspace. Both messages contain the correct employee name and form link.
Slack DM and channel alert both visible in production Slack. Messages contain correct record data. No messages routed to unintended channels or users.
T24
Process owner review and approval: HR Manager confirms the automation behaves as specified and approves go-live
HR Manager (process owner) has observed T21 through T23 and reviewed the FullSpec test run summary report
HR Manager confirms that the end-to-end behaviour matches the agreed process: milestone scheduling, manager chasing, letter generation, DocuSign routing, and BambooHR write-back all operate as specified. HR Manager approval is recorded in the FullSpec confirmation system.
Process owner approval recorded in FullSpec confirmation system. Go-live authorised. Test records PROD-TEST-001 and PROD-TEST-002 voided and deleted from BambooHR and Notion. Phase 3 marked complete.
After T24 is confirmed, the FullSpec team will void and remove all test records from BambooHR, Notion, and DocuSign. The automation platform will be switched to monitor live BambooHR new-hire events. Any date-override or test-mode configuration flags used during Phase 3 must be removed before the first real hire record triggers the workflow. Contact the FullSpec team at support@gofullspec.com if any test case does not pass or if the go-live date needs to be adjusted.
Test and QA PlanPage 4 of 4

More documents for this process

Every document generated for Probation Period Management.

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