Giao diện phần mềm có đƣợc chấp nhận hay không hoàn toàn phụ thuộc vào sự đánh giá của ngƣời dùng cuối. Bất kể là phần mềm nào, đƣợc kiểm thử thủ công hay kiểm thử tự động, hiệu quả của việc phát triển và kiểm thử phần mềm đƣợc phản ánh rõ nhất qua mức độ hài lòng của khách hàng, khi mà sản phẩm đƣợc phân phối tới ngƣời dùng cuối.
Để xác định đƣợc sự đánh giá của khách hàng, sau khi quá trình kiểm thử hoàn tất, phần mềm đƣợc phê duyệt và đƣa ra các bản dùng thử alpha hay beta. Cần tiến hành thu thập trƣng cầu ý kiến phản ánh của ngƣời dùng theo từng nhóm đối tƣợng sử dụng. Bản thu thập ý kiến cần nêu rõ các yếu tố giao diện sản phẩm, với các mức đánh giá sự hài lòng của ngƣời dùng. Các thành phần giao diện các đƣợc liệt kê chi tiết rõ ràng thì càng hiệu quả trong việc đánh giá mức độ hài lòng về giao diện của sản phẩm. Thông qua đó, đội ngũ phát triển có thể chỉnh sửa phần mềm để đáp ứng tốt hơn nhu cầu ngƣời dùng trong các bản release tiếp theo. Nhóm kiểm thử viên cũng dựa trên kết quả đánh giá này mà bổ sung các ca kiểm thử phù hợp. Đây cũng chính là một phần việc trong quá trình kiểm thử hồi quy phần mềm.
CHƢƠNG 4 – KIỂM THỬ GIAO DIỆN THEO PHÂN LOẠI PHẦN MỀM 4.1. Phân loại phần mềm
Phân loại phần mềm theo một số tiêu chí sau: Theo mức độ hoàn thiện:
o Phần mềm đơn lẻ: Là phần mềm chỉ thực hiện một số nhiệm vụ nhất định. Ví dụ: các trình soạn thảo văn bản, phần mềm đồ họa,…
o Phần mềm mang tính hệ thống: Là phần mềm đƣợc truy cập và sử dụng bởi nhiều ngƣời dùng trong một hệ thống. Thƣờng phải đi đôi với mạng máy tính.
Theo chức năng mà phần mềm thực hiện:
o Phần mềm hệ thống
o Phần mềm công cụ
o Phần mềm ứng dụng Theo lĩnh vực đƣợc ứng dụng:
o Phần mềm nghiệp vụ: thƣờng đƣợc ứng dụng cho nghiệp vụ của từng doanh nghiệp, tổ chức xác định.
o Phần mềm nhúng: phần mềm đƣợc gắn vào chip của các thiết bị điện tử: ti vi, tủ lạnh,…
o Phần mềm máy tính cá nhân: phần mềm dùng trong lĩnh vực tính toán
o Phần mềm trên nền web: phần mềm đƣợc truy cập thông qua các trình duyệt web, ngƣời dùng có thể truy cập thông qua mạng internet
o Phần mềm trí tuệ nhân tạo: các phần mềm thông minh sử dụng trí tuệ nhân tạo, nhƣ các hệ chuyên gia (hệ cơ sở tri thức), phần mềm trong lĩnh vực nhận dạng (hình ảnh, tiếng nói), các phần mềm chứng minh định lý và trò chơi, các hệ mạng nơ ron nhân tạo mô phỏng cấu trúc của việc xử lý trong bộ óc con ngƣời.
o Phần mềm hệ thống: là một tập hợp các chƣơng trình giải quyết các bài toán.
Mỗi loại phần mềm có đặc điểm riêng, do đó cách tiếp cận và kiểm thử phần mềm cũng có những điểm khác nhau. Các mục tiếp theo trong Chƣơng 4 của luận văn đề cập tới kiểm thử giao diện phần mềm đƣợc phân loại theo lĩnh vực đƣợc ứng dụng.
4.2. Kiểm thử giao diện phần mềm nghiệp vụ
Phần mềm nghiệp vụ là các phần mềm đƣợc xây dựng dựa theo yêu cầu nghiệp vụ của từng doanh nghiệp. Phần mềm có thể là các ứng dụng trên nền tảng Window hoặc các ứng dụng web. Các phần mềm quản lý bệnh viện, trƣờng học, phần mềm kế
toán,… là các ví dụ điển hình về phần mềm nghiệp vụ. Mỗi phần mềm có các tiêu chí và đặc thù riêng, việc kiểm thử phần mềm phải thật sát với tài liệu đặc tả phần mềm.
Nhìn chung, giao diện phần mềm nghiệp vụ sẽ đƣợc kiểm thử theo các tiêu chí đã đƣợc nêu trong Chƣơng 3 của luận văn. Phần mềm nghiệp vụ có thể đƣợc phát triển trên nền tảng window hay web. Tùy từng nền tảng mà áp dụng các kỹ thuật kiểm thử đƣợc nêu trong Mục 4.4 và Mục 4.5 của chƣơng này.
Các phần mềm nghiệp vụ có thể có một số yêu cầu riêng về giao diện, khi đó sẽ có tài liệu đặc tả về các yếu tố đó. Quá trình kiểm thử cần chú trọng vào các thành phần này, bởi đó chính là nét đặc trƣng của ứng dụng.
4.3. Kiểm thử giao diện đối với phần mềm nhúng
4.3.1. Hệ thống nhúng và các đặc điểm cơ bản
Hệ thống nhúng (Embedded system) là một thuật ngữ để chỉ một hệ tính toán
nằm trong sản phẩm, tạo thành một phần của hệ thống lớn hơn và thực hiện một số chức năng của hệ thống. Đó là các hệ thống tích hợp cả phần cứng và phần mềm phục vụ các bài toán chuyên dụng trong nhiều lĩnh vực công nghiệp, tự động hoá điều khiển, quan trắc và truyền tin. Đặc điểm của các hệ thống nhúng là hoạt động ổn định và có tính năng tự động hoá cao.
Mỗi hệ thống nhúng phải đáp ứng đƣợc các yêu cầu dƣới đây – đây cũng là những đặc tính chung của các hệ thống nhúng:
1. Khả năng độc lập và thông minh hoá: Điều này đƣợc chỉ rõ hơn thông
qua một số các thuộc tính yêu cầu, cụ thể nhƣ: - Độ tin cậy
- Khả năng bảo trì và nâng cấp - Sự phổ cập và tiện sử dụng - Độ an toàn
- Tính bảo mật
2. Hiệu quả: Yêu cầu này đƣợc thể hiện thông qua một số các đặc điểm
của hệ thống nhƣ sau:
- Năng lƣợng tiêu thụ
- Kích thƣớc về phần cứng và phần mềm - Hiệu quả về thời gian thực hiện
- Kích thƣớc và khối lƣợng - Giá thành
3. Phân hoạch tác vụ và chức năng hoá: Các bộ vi xử lý trong các hệ
nhúng thƣờng đƣợc sử dụng để đảm nhiệm và thực hiện một hoặc một nhóm chức năng rất độc lập và cũng đặc thù cho từng phần chức năng của hệ thống lớn mà nó đƣợc nhúng vào. Ví dụ nhƣ một vi xử lý thực hiện một phần điều khiển cho một chức năng thu thập, xử lý và hiển thị của ôtô hay hệ thống điều khiển quá trính. Khả năng này làm tăng thêm sự chuyên biệt hoá về chức năng của một hệ thống lớn và dễ dàng hơn cho quá trính xây dựng, vận hành và bảo trì.
4. Khả năng thời gian thực: Các hệ thống đều gắn liền với việc đảm nhiệm
một chức năng chính và phải đƣợc thực hiện đúng theo một khung thời gian qui định. Thông thƣờng một chức năng của hệ thống phải đƣợc thực hiện và hoàn thành theo một yêu cầu thời gian định trƣớc để đảm bảo thông tin cập nhật kịp thời cho phần xử lý của các chức năng khác và có thể ảnh hƣởng trực tiếp tới sự hoạt động đúng và chính xác của toàn hệ thống. Tuỳ thuộc vào từng bài toán và yêu cầu của hệ thống mà yêu cầu về khả năng thời gian thực cũng rất khác nhau.
4.3.2. Kiểm thử giao diện hệ thống nhúng
Hệ thống nhúng cũng đƣợc lập trình nhƣ một phần mềm, do đó kiểm thử hệ thống nhúng cũng trải qua các giai đoạn kiểm thử và sử dụng các kỹ thuật kiểm thử nhƣ các phần mềm thông dụng nói chung. Tuy nhiên, hầu hết các hệ thống nhúng đƣợc dành riêng cho một ứng dụng nhất định. Ví dụ, hệ thống điều khiển ô tô hay tàu hỏa sẽ luôn chạy phần mềm đó mà không có bất kỳ chức năng nào khác. Các hệ thống nhúng cũng có giao diện chuyên biệt riêng bao gồm các nút bấm, bánh lái, pê-đan,… , hầu hết không dùng chuột và bàn phím nhƣ các phần mềm thông thƣờng. Chính vì thế, kiểm thử giao diện hệ thống nhúng sẽ khác hơn so với kiểm thử phần mềm thông dụng. Đặc biệt cần quan tâm tới việc kiểm tra xem giao diện hệ thống có đáp ứng các yêu cầu về tính tiện dụng bao gồm: tính rõ ràng, tính phản hồi, tính ràng buộc, tính ánh xạ, tính nhất quán và tính gợi ý.
Một đặc điểm khác biệt của hệ thống nhúng đó là giao diện. Các hệ nhúng đơn nhiệm không có giao diện (ví dụ bộ điều khiển ổ đĩa máy tính), một số hệ thống đơn giản giao diện chỉ là các nút bấm, đèn LED,… trong khi một số hệ thống phức tạp hơn có đầy đủ giao diện giao tiếp ngƣời dùng tƣơng tự nhƣ các hệ điều hành trong các thiết bị để bàn [13].
Đối với các hệ thống nhúng có giao diện đồ họa tƣơng tự giao diện đồ họa của phần mềm ứng dụng thông thƣờng, ta áp dụng các phƣơng pháp và kỹ thuật giao diện nhƣ đã nêu trong Chƣơng 3 của luận văn. Ngoài ra, hệ thống nhúng sử dụng các thiết
bị phần cứng đặc trƣng đi kèm. Kiểm thử giao diện hệ nhúng đảm bảo phải kiểm thử qua các thành phần này.
Các nút bấm và đèn LED
Một số hệ thống với giao diện ngoài chỉ gồm nút bấm và các đèn tín hiệu, ví dụ nhƣ máy giặt tự động. Khi tác động vào các nút bấm, hệ thống hoạt động, và thông tin trạng thái làm việc của hệ thống có thể đƣợc biểu hiện qua trạng thái (tốc độ nhấp nháy, màu sắc) của đèn tín hiệu. Trƣớc tiên cần kiểm tra giao diện, cách sắp xếp bố trí các nút bấm, vị trí đèn tín hiệu. Cần trả lời một số câu hỏi: Sắp xếp nhƣ vậy đã hợp lý hay chƣa? Nhìn vào giao diện đó, ngƣời dùng có thể hình dung đƣợc thao tác sử dụng hay không? Có các thông tin gợi ý, hỗ trợ phù hợp hay không?,.. Kiểm tra hoạt động của các nút bấm, khi nhấn vào nút bấm điều gì sẽ xảy ra, ngƣời dùng có cảm nhận đƣợc sự phản hồi của hệ thống? Trạng thái đèn tín hiệu có tƣơng ứng với các thao tác đã thực thi hay không? Nó có mang tính gợi ý cho ngƣời dùng hay không (đèn sáng xanh chỉ máy hoạt động bình thƣờng, đèn đỏ, đèn nhấp nháy mang ý cảnh báo,…).
Thành phần kết nối mạng
Ngoài các nút bấm, đèn tín hiệu, một số hệ nhúng còn sử dụng kết nối mạng để tƣơng tác với ngƣời dùng. Khi đó phải kiểm thử hoạt động của các giao tiếp mạng này.
Giao diện đồ họa
Các hệ nhúng phức tạp hơn sử dụng màn hình đồ họa để tƣơng tác ngƣời dùng. Các hệ thống này có thể đơn giản chỉ là bộ điều khiển chuột của máy tính bàn, hay phức tạp hơn nhƣ giao diện của các smart phones. Tổng thể giao diện có hài hòa về bố cục, màu sắc hay không? Lần lƣợt kiểm tra hoạt động của từng đối tƣợng trên màn hình, sự tƣơng tác giữa các nút bấm và các thành phần khác?
Với các hệ thống nhúng đơn giản có thể tiến hành kiểm thử trực tiếp trên sản phẩm. Tuy nhiên, một số hệ thống lớn với chi phí đắt, có thể gây hậu quả nghiêm trọng về kinh tế, sự an toàn và sức khỏe con ngƣời,… thì cần tiến hành kiểm thử trên môi trƣờng giả lập. Hiện nay trên thị trƣờng có rất nhiều các phần mềm giả lập. Với mỗi hệ thống nhúng chuyên biệt lại có nhiều phần mềm giả lập khác nhau. Đơn giản nhƣ chỉ riêng hệ điều hành trên thiết bị di động Android đƣợc sử dụng nhiều trong các smart phone cũng có rất nhiều phần mềm giả lập trên máy tính, điển hình là ba phần mềm: BlueStarks, YouWave, Official Android Emulator, và hoàn toàn có thể tải các phần mềm dùng thử miễn phí trên mạng.
4.4. Kiểm thử giao diện đối với các ứng dụng Windows
Kiểm thử ứng dụng Windows đƣợc phân chia nhỏ thành kiểm thử Desktop và kiểm thử ứng dụng chủ khách (Client Server Application Testing). Tuy nhiên, khái
niệm kiểm thử và các yêu cầu của nó vẫn giống nhau về khái niệm, các thành phần kiểm thử trong mỗi phạm trù khác nhau.
Ví dụ, kiểm thử ứng dụng window đơn giản hơn về bản chất do tester có khả năng kiểm soát toàn ứng dụng, mức độ phức tạp nhất là kiểm thử qua mạng nội bộ (Intranet) nơi mà số lƣợng máy khách (client) và máy chủ (server) đã đƣợc biết. Trong khi đó, kiểm thử ứng dụng web phức tạp hơn khi mà tester không thể kiểm soát hết toàn bộ ứng dụng với các trình duyệt web khác nhau, ứng dụng chạy trên các platform khác nhau.
Bảng 4.1 - So sánh giữa các ứng dụng Desktop, Client Server và Web
Ứng dụng Desktop Ứng dụng Client – Server Ứng dụng Web Ứng dụng một tầng (1 tier) Ứng dụng 2 tầng (2 tiers) Ứng dụng 3 tầng (3 tiers) Ứng dụng chạy trên một hệ thống Ứng dụng chạy trên 2 hay nhiều hệ thống
Ứng dụng chạy trên hai hay nhiều hệ thống
Một ngƣời sử dụng Giới hạn số lƣợng ngƣời dùng Không giới hạn số lƣợng ngƣời dùng
Kết nối tồn tại cho
tới khi đăng xuất
Mode không đƣợc kết nối - quản lý các cookies
Ứng dụng dạng
menu driven Ứng dụng dạng URL driven
Vấn đề mạng đƣợc biết trong trƣờng hợp mạng nội bộ với số lƣợng clients và servers đã biết Các vấn đề tồn tại nhƣ khả năng tƣơng thích phần cứng, tƣơng thích trình duyệt, tƣơng thích phiên bản, vấn đề về bảo mật, các vấn đề hiệu năng Biết rõ ngƣời dùng Không biết ngƣời dùng Kiểm thử client – server trong kiểm thử ứng dụng windows
Kiểu kiểm thử này thƣờng đƣợc dùng cho các ứng dụng 2 lớp (2 tier) và đƣợc biết tới là kiểm thử Khách – chủ (Client Server). Kiểm thử bao phủ cả front-end và
back-end. Ví dụ: ứng dụng đƣợc phát triển bằng ngôn ngữ VC++, VB, C, C++, Core Java, PowerBuilder, D2K,… với backend cho mỗi ứng dụng có thể là MySQL, SQL Server, Sybase, Oracle, Quadbase, MS Access,.. Việc kiểm thử đƣợc thi hành trên những loại ứng dụng này sẽ đƣợc phân loại chung thành Kiểm thử hộp trắng, kiểm thử hộp đen, kiểm thử tích hợp, kiểm thử tích hợp mức cao hơn (Incremental Integration
Testing), kiểm thử đơn vị, kiểm thử hồi quy, kiểm thử khả năng chịu tải, kiểm thử tính
tiện dụng, kiểm thử hiệu năng, kiểm thử cài đặt, kiểm thử tính bảo mật, kiểm thử tính tƣơng thích, kiểm thử khả năng khôi phục.
10 điều cần nhớ khi kiểm thử ứng dụng Windows
Hiểu rõ chức năng quan trọng của ứng dụng Xác định các mô-đun có mức độ rủi ro cao
Xác định chức năng có thể thấy rõ nhất của ứng dụng Xác định chức năng bảo mật cao của ứng dụng
Xác định chức năng của ứng dụng có tác động mạnh nhất tới vấn đề tài chính
Xác định mặt quan trọng nhất của ứng dụng Xác định các mô-đun mã phức tạp
Thu thập ý kiến của các nhà phát triển về các khía cạnh có rủi ro cao của ứng dụng
Khoanh vùng vấn đề có thể gây ra các hậu quả nghiêm trọng nhất
Xác định các vùng vấn đề có thể gây nhiều phàn nàn khiếu nại của khách hàng
Kiểm thử tự động giao diện ứng dụng window
Trên thị trƣờng hiện nay có rất nhiều các công cụ kiểm thử tự động bản quyền và mã nguồn mở. Dƣới đây là một số công cụ điển hình đƣợc áp dụng cho kiểm thử giao diện ứng dụng window:
o Quick Test Professional (QTP)
o AppsWatch
o AutoTester One
o Ranorex
o TestSmith
4.5. Kiểm thử giao diện với các ứng dụng Web
4.5.1. Ứng dụng Web (Web Application)
Trong kỹ thuật phần mềm, một ứng dụng web hay webapp là một trình ứng
Ứng dụng web phổ biến nhờ vào sự có mặt vào bất cứ nơi đâu của một chƣơng trình. Khả năng cập nhật và bảo trì ứng dụng Web mà không phải phân phối và cài đặt phần mềm trên hàng ngàn máy tính là lý do chính cho sự phổ biến của nó. Ứng dụng web đƣợc dùng để hiện thực Webmail, bán hàng trực tuyến, đấu giá trực tuyến, wiki, diễn đàn thảo luận, Weblog, MMORPG, Hệ quản trị quan hệ khách hàng và nhiều chức năng khác.
4.5.2. Kiểm thử ứng dụng Web
Kiểm thử ứng dụng web cần bao phủ tất cả các miền chức năng, khả năng tƣơng thích, giao diện, bảo mật, hiệu năng và tính tiện.
Kiểm thử giao diện là một trong những thành phần chính của kiểm thử để đảm bảo rằng các giao diện giữa các client có liên quan và servers thi hành theo đúng trình