Project Plan for a Drupal TestAutomation Framework

 

Stage 0: Environment Preparation

  • Linux
  • Docker/VBox
  • JavaSelenium
    • Java 8 JDK
    • Eclipse Oxygen & Plugins [ Natural(CucumberBDD), TestNG, JUnit, Maven, YEdit, CSVEdit, JsonTools, XMLTools ]
    • Selenium-Server / WebDrivers
  • PHP DevOps
    • PHP7.22 + Libs
    • Composer
    • Behat - BDD smoke headless
    • PHPUnit - Config & Deployment
    • SeleniumServer / WebDrivers
    • PhantomJS?
  • TF
    • Successfully run
      • TF from pom.xml(Maven/SureFire)
      • drupal-smoke.xml(TestNG)
      • SmokeTest.java(JUnit)
      • smoke.feature(CucumberBDD)
  • Git
    • StandUp Repo, Permissions, Dev Process and Workflow

Stage 0: QA

  • Team
    • Identify & group resources
      • 1 TestLead, 1 Coder, 2 Manual
    • TestLead
      • Test Case Repo Maintenance
      • Refactor & Prepare Tests for Automation ( must be explicitly step-by-step )
      • Collect XPath selectors & Test Data from Manual Testers to Excel or TC Repo
      • Coordinate Coder's Workload & peer review Test Suite Execution
    • Begin TOI & QA Training
    • Create Confluence MicroSite
      • TF Documentation
      • Test Process
      • Test Plan
      • QA Common Procedures
        • use as 'Macro List' for Test Case Repo
        • Precise Verbiage Macros should be used by Test Cases to
          • simplify redundant steps
          • HIGHLIGHT unique & critical steps
          • drastically reduce maintenance requirements while increasing verbosity & precision of test steps
      • Create Landing Pages for results, defects, and artifact archives

Stage 1: TFCore & PageObjectModel Library

  • Develop Against TEST
  • TF
    • TFCore Runner
      • basic, featureless test runner for use while building POM Library
    • POM Library
      • model the product's core features
  • TestScripts
    • Sanity Test
    • Smoke Test
    • PostDeploy Test
  • TestData
    • Build TestData Repo to support all tests
  • Team
    •  

 

Stage 2: TF Stand Up

  • TF
    • Runners
      • implement TestNG TestRunners & Listeners
      • implement Cucumber Config, TestRunner, & core StepDefs
    • Reporting
      • implement ExtentReports for TestStep & Result Reporting
      • create scripts to archive test runs
      • gather reporting requirements
    • Logging
      • implement log4j (or similar) for producing audit & debugging logs
      • create scripts to archive test logs
    • Develop QA Workflows & Processes
  • TestScripts
    • POM Library
      • Authoring & immediate Rendering
      • Site Touch
      • MegaNav
  • TestData
    • Prepare Test Data in Excel or similar for consumption by TF
    • Create Test Utils/Scripts to pull PROD data to use by QA

Stage 3: Jenkins Integration

  • TF
    • QA-dedicated Jenkins Slave Node on Docker
    • Daily Run - Touch, MegaNav
    • Post-Deploy - Sanity/Smoke
  • TestScripts
    • Block Rendering
    • Landing Page Basic
    • Post-Deploy Funcitonal
  • DevOps
    • Create DevOps suites using targeted TF tests

Stage 4: API Library

  • TF
    • Adobe Anaytics
    • Json Headless
    • SoapUI Framework or Custom?
  • TestScripts
    • Create tests to validate API including 'data-type' testing including invalid & injection values.
  • DevOps
    • Create DevOps API healthcheck suites from TF Library

Stage 5: QA Portal

  • Create QA Portal to host Test Results
  • Add Sections for Test Summaries, Logs, & Reports
  • Add UI Front End for Jenkins
  • Create Program Wiki for QA Processes, TF Architecture & Best Practices
  • Add 'JavaDoc' hooks to TF and export JavaDoc to Wiki

Stage 6: Full Functional Regression

  • Refactor & Extend Test Case Repo
  • Add Full Product Support to the POM Library
  • Create Test Suites to Fully exercise APIs

Stage 7: Sauce Labs Integration

  • Refactor & Extend Test Framework to address the 'Device Dimension'
  • Implement SauceLabs API, TF Utils, and Result/Reporting Callbacks