Sự cần thiết của Simulator và Emulator trong Mobile Testing
Cũng như hầu hết những QA khác, công việc testing trên mobile app của tôi hoàn toàn được thực hiện trên những device thật hiếm hoi hoặc không đầy đủ mà team có. Nhưng khi dự án nâng cấp lên support sang một nhánh nữa của device đó là tablet và ipad, thì chúng tôi gặp một vấn đề khó khăn với thiết ...
Cũng như hầu hết những QA khác, công việc testing trên mobile app của tôi hoàn toàn được thực hiện trên những device thật hiếm hoi hoặc không đầy đủ mà team có. Nhưng khi dự án nâng cấp lên support sang một nhánh nữa của device đó là tablet và ipad, thì chúng tôi gặp một vấn đề khó khăn với thiết bị. Đó là công ty không có một device tablet nào, yêu cầu mua mới thì gặp một số vấn đề khó khăn do hầu như các dự án đều không dùng tới loại device này ngoại lệ dự án của chúng tôi. Khách hàng sau đó có gửi trực tiếp device sang cho chúng tôi nhưng lại có một số vấn đề về hải quan thành ra device vẫn chưa thể về tay đội dự án, trong khi thời gian test còn lại không có nhiều. Lúc này giải pháp hữu hiệu đó là sử dụng simulator và emulator để thay thế.
Bài viết này mình muốn chia sẻ về sự cần thiết của simulator và emulator trong mobile testing, để các bạn có cái nhìn tổng quan hơn và linh hoạt sử dụng loại device này để việc test đạt hiệu quả toàn diện hơn.
I. Mobile Emulator, Simulator và Real-Device
Có hai cách vượt trội mà các nhà phát triển có thể dùng để kiểm thử một ứng dụng di động. Bạn có thể thực hiện kiểm thử trên thiết bị thực hoặc sử dụng thiết bị ảo (simulator hoặc emulator). Thoạt nhìn, bạn có thể cảm thấy chỉ cần chọn một trong hai cách, nhưng sự thật là sử dụng cả hai cách tiếp cận là con đường tốt nhất để thành công.
1. Mobile Emulator
Mobile Emulator là giả lập di động, nó sẽ giả lập lại các device chạy trên 1 nền tảng di động (cả về phần cứng thiết bị di động và hệ điều hành), mục tiêu là để có thể cài ứng dụng trên đó, cho phép kiểm tra và gỡ lỗi các ứng dụng và xem chúng hoạt động như thế nào. Tuy nhiên nó chỉ giống với device thật ở mức tương đối, do đó, có những bug chạy trên emulator thì không bị nhưng trên device thật thì lại bị.
Ví dụ: ADT Emulator cung cấp giao diện và tính năng giống như điện thoại Android. Bạn có thể cài đặt ứng dụng trên máy tính và sử dụng nó theo cách tương tự như cách bạn sử dụng trong điện thoại di động của Android với giao diện hoàn toàn giống như thiết bị Android.
2. Mobile Simulator
Mobile Simulator là một trình mô phỏng di động, nó là một ứng dụng ít phức tạp mà mô phỏng một số hành vi của một thiết bị, nhưng không bắt chước phần cứng và không hoạt động trên hệ điều hành thực sự. Nó sẽ tạo ra 1 ứng dụng mô phỏng giống các sản phẩm mobile đến từng chi tiết, giống thật nhất có thể, những công cụ này đơn giản và ít hữu ích hơn giả lập.
Ví dụ: iOS Simulator mô phỏng giống các sản phẩm device của apple như một iPhone, iPad thật.
3. Real Device
Kiểm thử với thiết bị thực là một phần không thể thiếu của quá trình phát triển ứng dụng và không bao giờ được bỏ qua bất kể trình mô phỏng di động có cải tiến tốt đến mức nào. Bởi người sử dụng sẽ không truy cập ứng dụng của bạn bằng trình mô phỏng di động. Vì vậy cần phải kiểm tra với thiết bị thực trong quá trình đảm bảo chất lượng để úng dụng đạt chất lượng cao nhất. Bởi vì ngay cả với một số thiết bị hạn chế, bạn cũng sẽ nhận được một ứng dụng tốt hơn nếu không kiểm tra với bất kỳ một thiết bị thật nào.
II. Sự cần thiết của Simulator và Emulator trong Mobile Testing
Bây giờ có lẽ các bạn đã nắm rõ khái niệm về Simulator và Emulator trong Mobile Testing. Từ thực tế là có rất nhiều biến thể về các loại thiết bị, kích cỡ màn hình và hệ điều hành trên thị trường, đã làm cho những công cụ này đã nổi lên như là một điều cần thiết. Mobile Simulator và Mobile Emulator được sử dụng rộng rãi cho cả kiểm thử ứng dụng di động tự động và thủ công. Vậy những nhu cầu đó là gì? Tại sao Simulator và Emulator lại thật sự cần thiết?
1. Phân mảnh thiết bị
Đây là một trong những mối quan tâm lớn nhất của cả nhóm phát triển và nhóm QA. Phạm vi rộng của các thiết bị di động từ Apple đến Samsung, từ hệ điều hành iOS cho đến Android, windowphone, Symbian,... và do đó nhóm kiểm thử khó mà kiểm tra được tất cả các loại device trong khi vẫn phải đảm bảo về ngân sách và thời gian.
Khi tester không tự tin để quyết định loại device nào nên đầu tư để kiểm thử hay kiểm thử trên nhiều thiết bị thực có gây ra lãng phí? Simulator và Emulator sẽ được điều chỉnh cho loại tình huống này.
2. Hạn chế về ngân sách
Bạn cần phải kiểm thử trên bao nhiêu loại thiết bị? Bạn nên chọn loại nào? Chi phí liên quan đến việc mua sắm và quản lý các thiết bị này là đáng kể. Thực tiễn tốt nhất là kiểm thử trên 30 - 40 thiết bị trong thị trường của bạn và thay thế ~ 30% mỗi quý để cập nhật.
Nhiều công ty mới thành lập đơn giản chỉ là chưa đủ khả năng để xây dựng danh sách devices này, do đó Simulator và Emulator trong Mobile Testing được sử dụng đến. Trong hầu hết các trường hợp, Simulator và Emulator hoàn toàn miễn phí và được cung cấp như là một phần của SDK với mỗi phiên bản hệ điều hành mới. Tất cả bạn cần làm là tải phần mềm, cài đặt trên máy tính của bạn, và bạn đã sẵn sàng để làm việc với nó.
3. Gỡ lỗi step-by-step
Trong giai đoạn phát triển để kiểm tra đơn vị hay các mục đích tương tự khác, khi sử thiết bị thực có thể trở nên khó kết nối với IDE hơn các bộ mô phỏng. Điều này gây ra nhiều vấn đề cho việc debug và có thể tốn thêm time, có thể cản trở kết luận đánh giá của cả dự án về sau.
Do được tích hợp vào môi trường phát triển, Simulator và Emulator cung cấp cho nhà phát triển hoặc người kiểm tra quyền truy cập vào thông tin debug chi tiết. Điều này cho phép debug "step by step" một cách tiện lợi trên trình mô phỏng.
4. Tiết kiệm thời gian
Vì Simulator và Emulator là phần mềm đơn giản chạy ngay trên máy tính của bạn, chúng có độ trễ thấp hơn các thiết bị thực sự kết nối với mạng cục bộ hoặc trên cloud. Một cách nhanh chóng và dễ dàng để kiểm tra các thay đổi nhỏ có thế xảy ra.
5. Thực hiện song song
Một thách thức với thiết bị kiểm thử là nếu bạn muốn thực hiện 100 kiểm thử, bạn sẽ phải làm từng kiểm thử một. Hoặc bạn cần thêm 99 testers khác thực hiện những điều tương tự như bạn. Do vậy, nhiều giả lập có thể được lập trình để chạy nhiều công việc tương tự nhưng nhanh hơn và khối lượng lớn hơn.
6. Logistics
Ngoài chi phí của thiết bị thực, có một vấn đề về việc quản lý và thực hiện các bài kiểm thử trên chúng. Việc kiểm thử trên các thiết bị thực là một quy trình thủ công, do đó không có cách nào để kiểm thử nhiều thiết bị đồng thời Ngay cả bạn làm việc với 5 thiết bị đã có thể gây lộn xộn bàn làm việc của bạn. Ngoài ra có thể liên quan đến vấn đề phải đảm bảo dây đi kèm phù hợp với thiết bị và các vấn đề khác. Thêm vào đó luôn có cơ hội để thiết bị của bạn bị đánh cắp, đặc biệt là nếu thiết bị để trên bàn làm việc trong một khoảng thời gian dài để chạy các bài kiểm thử.
7. Thiết lập tự động
Nếu thiết lập kiểm thử tự động, một vấn đề khác là mỗi thiết bị có thể cần cấu hình để kết nối với một nền tảng. Ví dụ: debug gỡ lỗi ADB trên thiết bị Android của bạn. Ngoài ra, bạn sẽ phải thêm tất cả những gì họ sẽ tính phí. Số lượng lớn các thiết bị mà các nhiệm vụ như vậy phải được thực hiện, sẽ tốn chi phí nhiều hơn về cả thời gian và effort.
8. Bảo mật
Nếu bạn đang sử dụng các thiết bị được kết nối cục bộ vào máy trạm của bạn, bạn sẽ cần đảm bảo cổng USB đang mở. Ngoài ra, thiết bị di động có thể dễ dàng bị đánh cắp, cho phép truy cập trái phép vào tài nguyên mạng nội bộ của bạn.
9. Chụp màn hình
Chụp màn hình giao diện người dùng hoặc hiển thị lỗi có thể được dễ dàng hơn từ một simulator hya emulator, và nó lưu ngay trên máy tính của bạn. Đơn giản bằng cách sử dụng các công cụ có sẵn trong máy tính như Snipping của Windows, các tiện ích của Microsoft Office và nhiều ứng dụng của bên thứ ba có sẵn để chụp ảnh chụp màn hình.
10. Làm mới thời gian thực
Ngoài ra, Simulator và Emulator có thể trích xuất dữ liệu theo thời gian thực và làm mới các báo cáo khi nó chạy, cung cấp cho nhóm phát triển những dữ liệu cần thiết để gỡ lỗi.
11. Tính có sẵn
Simulator và Emulator được tích hợp hầu hết trong các trường hợp là mã nguồn mở và phần mềm tự do có thể được tải về rất dễ dàng từ Internet và sẵn sàng để được kiểm tra.
12. Sự đơn giản
Chỉ cần tải về phần mềm, cài đặt trên máy tính của bạn là bạn đã sẵn sàng để làm việc với nó. Nhiều Simulator và Emulator trong Mobile Testing có thể được chạy một cách đơn giản. Kiểm thử functional, UI và usability (khả năng sử dụng) có thể dễ dàng thực hiện.
13. Dựa trên tình huống
Có những trường hợp cụ thể mà thời hạn để đưa ra kết quả thực hiện kiểm thử là ngắn và mua các thiết bị bắt buộc có thể không khả thi. Do đó cần thiết nên sử dụng Simulator và Emulator để kiểm thử các ứng dụng di động có liên quan.
Trong khi Simulator và Emulator là công cụ tuyệt vời của tester và developer, kiểm thử thiết bị thực là một phần không thể thiếu của quá trình phát triển ứng dụng và không bao giờ được bỏ qua. Bởi người sử dụng sẽ không truy cập ứng dụng của bạn bằng trình mô phỏng di động.
Thực tiễn tốt nhất cho phát triển ứng dụng dành cho thiết bị di động sẽ bao gồm cả Simulator/ Emulator và thiết bị thực để duy trì các tiêu chuẩn và đảm bảo chất lượng. Lý tưởng nhất là sử dụng các bộ mô phỏng (và một vài thiết bị cầm tay thực tế tham khảo) trong các giai đoạn viết mã và gỡ lỗi sớm, và các thiết bị thực sự cho các giai đoạn test khả năng sử dụng (usability), hiệu năng (performance), khả năng tương tác (inter-operability), tính khả thi của mạng (network feasibility) và kiểm thử hồi quy (regression testing) phases,...
Nguồn tham khảo: http://www.softwaretestingstudio.com/simulator-emulator-mobile-app-testing/