12/08/2018, 13:35

Mobile Testing: Hướng dẫn tổng quát khi test apps trên Mobile

Một số hoặc tất cả các loại kiểm thử sau đây có thể được thực hiện tùy thuộc vào yêu cầu kiểm tra mobile của bạn Functional testing - Kiểm thử chức năng Performance testing - Kiểm thử hiệu suất Security testing - Kiểm thử bảo mật Usability testing - Kiểm thử tính khả dụng Compatibility ...

Một số hoặc tất cả các loại kiểm thử sau đây có thể được thực hiện tùy thuộc vào yêu cầu kiểm tra mobile của bạn

  • Functional testing - Kiểm thử chức năng
  • Performance testing - Kiểm thử hiệu suất
  • Security testing - Kiểm thử bảo mật
  • Usability testing - Kiểm thử tính khả dụng
  • Compatibility testing - Kiểm thử khả năng tương thích
  • Recoverability Testing - Kiểm thử khả năng khôi phục

Mobile_Testing.png

1. Functional testing - Kiểm thử chức năng.

Kiểm thử chức năng trên mobile thường bao gồm kiểm thử tương tác người dùng và kiểm thử giao dịch. Những yếu tố khác liên quan đến kiểm thử chức năng là:

  1. Loại ứng dụng dựa vào tập quán chức năng kinh doanh ( nghiệp vụ ngân hàng, trò chơi, xã hội hoặc kinh doanh ).
  2. Loại đối tượng chính ( người tiêu dùng, doanh nghiệp, giáo dục ).
  3. Các cửa hàng phân phối được sử dụng để quảng bá ứng dụng (ví dụ: Apple App Store, Google play, cửa hàng trực tuyến). Test scenarios - Kịch bản test cơ bản nhất trong functional testing có thể được coi như:
  4. Xác nhận các trường bắt buộc có thực hiện đúng yêu cầu hay không.
  5. Xác nhận trên màn hình, các trường bắt buộc hiển thị có gì khác so với các trường không bắt buộc.
  6. Xác nhận khi app khởi động và dừng lại có đúng với yêu cầu không.
  7. Xác nhận trường hợp app có chuyển sang chế độ thu nhỏ khi có cuộc gọi đến hay không. Để xác nhận trường hợp này, chúng ta cần một chiếc mobile thứ 2 để gọi đến chiếc mobile đang cần được xác nhận.
  8. Xác nhận điện thoại có thể lưu trữ , xử lý và nhận SMS trong khi app đang chạy. Để xác nhận trường hợp này chúng ta cần đến một chiếc điện thoại thứ 2, gửi SMS đến thiết bị mà chúng ta đang cần xác nhận.
  9. Xác nhận điện thoại có thể thực hiện các yêu cầu đa nhiệm khi cần thiết không.
  10. Xác nhận app có thể cho phép tùy chọn các ứng dụng mạng xã hội như: chia sẻ, gửi bài và chuyển hướng,...
  11. Xác nhận app có thể hỗ trợ các cổng thanh toán bất kỳ như: Vía, Mastercard, Paypal,... theo yêu cầu của mỗi loại app.
  12. Xác nhận app cho phép dịch chuyển (scroll) màn hình khi cần thiết không.
  13. Xác nhận việc điều hướng giữa các màn hình, chức năng khi cần thiết có đúng với yêu cầu không.
  14. Xác nhận các lỗi che, cắt màn hình có nằm trong giới hạn cho phép không.
  15. Xác nhận rằng người dùng sẽ luôn nhận được những thông báo thích hợp trong trường hợp có lỗi xảy ra, ví dụ khi mất mạng sẽ có thông báo "Lỗi mạng".
  16. Xác nhận khi cài đặt app lên thiết bị thì nó không làm ảnh hưởng tới việc chạy các app khác, cũng như chiếm bộ nhớ của app khác.
  17. Xác nhận app có thể tự khởi động lại trong trường hợp reboot phần cứng hoặc hệ thống bị crash.
  18. Xác nhận việc cài đặt app có thể được thực hiện suôn sẻ, luôn cung cấp đầy đủ thông tin hướng dẫn và các thành phần liên quan để hạn chế tối đa sai sót.
  19. Xác nhận app tự khởi động tùy theo các yêu cầu.
  20. Xác nhận app có thực hiện đúng theo yêu cầu đối với tất cả các phiên bản của mobile là 2g, 3g và 4g.
  21. Thực hiện regression testing - Kiểm thử hồi quy đối với hệ thống khi có bất kỳ thay đổi nào từ chúng. Cũng cần phải test các chức năng trước đó để chắc chắn rằng mọi thứ vẫn hoạt động đúng khi có sự thay đổi.
  22. Xác nhận rằng liệu app có cung cấp một bản hướng dẫn chi tiết, đầy đủ cho những người dùng chưa bao giờ hoặc không hiểu rõ về app không.

