Phát triển theo hướng hành vi - Dưa chuột
Cucumber là một công cụ hỗ trợ các thông số kỹ thuật Có thể thực thi, Tự động hóa kiểm tra và Tài liệu sống.
Phát triển theo hướng hành vi mở rộng dựa trên Đặc điểm kỹ thuật theo ví dụ. Nó cũng chính thức hóa các phương pháp hay nhất về Phát triển theo hướng kiểm tra, đặc biệt là quan điểm làm việc từ bên ngoài vào. Công việc phát triển dựa trên các đặc tả thực thi.
Các key features của các thông số kỹ thuật thực thi như sau:
Các thông số kỹ thuật có thể thực thi là -
Bắt nguồn từ các ví dụ, đại diện cho các hành vi của hệ thống.
Được viết với sự hợp tác của tất cả những người tham gia vào quá trình phát triển, bao gồm cả doanh nghiệp và các bên liên quan.
Dựa trên tiêu chí chấp nhận.
Các bài kiểm tra chấp nhận dựa trên các đặc tả thực thi được tự động hóa.
Một ngôn ngữ phổ biến, được chia sẻ được sử dụng để viết các thông số kỹ thuật thực thi và các bài kiểm tra tự động như vậy -
Thuật ngữ miền cụ thể được sử dụng trong suốt quá trình phát triển.
Tất cả mọi người, bao gồm cả khách hàng và các bên liên quan đều nói về hệ thống, các yêu cầu của hệ thống và việc triển khai hệ thống theo cùng một cách.
Các thuật ngữ tương tự được sử dụng để thảo luận về hệ thống có trong các yêu cầu, tài liệu thiết kế, mã, thử nghiệm, v.v.
Bất kỳ ai cũng có thể đọc và hiểu một yêu cầu và cách tạo ra nhiều yêu cầu hơn.
Các thay đổi có thể được điều chỉnh dễ dàng.
Tài liệu trực tiếp được duy trì.
Cucumber giúp thực hiện quá trình này vì nó liên kết các thông số kỹ thuật thực thi với mã thực tế của hệ thống và các bài kiểm tra chấp nhận tự động.
Cách nó thực hiện điều này thực sự được thiết kế để khách hàng và nhà phát triển làm việc cùng nhau. Khi kiểm tra chấp nhận được thông qua, điều đó có nghĩa là đặc điểm kỹ thuật về hành vi của hệ thống mà nó đại diện đã được thực hiện đúng.
Thử nghiệm chấp nhận dưa chuột điển hình
Hãy xem xét ví dụ sau.
Feature − Sign up
Đăng ký phải nhanh chóng và thân thiện.
Kịch bản - Đăng ký thành công
New người dùng sẽ nhận được một e-mail xác nhận và được chào đón cá nhân.
Given Tôi đã chọn để đăng ký.
When Tôi đăng ký với các chi tiết hợp lệ.
Then Tôi sẽ nhận được một email xác nhận.
And Tôi sẽ thấy một tin nhắn chúc mừng được cá nhân hóa.
Từ ví dụ này, chúng ta có thể thấy rằng -
Kiểm tra chấp nhận đề cập đến Features.
Các tính năng được giải thích bởi Scenarios.
Các tình huống bao gồm Steps.
Đặc tả được viết bằng ngôn ngữ tự nhiên trong một tệp văn bản thuần túy, nhưng nó có thể thực thi được.
Làm việc của dưa chuột
Cucumber là một công cụ dòng lệnh xử lý các tệp văn bản chứa các tính năng tìm kiếm các tình huống có thể được thực thi trên hệ thống của bạn. Hãy để chúng tôi hiểu cách hoạt động của Cucumber.
Nó sử dụng một loạt các quy ước về cách các tệp được đặt tên và vị trí của chúng (các thư mục tương ứng) để giúp bạn dễ dàng bắt đầu.
Cucumber cho phép bạn giữ các thông số kỹ thuật, kiểm tra tự động và tài liệu ở cùng một nơi.
Mỗi kịch bản là một danh sách các bước mô tả các điều kiện trước, hành động và hậu điều kiện của kịch bản; nếu mỗi bước thực hiện mà không có bất kỳ lỗi nào, kịch bản được đánh dấu là đã qua.
Khi kết thúc quá trình chạy, Cucumber sẽ báo cáo có bao nhiêu kịch bản đã vượt qua.
Nếu một cái gì đó không thành công, nó cung cấp thông tin về cái gì không thành công để nhà phát triển có thể tiến bộ.
Trong dưa chuột, Features, Scenariosvà Các bước được viết bằng một Ngôn ngữ được gọi là Gherkin.
Gherkin là tiếng Anh văn bản thuần túy (hoặc một trong hơn 60 ngôn ngữ khác) có cấu trúc. Gherkin rất dễ học và cấu trúc của nó cho phép bạn viết các ví dụ một cách ngắn gọn.
Cucumber thực thi các tệp của bạn có chứa các thông số kỹ thuật thực thi được viết bằng Gherkin.
Cucumber cần các Định nghĩa Bước để dịch Các bước Gherkin văn bản thuần túy thành các hành động sẽ tương tác với hệ thống.
Khi Cucumber thực hiện một bước trong một kịch bản, nó sẽ tìm kiếm một định nghĩa bước phù hợp để thực thi.
Định nghĩa Bước là một đoạn mã nhỏ với một mẫu gắn liền với nó.
Mẫu được sử dụng để liên kết Định nghĩa bước với tất cả các bước phù hợp và mã là những gì Cucumber sẽ thực thi khi nó nhìn thấy một bước Gherkin.
Mỗi bước đi kèm với Định nghĩa bước.
Hầu hết các bước sẽ thu thập thông tin đầu vào và sau đó ủy quyền cho một khuôn khổ dành riêng cho miền ứng dụng của bạn để thực hiện các lệnh gọi trên khuôn khổ của bạn.
Cucumber hỗ trợ hơn một chục nền tảng phần mềm khác nhau. Bạn có thể chọn cách triển khai Cucumber phù hợp với mình. Mọi triển khai Cucumber đều cung cấp chức năng tổng thể giống nhau và chúng cũng có quy trình cài đặt riêng và chức năng dành riêng cho nền tảng.
Lập bản đồ các bước và định nghĩa bước
Chìa khóa của Cucumber là ánh xạ giữa các bước và định nghĩa bước.
Triển khai dưa chuột
Dưới đây là các triển khai Cucumber.
|
Ruby / JRuby |
|
JRuby (sử dụng Cucumber-JVM) |
|
Java |
|
Groovy |
|
.NET (sử dụng SpecFlow) |
|
JavaScript |
|
JavaScript (sử dụng Cucumber-JVM và Rhino) |
|
Áo choàng |
|
Gosu |
|
Lua |
|
PHP (sử dụng Behat) |
|
Jython |
|
C ++ |
|
Tcl |
Tích hợp khung
Dưới đây là các triển khai Framework.
|
Viên ngọc trên tay vịn |
|
Selen |
|
PicoContainer |
|
Khung mùa xuân |
|
Watir |