Test Automation and Test-Driven Development

Duration: 4 Days

Course Overview

This course will cover the fundamentals of automated testing, and its role/practice in a modern iterative, incremental development approach such as Scrum. Coverage will be included on test driven development philosophy, as well as on the use of test automation to support continuous integration and prevention of regression in multi-team/multi-developer projects.

How can I attend my course?

On-line from
your chosen location

At our dedicated
training facility

On-site at
your premises

Course Content

Introduction

• Manual versus automated testing
• Traditional S/W development and test
• Agile development and test automation
• The roles of automation: unit, functional, integration, regression and acceptance testing

Automating unit tests

• Review of unit testing toolkits
• Case study: xUnit
• Test fixtures and test methods
• Assertions and expected exceptions
• Test setup and teardown
• Test class setup and teardown

Designing with unit tests

• Test-driven philosophy
• Unit tests from specifications
• TDD and adding new functionality
• TDD and altered functionality
• Handling post-test defects

Integration testing

• Defining integration testing
• Mocks and stubs
• Interface tests versus component functional tests
• Testing integration with legacy systems

Mocking and integration

• Why mocking is necessary in test automation
• Extracting interfaces
• Hand-crafted mocks
• Review of mocking frameworks
• Case study: Moq

Functional and acceptance tests

• Tests from requirement acceptance criteria
• Stakeholder-readable acceptance criteria
• Behaviour-Driven Development
• The Gherkin test specification language

Acceptance test driven development

• Case study: SpecFlow
• Creating scenarios in Gherkin
• Creating test bindings
• Using unit test runners for Specflow tests
• Data-driven testing

User interface testing

• User interface testing technologies
• Testing behind the interface: Model-View-Presenter pattern
• Automating the human-computer interactions

Case study: Selenium

• The Selenium macro recorder
• Scripting Selenium tests
• Unattended versus witnessed testing
• Handling special cases: computer-generated IDs and frames

Applying end-to-end testing in the development process

• Automated builds  and unattended test runs
• Build Environments
• Continuous integration
• Regression testing and version control
• Branching and merging versions
• The role of testing in operational systems
• Static and Dynamic Analysis

DevOps and Testing Automation

• DevOps – Brief Introduction
• DevOps – Rethinking test automation in a DevOps world
• DevOps and Test automation – Managing speed and frequency of changes, continuous deployment and continuous testing

Further information:

• The course will contain hands-on exercises based on tools and technologies used in the Microsoft suite of development environments and languages.
• Exercises will include:
– Using unit testing tools to practise TDD
– Exploiting mocking frameworks to achieve test localisation and isolation
– Using SpecFlow to author BDD tests, including writing test bindings
– Creating user interface tests using Selenium or Coded UI tests

COURSE PREREQUISITES

It is assumed that all attendees on the course have prior experience of software development in a Microsoft environment, and are happy to work using the C# language on a Visual Studio based development platform.

You will receive a full set of course notes
and all supporting materials for your course.

Hard Copy Delivered to your premises or Downloaded to a chosen device.

To book this course please call 
+44 (0) 1444 410296 or email Info@kplknowledge.co.uk