How to test mobile application

Tram Ho

Want to know more about how to test Mobile apps? Here you will find Mobile Testing instructions for your app. Mobile Testing strategy, the main stages of the Mobile Testing process, specifying Mobile Testing for Android and iOS will be reviewed in this article.

ARTICLE CONTENT

  1. Mobile application specifics
  2. Mobile site testing strategy key points
  3. Mobile application testing stages
  4. Tips to test mobile application
  5. Test mobile application with EasyQA SDK

The explosive growth of Mobile devices with the use and development of Mobile applications has made Testing an important requirement for the successful and rapid delivery of high quality Mobile applications.

1. Details of the Mobile application

Obviously, the Mobile application is very different from the Desktop. Therefore, we should take this into account when planning the testing process. So, let’s first consider the main differences between the Mobile and Desktop apps:

  • Mobile devices are a weaker system than PCs, so some functions don’t work on mobile like PCs.
  • Tesing Mobile applications are provided on handheld devices (Apple, Samsung, Nokia, etc.), while Desktop applications are tested on central processing units.
  • Mobile device screens are diverse, expandable and colorful. Mobile phone screen size is smaller than Desktop.
  • Making and receiving calls is the main task of the phone, which is why the application should not interfere with this main function.
  • A variety of specific operating systems (OS) and component configurations: Android, iOS, BlackBerry, Windows Mobile, …
  • Mobile phone operating systems quickly became obsolete. In addition, there is a limit to the brand’s operating system updates.
  • Mobile devices use network connection (3G, 4G, Wi-Fi), Desktop uses broadband connection or Wi-Fi.
  • Mobile devices are constantly searching for networks. That is why you should test the application at different data rates.
  • Good tools for Testing apps on Desktop, not quite suitable for Testing Mobile apps.
  • Mobile applications must support multiple input channels (keyboard, voice, gesture, barcode, identification, etc.), multimedia technology and other features that increase their applicability.

Another important thing in the Mobile Application Testing process is application classification.

The three main categories of mobile apps are divided into:

  • Mobile Web Apps (Mobile Web Apps)
  • Native (Pure native) Apps (Native application (pure))
  • Hybrid Apps.

1.1. Mobile Web application

In fact, the Mobile Web App is a website that is opened in a gadget (smartphone or tablet) with the help of the Mobile browser.

Some advantages of Mobile Web App:

  • Easy to develop
  • Easy access
  • Update easily
  • Mobile Web App does not require installation

Some disadvantages of Mobile Web App:

  • Does not support offline capabilities.
  • Restricted functionality is limited when compared to Hybrid App and Native App. (no access to file system and local resources).
  • Redistribution / rerun issues: Google Play and the App Store do not support redistributing the Mobile Web App.

1.2. Native App

Native App is an application developed specifically for a platform (Android, iOS, Tizen, Windows 10 Mobile, BlackBerry).

Some advantages of Native App:

  • Native App supports offline operation.
  • It can use all the features on its device.
  • Advanced user experience.
  • Push notifications can be used to alert users.

Some advantages of Native App:

  • Native App development is very expensive compared to Mobile Web App.
  • Requires high cost for maintenance.

1.3. Hybrid App

Hybrid App is a mix of Native App and Mobile Web App. It can be defined as mobile web content presentation according to application format.

Some advantages of Hybrid App:

  • More cost effective than Native App.
  • Easy to distribute
  • Embedded browser
  • Device features

Some advantages of Hybrid App:

  • Works not so fast as Native App.
  • Graphics are less familiar with OS than Native App.

2. Key points in the Mobile website Testing strategy

Now, we can think about the testing strategy. Consider the main points and challenges we should face.

2.1. Devices selection

Without a doubt, the real device is the best decision if you want to test the Mobile application. Testing on a real device always gives you the most accurate results.

In fact, this is really not easy to choose the most suitable device. Anyway, here are some actions to take while selecting a device for Mobile Testing:

  • Perform an analysis to identify the most popular and used utilities on the market.
  • Choose devices with different operating systems.
  • Choose devices with different screen resolutions.
  • Pay attention to the following factors: compatibility, memory size, connectivity, etc.

