2008-10-22 32 views
8

Câu hỏi này không phải là về kiểm tra đơn vị. Và nó dành cho một sản phẩm máy tính để bàn.Thử nghiệm tự động của GUI

Đây là về thử nghiệm gui và kiểm tra xem nội dung phù hợp có được nhập vào hộp văn bản bên phải vào đúng thời điểm không.

Một công ty tôi từng làm việc tại WinRunner đã sử dụng (bộ phận khác nhau nên tôi không biết nhiều hơn thế), nhưng bây giờ đã bị HP tắt máy nhưng dường như họ không bận tâm dù bạn ở lại với HP hay đi nơi khác. Bạn không thể đọc về sản phẩm cho đến khi bạn đăng ký, điều này gây phiền toái.

Công cụ này có làm việc với MFC (không thể thương lượng) và các công cụ lý tưởng cũng sẽ ...

  • được tự động.
  • có thể đọc được.
  • tự động làm việc với độ phân giải màn hình khác nhau.
  • có thể 'gián điệp' trên các hộp văn bản tĩnh riêng lẻ, v.v.
  • đủ trực quan để người lập trình không thể tạo tập lệnh.
  • có các công cụ báo cáo, bao gồm cả email của người dùng cá nhân.

Những người dùng SO khác làm gì để thử nghiệm GUI tự động?

Trả lời

7

Chúng tôi sử dụng SAFS framework cho Rational Robot (RRAFS).Cũng có các triển khai SAFS cho WinRunner (WRAFS) và có vẻ như chúng có một triển khai "Thử nghiệm dựa trên hình ảnh" mới mà tôi không quen thuộc.

Khuôn khổ này thực hiện tốt công việc phân tách việc triển khai giao diện người dùng khỏi tập lệnh thử nghiệm. Tôi đã thử nghiệm bốn phiên bản của một ứng dụng web được phát triển bởi hai nhóm khác nhau (một nhóm sử dụng ASP cổ điển, một sử dụng ASP.NET) và tôi chỉ phải thay đổi bản đồ ứng dụng của các đối tượng giao diện người dùng của tôi. thay đổi.

Điều đó nói rằng, ngôn ngữ của khuôn khổ là cồng kềnh và cần phải làm quen với. Nó không phải là rất mạnh mẽ, về cấu trúc ngôn ngữ, nhưng với một số nỗ lực bạn có thể làm bất cứ điều gì bạn cần. Đó là loại giống như "lập trình" trong ngôn ngữ hàng loạt Windows, nhưng đối với các bài kiểm tra;)

Để giải quyết yêu cầu cá nhân của bạn ở trên:

1) Công cụ này có làm việc với MFC (không thể thương lượng). Khuôn khổ SAFS sử dụng công cụ "phát lại bản ghi" của bên thứ 3 để thúc đẩy các thử nghiệm, như Rational Robot hoặc Mercury WinRunner. Nếu công cụ đó có thể tương tác với các ứng dụng MFC thì khung có thể. Tôi không biết làm thế nào "thử nghiệm dựa trên hình ảnh" thực hiện các bài kiểm tra, nhưng tôi đoán nó cũng có thể làm việc với MFC.

2) được tự động. Khung SAFS tích hợp với STAF framework, cho phép bạn tự động thực hiện các thử nghiệm của mình. Tôi có một thử nghiệm bằng chứng về khái niệm sử dụng STAF để khởi động một hình ảnh VM từ một nhóm hình ảnh, cài đặt ứng dụng đang được thử nghiệm, chạy thử nghiệm RRAFS và đặt kết quả trên máy chủ web để người khác nhận được.

3) có thể đọc được. Có, nhưng như đã đề cập, nó không phải là ngôn ngữ lập trình mạnh mẽ nhất. Tôi đã viết một bổ trợ Excel mà người thử nghiệm của chúng tôi sử dụng để viết các bài kiểm tra của họ để đơn giản hóa mọi thứ một chút.

4) tự động làm việc với độ phân giải màn hình khác nhau. Có, vì nó đang tìm kiếm "dưới nắp" ở các đối tượng giao diện người dùng chứ không phải màn hình. Ngoại trừ có thể là "Thử nghiệm hình ảnh dựa trên" tùy chọn ...

5) có thể 'gián điệp' trên hộp văn bản cá nhân tĩnh vv Có, bạn có thể chờ đợi cho một đối tượng giao diện người dùng xuất hiện, disapper , để có giá trị, để thay đổi giá trị, v.v.

