Tutorial #3: Kiểm thử ứng dụng Android
Các kiến thức căn bản trước khi bắt đầu kiểm thử ứng dụng Android
Trong bài viết này, chúng ta sẽ đưa ra các hướng dẫn về quá trình thử nghiệm ứng dụng Android. Nhưng, trước khi đi vào các chi tiết của quá trình kiểm thử Android, tôi muốn đưa ra một vài câu hỏi.
Bạn có sở hữu một chiếc điện thoại di động?
Câu hỏi đó thật ngớ ngẩn làm sao! Tất nhiên tất cả chúng ta đều có. Ít nhất là một cái. Điện thoại di động đã trở thành một nhu cầu cơ bản của con người trong cuộc sống hiện đại ngày nay.
Bạn có thể cho tôi biết hệ điều hành mà chiếc điện thoại bạn đang sử dụng không?
Nếu bạn đã mua điện thoại của mình trong khoảng thời gian từ 2014-2016, thì khả năng điện thoại của bạn chạy trên hệ điều hành Android là khoảng 80-85%.
Biểu đồ dưới đây thể hiện sự tăng trưởng mạnh mẽ của hệ điều hành Android
Các số liệu thống kê dưới đây mô tả thêm về sự phát triển của Android một cách dễ hiểu.
- Trước năm 2009, Android là một sản phẩm mới và chỉ chiếm 3,9% tổng thị trường.
- Đứng đầu thời điểm đó là hệ điều hành Symbian với con số khổng lồ 47% [Những ngày vàng của Nokia].
- Tuy nhiên xu hướng bắt đầu thay đổi qua nhiều năm và Android hiện đã đạt tới 85,2% vào năm 2016.
- Những con số trên chỉ dành cho điện thoại di động. Hệ điều hành Android cũng đang có một tác động lớn trong ngành công nghiệp máy tính bảng. Từ 4,4% thị phần năm 2011 đến 35,7% năm 2015, nó là mối quan tâm mà mọi người đang phát triển đối với các thiết bị máy tính bảng chạy Android.
- Cửa hàng Google Play cũng đã cho thấy số lượng tải xuống tăng nhanh. Từ năm 2010 đến 2016, con số đã tăng từ 1 tỷ lượt tải xuống mỗi tháng lên 65 tỷ lượt tải xuống mỗi tháng.
- Việc tải xuống ứng dụng cũng bị ảnh hưởng rất nhiều bởi mức giá thấp [Trung bình: 0,06 $/ ứng dụng] của các ứng dụng Android so với các ứng dụng iOS.
Tại sao tôi chỉ đưa ra các con số đó cho bạn thấy?
Các con số ấy sẽ như một lời khẳng định hệ điều hành Android đã phát triển rộng lớn như thế nào, sự phát triển của ứng dụng này đã gặp phải những khó khăn, thách thức ra sao và nó đã chiếm được bao nhiêu thị trường trong những thập kỷ qua.
Mọi trang web, ứng dụng windows và Mac App đều có anh chị em Android. Mọi người đều muốn phát triển một ứng dụng cho Android ngay khi họ có kế hoạch phát triển ứng dụng trang web/ windows. Nó đã trở nên cần thiết, vì khách hàng cũng đã bắt đầu thích các ứng dụng di động hơn các ứng dụng hoặc trang web máy tính trong những năm gần đây.
Một số ứng dụng được sử dụng rất thường xuyên trong các hoạt động hàng ngày của chúng tôi là Flipkart, Amazon, Zomato, DeliveryHero, Citi Bank, TrueCaller, Facebook, Gmail, Whatsapp, v.v.
Lý do xuất hiện sự đột biến trong thị trường Android
- Nó là một hệ thống mở, do đó dễ dàng tùy chỉnh, dễ học và phát triển ứng dụng cũng dễ dàng hơn.
- Việc xuất bản một ứng dụng trên cửa hàng Google Play khá dễ dàng khi so sánh với các cửa hàng khác.
- Có một số nhà sản xuất trên thị trường cho điện thoại Android như Sony, HTC, Samsung, Motorola, v.v.
- Có một số lượng lớn các tính năng trên Android như DualSIM, microSD, pin rời, v.v., đây cũng là những lợi thế bổ sung cho hệ điều hành này.
- Giá của điện thoại Android không quá cao và giá cả phải chăng.
Cùng với yêu cầu phát triển của Ứng dụng Android, đồng thời cũng đòi hỏi nguồn nhân lực kiểm thử có kiến thức về kiểm thử Android.
Là một người kiểm thử, trước khi bạn bắt đầu kiểm thử ứng dụng được xây dựng trên hệ điều hành Android, bạn cần phải làm một vài bài tập về nhà. Điều đầu tiên cần làm là nghiên cứu hệ điều hành và lịch sử của nó. Nếu bạn không biết hệ điều hành, bạn có thể thử nghiệm ứng dụng này với các phiên bản khác nhau. Các chức năng cơ bản của phiên bản HĐH, UI, GPS, hỗ trợ loại mạng, thời lượng pin, v.v., là một số khía cạnh quan trọng ảnh hưởng đến một ứng dụng.
Với Android, nó không chỉ là hệ điều hành mà còn rất nhiều thiết bị liên quan cũng cần nghiên cứu.
Một số lượng lớn các thiết bị có sẵn trên thị trường, do đó trước khi hoàn thiện và được đưa vào thử nghiệm, bạn cần tìm hiểu kiến thức về các thiết bị đó. Các thiết bị khác nhau cung cấp các tính năng khác nhau như DualSIM, camera kép, độ phân giải màn hình, chủ đề, v.v., tất cả các tính năng đó đều ảnh hưởng đến một ứng dụng và chúng cần được kiểm tra.
Do đó, điều rất quan trọng đối với QA là thu thập kiến thức toàn diện về hệ hệ điều hành Android một cách hoàn chỉnh nhất.
Giới thiệu ứng dụng Android
Có nhiều phương pháp kiểm thử khác nhau được thực hiện bằng cách chứng nhận thành công một ứng dụng Android.
Kiến trúc ứng dụng Android điển hình sẽ có sơ đồ như sau
Phân tích sơ đồ trên,các khả năng cho một ứng dụng
1) Ứng dụng di động cho web
Có thể khách hàng có ứng dụng web và muốn tạo một ứng dụng di động cho cùng. Amazon, Jabong, Myntra, v.v., đã làm điều tương tự, tại thời điểm các ứng dụng di động bắt đầu tạo ra sự bùng nổ trên thị trường, các công ty thương mại này nhận ra rằng mọi người sẽ sớm chuyển từ ứng dụng web sang ứng dụng di động.
2) Ứng dụng di động cho app
Để tăng doanh thu, các nhà phát triển đã tạo những ứng dụng riêng cho các trình điều khiển của mình để tạo điều kiện giao hàng suôn sẻ và loại bỏ giấy tờ.
Các trình điều khiển đã cài đặt ứng dụng trên điện thoại của họ để chuyển giao hàng sang các giai đoạn khác nhau và update trạng thái tương ứng và các cập nhật giao hàng được phản ánh trong ứng dụng web hiện tại của họ.
Ví dụ: ứng dụng di động là một thực thể riêng biệt là WhatsApp, các ứng dụng theo dõi sức khỏe như S Health, v.v.
Danh sách các việc cần làm trước khi bắt đầu quá trình kiểm thử
Không giống như quy trình kiểm thử thông thường, đối với lần phát hành đầu tiên của một ứng dụng di động, có một vài điểm cần nghiên cứu thêm và lập kế hoạch để phân phối ứng dụng thành công.
Sau đây là một số hoạt động quan trọng để QA thực hiện trước khi bắt đầu kiểm thử thực tế:
1) Nghiên cứu về HĐH và Thiết bị
Ngoài việc hiểu yêu cầu ứng dụng, bạn cũng cần hiểu tác động của các phiên bản HĐH khác nhau và các kiểu thiết bị. Bạn cần tạo các trường hợp kiểm thử hoặc các kịch bản với các mô hình hệ điều hành và thiết bị khác nhau.
2) Đưa ra được môi trường phát triển phần mềm
Không giống như các ứng dụng trên máy tính để bàn, web và iOS, việc tạo một môi trường thử nghiệm cho các ứng dụng Android rất khó khăn vì hệ thống Android mở. Quyết định nên được đưa ra sau khi thảo luận với BA, nhà phát triển và chủ sở hữu sản phẩm để tìm đối tượng mục tiêu.
3) Kế hoạch kiểm thử
Vì đây là phiên bản đầu tiên, nên có một kế hoạch được phê duyệt với môi trường phát triển phần mềm, các loại thử nghiệm, v.v. Nếu có một thời gian riêng cần thiết để nghiên cứu các chức năng hoặc quy tắc kinh doanh hoặc nếu việc kiểm tra sẽ khó khăn, v.v., mọi thứ nên được đề cập trong kế hoạch.
4) Công cụ kiểm thử tự động
Các công cụ kiểm thử tự động là cần thiết cho ứng dụng di động, rất khác so với các ứng dụng trên máy tính để bàn hoặc web. Do đó bạn có thể cần dành thêm thời gian và nỗ lực để tìm hiểu công cụ. Thời gian và nỗ lực cần thiết phải được sự chấp thuận của chủ sở hữu sản phẩm hoặc khách hàng.
5) Kỹ thuật hoặc phương pháp kiểm thử
Không giống như các kiểm thử thông thường mà chúng ta thường làm, có một vài kiểm thử rất đặc trưng cho các ứng dụng di động. Cụ thể là kiểm tra thực địa, kiểm tra GPS, kiểm tra chụp ảnh, v.v. Những điều này cần phải được ghi lại trong các trường hợp kiểm tra cùng với cách các loại này sẽ được kiểm tra.
Các loại thử nghiệm cho ứng dụng di động
1) Kiểm thử chức năng
Kiểm thử thường bắt đầu bằng các luồng kiểm tra giao diện người dùng. Tuy nhiên nếu giao diện ấy có đẹp, bắt mắt và hấp dẫn người dùng đến đâu nhưng các chức năng của sản phẩm đó không hoạt động đúng logic thì cũng coi như sản phẩm thất bại. Một sản phẩm phải đáp ứng được yêu cầu mà khách hàng đề ra.
Hãy để chúng tôi lấy ví dụ về ứng dụng Zomato.
Khi bạn khởi chạy ứng dụng, dựa trên vị trí, danh sách các nhà hàng sẽ hiển thị. Với vai trò là một QA, bạn phải kiểm tra danh sách các nhà hàng.
Dưới đây là danh sách các chức năng mà bạn cần kiểm tra:
- Xác nhận xem thẻ nhà hàng có được hiển thị với vị trí không.
- Xác minh xem các nhà hàng được hiển thị có nằm trong phạm vi (km) nhất định của địa điểm không.
- Xác minh xem số lượng đánh giá cho mỗi thẻ có đồng bộ với các đánh giá được cung cấp hay không.
- Kiểm tra xem việc thêm một nhà hàng mới cho một vị trí phản ánh trong danh sách.
- Xác minh xem các nhà hàng có được liệt kê dựa trên quy tắc lọc của Zomato, v.v.
2) Kiểm thử giao diện người dùng Android
Đây là một loại kiểm thử lấy người dùng làm trung tâm. Trong giai đoạn thử nghiệm này, các mục như khả năng hiển thị văn bản trong các màn hình khác nhau của ứng dụng, thông báo tương tác, căn chỉnh dữ liệu, giao diện của ứng dụng cho các màn hình khác nhau, kích thước của các trường, v.v.
Đối với ví dụ tương tự ở trên của Zomato, cáctrường hợp kiểm thử giao diện sẽ là:
- Xác minh xem các thẻ được hiển thị phù hợp với kích thước màn hình di động.
- Xác nhận xem hình ảnh của nhà hàng được hiển thị như mong đợi.
- Xác minh xem các chi tiết thẻ, xếp hạng của nhà hàng, loại món ăn, địa chỉ, vv, được hiển thị đúng.
- Xác minh xem việc cuộn danh sách có xảy ra lỗi hay không và các thẻ có hiển thị sai khi danh sách quá dài.
3) Kiểm thử khả năng tương thích:
Kiểm thử này được thực hiện chủ yếu dưới dạng hai ma trận của ứng dụng OS và ứng dụng Mô hình thiết bị. Thông thường, một danh sách các hệ điều hành được hỗ trợ (và đôi khi là các thiết bị) được cung cấp bởi chủ sở hữu sản phẩm hoặc khách hàng.
Sự cần thiết cho loại kiểm thử này là
- Khi một hệ điều hành như Android được tính đến, có 7 phiên bản cơ sở được tìm thấy bỏ qua số lượng bản phát hành bản vá / EP.
- Bạn có thể đoán các loại thiết bị Android hiện đang hoạt động trên toàn cầu không? 1000? 2000? Sai rồi! Câu trả lời đúng là 24000. Có 24000 loại thiết bị Android khác nhau đang có mặt và hoạt động trên thế giới.
Với số lượng biến thể như thế này, kiểm tra khả năng tương thích đóng vai trò quan trọng trong việc kiểm thử ứng dụng Android. - Việc kiểm thử khả năng tương thích không chỉ xác thực hệ điều hành và loại thiết bị mà còn xác nhận một số tính năng khác, bao gồm:
– Kích thước màn hình
– Độ phân giải màn hình
– Kết nối mạng
4) Kiểm thử giao diện
Nói cách khác, nó cũng được gọi là kiểm thử tích hợp. Kiểm thử này được thực hiện sau khi tất cả các mô-đun của ứng dụng được phát triển hoàn chỉnh, được kiểm tra riêng lẻ và sau khi tất cả các lỗi đã được xác minh.
Kiểm tra giao diện bao gồm: các kiểm tra khi cài đặt ứng dụng lên các thiết bị, tương tác của phần mềm với các ứng dụng khác như Bản đồ, các ứng dụng xã hội, v.v., sử dụng Micrô để nhập văn bản, sử dụng Máy ảnh để quét mã vạch hoặc chụp ảnh, v.v.
Với ứng dụng Zomato ở trên, các kiểm thử tích hợp của bạn bao gồm:
- Xác minh xem người dùng có thể đặt bàn cho một nhà hàng hay không.
- Xác minh xem người dùng có thể xem menu và đặt món ăn trực tuyến hay không.
- Xác minh xem người dùng có thể sử dụng phiếu giảm giá PayTM trong khi đặt món ăn hay không.
- Xác minh xem người dùng có thể xem vị trí của nhà hàng trên Google Maps hay không.
- Xác minh xem người dùng có thể mở trình quay số điện thoại và gọi cho nhà hàng không, v.v.
5) Kiểm thử mạng
Các tính năng chính của Kiểm thử mạng bao gồm:
Ứng dụng nên kết nối với dịch vụ trung gian để thực hiện quy trình.
Trong quá trình kiểm thử mạng: yêu cầu / phản hồi đến / từ dịch vụ được kiểm tra cho các điều kiện khác nhau.
Thử nghiệm này chủ yếu được thực hiện để xác minh thời gian phản hồi trong đó hoạt động được thực hiện như làm mới dữ liệu sau khi đồng bộ hóa hoặc tải dữ liệu sau khi đăng nhập lần đầu, v.v.
Quá trình này thực hiện cho cả kết nối wifi mạnh, yếu và mạng dữ liệu di động. Đây là một kiểm thử nội bộ.
6) Kiểm thử hiệu suất
Hiệu suất của một ứng dụng trong các điều kiện đặc biệt cần được kiểm tra trước khi đưa ra thị trường.
Những điều kiện đó bao gồm:
- Bộ nhớ thấp trong thiết bị.
- Pin ở mức cực thấp.
- Khả năng tiếp nhận mạng kém.
Về cơ bản hiệu suất được kiểm thử từ 2 phía đầu, cuối ứng dụng và máy chủ ứng dụng
7) Kiểm tra cài đặt
Có hai loại ứng dụng trên thiết bị Android, tức là các ứng dụng được cài đặt sẵn và các ứng dụng được cài đặt sau bởi người dùng.
Đối với cả hai loại ứng dụng trên, kiểm tra cài đặt cần phải được thực hiện. Điều này là để đảm bảo cài đặt ứng dụng trơn tru mà không bị lỗi.
Việc nâng cấp và gỡ cài đặt được thực hiện như một phần của việc kiểm tra cài đặt ứng dụng.
8) Kiểm tra bảo mật
Quyền riêng tư và bảo mật là 2 yêu cầu chính của một ứng dụng. Tuy nhiên, trong các ứng dụng Ngân hàng, chăm sóc sức khỏe, điều này trở thành yêu cầu quan trọng không thể thiếu.
Việc kiểm tra luồng dữ liệu cho cơ chế mã hóa và giải mã, truy cập vào dự liệu được lưu trữ sẽ được thực hiện trong giai đoạn này.
9) Kiểm thử thực nghiệm
Kiểm thử thực nghiệm được thực hiện cụ thể cho mạng dữ liệu di động không phải trong nội bộ mà bằng cách ra ngoài và sử dụng ứng dụng như một người dùng bình thường. Quá trình kiểm thử này chỉ được thực hiện duy nhất sau khi toàn bộ ứng dụng được phát triển, kiểm tra hồi quy và tất cả lỗi đã được kiểm tra.
Về cơ bản, nó được thực hiện để xác minh hành vi của ứng dụng khi điện thoại có kết nối 2G hoặc 3G. Kiểm tra xem các ứng dụng có hoạt động bình thường ngay cả khi kết nối mạng chậm hoặc có mất quá nhiều thời gian để tải thông tin.
10) Kiểm tra ngắt:
Loại thử nghiệm này còn được gọi là xác minh kịch bản ngoại tuyến. Các điều kiện trong đó ngắt liên lạc ở giữa được gọi là điều kiện ngoại tuyến.
Một số điều kiện trong đó có thể kiểm tra sự gián đoạn của mạng như sau:
- Loại bỏ cáp dữ liệu trong quá trình truyền dữ liệu.
- Mất mạng trong giai đoạn đăng giao dịch.
- Phục hồi mạng sau khi ngừng hoạt động.
- Tháo pin hoặc Bật / Tắt nguồn khi đang trong giai đoạn giao dịch.
Các hoạt động cần làm khi thực hiện kiểm thử ứng dụng di động
Có một số yếu tố cần được xem xét trong khi đưa ra chiến lược kiểm thử ứng dụng di động.
1) Lựa chọn thiết bị
Đây là một trong những bước quan trọng nhất trước khi bắt đầu quá trình kiểm thử ứng dụng Android.
Quyết định những thiết bị nào sẽ được sử dụng trong quá trình kiểm thử.
Việc lựa chọn sẽ được thực hiện để tối đa hóa số lượng khách hàng mục tiêu.
Các yếu tố như phiên bản HĐH, Độ phân giải màn hình và Yếu tố hình thức [Máy tính bảng hoặc điện thoại thông minh] đóng vai trò quan trọng trong giai đoạn lựa chọn.
Nếu được yêu cầu, thậm chí có thể sử dụng đến sự trợ giúp của Trình giả lập.
Nhưng, Trình giả lập không nên thay thế quá trình kiểm thử bởi các thiết bị thực.
Trình giả lập thiết bị giúp giảm bớt chi phí và chúng có ích trong giai đoạn phát triển ban đầu.
Nhưng, để việc kiểm thử đem lại hiệu quả tốt nhất, bắt buộc phải kết hợp sử dụng thiết bị thực. Cả hai trình giả lập và thiết bị thực sẽ được sử dụng một cách cân bằng để có kết quả tối ưu.
2) Kiểm thử Beta của ứng dụng
Kiểm thử Beta rất hiệu quả trong thử nghiệm với người dùng trong thế giới thực, thiết bị thực, mạng thực tế và ứng dụng được cài đặt trong một khu vực địa lý rộng.
Điều này cho thấy một bức tranh rõ ràng về mật độ mạng, các biến thể mạng [Wi-Fi, 4G, 3G và 2G] và tác động đến ứng dụng.
Kiểm thử beta trong thế giới thực là một trong những loại hình này và không thể được nhân rộng trong một môi trường được kiểm soát.
3) Kết nối
Thông thường, các ứng dụng Android được kết nối với internet cho các yêu cầu khác nhau.
Kết nối trên các thiết bị khác nhau đóng một vai trò quan trọng trong việc đưa ra chiến lược.
Chủ yếu là kết nối được điều khiển bởi phần mềm mô phỏng giúp điều chỉnh tốc độ mạng, độ trễ và kết nối hạn chế trong quá trình thử nghiệm.
Người ta nói rằng kiểm tra theo các kết nối mạng thực sự luôn được khuyến khích cho kết quả / dữ liệu thời gian thực.
4) Kiểm thử thủ công hoặc tự động
Mặc dù kiểm thử tự động cần nhiều thời gian cho lần chạy đầu tiên, nhưng nó rất hữu ích khi quá trình kiểm thử được lặp đi lặp lại. Điều này cũng làm giảm khoảng thời gian thử nghiệm tổng thể trong các giai đoạn phát triển khác nhau.
Tự động hóa Android nên được kết hợp với kiểm tra thủ công, khi độ lặp lại kiểm tra hồi quy cao trong giai đoạn phát triển ứng dụng, kiểm tra khả năng tương thích phải được thực hiện cho cùng một ứng dụng trên các phiên bản HĐH khác nhau, các điểm kiểm tra tương thích ngược, v.v.
Kết Luận
Kiểm thử tự động ứng dụng android có thể được kết hợp với kiểm thử thủ công tùy theo yêu cầu của khách hàng. Tuy nhiên, nếu kiểm thử tự động được thêm vào chiến lược, thì việc chọn công cụ chính xác là một nhiệm vụ lớn. Trong khi lựa chọn các yếu tố, thì công cụ tự động hóa cần hỗ trợ đa nền tảng, quy trình kiểm tra, Giá của công cụ, dịch vụ/ hỗ trợ, v.v … nên được tính đến. Có một số thách thức liên quan đến kiểm thử ứng dụng Android. Có nhiều yếu tố khác nhau cần được tính toán và chuẩn bị kĩ lưỡng trước khi bắt đầu quá trình kiểm thử. Nhưng đừng lo lắng khi bắt đầu kiểm thử ứng dụng di động bạn sẽ thấy đó là một công việc rất thú vị.
Tham khảo: https://www.softwaretestinghelp.com/android-app-testing/