2012-07-05 43 views
15

Một ngày khác, tôi đã cho một trong những người thử nghiệm tại công ty của tôi một số thử nghiệm tôi đã viết bằng dưa chuột (2 tính năng, 5 kịch bản). Sau đó, anh ấy hỏi tôi rằng tôi không thể trả lời:Dưa chuột/Capybara vs Selenium?

Làm thế nào điều này tốt hơn selen hoặc bất kỳ công cụ ghi thử chức năng nào khác?

Tôi hiểu rằng dưa chuột là một công nghệ khác và được đặt ở mức thử nghiệm khác, nhưng tôi không hiểu tại sao tôi nên viết và duy trì kiểm tra Cucumber/Capybara.

Ai đó có thể cho tôi giải thích hợp lý để sử dụng Cucumber/Capybara thay vì chỉ Selenium?

Trả lời

14

Câu hỏi này là đường biên giới hỏi ý kiến. Câu hỏi của bạn thực sự đọc cho tôi, "Công cụ nào phù hợp với tôi?" Tôi nói điều này bởi vì bạn không đưa ra lý do tại sao bạn chọn Cucumber và Capybara. Tôi tin rằng để trả lời câu hỏi của người kiểm tra đó, trước tiên bạn cần phải trả lời thêm một vài câu hỏi:

1.) Bạn sẽ viết những giai đoạn nào trong quá trình này?

Dưa chuột có thể không phải là lựa chọn phù hợp cho các bài kiểm tra đơn vị, tùy thuộc vào ngôn ngữ bạn đang sử dụng. Nhưng nó có thể được sử dụng cho bất kỳ mức độ thử nghiệm nào, từ đơn vị đến tích hợp đến người dùng cuối.

2.) Ai sẽ duy trì thử nghiệm của bạn? Bạn? Các nhà phát triển khác? Testers? Các nhà phân tích kinh doanh? Quản lý dự án?

Tự động kiểm tra phải được duy trì và biết ai sẽ làm điều đó có thể giúp bạn quyết định công cụ - vì một số sẽ quá kỹ thuật đối với một số người dùng nhất định.

3.) Ai sẽ xác định các thử nghiệm mới?

Dưa chuột được sử dụng hợp tác giữa phát triển, QA và chủ sở hữu doanh nghiệp.Nó là công cụ hoàn hảo để tận dụng kiến ​​thức của mọi người vào quy trình thử nghiệm tự động. Nó đòi hỏi sự phát triển của một ngôn ngữ phổ biến có hiệu lực tuy nhiên. Bạn có thể đọc lên trên trang James Shore's Art of Agile.

Khi bạn đã trả lời các câu hỏi này, bạn đã sẵn sàng giải quyết câu hỏi của người kiểm tra. Tuy nhiên, có một vài điểm cần ghi nhớ khi so sánh các công cụ ghi âm (chẳng hạn như Selenium IDE, HP Quick Test Pro, IBM Rational Functional Tester) so với các công cụ phát triển (nUnit, jUnit, RSpec, Selenium webdriver, Capybara) là chúng được nhắm mục tiêu đến các đối tượng khác nhau. Họ cũng có những chiếc kẽ và mấu chốt khác nhau.

Công cụ ghi dễ dàng cho bất kỳ ai sử dụng, nhưng các tập lệnh mà chúng tạo ra rất dễ vỡ. Họ phá vỡ dễ dàng và yêu cầu bảo trì nhiều hơn. Chúng rất tuyệt vời cho thử nghiệm tự động một lần, nơi bạn cần hoàn thành công việc một cách nhanh chóng và có nhân lực phi kỹ thuật.

Công cụ phát triển có đường cong học tập lớn hơn và yêu cầu trải nghiệm lập trình (hoặc ít nhất là tập lệnh). Các kịch bản nói chung mạnh mẽ hơn, nhưng đòi hỏi nhiều kiến ​​thức kỹ thuật hơn để duy trì. Chúng là một giải pháp tốt khi bạn muốn lặp lại và có kế hoạch sử dụng thử nghiệm trong một thời gian dài.