6) đủ trực quan để người không lập trình có thể tạo tập lệnh. Với một số khóa đào tạo. Chúng tôi đã thành công hạn chế. Một số người QA có thể viết các bài kiểm tra, một số cuộc đấu tranh.

7) có các công cụ báo cáo, bao gồm email của người dùng cá nhân. Có, sử dụng khung STAF bạn có thể đăng kết quả lên máy chủ web, gửi email, v.v.

2
+0

Đọc điều đề cập đến kiểm tra đơn vị, so sánh trực quan và kiểm tra giao diện người dùng trình duyệt. Điều này là dành cho một sản phẩm máy tính để bàn. –

2

Ứng dụng dành cho máy tính để bàn hoặc web giống nhau có cùng mẫu thử nghiệm ở đây (tôi đã làm việc ở cả hai).

Đặt ít logic nhất có thể trong giao diện người dùng và kiểm tra mọi thứ bên dưới nó. Vì vậy, bạn nói, nhưng nếu tôi muốn kiểm tra điều đó và điều đó xảy ra như thế nào khi một nút được nhấp? Phương thức được gọi khi nút đó được nhấp vào sẽ gọi ra một lớp khác thực sự là suy nghĩ. Bạn có thể nói, nhưng tôi đang sử dụng một số lớp/phương thức tĩnh chỉ có thể tồn tại trong giao diện người dùng của tôi, bao bọc chúng bằng bộ điều hợp và sử dụng giao diện đó để làm cho mã của bạn có thể kiểm tra được.

Các phần của các kiểm tra GUI mà bạn muốn tự động hóa phải được tự động hóa bên dưới giao diện người dùng. Có một số phần của GUI mà bạn không thể tự động hóa. Kiểm tra để đảm bảo mọi thứ "nhìn đúng" hoặc kiểm tra xem bạn có thể thấy các yếu tố nhất định hay không, v.v. Tất cả những gì con người bạn nên làm. Đảm bảo rằng các sự kiện được kích hoạt đúng cách và các giá trị đó được trả về một cách thích hợp từ các đối tượng kinh doanh của bạn, đó là tất cả các bài kiểm tra đơn vị.

Tôi có thể thấy từ câu hỏi của bạn rằng bạn đã khá nhiều quyết định bạn cần một trình kiểm tra GUI tự động, nhưng đó không phải là công cụ phù hợp cho công việc này. Nếu bạn quyết định sử dụng điều đó, bạn đang cố tìm cách tốt nhất để làm điều sai trái.

Nếu bạn nghĩ rằng đây không phải là về thử nghiệm đơn vị bởi vì bạn đang thử nghiệm tương tác GUI, thì tôi có thể đảm bảo bạn không kiểm tra đơn vị đủ gần với giao diện người dùng của mình. Nếu bạn đã có, bạn sẽ cảm thấy như hầu hết những gì bạn muốn được thử nghiệm là thừa.

Nếu bạn không đồng ý với tôi, vui lòng đăng một số lý do và chúng tôi sẽ băm điều này.

+0

upvoted câu trả lời này, nhưng tôi nghĩ đôi khi có ý nghĩa để tự động hóa ở cấp độ GUI. Mặc dù bạn lý tưởng không bao gồm logic ứng dụng trong mã GUI, có lẽ OP đã thừa kế một số mã đã giống như vậy? Rõ ràng, bạn muốn cấu trúc lại nó, nhưng sau đó bạn biết nó hoạt động như thế nào? –

+0

Đó là một ứng dụng di sản MFC lớn. Viết đơn vị kiểm tra cho khoảng ~ 2000 lớp học là gần như không thể. Hiện tại chỉ có một vài hàm có kiểm thử và chúng chỉ vì nó là mã mới. –

+0

câu trả lời này vẫn đổ chuông thật sự –

0

Có nhiều lựa chọn thay thế (nguồn mở) nếu bạn đang thử nghiệm một sản phẩm web. Đối với một sản phẩm dành cho máy tính để bàn, một số công cụ tự động hóa phổ biến dành cho máy tính để bàn GUI phổ biến bên dưới (không theo thứ tự cụ thể). Tôi đã làm việc với tất cả những cá nhân này, và tất cả họ đều hoàn thành công việc. Nếu bạn chọn sử dụng công cụ của nhà cung cấp, hãy lấy POC cho những công cụ bạn đang cân nhắc và đưa ra quyết định dựa trên công cụ nào phù hợp nhất với công ty nói chung. Một công cụ có thể phù hợp hơn với một ứng dụng cụ thể, nhưng có thể có các dự án/ứng dụng khác cần xem xét.

  • QuickTest Pro (kế của HP để WinRunner)
  • Rational Functional Tester (người kế nhiệm của IBM để Robot)
  • TestPartner
