Giới thiệu về Behavior Driven Development (BDD) và Cucumber

Chúng tôi rất vui mừng chia sẻ kiến thức sâu sắc về từ khóa Cucumber la gi để tối ưu hóa nội dung trang web và chiến dịch tiếp thị trực tuyến. Bài viết cung cấp phương pháp tìm kiếm, phân tích và lựa chọn từ khóa phù hợp, cùng với chiến lược và công cụ hữu ích. Hy vọng thông tin này sẽ giúp bạn xây dựng chiến lược thành công và thu hút lưu lượng người dùng. Cảm ơn sự quan tâm và hãy tiếp tục theo dõi blog để cập nhật kiến thức mới nhất.

Trong phần trước tất cả chúng ta đã thảo luận về TDD là gì. Tất cả chúng ta đã nói về kiểu cách TDD là quá trình phát triển tập trung vào kiểm thử , trong đó tất cả chúng ta mở màn viết các test case trước. Điều này giúp tất cả chúng ta theo nhiều cách thức

Bạn Đang Xem: Giới thiệu về Behavior Driven Development (BDD) và Cucumber

  • Tất cả chúng ta sẽ viết code dựa trên các bài test. Điều này sẽ hạn chế rất nhiều lỗi trong quá trình code và tạo ra những sản phẩm có chất lượng sản phẩm và dịch vụ tốt.
  • Với mỗi iteration, tất cả chúng ta đêu phải viết các bài test tương ứng và kết quả là với mỗi iteration , tất cả chúng ta đã sở hữu một bộ test case regression . Điều này sẽ rất hữu ích vì với mỗi iteration , tất cả chúng ta có thể kiên cố rằng các tính năng trước đó đang hoạt động.
  • Các bài test này sẽ đóng vai trò là tài liệu về hành vi ứng dụng (specs) và tài liệu tham khảo cho những iteration khác trong tương lai.

Behavior Driven Development (BDD) là một phần mở rộng của TDD. Giống như ở TDD, trong BDD tất cả chúng ta cũng viết các bài test trước và sau đó mới code ứng dụng để vượt qua những bài test đó. Sự khác biệt chính của BDD so với TDD đây là:

  • Các bài test hay các test case sẽ tiến hành viết bằng ngữ pháp tiếng Anh và mô tả rất đơn giản
  • Các bài test được xem như thể hành vi của ứng dụng dựa trên những nhu cầu thực tế của người dùng với ứng dụng đó
  • Sử dụng các ví dụ để làm rõ các yêu cầu của ứng dụng

Sự khác biệt này dẫn đến sự việc cấp thiết phải có một tiếng nói có thể khái niệm, trong một định dạng dễ hiểu để tất cả chúng ta có thể vận dụng BDD một cách hiệu quả nhất . Và Gherkin là tiếng nói sẽ thao tác làm việc này ( sẽ giới thiệu cụ thể ở bài sau)

  1. Chuyển từ suy nghĩ về “những bài test” sang suy nghĩ về “hành vi của ứng dụng”
  2. Sự hợp tác giữa các bên liên quan Business stakeholders, Business Analysts, QA Team and developers đều phải tham gia vào quá trình phát triển
  3. Tiếng nói phổ quát, dễ dàng để mô tả
  4. Hướng đến những giá trị kinh doanh
  5. Mở rộng Test Driven Development (TDD) bằng phương pháp sử dụng tiếng nói tự nhiên mà các bên liên quan không cần hiểu rõ kỹ thuật vẫn có thể hiểu được nhau
  6. Các framework BDD như Cucumber hoặc JBehave là những người dân đi tiền phong, đóng vai trò là cầu nối giữa các tiếng nói Business và Technical

BDD ngày này rất phổ quát và có thể được sử dụng cho Unit test case và cho cả những UI test case . Các dụng cụ như RSpec (cho Ruby) hoặc trong .NET, người ta thường dùng MSpec hoặc SpecUnit được sử dụng phổ quát cho Unit test theo phương pháp BDD. Ngoài ra, bạn cũng có thể viết specs dựa trên kiểu BDD về tương tác giữa các thành phần UI với nhau . Giả sử bạn đang xây dựng một ứng dụng web, có thể các bạn sẽ sử dụng thư viện tự động hóa hóa trình duyệt như WatiR / WatiN hoặc Selenium và viết kịch bản bằng phương pháp sử dụng một trong các framework vừa mới được đề cập ở trên, hoặc dụng cụ kiểu Given / When / Then như Cucumber ( cho Ruby) hoặc SpecFlow (cho .NET) .

What is Cucumber?

Cucumber là một testing framework tương trợ Behavior Driven Development (BDD). Nó được chấp nhận tất cả chúng ta khái niệm các hành vi ứng dụng tương tự như những câu tiếng Anh có ý nghĩa đơn giản bằng phương pháp sử dụng một ngữ pháp đơn giản được xác định bởi một tiếng nói gọi là Gherkin . Bản thân Cucumber được viết bằng Ruby , nhưng nó có thể được sử dụng để test cho Ruby hoặc các tiếng nói khác gồm có Java , C # và Python.

What is SpecFlow?

