Làm cách nào tôi có thể thực hiện kiểm tra tự động cho GUI?


8

Làm thế nào tôi có thể kiểm tra tự động những gì nhìn thấy và những gì không? Hoặc ít nhất, làm thế nào tôi có thể tổ chức một số bài kiểm tra tự động một phần?

IDE: Eclipse (cũng có thể sử dụng IntelliJ Idea nếu cần thiết)

Công cụ kiểm tra: Junit (một lần nữa, có thể sử dụng một cái gì đó khác nếu được khuyên, nhưng tốt hơn nếu nó miễn phí)

Hệ điều hành ứng dụng: Android

Hệ điều hành dành cho nhà phát triển: Linux (có thể thay đổi cho MAC hoặc Windows (miễn cưỡng))

Ngôn ngữ: Java

Tất cả các công việc đi trong các thiết bị bên ngoài. Không có trình giả lập.

Ứng dụng này là một trình bao bọc người dùng cho trình phát TV phần sụn, được gọi là hoạt động bên ngoài. Vì vậy, 70% mã là dành cho GUI. (30% khác nói chuyện với máy chủ và cung cấp thông tin cho GUI)

Trước khi tôi tự lập trình chức năng kiểm tra, không sử dụng bất kỳ công cụ nào. Bây giờ tôi có một công cụ trong tay. Nhưng tôi không thể tưởng tượng làm thế nào tôi có thể kiểm tra giao diện người dùng, bằng công cụ hoặc không có nó. (Nói đúng ra, với các kết nối Internet tôi cũng gặp vấn đề, nhưng tôi sẽ để chúng cho câu hỏi khác.) Câu trả lời không cần quá phụ thuộc vào nền tảng, các nguyên tắc và ý tưởng cũng sẽ giúp ích.

Tất nhiên, nó là tốt để kiểm tra, là một số yếu tố trong một khác và kiểm tra hay không. Một số kiểm tra hồi quy sẽ tốt cho điều đó. Nhưng tôi cũng nên chắc chắn rằng phần tử được đề cập không bị cắt bởi một số phần tử khác và nháy mắt khi tôi đặt hàng bằng hình ảnh động.

Các lời khuyên ở đây: /software/63245/is-there-a-tool-to-test-java-ui sẽ không giúp đỡ - chỉ có các công cụ, không phải là nguyên tắc và không có công cụ có thể giúp đỡ trong tình huống của tôi.


bạn đã cân nhắc việc hỏi tại sqa.stackexchange.com chưa? BTW có sẵn những gì để bạn chụp trong thử nghiệm - đối tượng GUI, pixel màn hình, sự kiện thiết bị bàn phím / con trỏ?
gnat

Cảm ơn bạn. Tôi không biết về máy chủ đó ở đây. Có lẽ, sau này một số người điều hành sẽ chuyển câu hỏi của tôi ở đó. (BTW, tôi không hiểu tại sao thử nghiệm cần máy chủ của riêng mình). Đối với câu khác của bạn, tôi nghĩ, nó như bình thường trong Android - các đối tượng - vâng, pixel - có thể, thông qua một số thủ thuật? - Tôi không biết, các sự kiện - có. Junit có thể đọc pixel từ gui không?
Gangnus

Một công cụ kiểm tra tự động mã nguồn mở tuyệt vời cho Android là Robotium .
Corey D

Câu trả lời:


5

Thông thường, lời khuyên tốt nhất cho kiểm tra GUI tự động là phát triển ứng dụng của bạn theo kiểu Model-View-Presenter và viết các bài kiểm tra của bạn chống lại Người trình bày. Chủ đề được thảo luận ở đây:

http://danbunea.blogspot.com/2005/11/model-view-presenter-is-testing_27.html

(có thêm liên kết ở cuối bài viết đó).

Tất nhiên, điều đó có thể không giúp bạn "kiểm tra tự động những gì nhìn thấy và những gì không", nhưng nó có thể giúp bạn kiểm tra hầu hết logic của UI.


