Tutorial #8: Tầm quan trọng của việc kiểm thử thực địa/ Field Testing cho các ứng dụng di động
Thông thường khi kiểm thử ứng dụng di động, một câu hỏi được đặt ra cho chúng ta là “liệu kiểm thử tự động, test hồi quy, load, web service đã đủ hay chưa? Chúng ta có cần thực hiện kiểm thử thêm nữa không?”
Trong bài viết này, tôi sẽ cung cấp một cái nhìn sâu sắc về Field Testing, tầm quan trọng, chiến lược của nó và giải thích khi nào nên thực hiện Field Testing.
Nó có thể không được đầy đủ vì tất cả các loại kiểm thử như test automation, web service, load,… đều thuộc danh mục kiểm thử ‘In-House’. Nhưng nếu bạn muốn thực hiện vai trò là người dùng cuối, vẫn còn một loại kiểm thử nữa cần được thực hiện đó chính là: Field Testing.
Như chính tên gọi, nó liên quan đến việc đi ra khỏi vùng Wifi mạnh và sử dụng mạng 2G hoặc 3G hoặc 4G để kiểm tra khả năng sử dụng ứng dụng của bạn. Bạn có thể thử sử dụng ứng dụng trong khi lái xe hoặc đi dạo hoặc ngồi tại nhà tùy theo mong muốn của bạn.
Phân loại kiểm thử ứng dụng di động
Nếu bạn đang kiểm thử một ứng dụng web trên thiết bị di động, các loại kiểm thử vẫn giống như bạn làm trên laptop hoặc máy tính bàn như chức năng, giao diện người dùng, boundary test, load,… Nhưng đối với kiểm thử ứng dụng di động hoặc là Hybrid hay Native, thì việc kiểm thử được phân thành hai loại ở cấp độ ban đầu.
Chúng bao gồm:
- Kiểm thử In-House
- Kiểm thử thực địa
Điểm khác biệt căn bản cho 2 loại này chính là vai trò mà bạn đang đảm nhiệm. Câu hỏi đặt ra: là bạn đang kiểm thử với vài trò là QA để xác minh ứng dụng theo yêu cầu của khách hàng hay bạn đang sử dụng ứng dụng như người dùng cuối để thực hiện cho nhu cầu của bạn?
Dưới đây là một số điểm khác biệt giữa 2 loại trên
Kiểm thử In-House
- Kiểm thử này được thực hiện ngay từ giai đoạn phát hành ban đầu cho đến khi xác minh rằng ứng dụng đã đáp ứng được các yêu cầu đã nêu về chức năng, khả năng phát triển, khả năng sử dụng,… Điều này được thực hiện đối với các user story hoặc các tài liệu yêu cầu của dự án do khách hàng cung cấp.
- Loại kiểm thử này bao gồm việc kiểm thử chức năng, hồi quy, giao diện người dùng, hiệu suất, tự động hóa.
- Thử nghiệm này được thực hiện trên cả 2 môi trường là WiFi và mạng di động.
- Kiểm thử labs được tạo trong phòng hoặc ở trên bàn QA.
- Việc kiểm thử có thể được thực hiện trên trình giả lập (emulator or simulator).
Kiểm thử thực địa
- Thử nghiệm này được thực hiện trong giai đoạn cuối khi quá trình test hồi quy được thực hiện cho ứng dụng và ứng dụng được thông báo là hoạt động ổn định bởi nhóm phát triển trước khi phát hành. Có thể có hoặc không có yêu cầu được đưa ra từ khách hàng.
- Loại kiểm thử chủ yếu bao gồm kiểm thử chức năng và khả năng sử dụng của ứng dụng.
- Kiểm thử này được thực hiện nghiêm ngặt trên Mạng di động.
- QA cần phải thực hiện test ngoài trời trong khi di chuyển hoặc ở trong nhà và khi đang lái xe.
- Kiểm thử này chỉ được thực hiện trên các thiết bị thực.
Tầm quan trọng của Field Testing trên iOS và Android
Như đã giải thích ở trên, Field Testing được thực hiện để xác minh hành vi hoặc khả năng sử dụng ứng dụng của bạn với tư cách là người dùng cuối. Điều này về cơ bản được thực hiện trên mạng điện thoại di động của bạn bằng cách đi bộ quanh đường phố hoặc đi chợ, hoặc bằng cách lái xe hơi hoặc chỉ ở nhà.
Trong thế giới ngày nay, chúng ta sử dụng các ứng dụng di động của mình ở mọi lúc, mọi nơi: ở nhà có thể mua sắm, đặt vé, kiểm tra email,… hoặc đứng trong chợ để tìm kiếm các địa điểm: nhà hàng, trung tâm mua sắm xung quanh đó hoặc lái xe đến một địa điểm bằng cách tìm kiếm vị trí địa điểm đó trên bản đồ.
Các ứng dụng di động giờ đây đã trở thành một phần thiết yếu trong cuộc sống hàng ngày của chúng ta.
Sau đây là một số ví dụ giải thích nhu cầu mà chúng ta cần kiểm thử ứng dụng di động tại thực địa mà không chỉ tại nơi sản xuất:
- Không nhất thiết là lúc nào bạn cũng có được sóng Wifi hoặc điểm phát sóng mạnh xung quanh, đặc biệt là ở Ấn Độ. Do đó, bạn phải dựa vào mạng di động của mình.
- Có những nơi phải đối mặt với các vấn đề về mật độ bao phủ và phạm vi điện thoại ở mức trung bình hoặc thấp. Điều này có thể là do các trạm phát sóng di động ít hoặc bị che phủ bởi cây cối.
- Có thể bạn đang lái xe và bạn cần truy cập email của mình hoặc tìm đường đến một nơi bạn chưa từng biết đến.
- Khi chúng ta đi nghỉ, chúng ta không có bất cứ thông tin gì về thành phố hoặc địa điểm đó. Khi tôi đi du lịch cùng gia đình vào kỳ nghỉ, chúng tôi luôn tự đi và sử dụng các ứng dụng để tìm hiểu về thành phố, có thể là nhà hàng, địa điểm tham quan,…
- Ngày nay, chúng ta thích chuyển khoản hoặc thanh toán trực tuyến nhiều hơn thông qua các ứng dụng như PayTm, PayZApp,… thay vì sử dụng tiền mặt.
- Sử dụng ứng dụng trò chuyện, YouTube,… ở bất cứ đâu.
Đây là một số ví dụ thực tiễn về việc sử dụng các ứng dụng di động. Do đó, nó trở nên quan trọng trong việc kiểm thử một ứng dụng trong lĩnh vực này. Có thể đối tượng mục tiêu là ở các quốc gia phát triển tốt có các điểm phát di động hoặc Wifi có sẵn ở mọi nơi.
Tuy nhiên, bạn vẫn nên thực hiện ít nhất một lần kiểm thử thực địa cho ứng dụng của bạn bởi vì:
- Khi bạn thự hiện kiểm thử ứng dụng của mình trong khi lái xe hoặc đi bộ hoặc ngồi ở một nơi có sóng yếu, bạn sẽ biết liệu ứng dụng của bạn có gặp sự cố nào trong khi gửi hoặc tìm nạp dữ liệu hay không.
Chúng tôi đã gặp vấn đề ứng dụng bị lỗi khi đăng nhập trong lần phát hành đầu tiên, mặc dù chúng tôi đã test trên điện thoại có 3G. Tuy nhiên, đăng nhập đã quá thời gian chờ và dẫn đến bị lỗi. - Người dùng cảm thấy cực kỳ khó chịu khi thấy biểu tượng loading xuất hiện trong vòng nhiều hơn 5 phút. Điều rất quan trọng là xác minh thời gian phản hồi của máy chủ, web service và ứng dụng của bạn để tải thông tin.
Đây là hai điểm cực kỳ quan trọng phải được xác minh trong một bài kiểm thử thực địa và điều này cũng giúp bạn cảm thấy yên tâm rằng ứng dụng của bạn đã thực sự hoạt động ổn định.
Kiểm thử thực địa có ảnh hưởng như thế nào?
Có phải field test bị ảnh hưởng bởi ứng dụng Hybrid or ứng dụng Native?
Trước khi trả lời câu hỏi này, trước tiên tôi sẽ giải thích cơ bản về ứng dụng Hybrid và Native.
Hybrid Apps:
Về cơ bản, đây là các ứng dụng web được phát triển theo ứng dụng gốc và chủ yếu được sử dụng để phát triển các ứng dụng đa nền tảng (giữ các code cơ bản cho Android và iOS). Chúng trông có vẻ giống như các ứng dụng gốc nhưng trên thực tế, thông tin được tải khi người dùng điều hướng qua các trang.
Navtive Apps:
Chúng được phát triển riêng cho HĐH sử dụng các tính năng tốt nhất của HĐH đó. Tất cả thông tin được tải trong một lần khi ứng dụng được khởi động.
Tôi đã từng làm việc với cả ứng dụng Hybrid và Native và với tư cách là QA, việc test cho cả hai đều quan trọng. Có một sự khác biệt giữa ứng dụng Hybrid và Native đó là, không giống như ứng dụng Native, ứng dụng Hybrid không trực tiếp sử dụng các tính năng trên điện thoại của bạn như GPS, Vị trí,… Các ứng dụng Hybrid sử dụng các tính năng của Điện thoại hoặc OS thông qua plug-in.
Tôi nhận thấy rằng khi phát hành một phiên bản cho ứng dụng Native, kiểm thử thực địa phải được thực hiện bởi vì nó sử dụng các tính năng của điện thoại và các ứng dụng OS.
Thực hiện kiểm thử thực địa sẽ cho biết hiệu suất của ứng dụng của bạn. Nó sẽ cho biết điện thoại là loại cao cấp hay cấp thấp, hiệu năng, tính ổn định và khả năng sử dụng ứng dụng của bạn như thế nào.
Một lý do khác để thực hiện kiểm thử thực địa cho mỗi bản phát hành chính là các ứng dụng Native cần được cập nhật với các phiên bản mới của HĐH. Do đó, so với các ứng dụng Hybrid, các phiên bản của ứng dụng Native nhiều hơn hoặc nếu một phiên bản HĐH mới được ra mắt, cần phải thực hiện kiểm thử thực địa ngay cả khi không có thay đổi nào trong các tính năng của ứng dụng.
Chiến lược kiểm thử thực địa
Các chiến lược cho kiểm thử thực địa là gì?
Đối với kiểm thử thực địa, bước chính và quan trọng cần được hiểu là tác động của network hoặc dữ liệu đối với các chức năng chính của ứng dụng. Do đó cần có một cuộc thảo luận kỹ lưỡng với nhóm phát triển về các chức năng.
Sau đây là các điểm cần phải được cân nhắc để quyết định chiến lược cho kiểm thử thực địa:
- Bước cơ bản dưới danh nghĩa QA là gắn thẻ các test case của bạn là kiểm thử thực địa và tạo test suite. Thảo luận với team BA và QA về Test suite để xem họ có gì để thêm vào không.
- Tùy thuộc vào mục đích ứng dụng của bạn và người dùng, hãy tạo một số test case riêng biệt về cách thức, thời gian và nơi ứng dụng của bạn có thể được sử dụng. Có thể bạn không cần phải thực hiện những điều này khi test nội bộ.
- Chỉ thực hiện kiểm thử thực địa khi ứng dụng đã pass việc test hồi quy và không có vấn đề về nào về chức năng của app.
- Đối với lần phát hành đầu tiên, hãy tạo một tài liệu (biểu đồ) với chi tiết các testcase, người thực hiện test, địa điểm nơi việc test diễn ra và các báo cáo lỗi. Sau khi tạo xong, bạn có thể sử dụng nó cho các bản phát hành trong tương lai.
- Sử dụng thiết bị High end và Low-end cho kiểm thử thực địa và cố gắng làm trên cùng một hệ điều hành, điều này sẽ giúp phân tích tìm ra bug. Đôi khi chúng ta thấy các bug trong kiểm thử thực địa nhưng không thấy trong kiểm thử in-house.
- Tạo một nhóm 4-5 người và yêu cầu họ thực hiện bài kiểm thử thực địa ở các khu vực khác nhau và chắc chắn hãy thử sử dụng ứng dụng trong khi lái xe và một vài nơi sóng yếu. Bạn cũng có thể nhờ Manager, BA tham gia kiểm thử thực địa.
- Gắn thẻ các lỗi tìm được là Field Test, bạn sẽ dễ dàng hướng tới các bản phát hành trong tương lai.
- Nếu ứng dụng của bạn đang gửi định vị vị trí, hãy kiểm tra kỹ chức năng và cần thực hiện tất cả các testcase liên quan.
Không nhất thiết là bạn bắt buộc phải tìm thấy lỗi mà thử nghiệm có thể chạy trơn tru. Theo kinh nghiệm của tôi, hãy tập trung vào hiệu suất và thời gian phản hồi cần thiết. Như ở ví dụ trước đó, màn hình Loading quá lâu sẽ làm mọi người không muốn sử dụng ứng dụng của bạn. Nếu ứng dụng của bạn là một ứng dụng thương mại như Zomato, Jabong, BookMyShow,… thì hãy thử làm kiểm thử thực địa bằng cách sử dụng một nhóm 20-25 người vì nó sẽ cho biết hiệu suất của ứng dụng khi có 20-25 users cùng truy cập và sử dụng ứng dụng đồng thời.
Khi nào nên thực hiện Kiểm thử thực địa cho một ứng dụng?
Không nhất thiết là tất cả các ứng dụng cần phải được kiểm thử tại thực địa nhưng cá nhân tôi luôn khuyên bạn nên thực hiện vì nó cho thấy hiệu suất thực tế của ứng dụng khi hoạt động thực tế. Bạn có thể thảo luận vấn đề này với BA, scrum master hoặc người quản lý và product owner nếu họ không biết hoặc không muốn làm. Là một QA, bạn phải đưa ra quan điểm của bạn về sự cần thiết cho một bài kiểm thử thực địa.
Một kiểm thử thực địa chỉ nên được thực hiện sau khi test hồi quy cho ứng dụng được thực hiện, các chức năng cho một bản phát hành được thực hiện, các lỗi được xác minh, fix và quan trọng nhất là ứng dụng ổn định.
Các yếu tố quan trọng của Kiểm thử thực địa bao gồm
- Bản phát hành đầu tiên của ứng dụng: Nó mang lại lợi thế lớn để thực hiện bài kiểm thử chuyên sâu về ứng dụng ở lần phát hành đầu tiên. Vì ứng dụng chưa được cho lên Play Store, nó giúp bạn và nhóm của bạn phân tích hiệu suất bằng cách sử dụng ứng dụng như một người dùng bình thường.
- Một ứng dụng là Native: Như đã đề cập trước đây, kiểm thử thực địa là bắt buộc cho mọi bản phát hành của Native app khi chúng sử dụng các tính năng của điện thoại và HĐH.
- Khi phiên bản HĐH mới được phát hành: Khi một phiên bản HĐH mới được phát hành, bạn cần xác minh xem ứng dụng chạy có ổn định, tương thích và hoạt động tốt so với HĐH mới này hay không.
- Bất kỳ bản phát hành chính nào cho các tính năng mới hoặc tính năng đã được thay đổi: Khi các tính năng mới được giới thiệu hoặc các tính năng hiện có được cập nhật, sẽ rất tốt nếu thực hiện kiểm thử thực địa để đảm bảo rằng hiệu suất của ứng dụng không bị ảnh hưởng.
- Kiểm thử thực địa như là một phần công việc hằng ngày của bạn: Kiểm thử thực địa cho ứng dụng di động nên được coi như một công việc test thường như hồi quy, tự động hóa và không bao giờ được bỏ qua. Ngay cả khi ứng dụng của bạn ổn định hoặc nếu bạn đã làm việc với nó hơn 1 hoặc 2 năm, hãy thực hiện kiểm thử thực địa mỗi khi có phiên bản phát hành chính được release.
Ví dụ về các bài test có thể được xác minh trong kiểm thử thực địa
Chúng ta hãy xem xét ứng dụng của Zomato mà chúng ta sử dụng để tìm kiếm các nhà hàng xung quanh hoặc trong một khu vực cụ thể.
Dưới đây là một vài ví dụ về các trường hợp kiểm thử có thể được đưa ra để thực hiện kiểm thử thực địa:
- Bước cơ bản và đầu tiên sẽ là đăng nhập với tư cách là một khách hàng.
Trước hết lưu ý rằng, không nên mất quá một phút để đăng nhập bằng tài khoản Facebook hoặc Google, thứ hai là thời điểm khi tôi đăng nhập, nó phải bật thông báo xin phép bật GPS trên điện thoại (nếu nó tắt) sau đó thì phải load danh sách nhà hàng cho vị trí của user.
Trên đây là 2 xác minh quan trọng cần được thực hiện đầu tiên khi bắt đầu test. - Xác minh rằng khi bạn thay đổi địa điểm, danh sách nhà hàng sẽ được cập nhật, hãy thử test việc này trong khi đi ra khỏi đường. Danh sách nên cập nhật và thẻ của nhà hàng sẽ được hiển thị với hình ảnh mà không có bất kỳ trục trặc nào.
- Xác minh trường hợp kiểm thử trên trong khi lái xe.
- Xác minh (trong khi đi bộ trên đường) tiến trình từ đầu đến cuối của ứng dụng, ngay từ khi đăng nhập, tìm kiếm vị trí và đặt món ăn từ nhà hàng. Chi tiết thông tin đặt hàng của bạn nên được gửi đến nhà hàng thành công.
- Thực hiện những test case ở trên trong khi lái xe.
- Xác minh khi dùng 3G (bằng cách thay đổi chế độ sang 3G) cho tiến trình đặt bàn, tức là thay đổi vị trí, chọn nhà hàng từ danh sách và đặt bàn.
- Nếu bạn có phiếu giảm giá, hãy thử áp mã giảm giá và kiểm tra xem bạn có thể sử dụng thành công mã giảm giá trong khi đặt món ăn từ Zomato không.
- Xác minh xem bạn có thể viết thành công ý kiến phản hồi cho nhà hàng (trong khi đi bộ) không và nếu ý kiến phản hồi được gửi đến nhà hàng để xem xét hoặc ít nhất nó phải hiển thị trong danh sách đánh giá của nhà hàng.
Đây là một số ví dụ về các test case cơ bản khi sử dụng ứng dụng và nên được kiểm thử trong kiểm thử hiện trường. Tại đây, bạn cũng có thể tạo matrix cho các model của Điện thoại (High end or low end) Vs các loại mạng (2G, 3G,…) và thực hiện các test case tương tự.
Kết luận
Bất kỳ ứng dụng di động nào cũng có thể được gọi là ổn định và vận hành trơn tru không chỉ khi vượt qua việc test hồi quy, xác minh lỗi, kiểm thử hiệu năng hoặc loading mà chỉ khi nó vượt qua kiểm thử thực địa thành công.
Kiểm thử thực địa nên được thực hiện cho tất cả các phiên bản phát hành. Đối với các ứng dụng di động, kiểm thử thực địa là một phần của chu trình kiểm thử và không bao giờ được bỏ qua hoặc xem nhẹ.
Kiểm thử thực địa đóng một vai trò rất quan trọng trong việc xác định hiệu suất của một ứng dụng trong lần phát hành đầu tiên. Nếu nhóm của bạn không nhận thức được điều này, hãy giải thích cho họ về kiểm thử thực địa và mức độ quan trọng và cần thiết của nó.
Tham khảo: https://www.softwaretestinghelp.com/mobile-app-field-testing/