Back to Social & Digital Promotion

Test and QA Plan

How the build is validated before go-live: three test phases, edge cases, pass criteria, and formal sign-off.

4 pagesPDF · Quality
FS-DOC-06Quality

Test and QA Plan

Social & Digital Promotion Automation

Document code
FS-DOC-06
Process
Social & Digital Promotion
Agents under test
Channel Formatting Agent, Scheduling Agent, Reporting Agent
Tools under test
Canva, Buffer, Google Analytics, FullSpec Automation, Slack
Post volume
~60 posts/month (~372 automation runs/month)
Date
[Today's Date]
Audience
Developer / QA Engineer

01Testing approach

Testing is split into three sequential phases. Each phase must reach its defined pass condition before the next phase begins. Unit tests validate individual agent logic in isolation. Integration and edge case tests validate agent-to-agent handoffs and abnormal inputs. End-to-end production tests validate the full pipeline against live credentials and real post volumes before go-live sign-off.

1
Phase 1: Unit Testing
Estimated time: 2 to 3 days
Attribute
Detail
Scope
Each agent tested independently with mocked inputs; no live API calls required
Environment
Staging workspace in FullSpec Automation; Buffer sandbox; Canva test account; GA4 read-only test property
Pass condition
All unit test cases return expected outputs with zero unhandled errors; field mappings verified against spec
2
Phase 2: Integration and Edge Case Testing
Estimated time: 2 to 3 days
Attribute
Detail
Scope
Agent-to-agent handoffs, tool API responses, and abnormal or boundary inputs across the full chain
Environment
Staging environment with live API credentials for Buffer and Google Analytics; Slack test channel; Canva connected account
Pass condition
All integration test cases pass; all edge cases either resolve gracefully or route correctly to the manual fallback step with a Slack alert
3
Phase 3: End-to-End Production Test
Estimated time: 1 day
Attribute
Detail
Scope
Full pipeline executed against production credentials using a controlled batch of real posts; report delivery confirmed
Environment
Production FullSpec Automation workspace; live Buffer account; live GA4 property; live Slack channel
Pass condition
Five consecutive posts formatted, scheduled, published, and included in a compiled weekly report with zero manual intervention; Slack delivery confirmed
Test and QA PlanPage 1 of 4
FS-DOC-06Quality

02Phase 1 unit test cases

Unit tests cover each of the three agents in isolation. Inputs are mocked JSON payloads. Pass criteria confirm field presence, value accuracy, and absence of unhandled exceptions.

Channel Formatting Agent: triggered when a post is approved. Adapts content to correct format, length, and tags per channel using Canva and FullSpec Automation.
ID
Scenario
Input
Expected Output
Pass Criteria
U-CFA-01
Standard post formatted for three channels
Approved post: 300-char body, 1 image, 3 hashtags
Three channel-ready variants: Twitter/X (280 chars, 2 tags), LinkedIn (300 chars, 3 tags), Instagram (caption + alt text)
All three variants present; character limits respected; tags preserved
U-CFA-02
Post body exceeds channel limit
Approved post: 500-char body
Truncated variant for Twitter/X at 277 chars with trailing ellipsis; full body retained for LinkedIn
Truncation applied only where limit exceeded; no data loss on other channels
U-CFA-03
Post with no hashtags supplied
Approved post: 200-char body, 0 hashtags
Channel variants generated without tags; no null reference error thrown
Output contains empty tags array, not null; no error logged
U-CFA-04
Image attachment missing
Approved post: text only, image field null
Text-only variants generated for all channels; Canva resize step skipped gracefully
Agent completes without error; image_url field set to null in output payload
U-CFA-05
Unsupported channel in post metadata
Approved post with channel value 'TikTok'
Agent logs warning, skips unsupported channel, processes remaining channels
Warning written to FullSpec Automation log; supported channel variants still produced
Scheduling Agent: triggered when channel-ready posts exist. Schedules each post at the optimal time per channel via Buffer and confirms publishing.
ID
Scenario
Input
Expected Output
Pass Criteria
U-SA-01
Three channel-ready posts scheduled in single batch
Three formatted post objects with channel and content fields
Three Buffer queue entries created; scheduled timestamps returned
Buffer API returns 201 for each; scheduled_at timestamps present in response
U-SA-02
Buffer API returns 429 rate limit response
Single post object; Buffer returns HTTP 429
Agent retries after 60-second back-off; schedules on second attempt
Retry logged; post scheduled on retry; no duplicate entry created
U-SA-03
Optimal time slot already occupied in Buffer queue
Post for LinkedIn; next Buffer slot occupied
Agent selects next available slot within a 2-hour window
Scheduled time differs from occupied slot; within 2-hour tolerance
U-SA-04
Empty post content passed to agent
Post object with empty body string
Agent rejects payload, logs validation error, does not call Buffer API
No Buffer API call made; error written to FullSpec Automation log with post ID
U-SA-05
Publishing confirmation received
Buffer webhook: post_published event with post ID
Agent marks post as confirmed in FullSpec Automation run log
Run log status updated to published; timestamp recorded
Reporting Agent: triggered when a reporting window closes. Pulls metrics from every channel via Google Analytics and compiles one weekly performance report.
ID
Scenario
Input
Expected Output
Pass Criteria
U-RA-01
Standard weekly report compiled from GA4 data
Reporting window: 7-day date range; GA4 property ID present
Report object containing impressions, clicks, engagement rate, and top post per channel
All four metric fields populated; date range matches input window
U-RA-02
GA4 returns zero sessions for reporting window
Reporting window with no traffic recorded
Report generated with zero-value fields; no divide-by-zero error
Report object present; numeric fields set to 0; agent does not throw exception
U-RA-03
GA4 API authentication failure
Invalid or expired OAuth token supplied
Agent logs auth error, halts report build, sends Slack alert to team channel
Slack alert delivered within 2 minutes; error message includes GA4 property ID and timestamp
U-RA-04
Report delivered to Slack channel
Compiled report object; Slack webhook URL configured
Formatted Slack message posted to team channel with summary metrics and PDF link
Slack API returns 200; message visible in channel; PDF attachment accessible
U-RA-05
Reporting window triggers outside business hours
Cron trigger fires at 23:00 on Sunday
Report compiled and queued; Slack message delivered at next configured send time (Monday 08:00)
Report compiled immediately; Slack delivery deferred to configured time; no data lost
Test and QA PlanPage 2 of 4
FS-DOC-06Quality

03Phase 2 integration and edge case tests

Integration tests validate data handoffs between agents and between agents and external APIs. Edge case tests confirm the pipeline handles abnormal inputs, API failures, and boundary conditions without silent data loss or unhandled exceptions.

Integration tests require live API credentials for Buffer, Google Analytics (read-only), and Slack. Canva must be connected to the staging account. FullSpec Automation staging workspace must mirror the production workflow configuration.
ID
Scenario
Input
Expected Output
Pass Criteria
I-01
Channel Formatting Agent output consumed by Scheduling Agent
Approved post triggering full CFA to SA handoff
Scheduling Agent receives all three channel variants and creates Buffer queue entries for each
Three Buffer entries created; post IDs logged in FullSpec Automation run; no schema mismatch error
I-02
Scheduling Agent publish event triggers Reporting Agent metric collection
Buffer post_published webhook for all scheduled posts
Reporting Agent begins metric pull from GA4 for the relevant date window after all posts confirmed published
GA4 API called with correct date range; report compilation begins within 5 minutes of final publish confirmation
I-03
Full pipeline: approval to Slack report delivery
Single approved post in content calendar
Post formatted, scheduled, published, metrics collected, report compiled, Slack message delivered
All six automated flow steps complete; Slack message received in test channel; total elapsed time under 10 minutes excluding scheduled buffer window
I-04
Buffer API credentials revoked mid-run
Post batch in progress; Buffer token invalidated
Scheduling Agent catches 401 response, halts batch, sends Slack alert with affected post IDs
No partial scheduling; Slack alert lists all unscheduled post IDs; run marked as failed in FullSpec Automation log
I-05
Slack webhook URL misconfigured
Report compiled; Slack webhook returns 404
Reporting Agent logs delivery failure; retries once after 5 minutes; escalates to FullSpec Automation error queue
Retry attempted once; error queue entry created with full report payload; no data lost
ID
Edge Case
Input
Expected Behaviour
Pass Criteria
E-01
Duplicate post approval event fired twice
Same post ID triggers CFA twice within 60 seconds
Idempotency check prevents second run; single set of channel variants produced
FullSpec Automation deduplication key blocks second execution; log records skipped event
E-02
Post with 0-byte image file attached
Approved post; image field points to 0-byte file
CFA detects invalid image, substitutes text-only variant, logs warning
No Canva API error propagated; text-only variants produced; warning in run log
E-03
60-post monthly batch processed simultaneously
60 approved posts fired in a single trigger batch
All 60 posts formatted and queued for scheduling; no posts dropped; rate limits respected via back-off
60 Buffer queue entries created; no HTTP 429 errors propagated; run completes within 15 minutes
E-04
GA4 property returns partial data (2 of 3 channels)
Reporting window; one channel returns empty dataset
Report compiled with available data; missing channel noted as 'No data' in report; Slack message still delivered
Report contains all three channel sections; missing channel section labelled explicitly; no agent crash
E-05
Reporting window overlaps with previous window
Report trigger fires 3 hours early due to timezone offset
Agent detects overlap, adjusts date range to exclude already-reported period, compiles non-duplicate report
Date range in GA4 query does not overlap with previous report; no duplicate metrics in output
E-06
Manual fix and reschedule path executed by coordinator
Publish OK decision node returns no; coordinator edits post
Fixed post re-enters Scheduling Agent; original failed post marked as superseded in run log
Rescheduled post appears as new Buffer entry; original entry status set to cancelled; no orphan records
Test and QA PlanPage 3 of 4
FS-DOC-06Quality

04Phase 3 end-to-end production test

Phase 3 tests are executed against the live production environment using a controlled batch of real posts. No mocks are used. Pass criteria require zero manual intervention across all six automated flow steps. All five consecutive test posts must complete the full pipeline successfully before go-live sign-off is granted.

Phase 3 must only begin after Phase 1 and Phase 2 have both achieved their pass conditions. A written confirmation from the developer is required before executing production tests.
ID
Scenario
Steps Exercised
Expected Outcome
Pass Criteria
E2E-01
Single approved post traverses full pipeline
CFA, SA, publish confirmation, GA4 metric pull, Reporting Agent, Slack delivery
Post formatted for all channels, scheduled in Buffer, published, metrics collected, included in weekly report, Slack message received
All six automated flow nodes complete with green status; zero human touchpoints; elapsed time within tolerance
E2E-02
Batch of five approved posts processed in sequence
All agents; Buffer queue; GA4; Slack
Five posts formatted, five Buffer entries created and confirmed published, all five included in one compiled report
Five Buffer confirmations logged; report contains metrics for all five posts; single Slack message delivered
E2E-03
Reporting window closes and triggers agent automatically
Reporting Agent cron trigger; GA4 API; Slack webhook
Report compiled automatically at scheduled time without manual trigger; delivered to live Slack channel
Cron fires within 2 minutes of scheduled time; report delivered to production Slack channel; no manual intervention
E2E-04
Publish failure detected and routed to manual step
SA publish confirmation; decision node; coordinator notification
Failed publish detected, Slack alert sent to coordinator with post ID and channel, coordinator resolves, rescheduled post publishes successfully
Alert received within 5 minutes of failure; rescheduled post confirmed published; run log shows correct failure and recovery states
E2E-05
Weekly report accuracy validated against GA4 dashboard
Reporting Agent output; GA4 UI
Metrics in compiled report match GA4 dashboard figures for the same date range within a 1 percent tolerance
Impressions, clicks, and engagement rate figures match GA4 UI within 1 percent; date range identical

05Go-live pass criteria

All requirements in the table below must be met before go-live is approved. Requirements with status 'To confirm' must be verified and signed off by the process owner before the automation handles live production traffic.

Requirement
Test IDs
Status
All Phase 1 unit tests pass with zero unhandled errors
U-CFA-01 to 05, U-SA-01 to 05, U-RA-01 to 05
To confirm
All Phase 2 integration tests pass
I-01 to I-05
To confirm
All Phase 2 edge case tests pass or have documented accepted risk
E-01 to E-06
To confirm
All Phase 3 end-to-end tests pass with zero manual intervention (except E2E-04 manual path)
E2E-01 to E2E-05
To confirm
Weekly report metrics match GA4 dashboard within 1 percent tolerance
E2E-05
To confirm
Slack alerts confirmed delivered in production channel for failure scenarios
E2E-04, I-04, I-05, U-RA-03
To confirm
Buffer API credentials and scopes confirmed active in production workspace
I-01, I-02, U-SA-01 to 05
To confirm
Google Analytics OAuth token confirmed valid with read-only scope on production GA4 property
U-RA-01, I-03, E2E-03, E2E-05
To confirm
Idempotency check confirmed active; duplicate post events blocked in production
E-01
To confirm
Manual fallback path (fix and reschedule) tested and coordinator trained
E-06, E2E-04
To confirm
FullSpec Automation run logs retained for minimum 30 days
All phases
To confirm
Post volume of 60 posts/month confirmed sustainable within Buffer and FullSpec Automation tier limits
E-03
To confirm
Any requirement not confirmed by go-live date must be documented as an open risk with an agreed remediation date. Go-live must not proceed with more than two open amber items.

06Sign-off

Both signatories confirm that all Phase 1, Phase 2, and Phase 3 test cases have been executed, results have been reviewed, all go-live pass criteria have been met or formally accepted, and the Social & Digital Promotion automation is approved for live production operation.

Role
Name
Date
Signature
Developer
Process owner
Test and QA PlanPage 4 of 4

More documents for this process

Every document generated for Social & Digital Promotion.

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