Cảm ơn bạn cho bài viết. Vấn đề là, trong ứng dụng của tôi, ngược lại, khung nhìn là phần phức tạp nhất, và người trình bày và mô hình là đủ nguyên thủy, và đó là phần xem mà tôi cần kiểm tra. Tôi muốn chính xác như tôi đã nói, "kiểm tra tự động những gì nhìn thấy và những gì không" hoặc một phần tự động.
Gangnus

+1, Bạn đã đưa tôi đến một câu hỏi khác ( lập trình viên.stackexchange.com/ questions/ 133134/ mẹo) :-) Tôi rất vui khi đọc ý kiến ​​của bạn về nó.
Gangnus

1

Có các khung kiểm tra cho phép bạn tương tác trực tiếp với màn hình; trong công việc của mình, chúng tôi sử dụng Trình kiểm tra chức năng Rational của IBM, cho phép chúng tôi nhấp vào các nút và vv cũng như kiểm tra lập trình thông thường. Rõ ràng, điều đó không miễn phí, nhưng việc tìm kiếm nó trên wikipedia cung cấp danh sách các lựa chọn thay thế này. Vì bạn đang xem Java, nên có CubicTest , là một plugin Eclipse; lựa chọn thay thế bao gồm MaveryxAbbot .


+1 cho nỗ lực của bạn. Nhưng những công cụ này không hoạt động cho Android, như tôi thấy.
Gangnus

@Gangnus Drat, tôi đã hy vọng ít nhất là một. Thật không may, tôi không quen với sự phát triển dành riêng cho Android, thật không may
Yamikuronue

Than ôi, tôi có một vấn đề thực sự khó khăn - ứng dụng của tôi đang được gỡ lỗi không phải trên trình giả lập, đó là trong PC, mà là trên thiết bị Andoid bên ngoài. Vì vậy, tôi gần như chắc chắn không có công cụ sẵn sàng để thử nghiệm nó. Tôi nên tự tổ chức quá trình. Nhưng làm thế nào ... Tôi phải kiểm tra cái gì, vấn đề của việc kiểm tra đó là gì, cách kiểm tra hồi quy được tổ chức ... Mọi người cho tôi liên kết đến các công cụ, nhưng tôi cần liên kết đến những suy nghĩ. Tất nhiên, tôi sẽ rất vui khi có một công cụ, nhưng không có một ... Thật là một thế giới buồn ... :-)
Gangnus

@Gangnus Đồng nghiệp của tôi thông báo cho tôi rằng ngay cả trình giả lập cũng gây khó khăn cho việc gỡ lỗi GUI trừ khi bạn có một cái gì đó được thiết kế cho nó, vì đó là cả một lớp bổ sung để xử lý. Đối với việc mô hình hóa các bài kiểm tra, chúng tôi sử dụng một công cụ để tạo sơ đồ phác thảo đường dẫn qua chương trình; Công cụ của chúng tôi tôi nghĩ là được sản xuất trong nhà, nhưng nó có khả năng tạo danh sách tất cả các điểm truy cập có thể có của sơ đồ (trở thành tập lệnh thử nghiệm của chúng tôi), nghe có vẻ như là một tính năng bạn có thể dễ dàng tìm thấy hoặc tự làm
Yamikuronue

0

Tôi sử dụng testcomplete. Đây là một công cụ toàn diện nhất mà tôi đã sử dụng để tự động kiểm tra GUI. http://smartbear.com/products/qa-tools/automated-testing/ kiểm tra xem tôi thực sự tích cực rằng điều này sẽ phù hợp với bạn và nó hỗ trợ Java


Cảm ơn bạn, nhưng đó là: a) Windows b) không dành cho Android c) không miễn phí. Tôi có thể vượt qua "c" và thậm chí "a", nhưng "b" thì quá tệ.
Gangnus

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.