39 / 51 · 24 Technical Writing for QA · Documentation as Code← prev⊞ allnext →☰ Read as one page
5.6Automating Documentation
Test Reports
Automated test reports generated by CI/CD pipelines provide up-to-date quality metrics without manual effort.
What to generate automatically:
| Report | Tool | Trigger |
|---|---|---|
| Unit test results | JUnit XML + report generator | Every CI run |
| E2E test results | Playwright HTML report, Allure | Every CI run |
| Code coverage | Istanbul/NYC, JaCoCo, coverage.py | Every CI run |
| API documentation | Swagger/OpenAPI generators | On API changes |
| Performance benchmarks | k6, Gatling, Locust reports | Nightly or weekly |
| Dependency audit | npm audit, Snyk, Dependabot | Daily |
| Test flakiness | Custom tracking or test analytics tools | Weekly |
Coverage Reports
Coverage reports can be generated and published automatically:
# Example GitHub Actions step
- name: Generate coverage report
run: npx nyc report --reporter=html --reporter=text
- name: Publish coverage to GitHub Pages
uses: peaceiris/actions-gh-pages@v3
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
publish_dir: ./coverage
Documentation Linting
Automated checks that keep documentation quality high:
| Tool | What It Checks |
|---|---|
| markdownlint | Markdown formatting consistency |
| vale | Prose quality, style guide compliance |
| textlint | Grammar, spelling, readability |
| linkcheck | Broken links in documentation |
| cspell | Spell checking with custom dictionaries |
Example CI configuration for documentation linting:
# .github/workflows/docs.yml
name: Documentation Quality
on: pull_request
jobs:
lint:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Lint Markdown
uses: DavidAnson/markdownlint-cli2-action@v14
- name: Check links
uses: lycheeverse/lychee-action@v1
with:
args: --verbose docs/**/*.md
- name: Spell check
uses: streetsidesoftware/cspell-action@v5