Categories

Subscribe Now

* You will receive the latest news and updates on your favorite celebrities!

Automation Series

Tìm hiểu về Behaviour Driven Development – BDD
Automation

Tìm hiểu về Behaviour Driven Development – BDD 

BDD (Behavior Driven Development) là một quá trình phát triển phần mềm dựa trên phương pháp Agile(phát triển phần mềm linh hoạt).

BDD là sự mở rộng của TDD (Test driven development). Thay vì tập trung vào phát triển phần mềm theo hướng kiểm thử, BDD tập trung vào phát triển phần mềm theo hướng hành vi.

Dựa vào requirement các kịch bản test (Scenarios) sẽ được viết trước dưới dạng ngôn ngữ tự nhiên và dễ hiểu nhất sau đó mới thực hiện cài đặt source code đễ pass qua tất cả các stories đó.

Những kịch bản test này được viết dưới dạng các feature file và đòi hỏi sự cộng tác từ tất cả các thành viên tham gia dự án hay stakeholder.

Lợi ích BDD

– Giúp xác định đúng yêu cầu của khách hàng: tài liệu được viết dưới dạng ngôn ngữ tự nhiên, bất kỳ đối tượng nào cũng có thể hiểu được. Khi đọc tài liệu này, khách hàng có thể dễ dàng nhận biết được lập trình viên có hiểu đúng yêu cầu của họ không và có phản hồi kịp thời.

– Là tài liệu sống của dự án: tài liệu này luôn được cập nhật khi có bất kỳ sự thay đổi nào nên tất cả các thành viên sẽ không bị thiếu sót thông tin khi phát triển hệ thống

– Nâng cao chất lượng phần mềm, tạo ra sản phẩm hữu ích: vì phát triển phần mềm theo hướng hành vi nên có thể tập trung vào việc tạo ra sản phẩm đúng với yêu cầu của khách hàng nhưng vẫn hữu ích cho người dùng.

Làm sao để viết tài liệu BDD

BDD được viết dưới dạng plain text language gọi là Gherkin.

(*) Các quy tắc khi viết Gherkin:

– File lưu dưới dạng extension là .feature

– Mỗi một file .feature thường gồm một chức năng duy nhất

– Một chức năng bao gồm nhiều kịch bản khác nhau với danh sách các bước

(**) Cú pháp của Gherkin

Một file feature bằng Gherkin được trình bày dưới dạng như sau:

Feature: Some terse yet descriptive text of what is desired
 
In order to realize a named business value
 
As an explicit system actor
 
I want to gain some beneficial outcome which furthers the goal
 
Background:
 
Given …
 
And …
 
Scenario: Some determinable business situation
 
Given some precondition
 
And some other precondition
 
When some action by the actor
 
And some other action
 
And yet another action
 
Then some testable outcome is achieved
 
And something else we can check happens too
 
Scenario: A different situation
 
...

Feature:

  • Là một đoạn text mô tả ngắn gọn về chức năng thực hiện

Background:

  • Cho phép thêm một số ngữ cảnh cho tất cả các Scenario trong feature
  • Có chứa một số bước được chạy trước mỗi Scenario
  • Có thể hiểu đơn giản giống như điều kiện tiên quyết để thực hiện tất cả các Scenario trong feature
  • Được khai báo sau từ khóa “Feature”

Scenario:

  • Từ khóa bắt đầu trước mỗi kịch bản, tiếp theo là tiêu đề của kịch bản sẽ thực hiện
  • Mỗi kịch bản bao gồm một hoặc nhiều bước

Given:

Mô tả điều kiện tiên quyết để thực hiện 1 Scenario

When:

  • Ý nghĩa: Mô tả các hành động chính (Steps) mà người dùng thực hiện

Then:

  • Mô tả: Mô tả kết quả đầu ra mong muốn của Scenario

And/ But:

  • Ý nghĩa: Thay thế cho các từ khóa Given/ When/ Then để làm cho chương trình mạch lạc hơn

Scenario Outlines:

Examples:

  • Ý nghĩa:
    • Scenario Outlines để gom nhóm các kịch bản có chung các Steps nhưng có nhiều input và output
    • Examples để thực hiện khai báo các giá trị cho các biến trong Scenario Outlines

@tag:

  • Ý nghĩa: Sử dụng @tag để tổ chức, sắp xếp các tính năng và kịch bản

Related posts

Leave a Reply

Required fields are marked *

error: Content is protected !!