DrupalTesting: Testing Ecosystem

 

Product Dev-Deploy-Test Environment Ecosystem

  • Placing the Test Product in its own Jenkins Pipeline & deploying to an environment that listens for test requests allows that Test Product to be used for multiple test products & targets
  • If the listener is further extracted from the test environment, multiple Test Drones can be on stand-by, waiting for Test Execution Requests on any environment
  • Test Drones can also be configured with Jenkins Slave Nodes that parse Test Requests for Test Drones with the required test environment.
  • This allows for scaling and flexibility with the Product Under Test.

Test Product Domain

  • Test Product should be abstracted from the products under test
  • As Product Domain changes, catastrophic design challenges can be avoided by creating layers to the test product ecosystem.
  • If a new product is introduced, the Test Product can be extended for that product domain
  • By tightly binding the Test Product to the Current Product Under Test, when the Product goes end of life, so does the test product.
  • The Test Product Engine should be product agnostic, so that as testing needs change, the core engine is unaffected.
  • This is particularly important in the CI/CD domain where an extra layer handling Jenkins Triggers will allow environment, configuration, and test fixture considerations to be exported to modular test engines/packages.
  • For example, if mobile browser testing is introduced as a test requirement, only the mobile application drivers need to be added - avoiding a complete duplication of effort for test internals

Tags