Tôi đề nghị bạn đọc The Cucumber Book. Nó sẽ thực sự giúp bạn quyết định xem Cucumber có phải là lựa chọn phù hợp với bạn hay không.

+0

Đủ công bằng. Nhưng điều đó cũng giả định rằng bạn có thể làm cả hai. Là một kỹ sư QA, tôi không kiểm soát được các thực hành mã hóa của các nhà phát triển. Tuy nhiên, tôi có thể tận dụng Cucumber hiệu quả hơn các bài kiểm tra Đơn vị để thúc đẩy sự thay đổi. –

+0

Thực ra, câu hỏi đặt ra là: "Tại sao tôi lại dùng dưa leo?" – treaz

+0

@treaz Cucumber "có vai trò của tài liệu, một cơ chế để cộng tác với các bên liên quan và yêu cầu lưu trữ" –

7

Dưa chuột không chỉ là công cụ kiểm tra. Bên cạnh việc thử nghiệm các tính năng của Cucumber cũng có vai trò của tài liệu, một cơ chế để cộng tác với các bên liên quan và lưu trữ các yêu cầu (nếu bạn viết chúng trong declarative style).

Bạn không phải sử dụng Cucumber với Capybara. Bạn có thể sử dụng selen trực tiếp. Nhưng Capybara có cùng API cấp cao cho tất cả supporting drivers. Nó cao cấp hơn Selenium và cho phép viết test nhanh hơn một chút. Bạn không phải thay đổi mã khi bạn chuyển từ trình điều khiển này sang trình điều khiển khác.

Các thử nghiệm được tạo bằng công cụ ghi thử nghiệm thường tồi tệ hơn nhiều. Selenium IDE có thể tạo ra mã lập trình hợp lệ nhưng nó không đẹp và do đó rất khó duy trì.

0

Dưa chuột là công cụ được sử dụng để làm cho các bài kiểm tra có thể đọc được cho người dùng doanh nghiệp. Nó bao gồm các câu tiếng Anh đơn giản được kết hợp bằng cách sử dụng regex để bước Capybara của bạn.

Sử dụng công cụ ghi sẽ không làm bạn tốt trong thời gian dài. Họ đã có nghĩa là cho người mới bắt đầu và không phải là mạnh mẽ vì vậy tôi khuyên bạn nên đi thẳng vào mã hóa.

Bạn có thể sử dụng riêng Selenium cho các bài kiểm tra, nhưng tôi khuyên bạn nên tiếp tục sử dụng Cucumber cho mục đích tài liệu, nếu bạn thấy chúng hữu ích và dễ làm việc. Sau khi tất cả, dưa chuột có thể sử dụng Capybara hoặc trình điều khiển web Selenium.

+2

Người dùng doanh nghiệp có thực sự quan tâm đến các bài kiểm tra đọc/viết không? Theo kinh nghiệm của tôi, họ chỉ muốn mọi thứ hoạt động ... Công cụ ghi âm dành cho người mới bắt đầu -> Tôi có ai bận tâm với việc học dưa chuột/capybara nếu có công cụ dễ sử dụng hơn không? – treaz

+0

Yup, tôi đồng ý rằng hầu hết nếu không phải tất cả người dùng doanh nghiệp thậm chí không xem các tệp tính năng, nhưng đó là những gì dưa chuột dành cho. Trong khi công cụ ghi âm tuyệt vời cho người mới, việc học một ngôn ngữ cấp cao như capybara cực kỳ dễ dàng, bạn có thể đi lại chỉ với một số phương pháp, vậy tại sao không? – maru

0

Id selen là tốt để thử nghiệm các tính năng có phần lớn các yếu tố hình ảnh (liên kết, văn bản và v.v.). Nhưng các ứng dụng web thường có các tính năng không đại diện cho chính nó như là các yếu tố hình ảnh, như gửi email, xếp hàng công việc, giao tiếp với các dịch vụ của bên thứ 3 và v.v. Ví dụ: bạn có thể kiểm tra xem có thông báo 'Email đã được gửi' hay không gửi biểu mẫu. Nhưng nó không thực sự cho bạn biết nếu một email thực sự được gửi và do đó bạn không thực sự thử nghiệm toàn bộ tính năng ở đây.

Các vấn đề liên quan