DrupalCon Baltimore 2017: Implementing Full Stack Test Automation for Drupal 8
Channel: Drupal Association
Date: 2017-04-26

One unfortunate and inevitable reality of software development, in Drupal or anything else, is that  bugs will appear in everything we create.  Despite the fact that buggy software continues to inflict masssive costs, $ 59.5 billion annually, according to the National Institute of Standards and Technology, many in the Drupal community continue to work without giving serious consideration how to prevent or eliminate bugs from their software.  The unfortunate and often inevitable result is that bug fix releases have to be done after the initial release, which of course result in added costs to the project and in an inevitable blow to our credibility. 

Because of the tight schedules that most developers face, very often the testing stage of the software development process is reduced, and often cut entirely.  The point I would like to make in this presentation is that there is a way for developers to search for coding errors and bugs while keeping within the time constraints of their projects.  Testing should always be an integral part of the development process along with coding tasks.  Even better and perhaps more appealing to software developers is test automation.  In this presentation, we will see how developers can easily implement test automation for each stage of software development, from unit tests to automated functional and acceptance testing. 

The intended experience level of the audience for this presentation is beginner, chiefly for developers just starting Drupal 8 and who may not yet be aware of the options for creating automated tests for their software.  What I would like to accomplish with this presentation is to inform developers how they can quickly and accurately test their software with free test automation tools in every stage of development.  Beginner or even intermediate developers will walk away knowing exactly which tools they can put to use quickly and easily for fast and accurate testing of their software. 

We will talk about DevOps and the place of testing and test automation, concentrating on the idea that continuous testing is a part of continuous integration.  I will make the point that test automation should be viewed as a kind of software development, one in which the features are already known and have already been approved, and for which there is a small and easy learning curve.  We will also discuss how the creation and execution of tests should be a part of the development project, whether it is done by the coders themselves or by an independent party of testers.  The main point of creating and executing tests should always be to find bugs and not only for the test to pass.

In this presentation we will discuss the following topics:

Test-driven Development
Unit test generation and execution in Drupal 8
Functional test automation tools
Acceptance Test Automation
In conclusion, the main takeaway for beginning and also intermediate Drupal 8 developers is that testing should always be started early, and that free and easy to use test automation tools are available for every stage of the development process, from unit to functional and acceptance tests.  The idea of testing code and applications should always be done in parallel with development in order to find bugs and thereby increase software quality for the End User.