As mentioned above, you will have many advantages for testing Mobile apps on real devices:

  • High accuracy of Testing results.
  • Simple bug replication / simulation.
  • Points like battery exit, geolocation, push notifications, and built-in sensors are easy to test.
  • Ability to test incoming interrupts (calls, SMS).
  • Ability to test Mobile applications in real-world environments and conditions.
  • Not misidentified.

And a few drawbacks:

  • A large number of commonly used devices.
  • Additional costs for equipment maintenance.
  • Restrict access to devices commonly used abroad.

As you can see testing on real devices is good, but it also has some limitations. So you should fix them to make the Mobile Application Testing process really effective.

2.2. Emulators or simulators (Emulators or Simulators)?

Nothing unpredictable, they are special tools to copy / simulate the function and behavior of Mobile devices.

The meaning of the Emulator and Simulator is often confused, although their pronunciation is almost the same, but they do not have the same meaning.

In fact, the emulator is the replacement of the original device. Although you can run software and applications on your gadget, you are not able to modify them.

The simulator does not copy the hardware of the device, but you have the ability to set up an environment similar to the original device’s OS.

Therefore, it is better to use Mobile Emulation to test the Mobile application. The emulator is more suitable for checking Mobile websites.

Here, you can learn more about Emulators and Emulators .

Some advantages of using Simulations to test Mobile applications:

  • Easy to set up.
  • Work fast.
  • Help verify and discover the behavior of your mobile application.
  • Cost effective.

Some disadvantages of using Simulations to test Mobile applications:

  • Device hardware is not taken into consideration.
  • Wrong identification may occur.
  • Incomplete data of simulation results, this makes it difficult to fully analyze test results.

2.3. Cloud-based testing of the mobile application

Testing mobile applications with Cloud-based tools seems to be the optimal choice. It can help you overcome the disadvantages of real devices and simulator.

The main advantages of this method:

  • Easily available.
  • Ability to run Mobile devices on multiple systems and networks.
  • Able to not only test but also update and manage applications in the cloud.
  • Cost effective.
  • High scalability.
  • The same script can be run in parallel on some devices.

Some weaknesses of Cloud mobile testing:

  • More difficult to control.
  • There is no high level of security.
  • Dependence of Internet connection.

Some useful cloud-based tools that can help you test the Mobile application: Xamarin Test Cloud , Perfecto Mobile Continuous Quality Lab . Here you can learn more about mobile testing tools.

2.4. Mobile manual and automated testing

Today many experts support the idea that Manual testing will run out of time. Certainly, that is not true. Of course, we can’t do without Mest automation, but there are situations where Manual testing is more appropriate.

Some advantages of Manual testing of Mobile applications:

  • More cost effective in the short term.
  • Manual testing is more flexible.
  • Better simulate user actions.

Some disadvantages of Manual testing Mobile applications:

  • Manual test cases are difficult to be reused.
  • Ineffective with performing certain and continuous tasks.
  • The test process is slow.
  • Some types of test cases cannot be performed manually (Load testing).

Some advantages of Automation testing Mobile applications:

  • The testing process is quite fast.
  • Cost effective in the long run.
  • Automated test cases are easy to reuse.
  • The only option for certain types of testing (Perfomance testing).
  • The test results are easy to share.

Some disadvantages of Automation testing Mobile applications:

  • The Automated mobile testing tool has some limitations.
  • The process takes time.
  • Automated testing is less effective in determining user friendliness or positive customer experience.

As you can see, you should make various decisions that create the strategy for Mobile testing. Of course, there are no answers that define them.

The combination of different methods seems to be the optimal way. For example, you can use Emulation Simulations at the earliest stage of your Testing process. But it is better to use real devices (physical or cloud-based) in the final stages. Automated testing is more appropriate for Load testing and Regression testing. But manual mobile testing tools should be better for Usability testing and Exploratory testing.

3. Mobile application testing stages