SpecFlow được lấy cảm hứng từ Cucumber trong thế giới Ruby on Rails. Cucumber sử dụng tiếng Anh đơn giản ở định dạng Gherkin để diễn đạt yêu cầu của người dùng. Lúc các yêu cầu của người dùng và kỳ vọng của họ được viết, Cucumber được sử dụng để thực hiện các yêu cầu đó. SpecFlow mang khái niệm tương tự vào thế giới .NET và được chấp nhận nhà phát triển thể hiện tính năng này bằng tiếng nói tiếng Anh đơn giản. Nó cũng được chấp nhận viết specs bằng Gherkin để mọi người đều sở hữu thể đọc được.

Giả sử có một yêu cầu từ khách hàng so với website Thương nghiệp điện tử để tăng lợi nhuận bán sản phẩm với việc triển khai một số tính năng mới trên website. Thử thách duy nhất của nhóm phát triển là chuyển đổi ý tưởng của khách hàng thành thứ gì đó thực sự mang lại lợi ích cho khách hàng.

Xem Thêm : Andy OS (Andy Android Emulator) 47.260.1096.26 Phần mềm giả lập Android trên máy tính

Ý tưởng lúc đầu là tuyệt vời. Nhưng thử thách duy nhất ở đây là người đang phát triển ý tưởng không phải là người dân có ý tưởng này. Nếu người dân có ý tưởng là một nhà phát triển phần mềm tài năng, thì tất cả chúng ta có thể gặp may: ý tưởng có thể được chuyển thành phần mềm hoạt động mà không cần thiết phải giảng giải với bất kỳ ai khác. Thời điểm hiện tại ý tưởng đó cần được truyền đạt và phải đi từ Business Owner (Khách hàng) tới các nhóm phát triển hoặc nhiều người khác.

Hồ hết các dự án phần mềm đều thao tác làm việc theo team và có thêm một số người liên quan thao tác làm việc cùng nhau, vì vậy giao tiếp chất lượng sản phẩm và dịch vụ tốt với nhau là rất quan trọng so với thành công của một dự án phần mềm. Như bạn biết, giao tiếp tốt không chỉ là mô tả hùng hồn ý tưởng của bạn cho tất cả những người khác; bạn cũng cần phải thu thập các phản hồi để đảm bảo bạn đã hiểu đúng và team của bạn cũng đang hiểu đúng những gì bạn đang trình bày. Đây là lý do vì sao Agile development team đã học cách thao tác làm việc theo từng bước nhỏ,bằng phương pháp thường xuyên gửi những chức năng ngay lúc nó vừa mới được hoàn thành cho khách hàng để nhận phản hồi thường xuyên từ khách hàng và cũng để trả lời cho vướng mắc “Đây liệu có phải là thứ khách hàng muốn ?” một cách nhanh nhất.

Với sự viện trợ của tiếng nói Gherkin, Cucumber có thể giúp cả team tạo ra một tiếng nói chung mà không cần phân biệt người đó có cần hiểu rõ về kỹ thuật hay là không. Các bài test được viết bằng Cucumber tương tác trực tiếp với code, nhưng các bài test này được viết bằng tiếng nói khá dễ hiểu thường sẽ tiến hành bởi các bên liên quan đến kinh doanh. Cucumber test giúp tất cả chúng ta loại bỏ nhiều hiểu nhầm trong specs để phòng ngừa khả năng tạo ra những đoạn code mơ hồ và không kiên cố.

Example of a Cucumber/SpecFlow/BDD Test:

Tính năng chính của Cucumber là nó tập trung vào Acceptance testing. Nó giúp mọi người trong nhóm dễ dàng đọc và viết các bài test và cũng với tính năng này, nó sẽ giúp đưa business user vào quy trình kiểm thử, giúp team nắm rõ hơn về những nhu cầu của họ so với phần mềm (làm rõ requirement). Ở chỗ này là một vài ví dụ để bạn cũng có thể nắm rõ hơn về kiểu cách viết các bài test dùng BDD

Feature: Sign up Sign up should be quick and friendly.

Scenario: Successful sign up

New users should get a confirmation email and be greeted personally by the site once signed in.

Given I have chosen to sign up

When I sign up with valid details

Xem Thêm : Em On Top Không Phải Trending Là Gì, Em On Top Không Phải Trending ! Big – Có Nghĩa Là Gì, Ý Nghĩa La Gi 2023

Then I should receive a confirmation email

And I should see a personalized greeting message

Scenario: Duplicate email

Where someone tries to create an tài khoản for an email address that already exists.

Given I have chosen to sign up

But I enter an email address that has already registered

Then I should be told that the email is already registered

And I should be offered the option to recover my password

Sau thời điểm xem đoạn code ví dụ ở trên, bất kỳ ai cũng luôn tồn tại thể hiểu được hoạt động của bài test và những gì nó dự kiến làm. Nó mang lại một tác động mạnh mẽ bất thần bằng phương pháp được chấp nhận mọi người hình dung mạng lưới hệ thống trước lúc nó được xây dựng. Bất kỳ business user nào thì cũng sẽ đọc và hiểu bài test và có thể cung cấp cho bạn thông tin phản hồi rằng liệu nó có phản ánh đúng ý tưởng của họ về những gì mạng lưới hệ thống nên làm hay là không và thậm chí là có thể dẫn đến suy nghĩ về các kịch bản khác cũng cần phải được xem xét. Từ đó tất cả chúng ta sẽ làm rõ hơn về những gì khách hàng hoặc business user thật sự muốn ở phần mềm của họ, qua này sẽ dễ dàng dẫn đến một sản phẩm thành công.

Nguồn : https://www.toolsqa.com https://chercher.tech/java/cucumber-bdd

You May Also Like

About the Author: v1000