QA Testing Workflow
QA Testing for Document Generation
This guide provides QA team members with tools, checklists, and workflows for testing OOXML/SFDT document generation effectively—even without deep technical knowledge.
Essential QA Tools
1. Open XML SDK Productivity Tool ⭐ REQUIRED
Download: GitHub Releases
Purpose: Visual OOXML structure inspector and validator
What it does:
- Shows document structure as tree
- Validates XML against schema
- Displays validation errors
- Compares two documents
- Shows C# code generation
How to use:
- Download and install
- File → Open → Select your DOCX
- View structure in left panel
- Click "Validate" button
- Review errors in bottom panel
When to use:
- Document shows "repair" dialog in Word
- Content missing or corrupted
- Need to understand document structure
- Verify fix worked
2. 7-Zip or WinRAR ⭐ REQUIRED
Download: 7-Zip
Purpose: Explore DOCX as ZIP archive
How to use:
- Copy DOCX file
- Rename from
.docxto.zip - Right-click → 7-Zip → Open Archive
- Browse
/word/folder - Check for images in
/word/media/
When to use:
- Images missing
- Check if image files exist
- Inspect relationships
- Manual debugging
3. Microsoft Word (Developer Tab) ⭐ REQUIRED
Enable Developer Tab:
- File → Options → Customize Ribbon
- Check "Developer" in right panel
- Click OK
Purpose: Inspect content controls, styles
Features:
- Design Mode: Show content control tags
- Properties: View SDT properties
- Protect Document: Test locked controls
When to use:
- Verify content controls work
- Check mail merge fields
- Test form functionality
4. Oxygen XML Editor (Optional)
Purpose: Advanced XML editing and validation
Features:
- Syntax highlighting
- Schema validation
- XPath testing
- XML formatting
When to use: Advanced debugging only
QA Testing Checklist
Level 1: Visual Inspection (5 min)
Open document in Word and check:
- Document opens without errors
- No "repair" dialog appears
- All text visible and correct
- All images visible
- Tables display correctly
- Formatting looks correct (fonts, colors, sizes)
- Page breaks in right places
- Headers/footers appear
- No unexpected blank pages
If any fail → Record details and report to developer
Level 2: Structure Validation (10 min)
Use OpenXML SDK Productivity Tool:
- Open document in tool
- Click "Validate" button
- Review errors
- Zero validation errors
- All parts present (
document.xml,styles.xml, etc.) - Relationships all resolved
- No missing images
Common errors to report:
- "Element X cannot be child of element Y"
- "Required element missing"
- "Attribute required"
- "Invalid attribute value"
Level 3: Content Verification (15 min)
Verify content accuracy:
- All merge fields populated
- Property data correct
- Comparable properties list complete
- All photos present and correct property
- Tables have all expected rows
- Calculations correct
- Dates formatted correctly
- Currency values formatted ($X,XXX)
Level 4: Functional Testing (10 min)
Test document functionality:
- Can copy text
- Can edit paragraphs (if not locked)
- Links clickable and go to correct URL
- Content controls work (if editable)
- Tables can be resized (if not locked)
- Print preview looks correct
- Save as PDF works
- Can email document
Level 5: Round-Trip Test (15 min)
Test document stability:
- Open document in Word
- Make minor edit (add space)
- Save
- Close and reopen
- Verify document still works
- Reopens without errors
- No corruption after save
- Formatting preserved
- Images still visible
Testing Scenarios for AppraiSys
Scenario 1: Single Property Report
Test Steps:
- Generate report for single property
- Visual inspection
- Verify property data
- Check comparable properties table
- Verify all photos
Expected:
- Executive summary table
- Property description
- 3-6 comparable properties
- Multiple property photos
- Appraiser signature section
Scenario 2: Multi-Property Report
Test Steps:
- Generate report with multiple properties
- Check section breaks
- Verify each property has own section
- Check headers different per section
Expected:
- Clear section separation
- Each property independently formatted
- Correct property in each section header
Scenario 3: Image-Heavy Report
Test Steps:
- Generate report with 20+ images
- Visual inspection of all images
- Check for image size consistency
- Verify captions
Expected:
- All images display
- Images properly sized
- Page breaks logical
- No overlapping content
Scenario 4: Report with Merged Cells
Test Steps:
- Generate report with complex tables
- Inspect cell merging
- Verify borders continuous
- Check text alignment in merged cells
Expected:
- Merged cells display correctly
- No broken borders
- Text properly centered/aligned
Common Issues and How to Report
Issue: Document Shows "Repair" Dialog
What it looks like:
"Word found unreadable content in [filename]. Do you want to recover the contents of this document?"
What to capture:
- Screenshot of error
- Document ID / report ID
- Steps to reproduce
- What was clicked when error appeared
What to report:
**Title**: Document requires repair dialog
**Report ID**: [ID]
**Steps**:
1. Generate report
2. Open in Word
3. Repair dialog appears
**Expected**: Opens without repair
**Actual**: Requires repair
**Screenshot**: [attach]
Issue: Images Not Showing
What it looks like:
- Empty boxes where images should be
- Red X placeholder
- "Image cannot be displayed"
What to check:
- Open DOCX as ZIP (rename to .zip)
- Look in
/word/media/folder - Are image files present?
What to report:
**Title**: Property images not displaying
**Report ID**: [ID]
**Images present in ZIP**: Yes/No
**Number of images missing**: X
**Screenshot**: [attach]
Issue: Tables Look Wrong
What it looks like:
- Cells wrong width
- Text cut off
- Borders missing
- Cells misaligned
What to capture:
- Screenshot of expected layout
- Screenshot of actual layout
- Table location in document
What to report:
**Title**: Table layout incorrect
**Report ID**: [ID]
**Location**: Page X, Section Y
**Issue**: Cells wrong width / borders missing / etc.
**Screenshots**: [before/after or expected/actual]
Issue: Missing Content
What it looks like:
- Sections missing
- Paragraphs missing
- Tables incomplete
What to check:
- Is data present in source system?
- Does template have correct fields?
- Did mail merge complete?
What to report:
**Title**: Missing content in report
**Report ID**: [ID]
**Missing**: Property description / Table rows / etc.
**Data exists in system**: Yes/No
**Screenshot**: [attach]
Using OpenXML SDK Tool - Step by Step
Task: Validate a Document
Steps:
- Open OpenXML SDK Productivity Tool
- File → Open → Select DOCX
- Wait for document to load
- Click "Validate" in toolbar
- Review "Document Validation Results" panel
Interpreting Results:
✅ Success:
Validation complete. No errors found.
→ Document is structurally valid
❌ Errors:
Error: Element 'table' cannot be a child of element 'run'
Path: /document/body/p[2]/r[1]
What this means:
- Table incorrectly placed inside run
- Location: 2nd paragraph, 1st run
- Developer needs to fix table placement
What to report: Copy entire error message
Task: Compare Two Documents
When to use: After bug fix, compare original vs fixed
Steps:
- Tools → Compare Files
- Select "Original File" (broken document)
- Select "Revised File" (fixed document)
- Click "Compare"
- Review differences
What to look for:
- Green = Added elements (good if fix)
- Red = Removed elements (check if expected)
- Yellow = Modified elements
Task: View Document Structure
Steps:
- Open document in tool
- Left panel shows tree structure
- Expand
document→body - Browse paragraphs, tables, etc.
What to check:
- Paragraphs contain runs contain text
- Tables contain rows contain cells contain paragraphs
- No unexpected nesting
Red flags:
- Run containing table (wrong!)
- Paragraph containing table (wrong!)
- Cell without paragraph (wrong!)
Manual XML Inspection (Advanced)
When to Use
- OpenXML SDK tool won't open document
- Need to see raw XML
- Developer asks for specific XML snippet
Steps
- Copy DOCX file
- Rename to
.zip - Extract with 7-Zip
- Navigate to
/word/document.xml - Open in text editor (Notepad++)
- Search for issue location
What to Look For
Good paragraph:
<w:p>
<w:r>
<w:t>Text</w:t>
</w:r>
</w:p>
Bad paragraph (missing run):
<w:p>
<w:t>Text</w:t> <!-- ERROR: Text directly in paragraph -->
</w:p>
Good table:
<w:body>
<w:tbl> <!-- Table at body level -->
...
</w:tbl>
</w:body>
Bad table:
<w:p>
<w:r>
<w:tbl> <!-- ERROR: Table in run -->
...
</w:tbl>
</w:r>
</w:p>
Round-Trip Testing
Purpose
Verify document remains stable after:
- Opening and saving
- Converting DOCX → SFDT → DOCX
- Making edits
Test Procedure
Phase 1: DOCX Stability
- Generate report (save as
original.docx) - Open in Word
- Make minor edit (add period)
- Save as
edited.docx - Close Word
- Reopen
edited.docx - Verify no errors, content intact
Phase 2: Format Conversion
- Start with
original.docx - System converts to SFDT (internal)
- System converts back to DOCX
- Save as
roundtrip.docx - Compare
original.docxvsroundtrip.docx
What to check:
- Both open without errors
- Content identical
- Formatting identical
- Images identical
- No extra blank paragraphs
Known issues (report if seen):
- Extra blank paragraphs (Syncfusion bug)
- Image sizes different
- Font changes
- Spacing changes
Bug Report Template
## Bug Report: [Short Description]
**Report/Document ID**: [ID from system]
**Date/Time Generated**: [timestamp]
**Issue Category**:
- [ ] Document corruption
- [ ] Missing content
- [ ] Formatting wrong
- [ ] Images missing
- [ ] Table layout
- [ ] Other: ___________
**Steps to Reproduce**:
1. [Step 1]
2. [Step 2]
3. [Step 3]
**Expected Result**:
[What should happen]
**Actual Result**:
[What actually happened]
**Screenshots**:
[Attach screenshots]
**Validation Errors** (if any):
[Paste errors from OpenXML SDK tool]
**Browser/Word Version**:
- Word: [version]
- Browser (if web generated): [browser and version]
**Additional Notes**:
[Any other relevant information]
QA Testing Schedule
Daily Testing
- Smoke test: Generate 1 sample report
- Visual inspection
Weekly Testing
- Full test suite (all scenarios)
- Round-trip testing
- Performance testing (generation time)
Per Release
- Regression testing (all scenarios)
- All document types
- Edge cases
- Validation with OpenXML SDK tool
Quick Troubleshooting Guide
Problem: "Word found unreadable content"
Likely cause: OOXML structure error
Check:
- Open in OpenXML SDK tool
- Run validator
- Report error message to developer
Problem: Images not showing
Check:
- Open DOCX as ZIP
- Look in
/word/media/ - Are files there?
- Yes: Relationship problem
- No: Image not embedded
Problem: Table cells wrong size
Likely cause: Grid definition mismatch
Check:
- Does table look reasonable in design?
- Is content cut off?
- Capture screenshot
- Report to developer with expected layout
Problem: Extra blank pages
Likely cause: Section breaks or empty paragraphs
Check:
- Turn on formatting marks (Word: Home → Show/Hide ¶)
- Look for section breaks
- Look for multiple paragraph marks
- Report location to developer
Problem: Content controls not editable
Check:
- Developer tab → Design Mode
- Click content control
- Properties button
- Check "Lock" settings
- Should be unlocked for editing
- Report if locked when shouldn't be
Certification Checklist
QA team member can certify report if:
- Visual inspection passed
- Validation shows zero errors
- Content verified correct
- Functional testing passed
- Round-trip test passed (if required)
- No known bugs present
Sign-off:
- Tested by: [Name]
- Date: [Date]
- Report ID: [ID]
- Status: ✅ Certified / ⚠️ Issues Found
Training Exercises
Exercise 1: Tool Familiarization
- Download sample DOCX
- Open in OpenXML SDK tool
- Explore document structure
- Run validation
- Generate C# code (view only)
Time: 15 minutes
Exercise 2: Find the Error
Given a broken DOCX:
- Open in Word (should show repair dialog)
- Open in OpenXML SDK tool
- Find validation error
- Identify problem in structure
- Report using template
Time: 20 minutes
Exercise 3: Round-Trip Test
- Generate test report
- Perform round-trip test
- Compare original vs result
- Document any differences
- Determine if acceptable
Time: 20 minutes
Next Steps
For QA Team:
- Install required tools
- Practice with sample documents
- Complete training exercises
- Start daily smoke testing
Related Documentation:
- Common Fatal Mistakes - Understand what developers should avoid
- Element Hierarchy Rules - Valid structure
- Troubleshooting Guide - Detailed problem solving
💡 Remember: You don't need to understand OOXML deeply to test effectively. Focus on visual inspection, validation tools, and clear bug reports!