Testing GUI - Các chi tiết có thể bạn đã bỏ qua
16/05/2022 12:05
Trong bài đăng này, chúng tôi sẽ cung cấp cho bạn hướng dẫn chi tiết về thử nghiệm GUI., khái niệm GUI là gì, được thực hiện như thế nào, ai chịu trách nhiệm về nó và liệu bạn có nên sử dụng GUI hay không?
Trong lĩnh vực kiểm thử phần mềm , kiểm thử GUI là một chủ đề thú vị và có phần gây tranh cãi. Có sự nhầm lẫn khi định nghĩa thử nghiệm GUI là gì — ví dụ: một số người có thể kết hợp nó với thử nghiệm giao diện người dùng . Theo cách tương tự, có thể có một số lo ngại chồng chéo giữa thử nghiệm GUI và thử nghiệm E2E , đây là nguyên nhân dẫn đến những hiểu lầm thêm. Cuối cùng, có cuộc tranh luận về việc liệu thử nghiệm GUI có phải là điều bạn nên làm ngay từ đầu hay không. Nhiều người cho rằng các bài kiểm tra GUI không đáng gặp rắc rối vì chúng rất mỏng manh. Chà, họ không cần phải như vậy.
Trong bài đăng này, chúng tôi sẽ cung cấp cho bạn hướng dẫn chi tiết về thử nghiệm GUI., khái niệm GUI là gì, được thực hiện như thế nào, ai chịu trách nhiệm về nó và liệu bạn có nên sử dụng GUI hay không?
Các nguyên tắc cơ bản về kiểm tra GUI
Hãy bắt đầu với những điều cơ bản. Chúng tôi sẽ cung cấp cho bạn định nghĩa về thử nghiệm GUI, cùng với một ví dụ thực tế. Chúng tôi theo dõi điều đó với một cuộc thảo luận về sự khác biệt giữa GUI và các hình thức kiểm tra khác.
GUI là gì?
GUI là từ viết tắt của “giao diện người dùng đồ họa”. Nó đề cập đến một loại giao diện người dùng cho phép người dùng tương tác với các sản phẩm điện tử hoặc phần mềm thông qua việc sử dụng các yếu tố đồ họa — chẳng hạn như các nút, biểu tượng và hình ảnh — và cả âm thanh. GUI được giới thiệu để cho phép mọi người tương tác với máy tính và các thiết bị khác theo cách thân thiện hơn so với việc gõ lệnh qua bàn phím.
Đương nhiên, GUI đã tỏ ra vô cùng thành công và giúp phổ biến máy tính đến người dân nói chung, không chuyên về kỹ thuật. Ngày nay, chúng ta có thể tìm thấy GUI không chỉ trên máy tính mà còn trên điện thoại, TV, bảng điều khiển trong ô tô và nhiều nơi khác.
Ví dụ về thử nghiệm GUI
Sau khi xác định GUI, định nghĩa về kiểm tra GUI tuân theo một cách tự nhiên: đó là một hình thức kiểm tra xác minh xem GUI của một sản phẩm — trong trường hợp của chúng tôi là một ứng dụng phần mềm — có tuân theo các thông số kỹ thuật của nó và hoạt động như dự định hay không.
Đã đến lúc xem một ví dụ. Vì vậy, chúng tôi sẽ sử dụng một ứng dụng có tên “Trình theo dõi vấn đề JS được cải thiện”. Bạn có thể tìm thấy nguồn của nó trên repo GitHub này .
Khi bạn mở ứng dụng, nó trông giống như sau:
Xác minh các yếu tố hình ảnh
Chỉ cần nhìn vào màn hình trên, bạn có thể nghĩ ra một số trường hợp thử nghiệm hữu ích? Dưới đây là một số xác minh mà chúng tôi có thể thực hiện:
- Xác minh rằng văn bản trình giữ chỗ trên phần tử đầu tiên và phần tử thứ ba khớp với những gì trong yêu cầu.
- Kiểm tra xem hộp lựa chọn mức độ nghiêm trọng có chứa các mức trong thông số kỹ thuật hay không.
- Xác minh xem tất cả các phần tử có hoạt động hay không (nghĩa là chúng được kích hoạt và cho phép bạn sử dụng chúng một cách chính xác).
- Kiểm tra màn hình để tìm lỗi chính tả, sự không nhất quán về màu sắc và kích thước phông chữ, các yếu tố bị lệch và các vấn đề thị giác khác.
>>> Đọc thêm: 10 xu hướng kiểm thử phần mềm hàng đầu vào năm 2022
Xác minh hành vi
Hầu hết các kiểm tra ở trên là về các mối quan tâm về thẩm mỹ. Tiến thêm một bước nữa, chúng tôi có thể xác minh xem màn hình có hoạt động như dự kiến hay không:
- Có xác thực tại chỗ ngăn người dùng để trống các trường bắt buộc không?
- Có một số kiểm tra để xác nhận người được chuyển nhượng được thông báo là người dùng thực tế, hợp lệ không?
- Nút “Thêm” có tạo ra một vấn đề mới như mong đợi khi bạn nhấp vào nút đó không?
Sự khác biệt giữa GUI và Kiểm tra giao diện người dùng là gì?
Như chúng tôi đã đề cập trong phần giới thiệu cho bài đăng này, hãy sử dụng GUI và thử nghiệm giao diện người dùng thay thế cho nhau. Tuy nhiên, giao diện người dùng đồ họa chỉ là một trong những kiểu giao diện người dùng khả dụng. Do đó, chúng ta có thể nói rằng thử nghiệm GUI là một tập hợp con của thử nghiệm giao diện người dùng.
Điều này trở nên dễ hiểu hơn với một ví dụ. Ứng dụng CLI có cần kiểm tra giao diện người dùng không? Nó chắc chắn là có! Nếu nó sử dụng các màu khác nhau để thể hiện nhiều thông tin, bạn cần kiểm tra xem các màu đó có khớp với các thông số kỹ thuật hay không. Điều này cũng đúng với các thanh tiến trình. Việc tìm kiếm thông báo mà ứng dụng hiển thị, tìm kiếm lỗi chính tả và ngữ pháp và đảm bảo chúng tuân thủ các thông số kỹ thuật cũng rất cần thiết. Tiến thêm một bước nữa, bạn cũng nên xác minh rằng tiện ích phân tích cú pháp chính xác các đối số đã nhận và phản hồi chúng như mong đợi.
Tuy nhiên, kiểm tra GUI, là một hình thức kiểm tra giao diện người dùng chuyên biệt hơn, liên quan đến chính nó với những thứ không có ý nghĩa gì trong bối cảnh kiểm tra CLI, chẳng hạn như các nút, liên kết, các phần tử được liên kết tốt như thế nào trên trang, v.v. trên.
Và Điều gì về Kiểm tra End-to-End?
Kiểm thử end-to-end, như tên gọi của nó, bao gồm kiểm tra toàn bộ ứng dụng, từ đầu này (giao diện người dùng) đến đầu kia (cơ sở dữ liệu hoặc cơ chế lưu trữ khác). Nói cách khác, khi thực hiện kiểm tra E2E, bạn phải kiểm tra ứng dụng theo cách gần giống với cách mọi người sử dụng nó trong cuộc sống thực. Vì vậy, rõ ràng là thử nghiệm E2E thực hiện ứng dụng thông qua giao diện người dùng của nó vì đó cũng là cách người dùng thực tế làm điều đó!
Nhưng sự khác biệt giữa kiểm thử E2E và GUI là gì? Nói một cách ngắn gọn, thử nghiệm E2E phải kiểm tra “mọi thứ”: bạn thực hiện các API giống như người dùng thực sẽ sử dụng. Ngoài ra, kiểm tra E2E yêu cầu một cơ sở dữ liệu được cắm vào, chứa dữ liệu kiểm tra chất lượng cao .
Mặt khác, mối quan tâm chính của thử nghiệm GUI / UI là liệu GUI có giao diện và hoạt động như dự định hay không. Vì vậy, mặc dù bạn có thể yêu cầu các bài kiểm tra GUI thực hiện API thực, cơ sở dữ liệu, v.v., nhưng bạn có thể — và được khuyến nghị — thay thế chúng bằng trình giữ chỗ. Bằng cách đó, bên cạnh khả năng tăng tốc các bài kiểm tra của bạn, bạn có khả năng kiểm tra GUI bất kể các API thực có sẵn sàng hay không.
Các phương pháp và kỹ thuật kiểm tra GUI
Ai thực hiện thử nghiệm GUI ? Họ làm nó như thế nào? Mặc dù chúng tôi đã chia sẻ một số ví dụ ngắn gọn về kiểm thử GUI, nhưng bây giờ chúng tôi sẽ trình bày chi tiết hơn về vấn đề đó, đi qua một số cách chính mà kiểm tra GUI thường được thực hiện.
Kiểm tra bằng tay
Cách cơ bản nhất để thực hiện kiểm tra GUI là chỉ sử dụng ứng dụng theo cách thủ công. Loại thử nghiệm này thường được thực hiện bởi những người thử nghiệm toàn thời gian chuyên dụng. Vì vậy, trong ứng dụng mẫu mà chúng tôi đã đề cập trước đó, chúng tôi có thể thực hiện tất cả các kiểm tra đó bằng cách xác minh thủ công từng ứng dụng.
Tất nhiên, kiểm tra thủ công không phải là siêu hiệu quả. Nó chậm, tẻ nhạt và dễ xảy ra lỗi. Đó là lý do tại sao bạn nên cố gắng tự động hóa mạnh mẽ chiến lược thử nghiệm của mình nếu bạn muốn có thể phát hành phần mềm chất lượng cao kịp thời.
Tuy nhiên, kiểm thử thủ công vẫn có một vai trò trong chiến lược kiểm thử hiện đại. Bạn chỉ cần tìm sự cân bằng phù hợp . Nói cụ thể về thử nghiệm GUI, người thử nghiệm thủ công có thể sở hữu các khía cạnh chủ quan hơn của giao diện, chẳng hạn như giao diện và khả năng sử dụng của nó.
Ghi lại và phát lại
Bây giờ chúng ta đang bước vào lãnh thổ tự động hóa. Một trong những cách phổ biến nhất trong đó kiểm tra tự động GUI thể hiện chính nó là thông qua kỹ thuật ghi và phát lại. Như tên gọi của nó, kỹ thuật này dựa vào việc người thử nghiệm sử dụng một công cụ chuyên dụng để ghi lại một phiên thử nghiệm. Kết quả của bản ghi này sau đó có thể được phát lại sau đó. Một số công cụ ghi và phát lại tốt hơn những công cụ khác. Sau khi tạo bản ghi, bạn có thể sắp xếp lại các bước kiểm tra không? Bạn có thể nhóm các bước và sử dụng lại chúng trong các bài kiểm tra khác không? Bạn có thể thêm xác nhận? Các công cụ ghi âm hiện đại hơn có thể dễ dàng thực hiện những công việc này.
Ưu điểm chính của cách tiếp cận này là nó không yêu cầu kỹ năng viết mã, điều này làm giảm rào cản cho việc sử dụng nó. Mấu chốt được trích dẫn nhiều nhất của các bài kiểm tra ghi và phát lại là tính dễ vỡ của chúng . Vì giao diện người dùng là một phần của ứng dụng có xu hướng thay đổi thường xuyên, tùy thuộc vào chiến lược được sử dụng để tương tác với các phần tử trên màn hình, các trường hợp kiểm tra kết quả có thể thường xuyên bị hỏng.
Kiểm tra GUI dựa trên mã
Có các công cụ kiểm tra GUI cho phép người dùng tạo các trường hợp thử nghiệm bằng cách viết mã. Nhược điểm tiềm ẩn rõ ràng của phương pháp này là chúng yêu cầu bạn đưa các nhà phát triển ra khỏi việc viết mã và yêu cầu họ viết các trường hợp thử nghiệm hoặc dạy những người kiểm tra và chuyên gia QA của bạn viết mã. Ngoài ra, các vấn đề tương tự về tính mong manh của thử nghiệm cũng tồn tại khi chúng xử lý các phần tử giao diện người dùng có thể thay đổi thường xuyên. Nếu mã ứng dụng của bạn thay đổi, thì các bài kiểm tra của bạn cũng sẽ cần thay đổi.
Mặt khác, các thử nghiệm dựa trên mã có thể cho phép bạn khám phá các tình huống thử nghiệm phức tạp hơn. Vì chúng là mã, các trường hợp thử nghiệm có thể được tạo phiên bản trong kiểm soát nguồn cùng với mã của ứng dụng. Ngoài ra, đường cong học tập cho công cụ có thể mượt mà hơn nếu nó hỗ trợ ngôn ngữ lập trình mà các nhà phát triển đã biết.
Kiểm tra hỗn hợp
Một cách tiếp cận gần đây hơn để kiểm tra GUI đang được phát triển là cách tiếp cận kết hợp . Nó cho phép người dùng không chuyên về kỹ thuật tạo các trường hợp thử nghiệm bằng cách ghi lại các phiên của họ. Sau đó, những người có kiến thức về mã hóa có thể thao tác thêm các bài kiểm tra được ghi lại này theo chương trình, để tùy chỉnh chúng và điều chỉnh chúng theo các tình huống phức tạp hơn.