So let’s start looking at the main stages of the Mobile App Testing process. They are mostly similar to the Web Testing phases. Most, but not quite the same. As shown above, there are some basic differences between the Mobile and Desktop apps. Therefore, we need to go through some additional stages and perform some additional verification.

3.1. Documentation Testing

Documentation Testing is the necessary preparation phase of the Mobile App Testing process.

In fact, testing begins before the software development process. Testers get navigational charts, layouts (screen layouts), and other requirements that don’t exist on the design. These requirements are fully analyzed and inconsistent. Conflicts in requirements must be resolved before development begins.

Documents created and analyzed at this stage include: Requirements (Specification, PRD), Test Plan, Test Cases, Traceability Matrix.

3.2. Functional testing

Functional testing aims to ensure that it works as required. Put simply, we check that the application performs the intended functions, often described in the specification or in accordance with the logic of the business process. Pay attention to the next important factors while providing Functional testing to your Mobile application:

  • Application classification, defined by its business functions (social networks, banking (banking), education (education), ordering and delivery of food, (ordering and delivery of food), tickets, the game industry, …
  • Target audience (company, users, educational environment, …).
  • Distribution channel (online delivery, Google Play, App Store, …)

Now, let’s look at the main verification issues that need to be approved to test the Mobile app functionality.

3.2.1. Installing and running the application

  • The installation of the application will take place without serious errors, if the device meets the system requirements.
  • Confirm the application automatically starts correctly.
  • Ensure user manual is available.
  • Ensure the application’s operation during start / exit process meets the basic requirements.

3.2.2. Fields testing

  • Confirm that the required fields (required) are working correctly.
  • Make sure that the required fields (required) and optional (optional) are displayed in different ways.

3.2.3. Business functionalities testing (Testing functional business)

  • Confirm the declared price and the corresponding content for users to receive information.
  • Ensure users can perform basic operations: buying, adding products to cart, ordering etc.
  • Ensure the application supports payment transactions through payment systems such as Visa, Mastercard, Paypal, etc.
  • Check the recovery of purchases on any device, but with account constraints.

3.2.4. Interruptions testing

  • Incoming and outgoing calls, SMS and MMS.
  • Out of battery / disassemble battery.
  • Disconnect and connect to a network / Wi-Fi.
  • Disconnect and connect the SD card.
  • Charge the device.

3.2.5. Constant users feedback testing (Testing user feedback continuously)

  • Download notification content
  • Progress bar
  • Appropriate response of buttons when pressed.
  • Network access error message.
  • Try to delete important information messages.
  • Availability and synchronization of sound, vibration, and visual notifications.
  • The appearance of a screen (message) at the end of the process (game).

3.2.6. Update testing

  • All user data is saved after the update.
  • Make sure the update process is displayed correctly.
  • Guaranteed updates are supported by older operating systems.
  • Experiment with how to install updates (Wi-Fi, Bluetooth, USB)

3.2.7. Device resources testing

  • Lack of space to install or run applications.
  • Memory leak. Pay attention to the windows, with lots of information and tasks with long workflows.
  • Install / replace apps on SD-card.
  • The absence of some functions supported by the application (3G, SD-card, …).
  • Ensure that installed applications do not interfere with the normal operation of other applications and do not consume their memory.

3.2.8. Some other verifications:

  • Related verification games: inaccuracy of connecting / disconnecting players, connecting players through different networks, …
  • Please make sure that the error message information is accurate on time and appropriate.
  • Verify connectivity with analytics tools like Google Analytics.
  • Check power consumption.
  • Verify the necessary options work correctly with social networks – Share, Publish, Navigation.

Some useful tools to test mobile application functionality: Appium, Selendroid, Robotium, Ranorex. Some useful tools to test Mobile application functionality: Appium , Selendroid , Robotium , Ranorex .

3.3. Usability testing

Usability testing aims to ensure the convenience of using the application, creating an intuitive interface that conforms to standards. It is made to create applications that are fast and easy to use. Here are 3 key basic criteria to evaluate the application:

  • Satisfaction (Satisfaction level)
  • Efficiency (Performance / Productivity)
  • Effectiveness

Consider a simple checklist to test the ability to use the Moble application:

  • Ensure that the buttons are normal size and placed in an area of ​​the screen
  • Verify the application works in multitasking mode, as needed.
  • Check the navigation of important application modules.
  • Ensure icons and images look natural in the application environment.
  • Confirm the color of the buttons performing the same function.
  • Text must be simple, clear and visible to the user. Short sentences and paragraphs that can be read.
  • Determine the optimal font size.
  • Ensure correct operation of the Zoom-in and Zoom-out system.
  • Verify the menus are not overloaded.
  • Make sure the application can be terminated by any state and it will continue to function again in the same state.
  • Ensure that application components are synchronized with user actions.
  • Verify user can go back or cancel the action if the button is pressed wrong.
  • Confirm the response rate is high enough.

Some useful tools to test the availability of Mobile applications: User Zoom , Reflector , Loop11

3.4. UI (User Interface) testing

User Interface (UI) testing is performed to ensure the application’s user interface meets requirements.

Here are some verifications to test the UI of the Mobile app:

  • Ensure compliance with UI standards
  • Check the application’s user interface with standard screen resolutions: 640 × 480, 800 × 600, 1024 × 768, 1280 × 800, 1366 × 768, 1400 × 900, 1680 × 1050.
  • Verify the responsiveness of the applications on different devices.
  • Check main design components: button, icon, color, link, font, font size, layout, textbox, text format, label, caption, list, …
  • Verify ads don’t overlap app controls.
  • Make sure the ad has a close button to be accessible.
  • Make sure to display different elements on the retina and non-retina screens correctly.
  • Verify all display elements with portrait and landscape orientation.

Some useful tools for testing the interface of Mobile applications: FitNesse , iMacros , Coded UI , Jubula .

3.5. Compatibility (Configuration) testing (Compatibility)

Compatibility (Configuration) testing is performed to ensure optimal application performance across different devices – taking into account size, screen resolution, version, hardware, etc. the next points:

OS Configuration (Configuring the operating system) Browser Configuration (Configuration Configuration) Database Configuration Device Configuration (Device Configuration) Network Configuration (Network Configuration)

Cross-platform testing helps you test Mobile apps in different OS: Windows, iOS, Android and BlackBerry, …

Cross-browser testing allows to ensure the correct operation of the application in different browser configurations: Mozilla Firefox, Google Chrome, Opera Mini, …

Database testing aims to verify the correct operation of the application in different database configurations: Oracle, DB2, MySql, MSSQL Server, Sybase.

Device Configuration testing should take into account parameters such as:

  • Device type: smartphone, tablet, etc.
  • Device configuration: RAM, processor type, screen resolution, battery capacity, …

Network configuration testing to ensure correct operation in different network configurations (GSM, TDMA) and standards (2G, 3G, 4G).

Some tips to check your Mobile application compatibility:

  • Create a coverage matrix (in which all configurations can be imported).
  • Configuration priority.
  • Check each configuration, step by step, according to the priorities set.

Some useful tools to check the compatibility of Mobile applications: BrowserStack , CrossBrowserTesting by Smart Bear , Litmus , Browsera , Rational Clearcase by IBM .

3.6. Perfomance testing

Perfomance testing is a collection of testing types, the purpose is to determine the operability, stability, resource consumption and other properties of application quality according to different usage and load scenarios. .

Main purposes of Perfomance testing:

  • Test the application response time with different types of requests, to ensure that the application works according to the requirements of normal user load ( Load testing ).
  • Test the ability of the application to download at times exceeding normal users ( Stress testing ).
  • Test the application’s ability to operate for long periods of time, under normal load ( Stability testing ).
  • Check the work in the conditions of the expanded database, in normal time ( Volume testing ).
  • Determine the number of users who can simultaneously work with the application ( Concurrency testing ).

Some verification to Perfomance testing your Mobile application:

  • Determine whether the application runs the same under different network conditions.
  • Finding different application bottlenecks and infrastructure reduces application performance.
  • Assess the ability of the application to deal with planned load volumes.
  • Confirm the response time of the application meets the request.
  • Testing the stability of the application in terms of user load is not good.
  • Ensure the performance of the application if it works under conditions of non-fixed connection to the Internet.
  • Ensure the current client-server configuration provides optimal performance.

Some useful tools for testing the perfomance of Mobile applications: NeoLoad by Neotys , Apteligent (formerly Crittercism) , New Relic .

3.7. Security testing

Security testing aims to test the security of the system, as well as analyze the risks associated with providing a comprehensive approach to ensure the application is safe, preventing hackers, viruses, and unauthorized access to data. sensitive material.

Some verification needs to be passed in order to test Mobile application security:

  • Ensures application user data (login, password, bank card number) is protected from network attacks of automated systems, and cannot be found by selecting.
  • Verify the application security system requires a strong password and does not allow an attacker to obtain the user’s password.
  • Ensure that the application does not grant access to sensitive content or functionality without proper authentication.
  • Secure the application against SQL injection attacks.
  • Protect applications and networks from DoS attacks (DoS Attacks).
  • Protect applications from malicious attacks on client machines.
  • Protect the system from malicious deployments when the program is running.
  • Provides protected session management from unauthorized users.
  • Prevent possible malicious consequences of file caching.
  • Check user files and prevent their harmful effects.
  • Analyze the interaction of system files, identify and fix vulnerabilities.
  • Prevent possible malicious actions of cookies.

Some useful tools for testing mobile application security: OWASP Zed Attack Proxy , Veracode , Google Nogotofail , and SQL Map .

3.8. Recovery testing

Recovery testing verifies the application is being tested for stamina and successfully recovering from errors that can occur due to software failures, hardware failures, or communication problems.

Here is a list of verification for Recovery testing:

  • Verify the application’s effective recovery after unforeseen incident situations.
  • Ensure data recovery process after disconnection.
  • Check recovery after system errors and transaction errors.
  • Verify the ability of the application to process transactions in the event of a power outage (low battery, improper application shutdown, …)

3.9. Localization testing

Localization testing allows you to adapt the Mobile application to a specific target audience in accordance with its cultural characteristics.

Some verification for Localization testing:

  • Determine the language supported by the application.
  • Ensure the accuracy of the translation.
  • Verify the accuracy of the translation according to the subject of the application
  • Check out the date format.
  • Check for delimiters in numbers.

Of course, native speakers are given priority to perform Localization testing of Mobile apps

Ubertesters may be useful for Localization testing of Mobile applications.

3.10. Change related testing

So after passing all the mentioned stages and find some errors. Therefore, some changes have been made to the code of your application.

The main objectives of the test are related to change (Change related testing):

  • Verify that your team successfully fixes all detected bugs (Re-testing or Confirmation testing). Put simply, the initial error detection test cases are run again. And this time they will be passed without error.
  • Verify of new changes does not result in the occurrence of new errors. (Regression testing). In fact, providing Regression testing, you not only pass test cases with detected errors, but also test cases that test all the functions of your application.

Some useful tools to Change related testing for your application: Appium , Robotium , Ranorex .

3.11. Beta testing

Finally, you have the fully functional pre-release version of the Mobile app. It would be better to evaluate the ability and stability of the program for its future users.

Beta testing is the stage of debugging and testing the beta version of the program. Mục đích chính của nó là xác định số lượng lỗi tối đa trong công việc của mình để loại bỏ chúng trước khi phát hành ứng dụng cuối cùng ra thị trường.

Những người có kinh nghiệm làm việc với các loại ứng dụng tương tự sẽ tốt hơn là có kinh nghiệm với phiên bản trước của ứng dụng được chọn vào vai trò của tester Beta.

Bạn nên chú ý đến các yếu tố tiếp theo trước khi cung cấp Beta testing cho ứng dụng Mobile của mình:

  • Một số người tham gia Testing.
  • Thời gian Testing.
  • Vận chuyển
  • Đảm bảo thông tin bảo mật về ứng dụng
  • Chi phí Testing.

Mặc dù bạn cần phải bỏ ra một số tiền để Beta testing, nhưng đó có thể là một khoản đầu tư tốt cho chất lượng của ứng dụng Mobilt của bạn.

Một số nền tảng phổ biến để thử nghiệm beta các ứng dụng di động: HockeyApp , Ubertesters , TestFlight .

3.12. Certification testing

Có một số quy tắc nhất định để tổ chức tệp cài đặt (.apk) và quy tắc thiết kế ứng dụng cho từng store ứng dụng. Certification testing xác minh ứng dụng đáp ứng yêu cầu của các store phổ biến nhất như Google Play, App Store và Windows Phone.

Hãy xem xét các tiêu chí chính để tuân thủ ứng dụng với các tiêu chuẩn, thỏa thuận cấp phép và điều khoản sử dụng.

1. Android :

  • Tệp cài đặt cho ứng dụng (.apk) khớp với Chính sách chương trình ( Program Policies ).
  • Ứng dụng đáp ứng các yêu cầu của UIG .
  • Không có virus trong ứng dụng. Thị trường Android bán tự động kiểm tra ứng dụng để tìm virus và có thể chặn tài khoản của bạn nếu phát hiện ra chúng.
  • Bạn nên tuân theo thứ tự kiểm soát phiên bản trong trường hợp xuất bản phiên bản cập nhật của ứng dụng.

2. iOS :

  • Ứng dụng đáp ứng các yêu cầu của Nguyên tắc Giao diện Con người ( Human Interface Guidelines ).
  • Ứng dụng phải có một tên duy nhất.
  • Bạn cần cung cấp một liên kết cho phản hồi từ nhà phát triển.
  • Các ứng dụng nên được đưa vào danh mục cụ thể được xác định.
  • App Store kiểm tra ứng dụng để tương thích.
  • Ứng dụng không có chứa các tài liệu bị cấm, sự chậm trễ không lường trước trong công việc hoặc lặp lại các chức năng hiện có.

3. Windows Phone :

  • Ứng dụng đáp ứng các yêu cầu của yêu cầu chứng nhận Ứng dụng ( App certification requirements ).
  • Mô tả rõ ràng về các yêu cầu phần cứng và mạng.
  • Các chức năng được đề cập trong mô tả hoặc hiển thị trong ảnh chụp màn hình được thực hiện đầy đủ
  • Tùy chọn để kiểm soát âm thanh có thể phát tự động được yêu cầu.

4. Tips to test mobile application

Hãy hệ thống hóa kiến thức của chúng ta và cố gắng xác định các tip chính để Testing ứng dụng Mobile.

  1. Tìm hiểu ứng dụng bạn sẽ test.
  2. Ghi nhớ sự khác biệt giữa ứng dụng Desktop và Mobile.
  3. Có tính đến các chi tiết cụ thể của hệ điều hành và phần cứng
  4. Sử dụng các thiết bị thực khi có thể.
  5. Đừng cố gắng tìm “Swiss Army Knife” của Testing. Sử dụng các công cụ mà bạn quen thuộc.
  6. Sử dụng những lợi thế của Cloud mobile testing.
  7. Xác nhận phát hiện của bạn bằng screenshot, log và video.
  8. Cung cấp thử nghiệm ứng dụng di động của bạn cho cả chế độ màn hình dọc và ngang.
  9. Sử dụng các tùy chọn menu phát triển cho iOS và Android.
  10. Đừng bỏ qua (nhưng không lạm dụng) trình giả lập và mô phỏng giả lập để Testing.
  11. Xác minh sự hoàn hảo của ứng dụng của bạn.
  12. Đừng tự động hóa mọi thứ
  13. Tiếp nhận người dùng thực để kiểm tra ứng dụng của bạn
  14. Giải phóng thời gian để giải quyết các tình huống test phức tạp, độc đáo hơn.
  15. Xem xét yếu tố con người

Nguồn Tham khảo:

https://geteasyqa.com/qa/mobile-apps-testing/

Share the news now

Source : Viblo