Ngành công nghiệp ứng dụng di động đang phát triển với tốc độ chưa từng thấy. Điều này đã dẫn đến sự gia tăng đáng kể số lượng ứng dụng sẵn có để người dùng cuối tải xuống. Các ứng dụng dành cho thiết bị di động đóng vai trò quan trọng trong việc thay đổi cách mọi người làm việc, giao tiếp, mua sắm cũng như tương tác với nhau. Vì vậy, để sản phẩm của bạn nổi bật giữa đám đông, khi người dùng tiếp tục tải xuống hàng nghìn ứng dụng mỗi ngày, là một thách thức lớn. Sản phẩm của bạn phải đảm bảo chất lượng, đẹp mắt và đáp ứng được nhu cầu sử dụng của người dùng. Với vai trò là một nhà kiểm thử phần mềm, bạn cần thực hiện những danh mục kiểm thử gì? Các công cụ, thiết bị nào có thể hỗ trợ kiểm thử? Các bước lập kế hoạch là gì? Hãy cùng mình tìm hiểu qua bài viết này nhé.
Tầm quan trọng của mobile testing
Mobile testing là một quá trình kiểm tra các ứng dụng đang được phát triển cho thiết bị di động. Trọng tâm chính là kiểm tra ứng dụng về chức năng, khả năng sử dụng và tính ổn định của nó. Mobile testing rất quan trọng đối với sự tồn tại của ứng dụng trên thị trường ngày nay. Để đảm bảo trải nghiệm tốt nhất có thể cho người dùng cuối, ứng dụng cũng được kiểm tra ở nhiều khía cạnh khác bao gồm: hiệu suất, tính bảo mật, giao diện người dùng.
Theo Statista, tính đến hết Quý 3 năm 2022 có 3.553.050 ứng dụng trong Play Store. Không phải tất cả chúng đều được kiểm tra đúng cách trước khi phát hành. Trong thực tế, rất nhiều trong số đó không được kiểm tra một cách kỹ lưỡng. Thiếu kiểm tra có thể dẫn đến sự thất vọng của người dùng khi ứng dụng được khởi chạy gặp lỗi. Đúng là sản phẩm nào cũng tìm được khách hàng nhưng chất lượng mới là chìa khóa giữ chân khách hàng lâu dài.
Để tìm ra cách thực hiện kiểm tra và sửa lỗi, chúng ta cần biết các đặc thù kiến trúc của nó. Vậy Mobile App có những loại nào? Những đặc thù của từng loại là gì?
Các loại Mobile App
Có ba loại Mobile App như sau:
- Native Apps – Ứng dụng gốc: Native apps được phát triển cho một nền tảng hoặc hệ điều hành cụ thể. Các ứng dụng này hoạt động độc lập, có thể gửi thông báo đẩy và sử dụng các tài nguyên do thiết bị di động cung cấp. Thử nghiệm ứng dụng di động gốc có thể khó khăn và mệt mỏi, nhưng hoàn toàn xứng đáng vì những trải nghiệm người dùng tuyệt vời mà nó mang lại.
- Web Apps – Ứng dụng web: Web apps là các ứng dụng được phát triển để hoạt động trên nền website. Tương tự như Native App với điểm khác biệt cơ bản là nó có thể được sử dụng thông qua trình duyệt web trên thiết bị di động. Điểm mạnh là chi phí phát triển ra chúng thấp. Điểm yếu là chúng hoàn toàn phụ thuộc vào trình duyệt sử dụng trên thiết bị.
- Hybrid Apps – Ứng dụng lai: Hybrid Apps là sự kết hợp của cả Native App và Web App. Chúng sử dụng web view control để trình chiếu các tệp HTML và JavaScript ở định dạng toàn màn hình. Các ứng dụng này có chi phí thấp hơn và phát triển nhanh hơn. Tuy nhiên, không giống như Native App chúng có thể thiếu sức mạnh và tốc độ.
Cả ba loại này đều có thể được kiểm tra về chức năng, hiệu suất, khả năng sử dụng, khả năng tương thích v.v.. Chúng ta sẽ xem xét từng loại để nắm được bức tranh toàn cảnh về cách thức hoạt động của chúng. Nhưng trước hết, hãy tìm hiểu về chiến lược kiểm thử.
Chiến lược kiểm thử Mobile App
Dưới đây là một số chiến lược kiểm thử chính cho mobile app.
Lựa chọn thiết bị kiểm thử
Việc đầu tiên khi xây dựng chiến lược kiểm thử là lựa chọn thiết bị kiểm thử cho ứng dụng của bạn. Mobile app cần phải đáp ứng được sự tương thích trên nhiều loại thiết bị di động có hệ điều hành, kích thước màn hình, cài đặt vận hành, và các yếu tố hình thức khác nhau. Việc đáp ứng tất cả những điều này trong kiểm thử mobile trở thành một thách thức vô cùng lớn.
Vì có rất nhiều thiết bị di động trên thị trường, việc có chính sách rõ ràng trong việc chọn các thiết bị di động kiểm thử sẽ giúp bạn tiến hành kiểm tra hiệu quả. Một số yếu tố bạn cần xem xét trước khi ra quyết định lựa chọn các thiết bị kiểm thử phù hợp với ứng dụng của bạn:
- Xem xét đến nhóm khách hàng mục tiêu: Các nhóm phát triển phần mềm và QA có thể cộng tác với Marketing để hiểu rõ hơn về nhóm đối tượng người dùng và mô hình sử dụng của đối tượng mục tiêu. Nếu chưa có đủ dữ liệu người dùng, bạn có thể bắt đầu bằng cách xem các nguồn dữ liệu bên ngoài để đánh giá thiết bị nào phổ biến ở khu vực/ thị trường dự kiến của mình. Một số điểm hữu ích để xem xét như:
- Lưu lượng truy cập
- Thị phần
- Hệ điều hành và phiên bản hệ điều hành
- Kích thước màn hình
- Mức độ phổ biến
- Xác định các thiết bị cần kiểm tra: Sau khi xác định được các tiêu chí để chọn thiết bị, bạn cần phải xác định các thiết bị cần kiểm tra. Thông thường, bạn sẽ chọn các thiết bị phổ biến nhất trên thị trường như iPhone, Samsung Galaxy, Google Pixel, … và nên kiểm tra trên các phiên bản khác nhau của hệ điều hành để đảm bảo tính tương thích của ứng dụng trên nhiều thiết bị khác nhau.
- Tạo một danh sách các thiết bị cần kiểm tra: Sau khi xác định được các thiết bị cần kiểm tra, bạn nên tạo một danh sách để tiện theo dõi và bảo trì. Danh sách này sẽ giúp cho nhóm kiểm thử phần mềm có thể kiểm tra và bảo trì các thiết bị này một cách dễ dàng và hiệu quả hơn.
Lựa chọn phạm vi kiểm thử
Khi xây dựng một chiến lược kiểm thử app mobile, bạn cần phải xác định phạm vi kiểm thử. Phạm vi này bao gồm những gì sẽ được kiểm tra trong ứng dụng của bạn. Các phạm vi kiểm thử thường bao gồm:
- Functional Testing – Kiểm thử chức năng: Dùng để kiểm tra xem chức năng của ứng dụng có hoạt động chính xác hay không. Loại kiểm thử này tập trung vào chức năng của ứng dụng theo yêu cầu.
- Compatibility Testing – Kiểm tra khả năng tương thích: Đây là loại kiểm thử phi chức năng. Chúng được sử dụng để đảm bảo rằng ứng dụng hoạt động trơn tru trong các hệ điều hành, thiết bị, môi trường mạng khác nhau với thông số kỹ thuật phần cứng bên trong cụ thể.
- Usability Testing – Kiểm tra tính khả dụng: Dùng để kiểm tra mức độ thân thiện với người dùng về mặt sử dụng và tính trực giác. Nó giúp xác định các lỗi để cải thiện trải nghiệm của khách hàng.
- Performance Testing – Kiểm tra hiệu suất: Kiểm tra cách ứng dụng hoạt động cũng như tình trạng hoạt động dưới một mức độ chịu tải cụ thể.
- Security Testing – Kiểm tra độ bảo mật: Kiểm tra độ bảo mật ưu tiên kiểm tra về việc bảo mật dữ liệu cá nhân của người dùng và kiểm tra hành vi của ứng dụng theo các yêu cầu cấp phép thiết bị khác nhau.
- Installation Testing – Kiểm tra sự cài đặt: Dùng để kiểm tra xem một ứng dụng có được cài đặt và gỡ cài đặt đúng cách hay không. Nó cũng đảm bảo rằng các bản cập nhật ứng dụng đang hoạt động trơn tru.
- Exploratory Testing – Kiểm thử thăm dò: Được sử dụng để khám phá các chức năng khác nhau và khả năng sử dụng của ứng dụng để tìm ra các lỗi chính và đảm bảo rằng ứng dụng thực sự hoạt động như dự định.
- Storage Testing – Kiểm thử lưu trữ: Kiểm tra cách ứng dụng thực hiện các chức năng liên quan đến lưu trữ. Có những chức năng mà ứng dụng phải lưu trữ một số dữ liệu trên đĩa cứng, truy xuất dữ liệu từ đó hoặc xóa dữ liệu đó. Nó cũng kiểm tra cách ứng dụng hoạt động khi thiết bị không có hoặc có bộ nhớ thấp.
- Interrupt Testing – Kiểm tra tính gián đoạn: Trung bình, người dùng di động có thể nhận được 50-80 lần gián đoạn mỗi ngày từ các thông báo đẩy, điều này có thể trở nên quá tải. Kiểm tra gián đoạn giúp phân tích sự xáo trộn do những gián đoạn này gây ra và tìm giải pháp để mang lại trải nghiệm di động mượt mà. Sự gián đoạn có thể ở nhiều dạng khác nhau bao gồm pin yếu/đầy, báo thức, thông báo đẩy, cuộc gọi đến/SMS, v.v. Người kiểm tra phải tính đến các vấn đề về giao diện người dùng, sự cố ứng dụng và các vấn đề về hiệu suất trong khi thực hiện kiểm tra tính gián đoạn.
- Input Testing – Kiểm tra nhập liệu: Với loại kiểm thử này, kiểm thử viên phải thực hiện các công việc nhập liệu khác nhau trên thiết bị di động, bao gồm:
- Thao tác bằng nhiều ngón tay để kiểm tra tất cả các cử chỉ ngón tay được ứng dụng hỗ trợ hay không.
- Nhập liệu bằng giọng nói để kiểm tra xem ứng dụng có thể xử lý đầu vào chính xác hay không.
- Nhập liệu bằng cảm biến: Bao gồm các loại cảm biến như cảm biến ánh sáng xung quanh, cảm biến gia tốc, cảm biến tiệm cận, cảm biến con quay hồi chuyển, cảm biến áp suất, cảm biến từ tính, cảm biến nhiệt độ, cảm biến độ ẩm, v.v..
- Battery Usage Testing – Kiểm tra mức độ tiêu thụ pin: Thời lượng pin của thiết bị di động là một thứ đã được cải thiện liên tục trong vài năm qua. Nhưng cùng với nó, việc sử dụng pin cũng tăng lên khi ngày càng có nhiều ứng dụng phức tạp và ngốn pin hơn được tạo ra. Do đó, điều quan trọng đối với nhóm kiểm thử là phải tính đến mức tiêu thụ năng lượng, đặc biệt là đối với các tác vụ đòi hỏi cao mà ứng dụng sẽ thực hiện. Khi thực hiện thử nghiệm này, hãy nhớ rằng ứng dụng dành cho thiết bị di động của bạn không được tiêu tốn quá nhiều thời lượng pin. Kiểm tra mức tiêu thụ thời lượng pin cho các tình huống khác nhau khi ứng dụng đang được sử dụng tích cực và khi ứng dụng ở chế độ background. Nếu ứng dụng của bạn chiếm quá nhiều pin, người dùng của bạn có thể sẽ gỡ cài đặt ứng dụng đó.
- Certification testing: Loại kiểm thử nhằm mục đích kiểm tra xem ứng dụng có đáp ứng các tiêu chuẩn, điều khoản sử dụng, thoả thuận cấp phép, v.v.. hay không.
Lựa chọn thiết bị thực hay trình mô phỏng emulator/simulator
Vì các công ty đang tìm cách phát hành ứng dụng chạy trơn tru trên phần lớn thiết bị nên họ thích thử nghiệm trên thiết bị thực hơn. Thường có sự nhầm lẫn giữa các nhóm kiểm thử về việc nên sử dụng thiết bị thực hay trình giả lập để thử nghiệm ứng dụng dành cho thiết bị di động.
Câu trả lời nằm ở những gì bạn muốn kiểm tra. Nếu bạn đang muốn kiểm tra hiệu suất của ứng dụng, bạn phải sử dụng các thiết bị thực. Thiết bị thực là thiết bị di động thực tế mà người dùng cuối sẽ sử dụng để chạy ứng dụng. Chúng cung cấp kết quả chính xác và cho phép thử nghiệm trong cùng điều kiện với người dùng cuối. Nếu bạn muốn kiểm tra việc ứng dụng thực hiện có đúng với yêu cầu hay không, kiểm tra các chức năng ít tác động đến phần cứng. Chẳng hạn như bạn muốn kiểm tra giao diện, chức năng gửi dữ liệu,… thì simulator/simulator là một lựa chọn không tồi.
Mình xin liệt kê một số điểm khác biệt giữa việc sử dụng thiết bị thực và trình mô phỏng emulator/simulator trong kiểm thử như sau:
Tiêu chí đánh giá | Trình mô phỏng emulator/simulator | Thiết bị thực |
---|---|---|
Thời gian kiểm thử | Nhanh hơn so với thiết bị thực | Chậm hơn |
Loại kiểm thử | Chỉ kiểm thử được một số ít loại như Giao diện, tính khả dụng | Có thể thực hiện được tất cả các loại kiểm thử |
Chi phí vận hành | Vô cùng thấp | Cao |
Độ chính xác | Không phải lúc nào cũng chính xác hoàn toàn | Mọi số liệu đều đáng tin cậy |
Kiểm thử trình duyệt chéo | Rất dễ để tiến hành | Phức tạp hơn |
Độ dễ dàng tiếp cận | Dễ dàng tiếp cận | Mất thời gian để mua sắm |
Các thiết bị ảo cho phép kiểm tra phần mềm của bạn dễ dàng hơn vì bạn có thể kiểm soát toàn bộ quá trình kiểm tra. Nó cũng giúp giảm chi tiêu ngày càng tăng liên quan đến việc mua sắm, bảo trì và nâng cấp thiết bị. Tuy nhiên, có một số hạn chế khi sử dụng thiết bị ảo, chẳng hạn như người dùng không thể sử dụng Siri để nhắn tin và gọi điện thoại rảnh tay trên thiết bị iOS. Nhìn chung, thử nghiệm trên thiết bị ảo là phù hợp nhất từ góc độ thử nghiệm, bảo trì và cập nhật thường xuyên các ứng dụng di động.
Điều quan trọng là phải rõ ràng khi thử nghiệm trên thiết bị thực và thiết bị ảo. Khi chạy thử nghiệm trên các nền tảng khác nhau, bạn có một số tùy chọn để chọn. Sử dụng thiết bị thực là lý tưởng, nhưng sử dụng thiết bị ảo sẽ mang lại kết quả tương tự. Mình tin rằng cách tốt nhất để thực hiện các bài kiểm tra là sử dụng cả hai, vì nó có thể mang lại cho bạn thêm lợi thế.
Lựa chọn kiểm thử thủ công hay kiểm thử tự động
Việc lựa chọn kiểm thử thủ công hay kiểm thử tự động còn phụ thuộc vào nhiều yếu tố. Nhưng nếu bạn muốn giảm thời gian thực hiện thử nghiệm và tăng tốc chu kỳ sản phẩm của mình, thì mục tiêu của bạn phải là tỷ lệ kiểm thử tự động hoá phải cực cao. Kiểm thử tự động rất quan trọng trong việc đẩy nhanh quá trình kiểm thử với độ chính xác và độ tin cậy cao. Tuy nhiên, khi nói đến kiểm thử chức năng và trải nghiệm người dùng, kiểm thử thủ công đóng vai trò quan trọng hàng đầu. Ngay cả khi kiểm thử tự động trở nên tinh tế hơn, thử nghiệm thủ công vẫn sẽ có tầm quan trọng trong việc đảm bảo chất lượng của sản phẩm phát hành.
Khi nào nên ưu tiên kiểm thử tự động:
- Kiểm thử tự động là cách tốt nhất để sử dụng cho kiểm thử hồi quy, thực hiện lặp lại.
- Thử nghiệm hiệu suất tốt hơn nên được thực hiện bằng thử nghiệm tự động vì tốc độ và hiệu suất của ứng dụng được thử nghiệm với hàng nghìn người dùng đồng thời.
Khi nào nên ưu tiên kiểm thử thủ công:
- Kiểm thử thủ công phát huy hiệu quả tốt nhất trong việc thực hiện kiểm thử thăm dò, kiểm tra tính khả dụng.
- Kiểm tra khả năng tương thích với thiết bị, tương tác giao diện với người dùng.
Kết Luận
Tóm lại, kiểm thử app mobile rất quan trọng để đảm bảo tính tương thích của ứng dụng với các thiết bị di động khác nhau và đảm bảo trải nghiệm tốt nhất cho người dùng cuối. Khi xây dựng chiến lược kiểm thử, bạn cần phải xác định phạm vi kiểm thử, lựa chọn công cụ kiểm thử và lập kế hoạch kiểm thử. Hy vọng bài viết này đã giúp bạn hiểu rõ hơn về kiểm thử app mobile.
Happy testing!