Test Automation Boot Camp

Three days | 12noon - 5pm Eastern / 9am - 2pm Pacific Time

This ICAgile-certified course, presented in collaboration with ASPE Training, provides a detailed survey of test automation tools and practices at all levels. Participants will learn how to use tools to record and play back UI tests, to develop code-level unit tests, and to create tests for nonfunctional requirements.

Outline

Why Automate Testing?

  • See how testing has become a hot topic in recent years with the growth of agile methods, automation, and DevOps.
  • Learn why automated testing is a key part of an agile incremental development process.
  • See how the short cycle times introduced by agile processes require faster test turnaround.

Your First Automated Test

  • Learn the basic structure of an automated UI test.
  • Build a few test cases using the Selenium IDE record/playback tool.
  • Learn how to include checks (verifications/assertions) into a test.

Scenarios

  • Understand the concept of a scenario.
  • Learn how to build tests by copying and editing existing test cases.
  • Learn how to organize test cases into distinct test suites.
  • Practice building suites that incorporate all three types of scenarios.

Code-Level Tests

  • Learn the history and meaning of the Test Automation Pyramid.
  • Examine how to test lower-level elements (“unit tests”).
  • Explore different meanings of the term “unit tests.”
  • Understand the pros and cons of constructing complex suites of code-level unit tests.

Coded UI Tests

  • Learn the general architecture of automated UI tests, including the concept of adapters.
  • Use a development environment’s execution mechanism to run coded UI tests

Service Testing

  • Understand the concept of a layered software architecture.
  • See how to build tests against middle service layers.

Code Analysis

  • Understand the value and importance of analyzing source code for test quality.
  • Practice measuring certain code properties and using those metrics to improve test suites.

Test-Driven Development

  • Examine test-driven development practices.
  • Show how scenarios can be defined up front to say, “here’s what I expect this to do.”
  • Show how progress toward completion can be measured by which scenarios pass.
  • Write acceptance criteria in the Gherkin language.

Stories and Scenarios

  • Review the concept of a user story and the lifecycle of a story.
  • Understand the relationship between acceptance criteria, scenarios, and test cases.
  • Practice creating scenarios from user stories.

Creating Tests from Cucumber

  • See how the scenarios of a story have common parts.
  • Learn how to write scenarios to exploit the “DRY” principle.
  • Understand the concept of setup and teardown.
  • See how Cucumber tools can be used to generated automated test frameworks.

Automating Test Authoring

  • Understand the difficulties in building tests one by one.
  • Learn how to identify scenarios and to build test cases by forming combinations of inputs and environment conditions then matching those to expected results.

Test Data

  • Define actual values.
  • Define expected results via calculations.
  • Understand how value choices can originate from both black-box and glass-box tests.

Exploratory Testing

  • Learn how to use ad hoc exploratory tests to supplement scripted planned tests.
  • Conduct exploratory tests against an application.
  • Learn about tools available to support exploratory testing.

Automation in Agile Processes

  • Examine a build sequence appropriate to agile incremental development.
  • Learn how to incorporate automated testing into the build and deploy processes.

Testing with Mocks

  • Consider circumstances when it is necessary to test with “mock” versions of components.
  • Understand which capabilities need to be mocked.
  • Practice testing an application with mock components.

Multi-Platform Testing

  • Learn why it is important to test on many different platforms.
  • Define and identify the platforms you’ll need to test.
  • See the complexities in automating cross-browser tests.
  • Understand how virtualization (virtual machines and containers) facilitate multi-platform testing.

Testing Quality Attributes

  • Recall the difference between functional & nonfunctional requirements (“quality attributes”).
  • Learn techniques for making nonfunctional requirements testable.
  • Explore tools for performing nonfunctional testing.

Assessing Automatability

  • What makes an application easy or hard to automate?
  • Examine how to balance the needs for automated vs. manual tests.
  • Understand the technical and human factors that need to be considered when making a commitment to test automation.

Course Summary

  • Review how test automation supports agile, incremental development.
  • Review the automation tools presented in the class and discuss other tools available to you.
  • Plan your next steps.

For more information, contact us to discuss your particular training needs.