Cách kiểm thử ứng dụng dành cho thiết bị di động
This post hasn't been updated for 3 years
Với việc điện thoại thông minh đang dần trở thành thứ ai cũng phải có, các nhà phát triển đã và đang tìm kiếm sự nghiệp tốt trong việc phát triển ứng dụng di động. Các thị trường cũng đang tràn ngập với hàng triệu ứng dụng. Nhưng sự thật là chỉ một số ít có khả năng ghi dấu ấn và thống trị thế giới di động.
Do vậy, những nhà phát triển ứng dụng di động phải chắc chắn rằng ngoài việc cung cấp một cái gì đó sáng tạo và thú vị cho khách hàng, ứng dụng của họ cũng phải không có bất kỳ trục trặc nào. Và do đó, việc kiểm thử ứng dụng di động cũng đang trở nên quan trọng hơn.
Kiểm thử ứng dụng di động là gì?
Kiểm thử ứng dụng di động là một quy trình để kiểm tra các ứng dụng di động về khả năng sử dụng, chức năng và tính nhất quán.
Các yếu tố cần thiết để kiểm thử ứng dụng di động là gì?
Kiểm thử ứng dụng di động rất khác so với kiểm thử phần mềm và kiểm thử web. Có một số đặc điểm cụ thể mà bạn nên xem xét trước khi thực hiện kiểm thử ứng dụng di động:
- Độ phân giải màn hình
- Bật/ tắt GPS
- Hướng màn hình (ngang, dọc)
- Các nhà sản xuất thiết bị khác nhau
- Hệ điều hành
- Loại ứng dụng di động
Loại ứng dụng di động
Loại ứng dụng di động kiểm thử đóng một vai trò rất quan trọng trong việc xác định quy trình kiểm thử. Vì vậy phải xác định rõ ràng về loại ứng dụng của thiết bị di động sẽ kiểm thử.
Chúng chủ yếu được phân loại thành ba loại khác nhau:
- Ứng dụng web trên điện thoại di động: Đây là những trang web được mở thông qua trình duyệt trên điện thoại di động
- Ứng dụng gốc: Đây là những ứng dụng được phát triển cho một nền tảng cụ thể (iOS, Android, Windows 10 M0bile, Tizen, BlackBerry)
- Kết hợp: Là sự kết hợp của ứng dụng web di động và ứng dụng gốc
Làm thế nào để lập chiến lược cho việc kiểm thử ứng dụng di động?
Lập chiến lược kiểm thử có thể giúp việc thực hiện kiểm thử một cách hợp lý, do đó làm tăng hiệu quả và hiệu suất. Những điểm cơ bản cần xem xét khi lập chiến lược kiểm thử ứng dụng dành cho thiết bị di động là:
Lựa chọn thiết bị
Kiểm thử trên thiết bị thật luôn là quyết định tốt nhất cho việc kiểm thử ứng dụng dành cho thiết bị di động. Nó cho độ chính xác cao nhất. Tuy nhiên, với thị trường tràn ngập hàng trăm thương hiệu khác nhau và nhiều mẫu điện thoại di động khác nhau, việc lựa chọn một sản phẩm thích hợp nhất để kiểm thử cũng là một nhiệm vụ phức tạp.
Dưới đây là một số gợi ý giúp lựa chọn thiết bị:
- Nghiên cứu về thiết bị di động được sử dụng và phổ biến nhất trên thị trường
- Chú ý điện thoại di động có độ phân giải màn hình khác nhau
- Chọn điện thoại di động có hệ điều hành khác nhau
- Không nên đánh giá thấp các tính năng như khả năng tương thích, dung lượng bộ nhớ, kết nối, v.v...
Cái nào tốt hơn - Trình giả lập (Emulators) hay Trình mô phỏng (Simulators)?
Trình giả lập hoặc trình mô phỏng được sử dụng rộng rãi để kiểm thử di động ngày nay. Nhưng những trình giả lập hoặc trình mô phỏng này là gì? Chúng là những công cụ có khả năng mô phỏng/ bắt chước hành vi và hoạt động của các thiết bị di động.
Mặc dù nhiều người trong chúng ta có thể nhầm lẫn giữa “Trình giả lập” và “Trình mô phỏng" và rằng chúng giống nhau. Nhưng thực chất chúng khác nhau.
Trình giả lập là thiết bị thay thế ban đầu cho phép chạy các ứng dụng trên thiết bị mà không thể sửa đổi chúng.
Mặc dù trình mô phỏng không bắt chước phần cứng của thiết bị di động nhưng nó có thể thiết lập môi trường tương tự như hệ điều hành di động.
Do đó, trình mô phỏng được ưu tiên để kiểm thử ứng dụng di động trong khi trình giả lập thì tốt hơn trong việc kiểm thử ứng dụng web di động.
Kiểm thử dựa trên đám mây của ứng dụng di động (Cloud-based testing)
Cho phép các thiết bị di động chạy trên một số hệ thống và mạng, kiểm thử dựa trên đám mây giúp khắc phục những hạn chế của trình mô phỏng và thiết bị thực.
Cái nào tốt hơn - Kiểm thử thủ công (Manual testing) hay tự động (Automated testing) trên thiết bị di động?
Một số tester cho đến nay vẫn thực hiện kiểm thử thủ công trong khi đối với những người khác họ tin rằng việc kiểm thử thủ công này sẽ không còn tồn tại lâu được nữa. Nhưng thực tế là cả kiểm thử tự động và kiểm thử thủ công đều quan trọng.
Có những tình huống được kiểm tra tốt nhất với kiểm thử tự động, nhưng có một số tình huống cho kết quả tốt nhất với kiểm thử thủ công.
Các giai đoạn kiểm thử ứng dụng dành cho thiết bị di động
1. Kiểm thử tài liệu (Documentation Testing)
Việc kiểm thử di động bắt đầu diễn ra từ giai đoạn kiểm thử tài liệu.
Ngay cả trước khi việc phát triển ứng dụng được bắt đầu, những người kiểm thử đã được bàn giao các tài liệu về bố cục màn hình, biểu đồ điều hướng và các yêu cầu khác bị ẩn trong thiết kế.
Giai đoạn này cần phân tích các yêu cầu về tính tổng thể và sự khác biệt. Tất cả sự khác biệt được tìm thấy trong giai đoạn này cần phải được giải quyết trước khi bắt đầu phát triển ứng dụng.
Giai đoạn lập tài liệu giúp thiết kế và phân tích các yêu cầu (Đặc điểm kỹ thuật, PRD), Test Cases, Test Plan, Ma trận truy vết.
2. Kiểm thử chức năng (Functional testing)
Functional testing giúp kiểm tra xem ứng dụng di động có hoạt động như mong đợi và phù hợp với các thông số kỹ thuật yêu cầu hay không. Trong khi thực hiện kiểm thử chức năng cho ứng dụng, hãy lưu ý các yếu tố sau:
- Chức năng kinh doanh của ứng dụng như ngân hàng, mạng xã hội, đặt hàng và giao đồ ăn, giáo dục, vé, ngành công nghiệp trò chơi, v.v...
- Đối tượng mục tiêu như công ty, sinh viên, doanh nhân, v.v...
- Các kênh phân phối như Google Play, giao hàng trực tiếp, App Store, v.v...
Các xác nhận cơ bản mà bạn cần kiểm tra trong kiểm thử chức năng là:
- Cài đặt và chạy ứng dụng
- Kiểm tra các lĩnh vực
- Kiểm tra chức năng kinh doanh
- Kiểm tra gián đoạn
- Kiểm tra phản hồi của người dùng liên tục
- Kiểm tra cập nhật
- Kiểm tra tài nguyên thiết bị
3. Kiểm thử khả năng sử dụng (Usability testing)
Usability testing đảm bảo rằng ứng dụng cung cấp khả năng duyệt web thuận tiện cho khách hàng và tạo ra một giao diện trực quan tuân theo các tiêu chuẩn ngành. Nó hứa hẹn các ứng dụng nhanh và dễ sử dụng. Khả năng sử dụng của ứng dụng được đánh giá dựa trên ba tiêu chí cơ bản sau:
- Sự hài lòng
- Hiệu quả
- Ấn tượng
4. Kiểm thử giao diện người dùng (UI testing)
UI testing đảm bảo rằng GUI của ứng dụng đáp ứng tất cả các thông số kỹ thuật bắt buộc.
5. Kiểm thử khả năng tương thích (Compatibility testing)
Compatibility testing xác định hiệu suất tối ưu của ứng dụng trên các thiết bị khác nhau dựa trên kích thước, độ phân giải màn hình, phiên bản, phần cứng, v.v... Compatibility testing cũng quan tâm đến:
- Cấu hình hệ điều hành
- Cấu hình trình duyệt
- Cấu hình cơ sở dữ liệu
- Cấu hình thiết bị
- Cấu hình mạng
Compatibility testing có thể được chia thành:
- Kiểm thử đa nền tảng (Cross-platform testing): Kiểm thử khả năng tương thích của ứng dụng di động với các hệ điều hành khác nhau: Windows, iOS, Android và BlackBerry, v.v...
- Kiểm thử nhiều trình duyệt (Cross-browser testing): Kiểm thử khả năng tương thích ứng dụng di động trong các trình duyệt khác nhau Google Chrome, Mozilla Firefox, Opera Mini, v.v...
- Kiểm thử cơ sở dữ liệu (Database testing): Kiểm thử khả năng tương thích ứng dụng di động trong các cấu hình cơ sở dữ liệu khác nhau: DB2, Oracle, MSSQL Server, MySql, Sybase
- Kiểm thử cấu hình thiết bị (Device Configuration testing): Kiểm thử khả năng tương thích ứng dụng di động trên các thiết bị khác nhau dựa trên loại thiết bị: điện thoại thông minh, máy tính bảng, v.v. và cấu hình thiết bị: loại vi xử lý, RAM, dung lượng pin, độ phân giải màn hình, v.v...
- Kiểm thử cấu hình mạng (Network configuration testing): Kiểm thử khả năng tương thích ứng dụng di động trong các cấu hình mạng khác nhau (TDMA, GSM) và các tiêu chuẩn (2G, 3G, 4G)
6. Kiểm thử hiệu năng (Performance testing)
Performance testing giúp kiểm tra phản ứng và tính ổn định của ứng dụng trong khối lượng công việc cụ thể.
Các thuộc tính Performance testing:
- Load Testing: Được thực hiện để kiểm tra hoạt động của ứng dụng trong điều kiện tải bình thường và tải khắc nghiệt
- Stress Testing: Được thực hiện để kiểm tra khả năng duy trì của ứng dụng. Nó đảm bảo rằng ứng dụng có khả năng chịu áp lực quá mức
- Stability Testing: Kiểm tra xem ứng dụng có thể hoạt động tốt trong một thời gian dài hơn trong các lần tải bình thường hay không
- Volume Testing: Được tiến hành để kiểm tra hiệu suất ứng dụng khi phải chịu một lượng lớn dữ liệu.
- Concurrency testing: Kiểm tra hiệu suất của ứng dụng khi nhiều người dùng đăng nhập
7. Kiểm thử bảo mật (Security testing)
Security testing xác nhận các tính năng bảo mật của ứng dụng. Nó cũng phân tích các rủi ro của các hackers, bảo vệ, vi rút và truy cập trái phép vào dữ liệu cực kỳ nhạy cảm.
8. Kiểm thử phục hồi (Recovery testing)
Recovery testing kiểm tra khả năng ứng dụng có thể chịu đựng và khôi phục thành công khỏi các lỗi có thể xảy ra do sự cố phần mềm, lỗi phần cứng hoặc sự cố giao tiếp.
9. Kiểm thử nội địa hóa (Localization testing)
Localization testing kiểm tra khả năng thích ứng của ứng dụng đối với một đối tượng mục tiêu cụ thể dựa trên các đặc điểm văn hóa cụ thể.
10. Thay đổi các kiểm thử
Sau khi kiểm thử xong, có thể tìm thấy một số lỗi, dẫn đến một đoạn mã nhất định phải thay đổi để loại bỏ những lỗi đó. Sau khi những thay đổi mã này một lần nữa, cần phải thực hiện một vòng kiểm tra. Về cơ bản, điều này bao gồm:
- Kiểm thử lại (Re-testing) hoặc Kiểm thử xác nhận (Confirmation testing): để kiểm tra xem tất cả các lỗi phát hiện đã được sửa thành công hay chưa
- Kiểm thử hồi quy (Regression testing): đôi khi thay đổi mã thậm chí có thể làm xáo trộn hoạt động của các chức năng hiện có và đang hoạt động tốt. Regression testing được thực hiện để đảm bảo rằng các thay đổi mới không dẫn đến sự xuất hiện của các lỗi mới
11. Kiểm thử beta (Beta testing)
Beta testing được thực hiện bởi người dùng thực trên thiết bị thực để xác nhận khả năng sử dụng, chức năng, khả năng tương thích và kiểm tra độ tin cậy.
Trước khi ứng dụng được tiến hành Beta testing, hãy tính đến các yếu tố sau:
- Số lượng người tham gia thử nghiệm
- Thời lượng kiểm thử
- Sự vận chuyển
- Phạm vi nhân khẩu học
- Chi phí kiểm thử
Beta testing là một khoản đầu tư tốt để đảm bảo chất lượng tốt hơn cho ứng dụng dành cho thiết bị di động.
12. Kiểm thử chứng nhận (Certification testing)
Certification testing kiểm tra xem ứng dụng có đáp ứng các tiêu chuẩn, thỏa thuận cấp phép, điều khoản sử dụng và yêu cầu của các cửa hàng như App Store, Google Play và Windows Phone hay không.
Những thách thức của kiểm thử ứng dụng di động
- Phương pháp kiểm thử dựa trên thiết bị
- Tính khả dụng của nhiều giao diện người dùng di động
- Các vấn đề bảo mật lớn hơn
- Hạn chế thời gian đối với ứng dụng thị trường
- Môi trường liên tục thay đổi và cách sử dụng điện thoại di động
- Thử nghiệm màn hình cảm ứng phức tạp hơn
- Trải nghiệm người dùng và vấn đề với hiệu suất ứng dụng
Những tip kiểm thử ứng dụng di động
Hãy hệ thống hóa kiến thức và cố gắng xác định các tips chính để kiểm thử ứng dụng dành cho thiết bị di động.
- Hãy trở nên quen thuộc với ứng dụng di động. Tìm hiểu nó cả trong và ngoài
- Hãy nhớ rằng bạn đang thử nghiệm một ứng dụng di động chứ không phải phần mềm máy tính để bàn
- Tính đến thông số kỹ thuật phần cứng và hệ điều hành của thiết bị đang thử nghiệm
- Sử dụng thiết bị thực bất cứ khi nào có thể để có kết quả kiểm tra tốt nhất
- Sử dụng các công cụ kiểm thử ứng dụng di động mà bạn đã quen thuộc và không chọn ngẫu nhiên một công cụ nào đó chỉ vì tính phổ biến của nó
- Hãy thử sử dụng kiểm thử di động đám mây
- Hãy thử sử dụng các tùy chọn menu phát triển ở mức tối đa
- Trình giả lập và trình mô phỏng có thể là người bảo vệ bạn, hãy sử dụng chúng bất cứ khi nào được yêu cầu
- Hãy nhớ kiểm tra hiệu suất là quan trọng
- Đừng chạy theo tự động hóa, hãy cân bằng giữa tự động hóa và kiểm thử thủ công
- Beta testing luôn là một lợi thế
- Lập kế hoạch thời gian cho các hoạt động kiểm thử khác nhau
Các công cụ kiểm thử ứng dụng dành cho thiết bị di động phổ biến
- Dành cho Functionality testing: Appium, Selendroid, Robotium, Ranorex
- Dành cho Usability testing: Reflector, User Zoom, Loop
- Dành cho UI testing: iMacros, FitNesse, Jubula, Giao diện người dùng mã hóa, LoadUI
- Dành cho Compatibility testing: CrossBrowserTesting, BrowserStack, Browsera, Litmus, Rational ClearCase, Ghostlab
- Dành cho Performance testing: Apteligent, NeoLoad, New Relic
- Dành cho Security Testing: OWASP Zed Attack Proxy, Retina CS Community, Google Nogotofail, Veracode và SQL Map
Bài viết được dịch từ: How to Test a Mobile Application [Step by Step] https://www.testbytes.net/blog/how-to-test-a-mobile-application/
All Rights Reserved