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.