4

Rất nhiều câu trả lời tốt ở đây, nhưng tôi muốn giải quyết tuyên bố mục tiêu này , cụ thể:

  • đủ trực quan để người không lập trình có thể tạo tập lệnh ts

Tôi có thể hiểu tại sao bạn muốn điều này, nhưng khó hơn bạn nghĩ. Mặc dù bạn có thể tìm thấy bất kỳ số lượng công cụ nào trên trang web mà sẽ yêu cầu yêu cầu để viết kịch bản dễ dàng, trong thực tế, bạn sẽ cần ít nhất một số người trong nhóm tự động của bạn hiểu lập trình. Việc viết các kịch bản hợp lý mạnh mẽ sẽ liên quan đến một hoặc nhiều vòng lặp, nếu/sau đó/khác và các cuộc gọi chương trình con. Không phải loại điều mà những người không lập trình sẽ tìm thấy trực quan.

Đặc biệt cảnh giác với ý tưởng rằng bạn có thể "ghi" một người bằng công cụ, sau đó phát lại để thử nghiệm. Đó là loại "tự động hóa" thường rất giòn mà bạn sẽ kết thúc việc sửa đổi hoặc ghi lại kịch bản cho gần như mọi thay đổi trong phần mềm.

+0

Tôi nhớ rằng những thay đổi nhỏ đối với giao diện sẽ không ngăn các tập lệnh chạy trong WinRunner.WinRunner biết nút bấm nó sẽ bấm - có thể là một số loại 'Spy ++' - giống như mã trong đó vì vậy nó biết nơi để di chuyển chuột đến và những gì để click. –

+0

Vâng, tất cả đều có điều đó. Vấn đề không phải là quá nhiều trong việc xác định quyền kiểm soát thr trên màn hình, nhưng trong việc có kịch bản thử nghiệm có thể phản ứng hợp lý với những thay đổi nhỏ về thời gian và hành vi. –

+1

Những gì mọi người phải thừa nhận là thực tế là Tự động hóa thử nghiệm cơ bản là dự án Phát triển phần mềm, cuối cùng cung cấp cho bạn phần mềm chỉ xảy ra để làm việc với phần mềm khác và cho bạn biết nếu nó thành công. Bạn cần các kỹ sư phần mềm cho điều đó, nếu không thì Test Automation của bạn sẽ rất có thể thất bại sớm hay muộn. – yoosiba

4

Xuất phát từ nền Thủy ngân/HP mạnh, tôi khuyên bạn nên sử dụng QuickTest Professional để kiểm tra GUI của bạn. Nó có rất nhiều chức năng tương tự như WinRunner, nhưng không có nhiều mã. Kiểm tra GUI đơn giản có thể được thực hiện thông qua giao diện QTP với tối thiểu, nếu có, mã VB tùy chỉnh. Việc kiểm tra văn bản bên cạnh các hộp có thể được thực hiện bằng cách so sánh đơn giản bằng cách sử dụng biểu dữ liệu trong QTP.

Nếu bạn quen với WinRunner, và biết VBScript (không nhiều TSL), thì tôi chắc chắn sẽ xem xét QTP.

Theo các yêu cầu khác của bạn, QTP cũng có tính năng Gián điệp, như WinRunner, sẽ liệt kê tất cả các thuộc tính và hành động bạn có thể thực hiện trên các đối tượng. Và với tính đơn giản của công việc cũ, chúng tôi có những người thử nghiệm kinh doanh hoặc hệ thống tạo ra các tập lệnh khói đơn giản, sau đó tôi sẽ lấy chúng và mã hóa chúng để kiểm tra sâu hơn (nhiều giá trị dữ liệu, kiểm tra lỗi, v.v.). Và như đối với báo cáo, QTP sẽ thực hiện báo cáo đơn giản về thông báo lỗi/không thành công/trên các thẻ mà bạn đưa vào, cùng với dữ liệu tùy chỉnh mà bạn có thể nhập. Vì vậy, bạn có thể sử dụng một tuyên bố trường hợp để điền các giá trị đầu ra của bạn dựa trên kết quả của bạn. Nó sẽ không làm e-mail naitevly, nhưng nếu bạn tích hợp với TestDirector/QualityCenter, bạn có thể thiết lập thông qua đó, cùng với tự động khởi động kịch bản của bạn, và tham số hóa dữ liệu ngay từ đó (rất tốt để gửi lại người thử nghiệm có dữ liệu phổ biến mà không cần phải tham gia vào kịch bản lệnh).

Pat

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