Cách tiếp cận của tôi để kiểm tra GUI đang phát triển, cũng như sự đồng thuận trong ngành. Nhưng tôi nghĩ rằng một vài kỹ thuật chính đang bắt đầu xuất hiện.
Tôi sử dụng một hoặc nhiều trong số các kỹ thuật này, tùy thuộc vào tình huống (ví dụ: loại GUI này là gì, nó cần được xây dựng nhanh như thế nào, người dùng cuối sẽ là ai, v.v.).
Kiểm tra bằng tay. Bạn luôn có GUI chạy trong khi làm việc với mã và đảm bảo nó đồng bộ với mã. Bạn kiểm tra thủ công và kiểm tra lại phần mà bạn làm việc khi bạn làm việc với nó, chuyển đổi giữa mã và ứng dụng đang chạy. Mỗi khi bạn hoàn thành một số công việc quan trọng, bạn sẽ kiểm tra toàn bộ màn hình hoặc khu vực của ứng dụng để đảm bảo không có hồi quy.
Kiểm tra đơn vị. Bạn viết kiểm tra cho các chức năng hoặc các đơn vị nhỏ của hành vi GUI. Ví dụ: biểu đồ của bạn có thể cần tính toán các sắc thái khác nhau của màu dựa trên màu 'cơ sở'. Bạn có thể trích xuất phép tính này cho một hàm và viết một bài kiểm tra đơn vị cho nó. Bạn có thể tìm kiếm logic như thế này trong GUI (đặc biệt là logic có thể sử dụng lại) và trích xuất nó thành các chức năng kín đáo, có thể dễ dàng kiểm tra đơn vị hơn. Ngay cả hành vi phức tạp cũng có thể được trích xuất và kiểm tra theo cách này - ví dụ: một chuỗi các bước trong trình hướng dẫn có thể được trích xuất thành hàm và kiểm tra đơn vị có thể xác minh rằng, được đưa vào một đầu vào, bước chính xác được trả về.
Thám hiểm thành phần. Bạn tạo một màn hình 'thám hiểm' với vai trò duy nhất là hiển thị từng thành phần có thể sử dụng lại tạo nên GUI của bạn. Màn hình này cung cấp cho bạn một cách nhanh chóng và dễ dàng để xác minh trực quan rằng mọi thành phần đều có giao diện chính xác. Trình thám hiểm thành phần hiệu quả hơn so với việc truy cập thủ công toàn bộ ứng dụng của bạn, vì A) bạn chỉ phải xác minh từng thành phần một lần và B) bạn không phải điều hướng sâu vào ứng dụng để xem thành phần, bạn chỉ có thể xem và xác minh nó ngay lập tức.
Kiểm tra tự động hóa. Bạn viết một bài kiểm tra tương tác với màn hình hoặc thành phần, mô phỏng các lần nhấp chuột, nhập dữ liệu, v.v., khẳng định rằng các chức năng của ứng dụng được cung cấp chính xác các thao tác này. Điều này có thể hữu ích như một thử nghiệm sao lưu bổ sung, để nắm bắt các lỗi tiềm ẩn mà các thử nghiệm khác của bạn có thể bỏ lỡ. Tôi có xu hướng bảo lưu thử nghiệm tự động hóa cho các phần của GUI dễ bị hỏng nhất và / hoặc rất quan trọng. Những phần mà tôi muốn biết càng sớm càng tốt nếu có thứ gì đó bị hỏng. Điều này có thể bao gồm các thành phần tương tác rất phức tạp dễ bị phá vỡ hoặc màn hình chính quan trọng.
Kiểm tra khác biệt / chụp nhanh. Bạn viết một bài kiểm tra chỉ đơn giản là chụp đầu ra dưới dạng ảnh chụp màn hình hoặc dưới dạng mã HTML và so sánh nó với đầu ra trước đó. Bằng cách đó, bạn đã cảnh báo bạn bất cứ khi nào đầu ra thay đổi. Các thử nghiệm khác nhau có thể hữu ích nếu khía cạnh trực quan của GUI của bạn phức tạp và / hoặc có thể thay đổi, trong trường hợp đó, bạn muốn phản hồi nhanh và trực quan về tác động của một thay đổi nhất định đối với GUI nói chung.
Thay vì mạnh tay sử dụng mọi loại thử nghiệm có thể, tôi thích chọn và chọn kỹ thuật thử nghiệm dựa trên loại thử nghiệm mà tôi đang làm. Vì vậy, trong một trường hợp, tôi sẽ trích xuất một hàm đơn giản và kiểm tra đơn vị nó, nhưng trong trường hợp khác tôi sẽ thêm một thành phần vào trình thám hiểm thành phần, v.v. Nó phụ thuộc vào tình huống.
Tôi chưa tìm thấy phạm vi bảo hiểm mã là một số liệu rất hữu ích, nhưng những người khác có thể đã tìm thấy việc sử dụng nó.
Tôi nghĩ rằng biện pháp đầu tiên là số lượng và mức độ nghiêm trọng của lỗi. Ưu tiên hàng đầu của bạn có lẽ là có một ứng dụng hoạt động chính xác. Nếu ứng dụng hoạt động chính xác, sẽ có ít hoặc không có lỗi. Nếu có nhiều hoặc nghiêm trọng, thì có lẽ, bạn không kiểm tra hoặc các xét nghiệm của bạn không hiệu quả.
Ngoài việc giảm lỗi, còn có các biện pháp khác như hiệu suất, khả năng sử dụng, khả năng truy cập, khả năng bảo trì, khả năng mở rộng, v.v ... Những cách này sẽ khác nhau, tùy thuộc vào loại ứng dụng bạn đang xây dựng, doanh nghiệp, người dùng cuối, v.v.
Đây là tất cả dựa trên kinh nghiệm và nghiên cứu cá nhân của tôi cũng như một bài viết tuyệt vời về Kiểm tra giao diện người dùng của Ham Vocke .