2. Performance testing - Kiểm thử hiệu suất.

Mục tiêu cơ bản của loại kiểm thử này là đảm bảo rằng app có thể thực hiện ở mức chấp nhận được một vài yêu cầu như là truy cập từ rất nhiều người dùng cùng lúc hay tháo dỡ bộ phận cơ sở hạ tầng then chốt như máy chủ cơ sở dữ liệu. Test scenario chung cho Performance testing trên Mobile app là:

  1. Xác định liệu app có thực hiện theo đúng yêu cầu trong các điều kiện load khách nhau.
  2. Xác định xem vùng phủ sóng hiện tại có thể hỗ trợ người dùng với mức độ sử dụng app lúc cao điểm, trung bình hay tối thiểu.
  3. Xác định xem việc thiết lập cấu hình client-server hiện có cung cấp mức hiệu suất tối ưu cần thiết.
  4. Xác định app khác nhau và cơ sở hạ tầng tắc nghẽn, gián đoạn, nó có thể ngăn app thực hiện các chức năng ở mức độ yêu cầu thấp nhất.
  5. Xác nhận thời gian phản hồi của app có đúng theo yêu cầu không.
  6. Đánh giá sản phẩm và/hoặc phần cứng để xác định xem khả năng chịu tải của nó như thế nào.
  7. Đánh giá tuổi thọ của pin có thể chịu tải được app không và có thể thì trong bao lâu.
  8. Xác nhận hiệu năng của app khi network thay đổi từ wifi sang 2G/3G và ngược lại.
  9. Xác nhận app có thực hiện đúng theo từng yêu cầu khi CPU được tối ưu hóa không.
  10. Xác nhận luôn có hướng dẫn chi tiết cho mức tiêu thụ pin, rò rỉ bộ nhớ, tài nguyên như GPS, dung lượng camera.
  11. Xác nhận hiệu suất của network như thế nào khi cầm thiết bị và di chuyển.

3. Security testing - Kiểm thử bảo mật.

Mobile_Testing1.png

Mục tiêu cơ bản của Security testing là để đảm bảo rằng dữ liệu của app và các yêu cầu về an ninh mạng được đáp ứng theo yêu cầu. Sau đây là những lưu ý quan trọng nhất để kiểm tra sự an toàn của các Mobile app:

  1. Để xác nhận rằng app có khả năng chịu được một cuộc tấn công bất ngờ như là một quá trình tự động sử dụng để đoán tên truy cập, mật khẩu hoặc thẻ tín dụng số của một người.
  2. Xác minh rằng app không cho phép kẻ tấn công truy cập nội dung nhạy cảm hoặc chức năng mà chưa xác thực tài khoản.
  3. Xác nhận rằng app có một hệ thống mật khẩu bảo vệ mạnh và nó không cho phép kẻ tấn công có lấy được thông tin, thay đổi hoặc khôi phục mật khẩu của người khác.
  4. Đảm bảo đủ thời gian cho mỗi phiên làm việc hay không.
  5. Đảm bảo rằng app luôn chủ động và có biện pháp để ngăn chặn những kẻ tấn công vào các lỗ hổng.
  6. Ngăn chặn những cuộc tấn công bằng hình thức chèn mã SQL.
  7. Bảo vệ app và network từ những vụ tấn công từ chối dịch vụ. Mục tiêu cơ bản của kiểm thử bảo mật là đảm bảo dữ liệu của ứng dụng và các yêu cầu bảo mật mạng được đáp ứng.

