
Define shift left, its benefits and enablers, and how to reduce costs with instant automation. Apply test automation, the test pyramid, cloud and feature environments, and branching for built-in quality.
Meet director of quality engineering with 20 years in testing. He leads teams and 100+ quality projects, stays hands-on with agile, cloud, and machine learning to support accelerated software testing.
Understand what are the limitation, what you can and cannot do in all phases of a software testing project
Watch a live demo of a shift-left approach with a Java calculator API, showcasing unit tests, code coverage, GitHub actions, and Azure deployment in blocking pipelines.
Demonstrate shift-left testing with test-driven development, local validation, and automated GitHub pushes; deploy to Azure feature environments for functional and performance tests using Postman, Lighthouse, and JMeter.
Understand the trends in software quality engineering with 3 powerful resources:
1. State of Devops
2. World Quality Report
3. Continuous Testing Report
Install the Java development kit to run Java applications, providing the runtime engine and the Java virtual machine. Set java_home and update path, then verify with java -version.
Install node.js and npm from nodejs.org using the prebuilt installer. Verify installations with node -v and npm -v, and adjust environment variables PATH if needed.
Shift left moves testing earlier in the development life cycle, from ideation to production, aligning with test driven development and acceptance test driven development to prevent defects and cut costs.
Explore shift left actions across the software development life cycle, using operation feedback and user insights to drive preventive testing, automation, and test driven development.
Shift left boosts team morale and quality by preventing defects with automated regression testing. Organizations gain efficiency, reduce time to market, and strengthen competitive advantage and agility.
Embrace an automation first enabler to shift left, automating test cases, unit and integration tests, and making test data, infrastructure, reports, and defect automation code-driven in continuous integration and delivery.
Adopt a bottom-up shift-left strategy by automating small, fast unit tests on the developer machine to enable rapid feedback, before expanding to more complex UI tests.
Demonstrate the bottom-up testing approach with unit, rest assured, and Postman tests. Run k six tests and JMeter tests, all as code in a ci/cd pipeline toward a user interface.
demonstrates test driven development in java with maven tests, adding a triangle area calculation (height times base divided by two), and using failing tests to guide correct implementation.
Discover shift right by testing in production to monitor real user behavior, validate ideas with AB testing, feature flags, dark launches, and blue/green deployments.
Explore how AI agents generate and critique user stories to ensure quality criteria, definition of ready, and Jira integration, showcasing automated testing and quality engineering workflows.
Explore how test automation shifts left to accelerate delivery pipelines, using the test pyramid, unit and integration tests, and practical data strategies in a GitHub-driven automation pipeline.
https://martinfowler.com/articles/practical-test-pyramid.html
Avoid the ice cream cone antipattern in the testing pyramid by favoring unit tests over UI tests, ensuring fast feedback, lower cost, and a stable automated suite.
Run integration tests after unit testing to verify connectivity to RESTful APIs, databases, queues, and file systems, using mocks or real services, without validating business logic.
Learn how contract testing validates communication between clients and servers across RESTful and SOAP APIs and microservices. Explore API gateways, JSON and XML payloads, and schema validation.
Showcase the test pyramid in Java by comparing unit, API, and UI tests on a sum endpoint, highlighting fast feedback and flaky UI.
Learn how to use branching: create a feature branch from master, push changes, run unit and integration tests, and merge back via a pull request.
Demonstrates git branching with master and feature branches, showing how to create, push, commit, and merge via a pull request, then update master with merged changes.
Measure branch time and PR open time to drive small, fast delivery and reduce merge conflicts. Use rebasing and proactive code reviews to shift quality checks left during development.
Explore continuous integration, delivery, and deployment pipelines, including unit and integration tests, code scanners, pull requests, builds, artifacts, infrastructure changes, and automated promotions to QA, UAT, and production.
Initiate continuous integration when a feature is ready to merge into master via pull request, triggering scans, unit tests, coverage checks, and peer review before merge.
See how a GitHub workflow uses the super linter to scan code quality on feature branches, blocking the pipeline when issues arise.
Demonstrates a GitHub pipeline blocking deployment on failing unit tests, using a jquery-based calculator test suite validating add, subtract, multiply, and divide, and skipping steps via yaml and environment variables.
Block a pipeline with a linter and unit tests when issues arise, and scan dependencies for vulnerabilities with the OWASP plugin that blocks builds above level seven.
Explore a practical validation build that runs linting, unit tests, and measures code coverage on feature branches to shift left quality and prevent defects.
Explore the continuous deployment pipeline, contrasting long lived environments with short lived ones, and learn how trunk, release branches, and automated testing enable faster deployments while managing costs.
Explore continuous deployment with automated tests from feature branches to master, using CI/CD, unit tests, and Postman tests to validate a four-operation API deployed to Azure Web App.
Adopt a multi-pipeline design—nightly build, feature environment, CI, and promote production—that balances fast deployments with a final human check for quality and risk control.
Design a practical automated testing pipeline built on nightly builds, continuous integration, and a promote production flow, balancing speed with manual checks using containers and test data as code.
Learn to design a shift-left automation strategy by selecting among UI, backend, chaos, mobile, policy, security, performance, visual, and accessibility testing to cut ownership and infrastructure costs.
Compare the cost and speed of API tests versus UI automated tests, highlighting that API tests are faster, cheaper to maintain, and reflect backend and frontend interactions.
Leverage the feature environment on a feature branch to enable on demand, ephemeral testing with automated builds and deployments, delivering fast feedback and shift left testing.
Shift left by testing a new feature in a feature environment, auto-updated with the branch or on demand, using build and deploy pipelines for quick validation.
Explore on-demand environments built from trunk, release, and feature branches, with basic build tests and automatic deployments for infrastructure and application. Spin up and decommission environments for branch-specific testing.
Synchronize development, QA, and infrastructure to spin up on-demand environments via automated pipelines; keep infrastructure, configuration, and tests in version control and validate in a production-like feature environment.
Explore the end-to-end DevOps and automated environment validation within a continuous deployment pipeline, from code on feature branches to production monitoring and feedback.
Explore how horizontal and vertical scaling manage peak traffic with load balancers, multiple nodes, and hard-coded rules, validating time-to-scale and cloud auto-scaling capabilities.
Explore how performance testing fits into quality engineering and non-functional testing, and how it assesses speed, responsiveness, scalability, and stability under varying load and environment variables.
Explore what shift left means for performance testing by moving non-functional checks into development, testing on feature branches and in CI before merging to master.
Learn how to integrate performance testing into CI/CD with GitHub actions during pull requests. Explore code scanning, coverage, and automated checks that stop on failures and trigger deployments.
Learn to integrate k6 performance testing into a GitHub actions CI/CD pipeline using a YAML workflow, deploy to Azure, and enforce a 100 ms average response to block failing builds.
Run delta validation tests with a configurable performance load, using a json config and environment variables to decouple from source code and enable GitHub actions.
Demonstrates performance validations at the ci level with GitHub actions, integrating linting, unit tests, dependency scans, code coverage, and JMeter performance tests into a full ci/cd pipeline.
Assess tooling and framework options for automotive software testing, with rapid start guidance using GPT-4, ISO 2662 standards, hardware-in-the-loop setups, and language choices.
Generate Cucumber feature files to automate test coverage using Gherkin and Cucumber Java, define keywords and align feature files with your system while noting syntax limitations.
Transform a feature file into a cucumber file with project context. Copy and adapt generated code for compatibility with your test system, noting that the code is not yet proven.
Generate automated tests from Cucumber scenarios using Java and Selenium WebDriver end-to-end. Use a white-label page object model and GPT to rewrite code mapping elements for the Cucumber feature file.
Discover how to use AI to add a Postman test job to a CI/CD pipeline, using GitHub Actions to run a Postman collection after deployment to Azure.
Leverage ai to set up performance testing pipelines with GitHub actions, running Lighthouse checks, parameterized thresholds (80), YAML configurations, secret-based validations, and environment variables.
Leverage AI to understand unfamiliar code by analyzing YAML configurations and GitHub actions, revealing item meanings, workflows, and scheduling options, then modify content to fit needs.
Explore how to assess unit test coverage using JaCoCo, generate and regenerate test classes with AI, and identify edge cases like division by zero to improve code reliability.
Select a free performance testing tool with no prior knowledge, like Apache JMeter. Ensure it supports HTTP and JSON payloads, runs in Docker, and integrates with GitHub Actions.
Install and verify Apache JMeter, prepare a REST post request, and create a first performance test script (.jmx) to exercise the API.
Add a listener to a Jmeter test script to view results, configure five requests at one-second intervals, and prepare your setup for performance testing.
Gen AI guides load testing by translating non-functional requirements into test context, such as five users and 20 concurrent requests, enabling high-level architecture decisions and faster results.
Generate random test data for load testing by configuring a json request with a random variable (min 1, max 100) across 20 users, 20s ramp up and 10 iterations.
Learn to troubleshoot adding an average response time to a file, navigate version mismatches, and modify aggregate and summary reports, while recognizing GPT limitations in automated testing workflows.
Run performance tests from the command line using JMeter or another tool, configure the tool path, start the application server, and generate results for integration into a pipeline.
Create a docker container image to run a JMeter test plan. Use the Apache JMeter image and a Dockerfile to run tests and export results locally or in the cloud.
Run the test in a pipeline by triggering a manual workflow, monitor the performance test with JMeter on a web app, and review results for download and analysis.
Automate test results delivery by uploading artifacts in a ci/cd workflow, triggering runs, and downloading the results, all built with GPT-assisted tool selection and container execution.
Course Title:
TestOPS Shift Left: Accelerating Quality and Efficiency for Quality Engineers
Course Objective:
Equip QE professionals with modern tools, techniques, and mindsets to integrate Shift Left principles, leveraging AI agents, browser automation, and AutoGen to optimize quality earlier in the software development lifecycle.
Core Focus Areas
Shift Left Fundamentals
Understand the importance of catching defects early
Reduce cost, rework, and deployment delays
Align QA with development from the beginning
Modern QE Best Practices
Enforce code quality with:
Code reviews and static analysis
Test-driven development (TDD)
Pull Request (PR) gates and automation triggers
Build maintainable, defect-resistant pipelines
AI Agents in Testing
Use AI agents to:
Analyze test coverage gaps
Suggest or auto-generate test cases
Predict risk areas based on code changes
Integrate with tools like Microsoft AutoGen to orchestrate agent workflows for test creation, bug triaging, and environment setup
Browser-Based Testing in Shift Left
Automate frontend workflows using tools like Playwright, Cypress, or Selenium
Run cross-browser tests as part of PR validation
Use headless browsers in CI/CD to improve speed and feedback
Automation Efficiency
Automate repetitive quality tasks like regression, integration, and smoke tests
Adopt pipeline-as-code for test orchestration
Choose the right toolchain for your team, such as GitHub Actions or Azure DevOps
Security and Prevention Techniques
Introduce early security practices:
Static Application Security Testing (SAST)
Threat modeling and secure code reviews
Integrate security checks into unit tests and CI pipelines
Expected Outcomes for QE Professionals
Design and lead Shift Left quality strategies across the development lifecycle
Collaborate with developers and AI agents to accelerate and scale test efforts
Implement AI-powered test generation and quality enforcement
Deliver secure, stable, and efficient software with confidence and speed