Phát triển theo hướng hành vi - Giới thiệu
Phát triển theo hướng hành vi (BDD) là một quy trình phát triển phần mềm ban đầu xuất hiện từ Phát triển theo hướng kiểm tra (TDD).
Theo Dan North, người chịu trách nhiệm về sự phát triển của BDD, “BDD đang sử dụng các ví dụ ở nhiều cấp độ để tạo ra sự hiểu biết chung và sự không chắc chắn bề mặt để cung cấp phần mềm quan trọng.”
BDD sử dụng các ví dụ để minh họa hoạt động của hệ thống được viết bằng ngôn ngữ dễ đọc và dễ hiểu cho mọi người tham gia vào quá trình phát triển. Những ví dụ này bao gồm -
Được chuyển đổi thành thông số kỹ thuật thực thi.
Được sử dụng như các bài kiểm tra chấp nhận.
BDD - Các tính năng chính
Phát triển theo hướng hành vi tập trung vào -
Cung cấp quy trình dùng chung và các công cụ dùng chung thúc đẩy giao tiếp với các nhà phát triển phần mềm, nhà phân tích kinh doanh và các bên liên quan để hợp tác phát triển phần mềm, nhằm mục đích cung cấp sản phẩm có giá trị kinh doanh.
Hệ thống nên làm gì và không nên thực hiện như thế nào.
Cung cấp khả năng đọc và khả năng hiển thị tốt hơn.
Xác minh không chỉ hoạt động của phần mềm mà nó còn đáp ứng mong đợi của khách hàng.
Nguồn gốc của BDD
Chi phí để sửa chữa một khiếm khuyết tăng lên gấp nhiều lần nếu lỗi không được phát hiện đúng lúc và được sửa ngay khi nó được phát hiện. Hãy xem xét ví dụ sau.
Điều này cho thấy rằng trừ khi các yêu cầu được đạt được một cách chính xác, sẽ rất tốn kém để sửa chữa các khuyết tật do hiểu sai các yêu cầu ở giai đoạn sau. Hơn nữa, sản phẩm cuối cùng có thể không đáp ứng được mong đợi của khách hàng.
Sự cần thiết của giờ là một cách tiếp cận phát triển -
Là dựa trên các yêu cầu.
Tập trung vào các yêu cầu trong suốt quá trình phát triển.
Đảm bảo rằng các yêu cầu được đáp ứng.
Một phương pháp phát triển có thể đáp ứng các yêu cầu nêu trên là BDD. Do đó, phát triển theo hướng hành vi -
Xuất phát các ví dụ về các hành vi mong đợi khác nhau của hệ thống.
Cho phép viết các ví dụ bằng ngôn ngữ sử dụng các thuật ngữ miền doanh nghiệp để đảm bảo mọi người tham gia vào quá trình phát triển bao gồm cả khách hàng dễ hiểu.
Thỉnh thoảng nhận được các ví dụ được phê duyệt với khách hàng bằng các cuộc trò chuyện.
Tập trung vào các yêu cầu của khách hàng (ví dụ) trong suốt quá trình phát triển.
Sử dụng các ví dụ làm kiểm tra chấp nhận.
Thực hành BDD
Hai thực hành chính của BDD là -
Đặc điểm kỹ thuật theo ví dụ (SbE)
Phát triển theo hướng kiểm tra (TDD)
Đặc điểm kỹ thuật theo ví dụ
Đặc tả theo Ví dụ (SbE) sử dụng các ví dụ trong các cuộc hội thoại để minh họa các quy tắc nghiệp vụ và hành vi của phần mềm sẽ được xây dựng.
Đặc tả theo Ví dụ cho phép chủ sở hữu sản phẩm, nhà phân tích kinh doanh, người kiểm tra và nhà phát triển loại bỏ những hiểu lầm phổ biến về các yêu cầu kinh doanh.
Hướng phát triển thử nghiệm
Phát triển theo hướng kiểm tra, trong bối cảnh của BDD, biến các ví dụ thành các thông số kỹ thuật có thể đọc và thực thi được.
Các nhà phát triển sử dụng các thông số kỹ thuật này như một hướng dẫn để triển khai các bước tăng thêm của chức năng mới. Điều này, dẫn đến một cơ sở mã gọn nhẹ và một bộ các thử nghiệm hồi quy tự động giúp chi phí bảo trì thấp trong suốt vòng đời của phần mềm.
BDD nhanh nhẹn
Trong phát triển phần mềm Agile, phương pháp BDD được sử dụng để hiểu chung về các thông số kỹ thuật đang chờ xử lý.
Các bước sau được thực thi trong Agile BDD:
Các nhà phát triển và chủ sở hữu sản phẩm cộng tác viết các thông số kỹ thuật đang chờ xử lý trong một trình soạn thảo văn bản thuần túy.
Chủ sở hữu sản phẩm chỉ định các hành vi mà họ mong đợi từ hệ thống.
Các nhà phát triển
Điền vào các thông số kỹ thuật với các chi tiết hành vi này.
Đặt câu hỏi dựa trên sự hiểu biết của họ về hệ thống.
Các hành vi hệ thống hiện tại được xem xét để xem liệu tính năng mới có phá vỡ bất kỳ tính năng hiện có nào hay không.
Tuyên ngôn Agile và BDD
Tuyên ngôn Agile nêu rõ những điều sau:
Chúng tôi đang khám phá ra những cách tốt hơn để phát triển phần mềm bằng cách thực hiện nó và giúp những người khác làm điều đó. Thông qua công việc này, chúng tôi đã hiểu ra giá trị -
Individuals and interactions - qua các quy trình và công cụ
Working software - trên toàn bộ tài liệu
Customer collaboration - đàm phán hợp đồng
Responding to change - qua một kế hoạch
Có nghĩa là, trong khi có giá trị trong các mục ở bên phải, chúng ta đánh giá các mục ở bên trái nhiều hơn.
BDD tự phù hợp với tuyên ngôn Agile như sau:
Tuyên ngôn Agile | Căn chỉnh BDD |
---|---|
Các cá nhân và tương tác qua các quy trình và công cụ. | BDD là về các cuộc trò chuyện. |
Phần mềm làm việc trên tài liệu toàn diện. | BDD tập trung vào việc giúp dễ dàng tạo ra phần mềm có giá trị kinh doanh. |
Hợp tác với khách hàng trong quá trình đàm phán hợp đồng. | BDD tập trung vào các kịch bản dựa trên ý tưởng với sự trao đổi liên tục với khách hàng khi quá trình phát triển tiến triển. Nó không dựa trên bất kỳ lời hứa nào. |
Đáp ứng sự thay đổi so với việc tuân theo một kế hoạch. | BDD tập trung vào giao tiếp và cộng tác liên tục để tạo điều kiện thuận lợi cho việc hấp thụ các thay đổi. |