Get in touch
or send us a question?
CONTACT

Automated testing with Cucumber (Phần 1) – Khái quát sơ lược về Cucumber

Đặt vấn đề

Để đảm bảo ứng dụng web luôn hoạt động trên mọi môi trường là một phần thiết yếu của vòng đời phát triển ứng dụng Web. Theo truyền thống, các nhà phát triển thực hiện kiểm thử hồi quy để có thể đảm bảo ứng dụng có thể tương thích với nhiều trình duyệt web, nhưng điều này gây tốn kém về thời gian và nhân lực. Một cách tiếp cận khác, là xây dựng bộ kiểm thử chạy tự động để có thể phát hiện sớm các vấn đề và được phản hồi nhanh chóng.

Bài viết này giúp các bạn có thể hiểu rõ hơn về Cucumber, những lợi ích khi sử dụng Selenium với Cucumber để kiểm thử tự động.

Cucumber là gì

Cucumber là một công cụ kiểm thử tự động dựa trên việc thực thi các functions được mô tả dướng dạng plain-text, để hỗ trợ cho việc viết Behavior Driven Development(BDD). Nói theo cách khác Cucumber là công cụ phần mềm được sử dụng bởi tester để thực hiện các trường hợp kiểm thử kiểm tra hành vi của phần mềm.

Ban đầu Cucumber chỉ dành riêng cho Ruby nhưng hiện nay đã hỗ trợ nhiều ngôn ngữ lập trình khác nhau như: PHP, Java, JavaScript, C# và Python.

Ở Cucumber testing, các trường hợp kiểm thử được viết dưới dạng văn bản theo ngôn ngữ tự nhiên, ai đọc cũng có thể hiểu mà không cần bất kì kiến thức kĩ thuật nào. Ngôn ngữ này được gọi là ngôn ngữ Gherkin.

Cách Cucumber hoạt động

Cucumber test cases được viết song song với quá trình phát triển phẩn mềm. Các testcase này được gọi là steps trong ngôn ngữ Gherkin.

  • Đầu tiên Cucumber đọc các steps được viết bằng ngôn ngữ Gherkin trong feature file.
  • Sau đó, nó tìm kiếm steps này trong step definition file( sẽ định nghĩa cách thức hoạt động và assert các kết quả thu được để kiểm tra các step có hoạt động một cách chính xác hay không.) . Nếu trùng khớp thì sẽ thực hiện chạy testcase và cung cấp kết quả pass/fail sau khi chạy xong.

Ngoài ra Cucumber hỗ trợ một số các phương thức helper điển hình như hooks cho phép chúng ta có thể thực các công việc nhất định tại một thời điểm thực thi các test case như trước khi bắt đầu một Scenario hay sau khi kết thúc một Scenario, ..

Các công cụ phần được Cucumber hỗ trợ

Cucumber hỗ trợ hầu hết các nền tảng phần mềm phổ biến hiện nay, và đó là lý do nó được ưa chuộng hơn so với các công cụ như: JDave, Easyb, JBehave,…Dưới đây là một số các công cụ hỗ trợ:

  • Ruby on Rails
  • Selenium
  • PicoContainer
  • Spring Framework
  • Watir

Lợi ích khi sử dụng Cucumber

  • 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.
  • Tập trung vào trải nghiệm của người dùng cuối.
  • Cho phép tester dễ dàng tái sử dụng lại code trong các trường hợp kiểm thử.
  • Hỗ trợ hầu hết tất cả các ngôn ngữ phổ biến khác nhau như Java.net, JavaScript Ruby, PHP, v.v.
  • Dễ cài đặt và sử dụng.

So sánh Cucumber và Selenium

CucumberSeleniumQTP
Công cụ hỗ trợ Behaviour driven development BDDCông cụ hỗ trợ Functional and Performance testing( Selenium Grid)Công cụ hỗ trợ Functional and Performance testing
Miễn phíMiễn phíMất phí
Hỗ trợ nhiều ngôn ngữ như: Java, Scala, Groovy, Rub, JavaScript,…Hỗ trợ Java, .Net, RubyChỉ hỗ trợ VB script
Có sự tham gia của PO/BA, Deverloper, TesterChỉ có sự tham gia của testerChỉ có sự tham gia của tester
Để test ứng dụng Web , AppĐể test ứng dụng WebĐể test ứng dụng Web, Desktop, và bất kì ứng dụng client-server
Ít tin cậy hơn so với SeleniumĐáng tin cậyĐáng tin cậy
Plugin hoạt động nhanhPlugin hoạt động chậm hơn CucumberPlugin chậm hơn Selenium

Trên đây là một số khái niệm cơ bản về Cucumber. Sau bài viết này, mong có thể giúp các bạn có cái nhìn khái quát về Cucumber: Cucumber là gì, cách thức hoạt động ra sao, ưu nhược điểm của nó.

Tài liệu tham khảo:

https://viblo.asia/p/automated-testing-with-cucumber-phan-1-khai-quat-so-luoc-ve-cucumber-Do7546AWZM6