Asking whether software testing is a necessity is like asking whether there is a perfect software application. Deployments that are poorly tested either don’t render on a user’s device at all, or worse, leave you and any federal databases at your disposal open to attack.
The solution lies in Behat, a helpful Open Source framework designed for behavioral testing. Behavioral testing mimics user behavior (such as clicks and acceptance testing) in order to see what’s really going on within an application. Behat scripts allow plain English commands to dictate behavior.
The implications for your organization are massive.
Plain English Means Hands-On
Behat uses a human-readable language that is specially formatted. An example scenario might be something like:
Scenario - Eat 2 of 8 slices of cake:
- Given that I have 8 slices of cake
- When I eat 2 slices of cake
- Then I should have 6 slices of cake
Congratulations, you've written your first Behat test Script!
Think about how you currently write tests. If you’re like most IT managers, you have to create the ideal testing environment, write documentation, then have meetings to determine which tests are most meaningful before testing even starts. That’s three steps gone once you switch to using Behat scripting, which condense testing into a series of steps that define success or failure.
Behat scripts standardize the various testing requirements for a federal website. As a federal IT manager, your “client” could be an internal stakeholder, policy analyst or a member of the public with little knowledge of web development. With Behat you and the client can create documentation that outlines desired requirements in plain English language, using actual examples of intended user behavior.
In order to document requirements, we will need a feature and a scenario.
Basic Qualities of a Feature
A feature defines what the application does:
- It must be a human-readable text file
- Use .feature extension
- Must contain a [benefit], [role] and [title]
Features look like this at a basic level:
- Title - [Role] performs [action]
- Story - For the user to access a [benefit], user must be a [role from title], user needs to [action from title]
Basic Qualities of a Scenario
We’ve touched briefly on scenarios, but they are the heart of testing in Behat. It’s important to recognize what they do and how they work.
A scenario describes what a successful action looks like using steps (outlined below). It also helps define what a certain level of access does not provide, such as eating a slice of cake unless there are no slices left or you have already eaten the cake you were provided.
- GIVEN - This step provides the context for a scenario
- WHEN - Using naming conventions that mirror the title, the “When” step defines all of the key actions the role must take
- THEN - This step tells us the intended result
Some Basic Benefits
Behat condenses testing time by reducing the number of people and documents necessary to complete a perfect test. Outlining requirements prior to Behat would have taken several hours or days depending on the complexity of a website – and this does not include the time to re-organize requirements from various excel sheets and other documents that may be floating around.
Behat scripts are simple to read and understand - and it’s easy to pass along and get approval from anyone in your rank and file. It creates a standardized language of your website, so every decision maker understands what’s at stake and the intended outcomes. As opposed to writing a document outlining every potential interaction, scenarios allow you to write a single document that defines what success and failure look like.
Behat and Drupal play nicely together thanks to an extension that allows for Behat integration. Supported on Drupal 7 and 8, the Behat extension provides a framework for the kinds of testing you might need managing a federal website. While Behat for Drupal doesn’t have the concept of “cake” built-in, you can teach Behat to understand the cake scenario above with your own custom extensions.
Better, Faster, Lower Price Point
Federal web development must always balance costs with requirements, while serving as an important public-facing role in modern society. Behat allows federal IT managers to more easily write and conduct tests, and report on results that are meaningful and actionable - resulting in cost savings and improved software quality (fewer bugs). Using the proper methodologies and tools, all hands are given greater access to testing tools while delivering meaningful results that define success.