Khi xây dựng hệ thống, trƣớc mỗi vòng lặp đội phát triển dự án cùng các bên liên quan phải chuẩn bị các câu chuyện ngƣời dùng để đƣa vào vòng lặp, BDD gọi đó là các tính năng. Mỗi tính năng mô tả các yêu cầu nghiệp vụ của khách hàng theo các khía cạnh nhƣ vai trò, mục đích, các hoạt động chính cần thực hiện trong tính năng để đạt đƣợc mục đích. Tâ ̣p các tính năng của hê ̣ thống vừa làm tài liệu chung cho các bên liên quan, vừa chƣ́a các tiêu chí để kiểm thử chấp nhận để kiểm thử tự động . Behat sử dụng ngôn ngữ Gherkin để đi ̣nh nghĩa tính năng, mỗi tính năng có dạng nhƣ sau [8]:
Feature:Tên tính năng Mô tả tính năng
Tính năng đƣợc viết theo cấu trúc của một câu chuyê ̣n ngƣời dùng đã mô tả ở mục1.3.
As a <User Role>
I want <Action or Goal> So that <Business value>
Ví dụ:
Feature: Contact form As a visitor
I want to contact an email address
So that I need to be able to submit a contact form
Tính năng bắt đầu với từ khóa Feature:, theo sau là tên của tính năng. Các dòng tiếp theo sẽ mô tả mục đích, ngƣời sƣ̉ du ̣ng và các hoạt động cơ bản. Các phần mô tả này chỉ mang tính chất giúp cho ngƣời đọc có thể hiểu tính năng, chúng không có vai trò trong việc kiểm thử chấp nhận. Mỗi tính năng bao gồm một số kịch bản tƣơng ƣ́ng với các trƣờng hợp sƣ̉ du ̣ng và chúng sẽ đƣợc định nghĩa với các bƣớc cụ thể bằng một tập các từ khóa của ngôn ngữ Gherkin.Phần kịch bản đó là các ví dụ cụ thể về hành vi của hệ thống, chúng mô tả các tiêu chí kiểm thƣ̉ chấp nhâ ̣n vàsẽ đƣợc chuyển thành các phƣơng thức kiểm thử ở giai đoa ̣n sau.
Tính năng có thể đƣợc viết bởichính khách hàng hoặc có sự hỗ trợ ngƣời phát triển, nhằm đảm bảo cho các tính năng thể hiện đƣợc mong muốn thực sự của ngƣời sử dụng vào hệ thống đang xây dựng. Đây chính là một yếu tố đảm bảo cho việc kiểm thử chấp nhận hệ thống thành công.