Software Testing - Usability Testing
Mở đầu – Khi phần mềm “chạy được” chưa chắc “dùng được” và “an toàn”
Trong các bài học trước, chúng ta đã tập trung vào những khía cạnh như chức năng, hiệu năng hay môi trường hệ thống. Tuy nhiên, một phần mềm hoàn chỉnh không chỉ cần chạy đúng hay chạy nhanh, mà còn phải đáp ứng hai yêu cầu quan trọng khác:
- Người dùng có thể dễ dàng sử dụng
- Hệ thống có thể chống lại các rủi ro và tấn công
Hai yêu cầu này tương ứng với hai kỹ thuật kiểm thử mới:
- Usability Testing – kiểm thử khả năng sử dụng
- Security Testing – kiểm thử bảo mật
Nếu bỏ qua Usability Testing, phần mềm có thể đúng về logic nhưng người dùng không biết cách sử dụng, hoặc sử dụng rất khó khăn. Ngược lại, nếu bỏ qua Security Testing, hệ thống có thể hoạt động tốt nhưng lại dễ bị tấn công, gây mất dữ liệu hoặc mất kiểm soát hệ thống.
Điểm thú vị là hai kỹ thuật này đại diện cho hai góc nhìn hoàn toàn khác nhau:
- Usability Testing nhìn hệ thống từ góc độ người dùng cuối
- Security Testing nhìn hệ thống từ góc độ kẻ tấn công
Vì vậy, trong bài học này, chúng ta sẽ lần lượt tiếp cận từng góc nhìn, bắt đầu với một câu hỏi tưởng đơn giản nhưng lại rất “đau” trong thực tế:
👉 “Phần mềm của bạn có thật sự dễ dùng không?”
🧪 PHẦN 1 – USABILITY TESTING
(Kiểm thử khả năng sử dụng)
Mô tả ngắn của phần học
Usability Testing là kỹ thuật kiểm thử nhằm đánh giá mức độ mà phần mềm có thể được người dùng hiểu, học và sử dụng một cách hiệu quả. Phần này giúp người học tiếp cận hệ thống từ góc nhìn người dùng cuối, từ đó phát hiện các vấn đề về trải nghiệm, giao diện và cách tương tác với hệ thống.
1. Usability là gì và vì sao lại quan trọng?
Usability, hay khả năng sử dụng, được hiểu là mức độ mà phần mềm có thể được người dùng cuối hiểu được, học được và vận hành được một cách dễ dàng . Một hệ thống có thể rất mạnh về chức năng, nhưng nếu người dùng không biết bắt đầu từ đâu, hoặc phải “vật lộn” để hoàn thành một thao tác đơn giản, thì về bản chất, hệ thống đó vẫn thất bại.
Usability Testing ra đời để kiểm tra chính thuộc tính này. Khi thực hiện kiểm thử khả năng sử dụng, tester không còn đóng vai trò “người kiểm tra logic”, mà phải đặt mình vào vị trí của người dùng cuối – những người:
- Không biết hệ thống bên trong hoạt động thế nào
- Không có thời gian đọc tài liệu dài dòng
- Chỉ muốn hoàn thành công việc nhanh nhất có thể
Một điểm cần lưu ý là Usability Testing có yếu tố chủ quan. Ví dụ, về mặt thẩm mỹ giao diện, mỗi người có thể có cảm nhận khác nhau. Vì vậy, khi kiểm thử usability, không thể chỉ dựa vào tiêu chí kỹ thuật, mà cần kết hợp cả trải nghiệm thực tế của người dùng.
2. Usability Testing bao gồm những gì?
Theo cấu trúc nội dung, Usability Testing không phải là một hoạt động đơn lẻ mà bao gồm nhiều khía cạnh khác nhau của hệ thống . Có thể hình dung nó gồm bốn phần chính:
- Installation Testing – kiểm thử cài đặt
- Function Usability Testing – kiểm thử khả năng sử dụng của chức năng
- User Interface Testing – kiểm thử giao diện người dùng
- Assistant Information Testing – kiểm thử thông tin trợ giúp
Bốn phần này tương ứng với toàn bộ hành trình của người dùng, từ lúc bắt đầu cài phần mềm cho đến khi sử dụng và nhận hỗ trợ trong quá trình làm việc.
3. Installation Testing – Khi cài đặt đã là “trải nghiệm đầu tiên”
Cài đặt là bước đầu tiên mà người dùng tiếp xúc với phần mềm, vì vậy nếu bước này thất bại hoặc gây khó khăn, người dùng có thể bỏ cuộc ngay từ đầu. Installation Testing được thực hiện để kiểm tra xem phần mềm có thể được cài đặt thành công hay không, và quá trình cài đặt có thân thiện với người dùng hay không .
Trong thực tế, việc kiểm thử cài đặt không chỉ đơn giản là “cài được hay không”, mà còn bao gồm nhiều yếu tố liên quan như:
- Đánh giá tài liệu hướng dẫn cài đặt: người dùng có hiểu được không, có thiếu bước nào không
- Kiểm tra quá trình cài đặt tự động: có mượt không, có bị lỗi giữa chừng không
- Kiểm tra các tùy chọn cài đặt: người dùng có thể chọn cấu hình phù hợp không
- Thử ngắt giữa chừng quá trình cài đặt: hệ thống có xử lý an toàn không
Sau khi cài đặt xong, việc chạy thử phần mềm để xác nhận tính đúng đắn là bước không thể thiếu. Ngoài ra, tester cũng cần quan tâm đến:
- Khả năng repair (sửa chữa) khi cài đặt lỗi
- Khả năng uninstall (gỡ cài đặt) có sạch hay không, có để lại dữ liệu rác hay không
4. Function Usability Testing – Chức năng có “dễ dùng” không?
Không phải chức năng nào đúng cũng đồng nghĩa với việc dễ sử dụng. Function Usability Testing tập trung vào việc đánh giá xem các chức năng của hệ thống có hỗ trợ người dùng một cách thuận tiện hay không .
Khi kiểm thử, tester thường phải tự đặt ra các câu hỏi kiểu “người dùng sẽ nghĩ gì khi dùng cái này?”, ví dụ:
- Phần mềm có tuân theo các chuẩn nghiệp vụ quen thuộc không?
- Người dùng có thể tùy chỉnh chức năng để phù hợp với nhu cầu không?
- Dữ liệu có thể tái sử dụng để giảm nhập liệu lặp lại không?
- Hệ thống có cung cấp wizard (trình hướng dẫn) cho các thao tác phức tạp không?
- Sau mỗi bước, hệ thống có phản hồi hoặc hướng dẫn rõ ràng không?
- Khi thực hiện thao tác quan trọng (như xóa dữ liệu), hệ thống có cảnh báo không?
- Khi lỗi xảy ra, hệ thống có giúp người dùng nhận biết và khắc phục không?
Những câu hỏi này nghe có vẻ “đơn giản”, nhưng chính chúng quyết định trải nghiệm thực tế của người dùng.
5. User Interface Testing – Giao diện có thực sự “nói chuyện được” với người dùng?
Giao diện người dùng là nơi mà người dùng tương tác trực tiếp với hệ thống, vì vậy đây là phần quan trọng nhất trong Usability Testing . Một giao diện tốt không chỉ đẹp, mà còn phải rõ ràng, nhất quán và hợp lý.
Khi đánh giá giao diện tổng thể, tester thường quan tâm đến các yếu tố như:
- Tính chuẩn hóa và nhất quán
Ví dụ: vị trí nút, menu, cửa sổ có giống nhau trên toàn hệ thống không - Bố cục và hiển thị
Bao gồm:- vị trí cửa sổ
- căn chỉnh nút
- cách hiển thị thông tin
- Màu sắc và kích thước
Giao diện có dễ nhìn không, có gây rối mắt không - Tính hợp lý
Màu sắc, biểu tượng, mô tả có phản ánh đúng chức năng không
Ngoài việc kiểm tra tổng thể, tester còn cần kiểm tra từng thành phần cụ thể như:
- Window (cửa sổ)
- Menu
- Icon
- Chuột và thao tác người dùng
- Nội dung mô tả (text, label)
Ví dụ, một icon đẹp nhưng không ai hiểu nó đại diện cho chức năng gì thì vẫn là thất bại về usability.
6. Assistant Information Testing – Hệ thống có “biết giúp người dùng” không?
Ngay cả khi giao diện tốt và chức năng rõ ràng, người dùng vẫn có thể gặp khó khăn. Lúc này, hệ thống cần cung cấp các cơ chế hỗ trợ, bao gồm:
- Help (trợ giúp)
- Wizard (trình hướng dẫn)
- Prompt (nhắc nhở)
Assistant Information Testing được thực hiện để đánh giá chất lượng của các cơ chế này .
Khi kiểm thử phần này, tester cần xem xét:
- Hệ thống có hỗ trợ help (ví dụ F1) không
- Nội dung help có chính xác, dễ hiểu và dễ tìm không
- Wizard có hướng dẫn từng bước rõ ràng không
- Các thông báo (prompt):
- có dễ hiểu không
- có xuất hiện đúng thời điểm không
- có nhất quán về màu sắc, vị trí và cách hiển thị không
Một hệ thống tốt không chỉ hoạt động đúng, mà còn phải biết “dẫn dắt” người dùng khi họ gặp khó khăn.
7. Tổng kết phần Usability Testing
Usability Testing giúp đánh giá phần mềm từ góc nhìn của người dùng cuối, tập trung vào khả năng hiểu, học và sử dụng hệ thống. Thông qua các hoạt động như kiểm thử cài đặt, kiểm thử chức năng, kiểm thử giao diện và kiểm thử hỗ trợ, kỹ thuật này giúp phát hiện những vấn đề mà các loại kiểm thử khác thường bỏ qua.
Một hệ thống thành công không chỉ là hệ thống “đúng”, mà phải là hệ thống dễ dùng, dễ hiểu và dễ tiếp cận.

