BDD là gì? Tìm hiểu những thông tin tổng quan về BDD
Trong quá trình làm việc với phần mềm, bạn có thể bắt gặp khái niệm BDD. Nếu bạn chưa biết BDD là gì, nguồn gốc, ưu nhược điểm của nó, bài viết dưới đây Bizfly Cloud sẽ giúp bạn giải đáp các thắc mắc trên.
BDD là gì?
BDD hay còn được gọi là 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 phát triển phần mềm linh hoạt (phương pháp Agile). BDD là sự mở rộng của TDD, thay vì tập trung vào phát triển phần mềm theo hướng kiểm thử, BDD lại tập trung vào phát triển phần mềm theo hướng hành vi. Quá trình này dựa vào requirement (yêu cầu) các kịch bản test mới được viết trước dưới dạng ngôn ngữ tự nhiên và dễ hiểu nhất. Sau đó nó thực hiện cài đặt source code để pass qua tất cả các stories. Thông thường, các kịch bản test này được viết dưới dạng các feature file.
BDD nhấn mạnh tầm quan trọng của ngôn ngữ phổ biến, ngôn ngữ tham khảo chung như DSL (ngôn ngữ đặc tả). Trong đó, DSL cần được xác định rõ ràng và trong giai đoạn đầu của vòng đời phát triển, nó phải có sự đồng ý của tất cả thành viên. DSL cho phép giao tiếp nghiệp vụ của dự án một cách dễ dàng, đơn giản và đủ mạnh để hỗ trợ thảo luận giữa tất cả các loại nhân sự trong doanh nghiệp.
Bên cạnh đó, BDD cũng được hỗ trợ rất nhiều các công cụ chuyên dụng để tạo và thực hiện các bộ testing suits (bộ kiểm thử). Các công cụ BDD sẽ thực hiện giống như các kiểm thử tự động nhằm mục đích hợp lý hoá quy trình phát triển cũng tương tự như công cụ kiểm tra tự động được sử dụng trong TDD.
Nguồn gốc của BDD
BDD ra đời từ sự phát triển dựa trên thử nghiệm TDD, phát triển hành vi kết hợp các kỹ thuật và nguyên tắc TDD chung. Trên thực tế, chi phí để khắc phục lỗi sẽ tăng gấp bội nếu không được phát hiện vào đúng thời điểm và khắc phục ngay khi được phát hiện. Nếu các yêu cầu được thu thập chính xác thì sẽ giảm bớt chi phí cho việc sửa chữa do hiểu lầm các yêu cầu ở giai đoạn sau. BDD ra đời giúp giải quyết tất cả các yêu cầu và kỳ vọng của khách hàng:
- Đưa ra các ví dụ về hành vi được mong đợi khác nhau trên hệ thống.
- Cho phép viết các ví dụ bằng ngôn ngữ có sử dụng các thuật ngữ chuyên ngành để đảm bảo tất cả mọi người (bao gồm cả khách hàng) khi tham gia vào việc phát triển đều hiểu được.
- Nhận được ví dụ theo thời gian được phê duyệt với khách hàng bằng các cuộc hội thoại.
- Trong suốt quá trình phát triển, tập trung vào các yêu cầu của khách hàng.
- Sử dụng ví dụ như Acceptance Tests (Kiểm thử chấp nhận).
Ưu, nhược điểm khi dùng BDD
Về ưu điểm, BDD hỗ trợ người dùng:
- Xác định đúng yêu cầu của khách hàng, từ đó giúp lập trình viên đi đúng hướng: Tài liệu dựa theo ngôn ngữ hướng tự nhiên nên bất cứ đối tượng nào cũng có thể hiểu được. Vì vậy, khi đọc các tài liệu này, khách hàng có thể biết được liệu các lập trình viên có đang đáp ứng được kỳ vọng của họ hay không.
- Cung cấp thông tin tới tất cả thành viên: BDD là tài liệu "sống" của các dự án và luôn được cập nhật khi có bất kỳ thay đổi nào. Nhờ đó trong quá trình phát triển dự án, tất cả thành viên đều không bị bỏ lỡ thông tin.
- Giảm bớt case không hợp lý, không thể thực hiện được ngay tại thời điểm này: Trong quá trình viết tài liệu dự án, bạn cần có ít nhất một Developer, một QA, một BA. Vì vậy, trước khi bắt đầu code chức năng có thể thảo luận case nào không thể thực hiện hoặc không hợp lý ở thời điểm hiện tại để giảm bớt.
- Giảm lỗi hồi quy nhờ được trang bị đầy đủ bộ kiểm thử liên tục và kiểm thử mới luôn được bổ sung: Vì ở trạng thái kiểm tra liên tục và giám sát, BDD có thể giúp bạn giảm đi đáng kể lỗi hồi quy.
- Cải thiện giao tiếp trên toàn bộ nhóm hay thậm chí là giữa tổ chức: Do có một cấu trúc chung cho các cụm từ và thuật ngữ khi thảo luận dự án nên sự phụ thuộc vào ngôn ngữ hoặc DSL phổ biến được xác định rõ ràng có thể giúp bạn cải thiện giao tiếp nhóm hiệu quả hơn.
Ngoài các ưu điểm trên, bạn cũng cần chú ý tới các nhược điểm của BDD để cân nhắc khi sử dụng:
- BDD yêu cầu hiểu sâu về số lượng lớn các khái niệm nên các Developers cần hiểu rõ về TDD nếu muốn tiếp cận với BDD.
- Bạn có thể sẽ huỷ hoại BDD nếu cố gắng biến nó thành một kỹ thuật thực hành hoặc kết nối nó với bộ công cụ. Bởi trên thực tế, BDD là một khái niệm nên không thể hoạt động như kỹ thuật thực hành.
- Dựa trên các phản hồi liên tục từ bên ngoài: Việc hỗ trợ, giữ liên lạc với khách hàng và chuyên gia có thể không phải là vấn đề đối với một nhóm. Tuy nhiên, với một số tổ chức, điều này có thể gây ra một số hạn chế và khiến bạn mất nhiều thời gian, công sức để giải quyết các yêu cầu.
Các tính năng chính của BDD
Các tính năng chính của BDD tập trung vào:
- Cung cấp quy trình và các công cụ 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, với 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 cái nhìn trực quan hơn.
- Xác minh hoạt động của phần mềm và xác định liệu phần mềm có đáp ứng mong đợi của khách hàng hay không.
Một số nguyên tắc của phương pháp BDD
Việc xác định các hành vi trong BDD được thực hiện thông qua các user story hay còn được gọi là các kịch bản. Nó gồm một số tiêu đề cơ sở tóm tắt ý định, một phần tường thuật mô tả ai và các yếu tố cần tham gia trong việc đạt được yêu cầu story này. Bên cạnh đó user story còn bao gồm phần kịch bản mô tả một loạt các kịch bản cụ thể khác.
BDD không thực thi bất kỳ cú pháp hoặc định dạng cụ thể nào đối với user story. Tuy nhiên, BDD đề xuất nên chuẩn hóa một định dạng để tuân theo nhằm đảm bảo nhóm của bạn có thể tiếp tục sửa đổi hoặc thảo luận các story một cách dễ dàng. Đồng thời các thành viên trong nhóm cũng có thể tạo ra các story mà không cần làm việc chặt chẽ với nhau.
Trên đây là bài viết cung cấp cho bạn các thông tin cơ bản về BDD là gì, nguyên tắc của phương pháp này. Hy vọng với những chia sẻ từ Bizfly Cloud có thể giúp bạn hiểu thêm về một lĩnh vực công nghệ thú vị. Đồng thời chuẩn bị các kiến thức cần thiết về BDD trong quá trình phát triển các dự án phần mềm lớn và phức tạp.
Bizfly Cloud là nhà cung cấp dịch vụ điện toán đám mây với chi phí thấp, được vận hành bởi VCCorp.
Bizfly Cloud là một trong 4 doanh nghiệp nòng cốt trong "Chiến dịch thúc đẩy chuyển đổi số bằng công nghệ điện toán đám mây Việt Nam" của Bộ TT&TT; đáp ứng đầy đủ toàn bộ tiêu chí, chỉ tiêu kỹ thuật của nền tảng điện toán đám mây phục vụ Chính phủ điện tử/chính quyền điện tử.
Độc giả quan tâm đến các giải pháp của Bizfly Cloud có thể truy cập tại đây.
DÙNG THỬ MIỄN PHÍ và NHẬN ƯU ĐÃI 3 THÁNG tại: Manage.bizflycloud