Sau đây là các lý do để kiểm tra bảo mật của ứng dụng mobile. 8. Phân tích việc lưu trữ dữ liệu và các yêu cầu xác nhận dữ liệu. 9. Cho phép quản lý session để ngăn người dùng chưa được xác thực truy cập vào thông tin. 10. Kiểm tra nếu bất cứ mã mã hóa nào bị phá vỡ và đảm bảo chúng được sửa lại. 11. Xác nhận cài đặt logic nghiệp vụ được bảo mật và không dễ bị tấn công từ bên ngoài. 12. Phân tích sự tương tác giữa các file hệ thống, xác định các lỗ hổng bảo mật và khắc phục chúng. 13. Đảm bảo chống lại injection từ phía client. 14. Đảm bảo chống lại runtime injection. 15. Điều tra các tập tin trong cache và ngăn chặn khả năng tấn công từ chúng. 16. Ngăn chặn các mối nguy hiểm từ lưu trữ dữ liệu không an toàn trong bộ nhớ cache của ứng dụng. 17. Điều tra cookies và ngăn chặn bất cứ hành động độc hại nào đến từ cookies. 18. Cung cấp audit thường xuyên cho việc phân tích bảo vệ dữ liệu. 19. Điều tra việc khách hàng tạo file và ngăn chặn bất cứ mối nguy hại đến từ file khách hàng tạo. 20. Ngăn chặn từ việc tràn buffer và các trường hợp dùng quá nhiều bộ nhớ. 21. Phân tích các dòng dữ liệu khác nhau và ngăn chặn bất cứ mối nguy hại nào từ chúng.

4. Usability testing - Kiểm thử tính khả dụng.

Mobile_Testing2.png

Kiểm tra khả năng sử dụng được thực hiện để có được ứng dụng thao tác dễ dàng, nhanh chóng với ít chức năng hơn là một ứng dụng chậm, khó thao tác, có nhiều tính năng. Mục đích chính là đảm bảo chúng ta có ứng dụng dễ sử dụng, trực quan.

  1. Đảm bảo các nút bấm có kích cỡ yêu cầu, phù hợp với cả người có ngón tay to.
  2. Đảm bảo các nút bấm được đặt trong cùng một phần của màn hình tránh nhầm lẫn cho người dùng.
  3. Đảm bảo các biểu tượng tự nhiên và thống nhất trong ứng dụng.
  4. Đảm bảo các nút bấm cho chức năng giống nhau có cùng màu sắc.
  5. Đảm bảo bàn phím có thể được thu nhỏ phù hợp.
  6. Đảm bảo ứng dụng cung cấp các phương thức quay lại hoặc hoàn tác bước trước đó, chạm sai mục trong thời gian chấp nhận được.
  7. Đảm bảo các menu ngữ cảnh không bị quá tải vì bị bấm quá nhanh.
  8. Đảm bảo text đơn giản, rõ ràng cho người dùng xem.
  9. Đảm bảo các câu, đoạn ngắn gọn người dùng có thể đọc được.
  10. Đảm bảo font chữ, kích cỡ đủ lớn để đọc, không quá lớn hoặc quá nhỏ.
  11. Xác nhận ứng dụng thông báo cho người dùng bất cứ khi nào người dùng bắt đầu tải một lượng lớn dữ liệu có thể ảnh hưởng đến hiệu suất của ứng dụng.
  12. Xác nhận đóng ứng dụng từ các trạng thái khác nhau và mở lại trong cùng trạng thái.
  13. Đảm bảo tất cả các chuỗi có thể chuyển sang ngôn ngữ phù hợp khi có hỗ trợ chuyển ngôn ngữ.
  14. Đảm bảo các mục của ứng dụng luôn luôn đồng bộ dựa trên hành động của người dùng.
  15. Đảm bảo người dùng được cung cấp hướng dẫn để hiểu và tsử dụng ứng dụng. Kiểm tra khả năng sử dụng thường được thực hiện bởi người dùng thủ công vì chỉ có con người mới có thể hiểu cảm giác và sự thoải mái của người dùng khác.

