1. Định nghĩa Cucumber
Last updated
Last updated
Định nghĩa: Cucumber là một công cụ kiểm thử hay là một Testing Framework hỗ trợ Behavior Driven Development (BDD), cho phép người dùng định nghĩa hành vi của hệ thống với tiếng anh có ý nghĩa đơn giản bằng cách sử dụng một ngữ pháp được xác định bởi một ngôn ngữ gọi là Gherkin.
Cucumber hướng tới việc viết test case mà bất kỳ ai cũng có thể hiểu cho dù họ không có chuyên môn kĩ thuật
Một số lý do sau nên dùng Cucumber:
Selenium và Cucumber là 2 công nghệ phổ biến
Hầu hết các dự án sử dụng Selenium để kiểm thử chức năng, họ muốn tích hợp Cucumber vì Cucumber dễ đọc và dễ hiểu luồng ứng dụng hơn.
Cucumber dựa trên phát triển hướng hành vi đóng vai trò là cầu nối giữa: Software Engineer và Business Analyst, Manual Tester và Automation Tester, Manual Tester và Developers.
Trong BDD, người dùng (business analysts – người phân tích nghiệp vụ, product owners – người sỡ hửu sản phẩm) sẽ viết kịch bản (scenarios) hoặc acceptance test (kiểm thử chấp nhận) mô tả hành vi của hệ thống từ quan điểm của khách hàng trước và trong giai đoạn phát triển. Cucumber và BDD giải quyết hạn chế rất hay gặp trong các dự án phần mềm: mỗi người hiểu hệ thống một cách khác nhau
BDD có khả năng tạo ra các kịch bản test dựa trên góc nhìn của bên phát triển cũng như góc nhìn của bên khác hàng. Ngay từ ban đầu, các thành viên dự án sẽ thảo luận để tạo ra các kịch bản trước, sau đó sẽ cài đặt dựa trên kịch bản đó, tất cả kịch bản test gần gũi với ngôn ngữ tiếng Anh, do đó nó đóng luôn vai trò của tài liệu
Sau khi kịch bản test chạy, Cucumber sẽ đọc mã Gherkin từ file feature, sau đó nó sẽ tìm đoạn mã trong file step definition mô tả đúng với hành động trong file feature và thực hiện đoạn code, ở bước chạy code Cucumber có thể kết hợp với các framework khác như TestNG, Selenium, Spring,...
Giúp cho các bên liên quan đến dự án (stakeholders) có thể theo dõi hoạt động test mà không cần kiến thức kĩ thuật chuyên môn
Cucumber tập trung vào trải nghiệm người dùng cuối
Cách viết mã dễ bảo trì và thực hiện
Công cụ hiệu quả cho kiểm thử