Phát triển theo hướng hành vi - Công cụ
Các nhóm phát triển thường có quan niệm sai lầm rằng BDD là một khung công cụ. Trên thực tế, BDD là một cách tiếp cận phát triển hơn là một khung công cụ. Tuy nhiên, như trong trường hợp của các cách tiếp cận phát triển khác, cũng có các công cụ cho BDD.
Một số Công cụ BDD đang được sử dụng cho các nền tảng và ngôn ngữ lập trình khác nhau. Họ là -
Dưa chuột (Ruby framework)
SpecFlow (.NET framework)
Behave (khung Python)
JBehave (khung công tác Java)
JBehave Web (khung công tác Java với tích hợp Selenium)
Rau diếp (khung Python)
Concordion (khung Java)
Behat (khung PHP)
Kahlan (khung PHP)
DaSpec (khung JavaScript)
Jasmine (khung JavaScript)
Cucumber-js (khung JavaScript)
Squish GUI Tester (Công cụ kiểm tra BDD GUI cho JavaScript, Python, Perl, Ruby và Tcl)
Spock (khung Groovy)
Yadda (hỗ trợ ngôn ngữ Gherkin cho các khung công tác như Jasmine (khung JavaScript))
Quả dưa chuột
Cucumber là một công cụ miễn phí cho các đặc tả thực thi được sử dụng trên toàn cầu. Cucumber cho phép nhóm phát triển phần mềm mô tả cách phần mềm hoạt động dưới dạng văn bản thuần túy. Văn bản được viết bằng ngôn ngữ dành riêng cho miền có thể đọc được và dùng làm tài liệu, kiểm tra tự động và hỗ trợ phát triển, tất cả đều được tập hợp thành một định dạng. Bạn có thể sử dụng hơn bốn mươi ngôn ngữ nói khác nhau (tiếng Anh, tiếng Trung, v.v.) với Cucumber.
Dưa chuột - Các tính năng chính
Các tính năng chính của Cucumber như sau:
Dưa chuột có thể được sử dụng cho Thông số kỹ thuật thực thi, Tự động hóa kiểm tra và Tài liệu sống.
Cucumber hoạt động với Ruby, Java, NET, Flex hoặc các ứng dụng web được viết bằng bất kỳ ngôn ngữ nào.
Cucumber hỗ trợ nhiều Thử nghiệm ngắn gọn hơn trong Bảng - tương tự như những gì FIT làm.
Cucumber đã cách mạng hóa Vòng đời phát triển phần mềm bằng cách kết hợp các yêu cầu, kiểm tra tự động và tài liệu thành một thể thống nhất: thông số kỹ thuật thực thi văn bản thuần túy xác thực phần mềm.
SpecFlow
SpecFlow là một Công cụ BDD cho Nền tảng .NET. SpecFlow là một dự án mã nguồn mở. Mã nguồn được lưu trữ trên GitHub.
SpecFlow sử dụng Cú pháp Gherkin cho Các tính năng. Định dạng Gherkin được giới thiệu bởi Cucumber và cũng được sử dụng bởi các công cụ khác. Ngôn ngữ Gherkin được duy trì như một dự án trên GitHub -https://github.com/cucumber/gherkin
Hành xử
Behave được sử dụng cho khung Python.
Behave hoạt động với ba loại tệp được lưu trữ trong thư mục được gọi là “tính năng” -
làm nổi bật các tệp với các tình huống hành vi của bạn trong đó.
Thư mục "bước" với triển khai bước Python cho các tình huống.
Tùy chọn, một số điều khiển môi trường (mã chạy trước và sau các bước, kịch bản, tính năng hoặc toàn bộ trận đấu quay).
Tính năng Behave được viết bằng Gherkin (với một số sửa đổi) và được đặt tên là “name.feature”.
Các thẻ gắn với một tính năng và kịch bản có sẵn trong các hàm môi trường thông qua đối tượng “tính năng” hoặc “kịch bản” được chuyển cho chúng. Trên các đối tượng đó có một thuộc tính được gọi là “thẻ” là danh sách các tên thẻ được đính kèm, theo thứ tự chúng được tìm thấy trong tệp tính năng.
Các sửa đổi đối với Tiêu chuẩn Gherkin -
Behave có thể phân tích cú pháp các tệp Gherkin tiêu chuẩn và mở rộng Gherkin để cho phép các từ khóa bước viết thường vì chúng đôi khi có thể cho phép các thông số kỹ thuật của tính năng dễ đọc hơn
Rau diếp
Xà lách là một công cụ BDD rất đơn giản dựa trên Dưa chuột. Nó có thể thực thi các mô tả chức năng dạng văn bản thuần túy như các bài kiểm tra tự động cho các dự án Python. Xà lách nhắm đến các nhiệm vụ phổ biến nhất trên BDD.
Concordion
Concordion là một công cụ mã nguồn mở để tự động hóa Đặc tả bằng Ví dụ cho Java Framework.
Trong khi các tính năng cốt lõi rất đơn giản, API khung mở rộng mạnh mẽ cho phép bạn thêm chức năng, chẳng hạn như sử dụng bảng tính Excel làm thông số kỹ thuật, thêm ảnh chụp màn hình vào đầu ra, hiển thị thông tin ghi nhật ký, v.v.
Concordion cho phép bạn viết các thông số kỹ thuật bằng ngôn ngữ bình thường bằng cách sử dụng các đoạn văn, bảng và dấu câu thích hợp và Ngôn ngữ có cấu trúc sử dụng Given / When / Then là không cần thiết.
Concordion đã được chuyển sang các ngôn ngữ khác bao gồm -
C # (Concordion.NET)
Python (PyConcordion)
Ruby (Ruby-Concordion)