. Eurostar '97, ngày 24-ngày 28 tháng mười một năm 1997, Edinburgh Anh Thử nghiệm ứng dụng GUI Paul Gerrard Systeme Evolutif TNHH 9 Cavendish Nơi London W1M 0QD Tel: +44 (0) 20 7636 6060 Fax: +44 (0) 20 7636 6072 paulg @ evolutif .co.uk http://www.evolutif.co.uk Tóm tắt Hầu hết các khách hàng trong hệ thống client / server cung cấp chức năng hệ thống bằng cách sử dụng một giao diện người dùng đồ họa (GUI). Khi thử nghiệm hệ thống hoàn chỉnh, các thử nghiệm phải vật lộn với các chức năng bổ sung được cung cấp bởi các GUI. Ảnh minh hoạ cho các hệ thống thử nghiệm khó khăn hơn vì nhiều lý do: bản chất sự kiện định hướng của ảnh minh hoạ, sự kiện không mong muốn, nhiều cách thức / nhiều cách ra và các vấn đề miền đầu vào vô hạn làm cho nó có khả năng là các lập trình viên đã giới thiệu sai lầm vì anh không thể kiểm tra mọi con đường . văn học có sẵn trên thử nghiệm GUIs có xu hướng tập trung vào các công cụ như là giải pháp cho vấn đề giao diện thử nghiệm. Với vài ngoại lệ, giấy tờ về chủ đề này đã được trình bày tại Eurostar và STAR (ở Mỹ) trong vài năm qua đã ít quan tâm đến thiết kế giao diện thử nghiệm nhưng đã tập trung vào dãy hồi quy kiểm tra như thế nào tự động có thể được xây dựng và duy trì. Mục đích của chúng tôi là cố gắng để xây dựng một chiến lược kiểm thử giao diện để phát hiện lỗi và sử dụng các công cụ để hỗ trợ quá trình này. Nếu chúng ta đạt được điều này, các nhiệm vụ xây dựng dãy phòng thử nghiệm hồi quy sẽ được thực hiện dễ dàng hơn nhiều. Bài viết này mô tả các GUI testability 'vấn đề' và cung cấp hướng dẫn về kiểm tra các đối tượng dính tay và với các công cụ tự động. Chúng tôi trình bày một bản tóm tắt của các loại lỗi xảy ra thường xuyên nhất trong các ứng dụng giao diện đồ họa và đề xuất một cách tiếp cận để thiết kế thử nghiệm giao diện mà tập trung vào các lỗi này. Cách tiếp cận này bao gồm một loạt các loại thử nghiệm được mô tả lần lượt. Những kỹ thuật này được lắp ráp thành một quá trình thử nghiệm cụ GUI có thể được ánh xạ vào các tổ chức hiện có tổ chức quá trình thử nghiệm. Đây là một giấy tạm thời dựa trên những nghiên cứu liên tục và làm việc trên các dự án của khách hàng. Điều kiện tiên quyết Từ khóa: none Descriptors Topic: Thử nghiệm, giao diện, đồ họa Giao diện người dùng 1 Giới thiệu 1.1 minh hoạ như client phổ GUIs đã trở thành thay thế được thành lập với các hình thức dựa trên giao diện người dùng truyền thống. Ảnh minh hoạ là giao diện người dùng được giả thiết cho hầu như tất cả các hệ thống phát triển bằng cách sử dụng các công nghệ hiện đại. Có nhiều lý do tại sao ảnh minh hoạ đã trở nên quá phổ biến: • GUI cung cấp cái nhìn tiêu chuẩn và cảm nhận của một hệ thống điều hành máy khách. • ảnh minh hoạ rất linh hoạt mà họ có thể được sử dụng trong hầu hết các lĩnh vực ứng dụng. • Các giao diện tích hợp khả năng tùy chỉnh và gói ứng dụng. • Người sử dụng có thể lựa chọn bằng cách sử dụng bàn phím hoặc một thiết bị chuột. • Người sử dụng có một giao diện tự nhiên hơn cho các ứng dụng: nhiều cửa sổ có thể được hiển thị cùng một lúc, vì vậy người sử dụng hiểu được cải thiện. • Người sử dụng có kiểm soát: màn hình có thể được truy cập trong trình tự người dùng muốn theo ý muốn. 1.2 minh hoạ các hình thức v Cho phép xem xét sự khác biệt giữa ảnh minh hoạ và các hình thức giao diện dựa trên. Ứng dụng Forms Dựa Trong các ứng dụng dựa trên biểu mẫu, các mẫu này được sắp xếp theo một trật tự thứ bậc. Thông thường, một menu cấp cao sẽ được hiển thị trong đó cung cấp một lựa chọn các tùy chọn và khi một tùy chọn được chọn, màn hình lựa chọn được hiển thị. Thông thường, một menu các cuộc gọi một menu cấp thấp hơn để cung cấp một cấp độ cao hơn của sự lựa chọn. Trong các ứng dụng lớn hoặc gói, có thể có ba cấp độ của menu để điều hướng, trước khi các chức năng cần được trình bày cho người dùng. Một hệ thống menu hai cấp độ có chứa mười lăm tùy chọn mỗi đơn có thể cung cấp truy cập nhanh đến hơn hai trăm màn hình. Với các hình thức hiển thị trên một màn hình, chúng ta chỉ có thể hiển thị và do đó tương tác với một mẫu đơn tại một thời điểm. Thông thường, khi một hình thức mới được hiển thị, nó lấp đầy màn hình và chức năng trên các hình thức cũ bây giờ là không có. Các chế độ một-at-a-thời gian là đặc điểm chính của hệ thống dựa trên các hình thức. Trong một số ứng dụng dẫn đường đạt được hình thức để tạo, bằng cách cung cấp các giao diện lệnh điều khiển. Bằng cách này, người sử dụng tránh được việc phải điều hướng bằng cách sử dụng hệ thống menu. Thông thường, người sử dụng chuyên gia sử dụng phương pháp lệnh theo định hướng như vậy, trong khi người sử dụng không thường xuyên áp dụng phương pháp điều khiển theo menu. Trong một ứng dụng phức tạp, người dùng có thể điều hướng đến chuyên gia hầu như bất kỳ tính năng hệ thống từ bất kỳ khác, miễn là họ biết những gì các lệnh có sẵn, bất cứ nơi nào họ đang có. Người sử dụng không thường xuyên là trái với các vấn đề luôn luôn phải điều hướng qua các menu. Trong lớn, hệ thống phức tạp, điều này có thể là một trở ngại lớn. Trong các hình thức ứng dụng, các lĩnh vực trên biểu mẫu có một 'tabbing thứ tự được xác định trước và không thể thay đổi. Đó là, người dùng chỉ có thể truy cập vào các lĩnh vực theo một thứ tự nhất định, cho dù bất kỳ dữ liệu đã được nhập vào các ô. Navigation thường đạt được thông qua việc sử dụng các phím tab để di chuyển về phía trước và phím xóa để đi ngược trở lại. GUIs Các đặc trưng rõ ràng nhất của các ứng dụng GUI là một thực tế rằng GUI cho phép nhiều cửa sổ sẽ được hiển thị cùng một lúc. Cửa sổ hiển thị được 'sở hữu' của các ứng dụng và tất nhiên, có thể có nhiều hơn một ứng dụng hoạt động cùng một lúc. Truy cập vào các tính năng của hệ thống được cung cấp thông qua ba cơ chế. Menu bar cung cấp sẵn có gần như liên tục của các tính năng khác nhau của hệ thống; các nút và phím tắt cho phép người dùng điều hướng và truy cập các chức năng khác nhau của ứng dụng của họ. Windows cung cấp các chức năng hình thức giống như với các lĩnh vực, trong đó văn bản hoặc số dữ liệu có thể được nhập vào. Nhưng GUIs giới thiệu đối tượng bổ sung như các nút radio, danh sách cuộn, hộp kiểm tra và đồ họa khác có thể được hiển thị hoặc thao tác trực tiếp. Các giao diện chính nó quản lý trình bày đồng thời nhiều ứng dụng và các cửa sổ. Cửa sổ bị ẩn trong các ứng dụng giống và khác nhau có thể được đưa về phía trước và sử dụng. Có rất ít, nếu có, những hạn chế về trình tự, trong đó người sử dụng truy cập vào giao diện cửa sổ để người dùng có thể tự do sử dụng các tính năng của hệ thống trong cách mà họ thích, chứ không phải là cách làm việc của các nhà phát triển thiết kế nó. Fields trong cửa sổ có một trật tự tabbing , nhưng người dùng có thể tự do sử dụng chuột để thay đổi trọng tâm của các ứng dụng cho bất kỳ lĩnh vực trên màn hình. Không có hạn chế về trình tự, trong đó người dùng có thể nhập dữ liệu trên màn hình. Để người sử dụng, có lợi thế trong việc có thể truy cập vào các lĩnh vực trực tiếp (có lẽ để tránh tabbing thông qua nhiều lĩnh vực đó sẽ không thay đổi). Trong ngắn hạn, ảnh minh hoạ phóng người sử dụng để truy cập vào hệ thống chức năng trong cách ưa thích của họ. Họ có quyền truy cập vĩnh viễn cho tất cả các tính năng và có thể sử dụng chuột, bàn phím hoặc một sự kết hợp của cả hai để có một cuộc đối thoại tự nhiên hơn với hệ thống. 1.3 Một số khó khăn thử nghiệm GUIs đã mang lại lợi ích đáng kể cho các nhà phát triển. Chúng giải phóng các nhà phát triển từ những mối quan tâm của thiết kế giao diện - trong hầu hết các môi trường, tiêu chuẩn thiết kế GUI áp đặt quy ước mà làm cho một ứng dụng trông rất giống nhau trên cùng một nền tảng. Tuy nhiên, sự tinh tế và đơn giản của một giao diện ẩn sự phức tạp từ người sử dụng và nơi khung phát triển được sử dụng, các lập trình quá. Khi thử nghiệm được trình bày với một ứng dụng GUI để kiểm tra, sự phức tạp ẩn trở nên quá rõ ràng. Do đó, kiểm tra ảnh minh hoạ được thực hiện khá khó khăn. Những lý do cho điều này là gì? Event-driven phần mềm Bản chất sự kiện định hướng của ảnh minh hoạ trình bày những khó khăn thử nghiệm nghiêm trọng đầu tiên. Bởi vì nhiều người dùng nhấp chuột vào bất kỳ điểm ảnh trên màn hình, có rất nhiều, nhiều người sử dụng đầu vào có thể hơn có thể xảy ra. Người sử dụng có một sự lựa chọn rất rộng của các hành động. Tại bất kỳ điểm nào trong các ứng dụng, người dùng có thể nhấp vào bất kỳ lĩnh vực hoặc đối tượng bên trong một cửa sổ. Họ có thể mang lại một cửa sổ khác trong cùng một ứng dụng cho mặt trước và truy cập vào đó. Các cửa sổ có thể được sở hữu bởi một ứng dụng khác. Người dùng có thể chọn để truy cập vào một thành phần hệ điều hành trực tiếp, ví dụ như một bảng điều khiển cấu hình hệ thống. Số lượng lớn các tùy chọn sẵn có nghĩa là mã ứng dụng phải ở tất cả các lần đối phó với những sự kiện tiếp theo, bất kể nó có thể được. Trong môi trường phát triển tiên tiến hơn, nơi các khuôn khổ phức tạp đang được sử dụng, nhiều người trong số những sự kiện này được xử lý 'đằng sau hậu trường'. Với bộ công cụ ít tiên tiến, các lập trình viên phải viết code để xử lý các sự kiện này một cách rõ ràng. Nhiều lỗi xảy ra bởi vì các lập trình viên không thể lường trước mọi hoàn cảnh, trong đó xử lý sự kiện của họ được viện dẫn. Nhiều sự kiện như nút bấm gây ra sự tập trung của các ứng dụng để di chuyển từ một trong những tính năng khác tính năng hoàn toàn không liên quan. Không chỉ các tính năng được lựa chọn phải đối phó với một bối cảnh tiềm năng chưa được biết, các tính năng trước đó có thể "treo lại" trong một nhà nước hoàn thành một phần. Số lượng các con đường tiềm năng từ tính năng đến tính năng trong ứng dụng là quá cao mà phạm vi cho các lập trình để thực hiện các lỗi được tăng lên đáng kể. Vấn đề 'con đường vô hạn' cũng làm cho nó khó tin rằng chúng tất cả sẽ được kiểm tra. Sự kiện Unsolicited sự kiện Unsolicited gây ra vấn đề cho các lập trình và kiểm thử. Một ví dụ nhỏ là khi một máy in địa phương đi off-line, và hệ điều hành đã đưa ra một hộp thoại mời người sử dụng để nuôi thêm giấy vào máy in. Một tình huống phức tạp hơn phát sinh mà tin theo định hướng middleware có thể gửi một tin nhắn (một sự kiện) để nhắc nhở các ứng dụng client để vẽ lại một sơ đồ trên màn hình, hoặc làm mới một màn hình hiển thị các bản ghi từ một cơ sở dữ liệu đó đã thay đổi. Sự kiện Unsolicited có thể xảy ra bất cứ lúc nào , vì vậy một lần nữa, số lượng các tình huống khác nhau mà các mã phải chứa là rất cao. Thử nghiệm các sự kiện không mong muốn là rất khó khăn vì số lượng các trường hợp thử nghiệm có thể cao nhưng cũng điều khiển kiểm tra đặc biệt có thể cần thiết để tạo ra các sự kiện như trong các hệ điều hành. Object hướng GUIs bản đồ rất tốt cho các mô hình hướng đối tượng. Các máy tính để bàn, cửa sổ và các yếu tố đồ họa khác thường được tổ chức thành một hệ thống các đối tượng mà đối phó với các sự kiện GUI. Mỗi đối tượng có phương pháp riêng của mình (xử lý sự kiện) và các thuộc tính. Các thuộc tính điển hình xác định trạng thái của đối tượng và thường bao gồm: • Là các đối tượng hoạt động hoặc không hoạt động
đang được dịch, vui lòng đợi..