5. Compatibility testing - Kiểm thử khả năng tương thích.

Kiểm tra tính tương thích của thiết bị mobile được thực hiện để đảm bảo rằng ứng dụng hoạt động như mong muốn. Vì các thiết bị di động có kích cỡ, độ phân giải, màn hình, phiên bản và phần cứng khác nhau nên ứng dụng cần được kiểm tra trên tất cả các thiết bị. Dưới đây là các lý do chính cho việc cần kiểm tra độ tương thích:

  1. Xác nhận giao diện người dùng tùy theo kích thước màn hình của thiết bị, không có vùng text/control nào không thể nhìn thấy hoặc không truy cập được.
  2. Đảm bảo tất cả người dùng đều có thể đọc được text.
  3. Đảm bảo rằng gọi điện hoặc báo thức có thể được thực hiện bất cứ lúc nào trong khi ứng dụng đang chạy. Ứng dụng sẽ bị thu nhỏ hoặc treo cho đến khi cuộc gọi kết thúc, ứng dụng sẽ được thực hiện lại.

6. Recoverability Testing - Kiểm thử khả năng khôi phục.

  1. Khả năng khôi phục sau khi bị crash và ngắt giao dịch.
  2. Xác nhận hiệu quả khôi phục ứng dụng trong ngữ cảnh bị ngắt/crash không mong muốn.
  3. Xác nhận ứng dụng xử lý giao dịch như thế nào trong khi không có nguồn năng lượng (VD: Pin chết hoặc tắt máy bắt ngờ).
  4. Xác nhận các quá trình khi kết nối bị treo, hệ thống cần thiết lập lại để khôi phục dữ liệu bị ảnh hưởng trực tiếp bởi việc trì hoãn kết nối.

Các phần kiểm tra quan trọng khác:

  1. Kiểm tra việc cài đặt ( ứng dụng có được cài đặt trong khoảng thời gian hợp lý với các tiêu chí mong muốn hay không).
  2. Kiểm tra việc gỡ bỏ cài đặt (ứng dụng có được gỡ bỏ cài đặt trong khoảng thời gian hợp lý với các tiêu chí mong muốn hay không).
  3. Các trường hợp kiểm tra về mạng ( xác nhận mạng có chịu được tải yêu cầu hay không, mạng có thể hỗ trỡ tất cả các ứng dụng cần thiết trong suốt quá trình kiểm thử hay không).
  4. Kiểm tra các trường hợp unmapped key.
  5. Kiểm tra màn hình splash của ứng dụng.
  6. Kiểm tra việc nhập tiếp trong ngữ cảnh bị ngắt đoạn hoặc lỗi mạng.
  7. Phương thức giải quyết việc thoát ứng dụng.
  8. Ảnh hưởng của việc sạc trong khi ứng dụng đang chạy ngầm.
  9. Pin yếu và nhu cầu sử dụng cao.
  10. Mức tiêu thụ pin của ứng dụng.
  11. Kiểm tra các ảnh hưởng từ bên ngoài.

Bài viết được dịch lại từ nguồn: http://www.guru99.com/testing-mobile-apps.html

0