Catch Issues Before Your Users Do #
Thorough form testing in FORMEPIC ensures every field works correctly, every validation rule triggers appropriately, and every piece of conditional logic behaves as intended. By systematically testing fields, validation, calculations, and logic paths, you eliminate frustrating user experiences caused by broken forms. Testing reveals issues like missing validation, incorrect conditional rules, or broken calculations—problems that would otherwise confuse or block your respondents. The benefit is confidence: when you publish, you know your form will work flawlessly for every single user.
Testing Form Fields #
Field Types to Test:
- Text inputs (single line, multi-line)
- Email and phone number fields
- Number and calculation fields
- Dropdown menus and radio buttons
- Checkboxes (single and multiple)
- Date and time pickers
- File upload fields
- Signature fields
- Payment fields (Stripe, PayPal)
- Rating and scale fields
- Matrix/grid fields
Basic Field Testing:
- Click or tap into each field
- Enter various types of data
- Test with valid and invalid inputs
- Check placeholder text displays
- Verify help text appears
- Test field descriptions
- Check required field indicators
Interactive Field Behavior:
- Focus states activate correctly
- Typing updates field value
- Dropdown menus open and close
- Radio buttons select/deselect
- Checkboxes check/uncheck
- Date picker calendar opens
- File upload dialog triggers
Field Display Testing:
- Labels display correctly
- Field widths appropriate for content
- Multi-column layouts align properly
- Field spacing looks balanced
- Error messages have space to display
Testing Field Validation Rules #
Validation Rule Types:
- Required fields (must be filled)
- Email format validation
- Phone number format
- URL format validation
- Number range validation (min/max)
- Text length validation (min/max characters)
- File type validation
- File size limits
- Date range validation
- Custom regex patterns
Required Field Testing #
Test Cases:
- Leave Required Field Empty:
- Attempt to submit or navigate forward
- Error message should appear
- Form should not submit
- Error highlights the field
- Fill Required Field:
- Enter valid data
- Error message disappears
- Form allows submission
- Field appears valid
What to Verify:
- Error message is clear and helpful
- Error appears immediately on submit attempt
- Error disappears when field is filled
- Visual indicator shows field is required
Format Validation Testing #
Email Validation Test Cases:
- Valid email:
user@example.com✓ - Missing @:
userexample.com✗ - Missing domain:
user@✗ - Invalid characters:
user@exam ple.com✗ - Multiple @:
user@@example.com✗
Phone Validation Test Cases:
- Valid phone:
(555) 123-4567✓ - Only numbers:
5551234567✓ - Too short:
555123✗ - Contains letters:
555-CALL-ME✗ - Invalid format:
555.123.4567(depends on settings)
URL Validation Test Cases:
- Valid URL:
https://example.com✓ - Without protocol:
example.com(depends on settings) - Invalid format:
htp://example✗ - With path:
https://example.com/page✓
Number Range Validation Testing #
Min/Max Value Test Cases:
- Below Minimum:
- Enter value less than min
- Error message should appear
- Form should not submit
- Above Maximum:
- Enter value greater than max
- Error message should appear
- Form should not submit
- Within Range:
- Enter value between min and max
- No error message
- Form accepts value
- Exactly Min/Max:
- Test boundary values
- Should be accepted
- No errors
What to Test:
- Negative numbers (if allowed)
- Decimal values (if allowed)
- Very large numbers
- Zero value
- Empty field
Text Length Validation Testing #
Character Count Test Cases:
- Below Minimum Length:
- Enter text shorter than minimum
- Error indicates minimum requirement
- Form blocks submission
- Above Maximum Length:
- Enter text longer than maximum
- Field prevents additional typing OR
- Error message appears on blur
- Within Range:
- Enter text within limits
- No errors
- Form accepts input
What to Check:
- Character counter updates in real-time (if shown)
- Spaces count as characters
- Line breaks count correctly
- Special characters count correctly
File Upload Validation Testing #
File Type Test Cases:
- Upload allowed file type ✓
- Upload prohibited file type ✗
- Upload file with no extension ✗
- Upload file with wrong extension ✗
File Size Test Cases:
- Upload file under size limit ✓
- Upload file over size limit ✗
- Upload file at exactly size limit ✓
- Upload multiple files (total size check)
Upload Process Testing:
- File selection dialog opens
- Selected file name displays
- Upload progress shows (if applicable)
- Success confirmation appears
- Remove/replace file works
Testing Conditional Logic #
Conditional Logic Types:
- Show/hide fields based on answers
- Show/hide fields based on multiple conditions
- Logic with “AND” conditions (all must be true)
- Logic with “OR” conditions (any can be true)
- Nested conditional logic
- Page-level conditional logic
Show/Hide Field Testing #
Single Condition Test:
- Setup: Field B shows when Field A equals “Yes”
- Test Initial State:
- Field B should be hidden
- Form displays only Field A
- Trigger Condition:
- Select “Yes” in Field A
- Field B should appear immediately
- Reverse Condition:
- Change Field A to “No”
- Field B should hide immediately
What to Verify:
- Field appears/disappears smoothly
- No layout shift or jumping
- Hidden field doesn’t take up space
- Conditional field is empty when shown
- Previous values cleared when hidden
Multiple Conditions Testing #
“AND” Logic Test Cases:
Example: Show Field C when Field A = “Yes” AND Field B = “Option 1”
- Neither Condition Met:
- Field A = “No”, Field B = “Option 2”
- Field C hidden ✓
- One Condition Met:
- Field A = “Yes”, Field B = “Option 2”
- Field C hidden ✓
- Both Conditions Met:
- Field A = “Yes”, Field B = “Option 1”
- Field C visible ✓
“OR” Logic Test Cases:
Example: Show Field C when Field A = “Yes” OR Field B = “Option 1”
- Neither Condition Met:
- Field A = “No”, Field B = “Option 2”
- Field C hidden ✓
- First Condition Met:
- Field A = “Yes”, Field B = “Option 2”
- Field C visible ✓
- Second Condition Met:
- Field A = “No”, Field B = “Option 1”
- Field C visible ✓
- Both Conditions Met:
- Field A = “Yes”, Field B = “Option 1”
- Field C visible ✓
Complex Logic Path Testing #
Nested Conditional Testing:
- Test each branch independently
- Test parent condition first
- Test child conditions under each parent state
- Verify deeply nested conditions work
- Check all possible paths through form
Logic Chain Testing:
- Field B depends on Field A
- Field C depends on Field B
- Test entire chain triggers correctly
- Verify breaking chain hides all dependent fields
Cross-Page Logic Testing:
- Conditions based on fields from previous pages
- Field visibility on Page 2 based on Page 1 answers
- Navigate back and change trigger field
- Return to Page 2, verify conditional field updated
Testing Calculations #
Calculation Field Types:
- Sum of multiple fields
- Difference (subtraction)
- Product (multiplication)
- Division
- Average
- Percentage calculations
- Complex formulas
Basic Calculation Testing:
- Enter Values in Source Fields:
- Input numbers in fields used in calculation
- Calculation field should update automatically
- Verify Accuracy:
- Manually calculate expected result
- Compare with form’s calculated value
- Should match exactly
- Test Edge Cases:
- Zero values
- Negative numbers
- Decimal values
- Very large numbers
- Empty fields (should handle gracefully)
Real-Time Update Testing:
- Change value in source field
- Calculation updates immediately
- No page refresh required
- All dependent calculations update
Calculation Error Handling:
- Division by zero
- Invalid input (letters instead of numbers)
- Missing required calculation inputs
- Circular references
Testing Payment Fields #
Important: Payment fields in preview mode do not process actual transactions. For full payment testing, use Test Mode with real test submissions.
Stripe Payment Field Testing #
Available in Preview:
- Field displays correctly
- Payment amount shows
- Currency displays properly
- Stripe interface loads
- Form layout includes payment section
NOT Available in Preview:
- Actual payment processing
- Test card transactions
- Payment success/failure flows
- Receipt generation
- Payment confirmation
For Full Testing:
- Enable Test Mode in dashboard
- Submit test form with Stripe test card numbers
- Verify payment in Stripe dashboard
- Test declined card scenarios
- Verify email receipts
PayPal Payment Field Testing #
Available in Preview:
- PayPal button displays
- Payment amount visible
- Currency shows correctly
- Field positioned correctly in form
NOT Available in Preview:
- PayPal popup/redirect
- Transaction processing
- Payment confirmation
- Order completion
- PayPal sandbox testing
For Full Testing:
- Use Test Mode for actual submissions
- Connect PayPal sandbox account
- Test with PayPal test accounts
- Verify payment capture
- Check payment status updates
Coupon Field Testing #
In Preview:
- Coupon input field displays
- “Apply Coupon” button visible
- Field positioned correctly
For Full Coupon Testing:
- Create test coupons in builder
- Enable Test Mode
- Submit with valid coupon code
- Submit with invalid coupon code
- Verify discount calculation
- Test coupon expiration
- Test usage limits
Test vs. Production Mode #
Test Mode Purpose:
- Submit actual form responses
- Responses marked as “test”
- All integrations fire (emails, webhooks)
- Easy to identify and delete test data
- Full end-to-end testing
Accessing Test Mode:
- Navigate to Dashboard
- Look for Test Mode Toggle in top navigation
- Toggle ON to enable test mode
- Toggle OFF to return to production
Test Mode Indicator:
- Badge or indicator shows test mode active
- Visible in form preview
- Appears in dashboard
- Shows in responses list
When to Use Test Mode vs. Preview #
Use Preview When:
- Quick field behavior checks
- Testing validation rules
- Verifying conditional logic
- Checking form appearance
- Testing responsive design
- No need to save data
Use Test Mode When:
- Testing email notifications
- Testing webhook integrations
- Testing payment processing (with test cards)
- Testing thank you page redirects
- Testing automation workflows
- Need to see test data in responses
- End-to-end submission testing
Production Mode (Test Mode OFF):
- Real user submissions
- Actual data collection
- Production payment processing
- Real integrations and notifications
- Analytics tracking
- Used after all testing complete
Tips and Tricks #
Systematic Testing Approach:
- Test fields top to bottom
- Test all validation rules per field
- Test conditional logic paths
- Test calculations with multiple scenarios
- Test on all device views
- Document issues as you find them
Validation Testing Checklist:
- [ ] Test with valid input
- [ ] Test with invalid input
- [ ] Test with empty field
- [ ] Test with boundary values
- [ ] Test with special characters
- [ ] Test required vs. optional
- [ ] Test error message clarity
Conditional Logic Testing Strategy:
- Create a logic map/diagram
- Identify all possible paths
- Test each path systematically
- Test backward navigation
- Test with multiple users’ perspectives
Efficient Testing Workflow:
- Start in preview for quick checks
- Move to test mode for integration testing
- Clear test data regularly
- Keep test mode ON during development
- Switch to production only when ready to launch
Important Notes #
Preview Limitations for Testing:
- Cannot test submission-dependent features
- Cannot test email notifications
- Cannot test webhook triggers
- Cannot test thank you page redirects
- Cannot test real payment processing
Test Data Best Practices:
- Use obviously fake data (e.g., “Test User”, “test@test.com”)
- Include “TEST” in submissions
- Regular clear test responses
- Don’t mix test and production data
- Delete test responses before launch
Cross-Browser Testing:
- Preview/test in multiple browsers
- Chrome, Firefox, Safari, Edge
- Mobile browsers (iOS Safari, Chrome Mobile)
- Validation may behave slightly differently
- Some browser-specific field behaviors
Common Issues & Troubleshooting #
Validation Not Working:
- Solution: Check validation rules configured correctly in builder
- Solution: Ensure field type supports validation type
- Solution: Test with test mode submission, not just preview
- Solution: Verify validation rule conditions are logical
Conditional Logic Not Triggering:
- Solution: Check condition matches exact field value
- Solution: Verify correct field is selected as trigger
- Solution: Test AND vs. OR logic configuration
- Solution: Check for typos in condition values
- Solution: Ensure parent field is visible (not hidden by other logic)
Calculations Not Updating:
- Solution: Verify all source fields are number fields
- Solution: Check calculation formula for errors
- Solution: Ensure source fields have values entered
- Solution: Refresh preview and try again
- Solution: Check for circular references in calculations
Payment Fields Not Appearing:
- Solution: Verify Stripe/PayPal integration connected
- Solution: Check payment field not hidden by conditional logic
- Solution: Ensure payment amount field is configured
- Solution: Test in test mode, not just preview
Test Mode Not Enabling:
- Solution: Check you’re in dashboard, not builder
- Solution: Verify you have permission to toggle test mode
- Solution: Refresh browser page
- Solution: Clear browser cache
Required Field Allows Submission:
- Solution: Verify “Required” setting is enabled in field settings
- Solution: Check field not hidden by conditional logic when submitted
- Solution: Ensure required validation not overridden
- Solution: Test with actual submission in test mode
Conditional Logic Conflicts:
- Issue: Multiple conditions affecting same field
- Solution: Review all conditional rules for field
- Solution: Simplify logic to avoid conflicts
- Solution: Test each condition independently
- Solution: Use logic priority (first-match vs. all-match)
