Skip to content

Instantly share code, notes, and snippets.

@nelsonsilva
Last active July 5, 2021 09:20
Show Gist options
  • Save nelsonsilva/5397454173d27d6d368e13e37b27196b to your computer and use it in GitHub Desktop.
Save nelsonsilva/5397454173d27d6d368e13e37b27196b to your computer and use it in GitHub Desktop.
QA - Test Management

QA

Team

  • Fábio Santos: UI Team
  • Pedro Gonçalves: nApps Team

Process

  • Automated CI/CD pipeline
    • Master and maintenance branches
  • Feature branches with PR
    • All commits reference JIRA tickets
    • < LTS 2021: Test and Push
    • >= LTS 2021: PR checks
      • (code review, static analysis, tests, ...)
      • Live preview environment (K8S deployment)
  • Unit, functional and performance testing
  • Crowdsourced functional testing on UAT environments (Rainforest)
    • Weekly browser regression tests
    • HotFix validation
  • Manual testing by QA and/or PO
  • Automated promotion of RC / rollout to customers

Challenges

  • Cross project checks
  • Slow/flaky functional testing (JSF UI / Web UI) => REST API testing
  • Automated test environment provisionning (JX/K8S vs NCO)
  • Monitoring / logging UAT
  • Shared managed services (Arender, ...)
  • 3rd party integrations (Aspera, LiveConnect, ...)
  • Upload / Download
  • Configuration matrix (addons, configuration, feature flags)
    • Need configured applications for testing (Nuxeo Intranet)

Tooling

  • JIRA + Service Desk
  • Confluence
  • Automated release task / plan creation (TBD?)
  • Discussing adopting X-Ray (+JIRA integration)
  • Jenkins, Jenkins X, Github Actions
  • Rainforest

Nuxeo platform

Core team

  • PO: Julien Aubenque
  • TL: Thomas Roger

Jenkins

Nuxeo Web UI

UI team

  • QA: Fábio Santos
  • PO: Bertran Chauvin
  • TL: Gabriel Barata

Jenkins

Github Actions for Nuxeo Elements

Unit tests

  • Easy, fast and cheap (mock services)
  • Cross browser

Current stack

  • Mocha + Chai
  • @nuxeo/testing-helpers
    • Promisified helpers
    • Mock Nuxeo client
  • Karma
    • Local launchers
    • Saucelabs launcher
  • @open-wc/karma-esm (no build)
  • Jenkins X

Future

Functional tests

Documentation

  • Run in CI using nuxeo-ftest to start local server
  • Can run against any server (WebUI dev server, docker, k8s, etc..)

Current stack

  • webdriver.io v4
  • Chai
  • Selenium standalone launcher
  • Cucumber BDD
  • JUnit and Cucumber HTML reporters

Web UI FTest Framework

Documentation

  • Simple way to run Web UI functional tests:

npx @nuxeo/nuxeo-web-ui-ftest --report --screenshots --headless --tags='not @ignore'

  • Reuse of common page objects and step definitions

Challenges

  • Shadow DOM (wdio-shadow-plugin vs Component objects (shadow$) )
  • Speed: timeouts and polling make things slow
  • Flakyness: sensitive to performance, non transactional commands, etc..

Future

  • webdriver.io v7
    • suport for Puppetter (Chrome DevTools Protocol)
    • no Playwright yet to avoid download of custom browsers
  • visual regression

Rainforest tests

  • Run on UAT environments
  • Exploratory tests

Addons

nApps team

  • QA: Pedro Gonçalves
  • PO: Lisa McIntyre
  • TL: Bruno Santos

Jenkins

NOS

(Connect and Studio) (NOS team)

  • PO: Max Gavanon
  • TL: Arnaud Kervern

Jenkins

Drive

Drive team

  • PO: Max Gavanon
  • TL: Mickaël Schoentgen

Github Actions

Documentation:

Nuxeo Insight

AI team

  • PO: Tiago Cardoso
  • TL: Pedro Cardoso

Jenkins

Documentation:

PO (Tiago Cardoso) is in charge of doing manual validation when releasing

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment