by admin | Jul 7, 2020 | Mobile App Testing, Fixed, Blog |
In the past, mobile phones were mostly intended for making phone calls, they offer fundamental features like digital phone book, access to text messages, etc… With limited memory. After the emergence of smartphones their offerings are phenomenal – they’re considered as miniature version of a computer that can fit in once pocket. It is able to run programs and games, access the internet, send and receive email, travel with map, GPS positioning and much more.
With extensive memory storage capability they have can run multiple applications in parallel, devices now supports mixed reality and interestingly, batteries last for days instead of hours. Hence the advancement of mobile technology continues to grow constantly and have irrevocably changed our lives. Two primary operating systems have evolved within the smartphone market. There are few other smartphones available in the market along with the two giants, they are:
Android
IOS
Windows
Symbian
Blackberry
Among the list of operating system’s Android and iOS are the trending OS’s. Google’s Android has been adopted by a number of hardware manufacturers to compete with Apple nevertheless many people around the globe use iPhone for its astonishing features, design and security. We will see more about iOS platform and its testing methodologies in the following paragraphs.
Unlike Android, Apple has very limited device variants like iPhone, iPad, apple watches. iOS is specifically designed for Apple and they follow stringent rules and guidelines to release the app on their app store. The distribution of app has to follow the guidelines they suggested, even the apps distributed for software testing should follow the same. Let’s see more in detail about the best practices to be followed while testing an IOS based application.
We deal with so many applications in our day to day life, most of the applications we come across are intended to support multiple platforms to hit the target market.
There are three kinds of applications that we must be aware of, especially the mobile apps.
Web based applicationThese applications are designed in a way that they run on mobile web browsers, for apple, the default web browser is Safari. We might have to do an http or https to see how the application renders a web page.
Native applicationThe native application, is a software application built in a specific programming language, for a specific device platform. A native app is intended for the use of a particular device and its associated OS, it has the ability to use device-specific hardware and software. Native apps can provide optimized performance and take advantage of the latest technology. Native iOS apps are written in Swift or Objective-C.
Hybrid applicationHybrid applications are a combination of native and web apps. The internal functioning of a hybrid application is similar to a web app, but once downloaded it installs like a native app. Hybrid applications are built with HTML and CSS. Developers create a code base, then make small changes to tailor the app to suit each platform. Hybrid apps typically run a web app through a container or WebView, there is no offline mode for a hybrid application — it only works with an internet connection. Native apps, by contrast, can operate offline. Yelp, Facebook, Instagram are examples of Hybrid apps.
One should put focused efforts into testing an mobile application. The choice of tools and methods will affect the quality and terms of mobile app deployment and updates fundamentally. It’s essential to ensure timely and cost-efficient testing while taking into account the evolving user needs. And if we talk about the ways to test a mobile application, there are two ways to go: real devices and emulators.
Many teams see actual value in using emulators for both manual and automated testing. They are a great starting point and are less expensive than purchasing real devices. There are many problems in testing apps using emulators as it cannot emulate battery issues, network connectivity and other real-time data: GPS, sensors, gestures, touch force, etc. Mainly Touchscreen issues cannot be emulated. To overcome these, testing on real devices is the ultimate way to truly understand the user experience. No worries about false positives and negatives, just real results and any performance defects related to the device or the environment are visible.
Let’s see some of the testing which are done using real device.
UI/UX testingUser interface quality is important for any application to be successful, it’s crucial to provide seamless, user-friendly experiences across platforms. The demands placed on mobile websites and apps are unique: screen “real estate” is extremely limited, navigation relies on gestures instead of mouse clicks. Below are some elements that needs to be thoroughly tested as part of this UI/UX testing.
InputsFor mobile apps, we feed inputs through different user gestures by soft touching, prolonged touching, scrolling, tapping, pinching and accessing the buttons present on the UI. We as a user should be focusing that all the design is apt and the application is accepting the inputs without having any problem.
Hard/Soft keysThere are some native apps which would respond to the hard panel buttons such as pressing the home button, volume keys and even some apps support other gestures like bumping, shacking, double tapping etc. We need to test these gestures/ hardware buttons functions while using the app as well.
ScreensAttractive screens with good design will always grab the attention of the user. We should have a hawk eye on each and every field that’s available and validate the color of the element, width and position of the element and its workflow. We can greatly differentiate the UI between the conventional android and the IOS. We tend to see IOS behave the other way in most of the cases (Main app navigation – bottom navigation), hence careful observation is must. Eg: Alerts appear in the center of the screen with buttons confirm and cancel, whereas android displays in the opposite order.
Messages & NotificationsAn app may face various interruptions being in active mode, such as incoming calls or network coverage outage and recovery. This kind of testing shows what the app will do in this variety of cases.
Security testingIt is very important to check the vulnerability of the app to hacking, authentication and authorization policies, data security, session management and other security standards. The fundamental objective of security testing is to ensure that the app data and networking security requirements are met according to standards.
System testingSystem testing is done only when the complete application is available, in this testing the end-to-end flow of a business use case is tested. System testing can be done via emulator and via real devices. We need to test all the components of the app to ensure that the product at the pre-launch stage meets the specified requirements. It can be tested in the environments really close to the actual in which users will get their experience once it is deployed.
Integration testingWhen two or more components are integrated or when we add a new component to the existing one then we need to test to check whether the app communicates with the other systems properly and gives the expected result, we can do this testing with the help of an emulator without having to rely on the hardware components.
UI testingUser Interface (UI) testing is performed to ensure the graphic user interface of your app meets the specifications. Especially for IOS apps, we need to make sure the correct display of various elements on retina and non-retina screens. Also one should verify all elements displayed with portrait and landscape page orientation.
Automated TestingWe all know how crucial automation testing is in the testing world. It saves us a lot of time, effort and the cost. Automated testing is preferable mostly while performing load and regression testing. But manual mobile testing tools are better to be used for usability and exploratory testing. Appium is the right choice to perform automation testing on mobile apps.
Below types of testing are ideal candidates to be automated to save time and cost:
Regression The regression test cases are automated to ensure the previous features are not broken or altered due to the new implementations.
Compatibility Doing repetitive testing on different mobile devices is time consuming and a mundane task, in order to achieve faster test results, it is recommended to adopt automation to verify different device compatibility within a short period of time.
Best practices to adopt You can’t build efficient processes without a mobile app testing strategy. A perfect balance of manual and automated testing, proper choice of testing methods, and an experienced team – all of these components are vital.
The percentage of users running your mobile app on an emulator is zero. Real-life testing is essential since emulators simply cannot cover all the issues that may occur during a real user experience. Hence, planning your selection of target devices through a mix of emulators and physical devices—combined with other mobile testing strategies will help you to move towards a successful release.
Happy learning!
by admin | Jun 29, 2020 | Mobile App Testing, Fixed, Blog |
A software application has to undergo multiple levels of testing to ensure its reliable functioning. To achieve this the product has to undergo rigorous testing. In agile testing methodology, when an application undergoes frequent changes, we need to ensure that the existing functionality or feature is working fine. It is really challenging and a cumbersome task when you wish to test your ever changing production code manually, in addition to that it will consume lot of time and won’t be cost effective.
So to achieve a reliable, quick and improved test coverage, many organizations are now adapting automation testing to run smoke, and regression tests for their desktop, web, and mobile applications. To make your test automation code reusable, maintainable and stable and then building an test automation framework would be the need of the hour.
When we think of automation, we invariably invest time, effort and money. One should be diligent enough while designing automation test framework, since any presumptuous decision will have serious repercussion in terms of escalated costs, lost time, and inferior product quality. Hence the automation framework should be carefully designed so as to incorporate libraries, test data and existing open source tools to facilitate high code reusability, maintainability and stability to perform seamless execution and to provide promising results.
Following are the some of the benefits of a robust automation testing framework
The entire team is aware of developing and maintaining the code base as per the set standards since the code is organized in well-defined packages and is properly structured
We can integrate different components that help the purpose of running the test cases, reporting the results and capturing the logs etc
Enhance the efficiency during design and development of automated test scripts by enabling the reuse of components or code
Reduce the expertise dependency by selecting the test to execute according to test scenarios and dynamically refining the test scope according to the changes.
Creating and maintenance of test cases is easier because test scripts for different modules can be reused.
Test scripts can be written independent of the software under test (SUT).
Framework can be reused for any similar projects internally within teams.
Node ModulesInstalling node.js in your computer should be the starting point, because all other packages such as appium , appium-doctor can be installed through the npm install
Appium ServerAppium server is available in node modules, we can install this by executing the below command
Build ToolBuild tool helps us to build the code and then to execute it. Build tool helps us to manage the required dependencies needed for our project such as TestNG, Appium client, Selenium etc.
Few widely used build tools available in the market are – Maven, Gradle, & Ant. We can choose any one of them based on the project need, budget, and it’s completely left to the team’s discretion.
Selenium WebdriverAs discussed above, Appium uses selenium to communicate effectively with browsers that run on mobile devices, hence we need to have selenium jar files loaded into our project.
Test runnerIt is good to have test runners such as J-unit, N-unit, testing etc. in our projects. TestNG is widely used in test automation as it has several annotations to help us run tests in sequence.
JDKJava development kit is a must in order to develop any java application. Hence this should be installed from oracle official site. Appium has java support until Java 12.
Android SDKAndroid SDK is generally used to develop android applications, but from the test automation perspective we needn’t possess thorough knowledge on android studio. With these tools we can actually connect mobile device to the computer and understand several properties of it.
UI Automator2This tool is used to set the capabilities of the mobile device under test, therefore the device can be connected and the UI of it can be accessed. Using this, we can connect both the emulator and the real device. We can capture the application elements (locators) with the help of this tool.
Extent reportsExtent reports are used to report the test results in a more meaningful format. We can include the jar files into our project by adding these dependencies to our pom.xml file
VCS systemVersion controlling systems should go hand in hand with any software development or software test automation projects. VCS systems will greatly help the team in maintaining the new revision of code by including every change to the code base. With the help of this tool we can achieve backtracking, if needed it can also be integrated with CI/CD pipelines.
CI/CD systemModern practices adapt the CI/ CD pipeline in order to execute the tests automatically without any manual intervention. Jenkins, Teamcity, Azure DevOps are some good examples of build automation to achieve CI/ CD practice.
Framework ArchitectureSo far in this discourse, we have learnt the components that will complement and make Appium framework more versatile. We will see how to organize the code base in the rest of the article, this will in turn be considered as a best practice.
Folder StructureWhen any maven project is created, we get the below project template. Hence we need to ensure that we define proper guidelines to maintain the code base. Since it is a test automation project, it is okay to keep all the required java class files under src/test/java folder.
It is highly recommended to create a sub package for the wrapper functionalities and for the test cases as shown in the below snap, so that we can have a clean differentiation of test cases the build and associated functions.
All the driver exe files such as Android driver, IOS driver and windows drivers to be maintained in the driver folder, so that the team can have a common understanding of where those files reside and it would be easy for the script developers to update them when needed.
It is good to keep the test data to be maintained in CSV, excel in a separate folder called test data, so that the developers will make use of those and update it when required. For reports when the test case is executed, TestNG will create a test-output folder. We can see the TestNG html results files in there.
Design patternsDespite the project being a test automation project, design patterns must be adopted to make sure that the framework is more reusable which in turn reduce the maintenance effort. Below are some useful techniques to achieve the same.
POM ImplementationPage object model is one of the design techniques to separate the application page code from the test case code. This will avoid doing re-work when there are any changes done on the application screens.
POM class file will have page factory method implementation. Generally we will define each page as separate java class. We also find the needed locators that are associated to the particular page with the help of @findBy annotation.
Sample POM class file below:
Dependency injectionThis technique is used to pass the values between the class file without having them coupled. The dependent object receives the object value from the class object that it depends on. This can be helpful when we integrate Cucumber (BDD) with our Appium test. Since the hooks class can’t be extended by any other class, we use this concept to have the driver object shared to any step definition class that is available within the project.
Retry LogicWhile running Appium test cases we tend to observe a lot of events, a test can possibly be failed, skipped and ignored. We can have a test that is failed to run again. testNG listeners are greatly helpful to achieve this. We can try writing a logic to re-run the test case under the method (On test failure), we can also take a snapshot of the failed test cases for future reference.
Use of Property FilesWe give a lot of inputs to our Appium test cases such as platform, device name, device OS, UDID, app package name, app activity, path of the apk/.ipa file.. etc. Instead of providing the details directly in the test case, it is always good to fetch these information from a property file . This helps all the tests to use the same details when we are running the test cases against a particular device/ phone. Whenever we need some change, we can change the value in that particular file.
public static void main(String[] args) throws MalformedURLException {
// Step01:- Set Desired Capabilities
DesiredCapabilities dc = new DesiredCapabilities();
dc.setCapability("appPackage", "com.android.dialer");
dc.setCapability("appActivity", "com.oneplus.contacts.activities.OPDialtactsActivity");
dc.setCapability("deviceName", "OnePlus 7T Pro");
dc.setCapability("platformName", "Android");
dc.setCapability("automationName", "UiAutomator2");
dc.setCapability("noReset", true);
// Step02:- Create the driver and hit the appium server
AndroidDriver<WebElement> driver = new AndroidDriver<WebElement>(new URL("http://0.0.0.0:4723/wd/hub"), dc);
From the above sample code we infer that we can store all the values of the capabilities in a property file and can use them. Whenever we want to execute the tests against another device we can change the values in the property file so that the tests will target the new device/phone which is specified in the property file.
Test runner annotations usage for sequential and timely executionIn order to run Appium test cases, we need the Appium server up and running, test code should be loaded and the driver object should be loaded with all desired capabilities. After the successful execution, and after getting the final report, we need to close the server.
Hence we would recommend to use the TestNG annotations wisely.
Eg:
@BeforeSuite- start the apium server in here
@BeforeSuite- configure the driver (Android driver/ IOS driver)
@Before method – open tha app/ browser
@Test- run the actual test scenario
@AfterMethod- close the app or browser
@ AfterSuite – close the server.
Thank you very much for sparing your valuable time in reading this blog article, we hope you find this Appium tutorial insightful and discerning, We conclude this with much contentment and with great hope that this blog article will help an individual to understand how to design a good framework for a mobile test automation using Appium.
by admin | Mar 8, 2020 | Mobile App Testing, Fixed, Blog |
Mobiles these days have become mandatory given the capabilities that it has and the virtue of the fact that it diversifies to provide service to the customers in more areas. Since it plays a significant role in human life in the current era, releasing the mobile with high-end features and with no possible bugs or as a minimum number of bugs as possible is essential.
There are plethoras of mobiles and the market has cut-throat competition, so in order to catch the nerve of the target market, we should always ensure that we hit the market at right time also with right and new set of futures. Whilst we focus on delivery, it’s equally important to offer the best qualitative features.
In order to ensure we deliver the feature with lots of quality we need to adopt best testing practices. Below are the certain types of testing techniques that are to be considered for testing to go market with enough confidence.
Before we move on to the actual test techniques we apply, let’s understand the testing objectives when we say mobile testing we need to view this in two angles, let’s see each one of them.
Mobile Device Testing
The main purpose of this test is to ensure the mobile as a device is fully functional in terms of both software and hardware perspective. Also the compatibility of the software with respect to the electronic component system. During this test we will end up finding more bugs related memory leaks, crashes due to hardware and any shutdown issues that will lead to the maintenance or replacements. Any compromise in quality in this area would lead to a great business impact as well as the reputation loss.
The main types of testing conduct here are
System Reliability Test
The purpose of the system to confirm the stability of the mobile device, it varies with load and performance testing by a large far. In this test, we mainly test based on customer usage then track the shutdown rate of the device. This test is being run as long as we reach or come down the agreed % of the problem rate that is defined at the test start. This will give us confidence while launch, also the testing is being done as per customer usage policy there is a high chance for finding bugs.
<
Mobile Application Testing
During this test the motivation is in such a way that, the application that is designed and set to be working with mobile platforms must be fully functional also needs to satisfy the end-user needs in all perspectives. Some common things that we look for while testing are
1) How is the application works when it is used in a mobile phone?
2) Can it be installed and uninstalled easily?
3) The response time of the application under desired conditions?
4) The compatibility of the application with various mobile operating systems and hardware?
The mobile applications are further classified into 3 different types
Native Application
Any application that is specific to an operating system is called a native application. These applications will not support other operating systems. Due to this reason, these are comparatively faster than other apps.
Eg: iTunes, specific to IOS and will not work on android platform and vice versa.
Web Application
These applications are generally hosted in web servers and operate on mobile browsers. The application will render the web pages to service the user. Since the applications are hosted on webservers these are comparatively slower than native apps.
Hybrid Application
Hybrid apps are mixed apps, they belong to both the native and web apps that we have discussed to provide the extended support to the user community.
Eg: Twitter, Facebook, yahoo.
Basis the understanding of the above types of applications we should identify the types of testing that are needed.
Usability Testing
The purpose of this test is to evaluate how friendly the application or the device for use, the operation must be very easy so that users at all levels of expertise should be able to use the product without any hassles. Things to be considered in order to gain more customer confidence
Documentation
There should be clear documentation about the operational approach and it should be quite understandable. Self-Explanatory documentation will help customer to sort out any difficulties on them own by going through the guide.
Response time
Customer will never encourage delay, this is one of the key parameter basis in which the usability of the device is rated. Less the response time, more the user convenience
Feedback notifications
A good feedback/ notification system will help deem the product more customer-friendly. Clearer the response message more the
There are certain parameters which will actually decide the usability of a product
User-friendly operation
Response time
Compatibility testing
The main objective of this test to check the application is compatible with various operating systems, browsers and different devices. This being categorized as a non-functional testing technique.
Localization testing
The main purpose of this test is to ensure the application supports quite a few regional languages. This is a key feature as there are consumers from different regions who expects the mobile display fonts and keypad to be in their native language. Since the usage is fair in the society proper testing must be in place to ensure there are no underlying bugs during the language transition. And the process of switching between them should be hassle-free
Load and performance testing
CAs the name indicates, this testing is to subject the application to critical conditions and test how the device or application performance is.
How the device reacts when multiple apps are opened simultaneously
How the battery charge is being consumed by the different applications
How reliable the network performance under various conditions
Security testing
As we learned the importance of privacy from many incidents, it’s very much needed to be compliant with all the security policies to make sure the customer data is treated with utmost care and not used, manipulated and exposed to outer world. Having failed in this means can lead to a great loss of business and trust.
Keep the customer updated on the software maintenance information, using security pins and proper encryption and decryption techniques during data transmission should be adopted.
Installation testing
This test is to verify the scenario of installation and uninstallation. This is also to ensure how user-friendly the process is? Also to ensure the process of installation or upgrade is not crashing the system and user data is not affected.
Functional Testing
In this testing the whole functionality of the device is tested such as the app flow and screen sequence and complete working end to end functionality. Below are a few illustrations of functional testing
Check whether or not the login happens properly
Able to install and un-install the application
Application responds properly, all the buttons are working and response is received.
Automation testing
In this testing the functional validation is done through the script in order to ensure we don’t spend much time in regression execution. We have the best tools and frameworks available to conduct this test.
Tools for mobile automation
1) TestComplete
2) Kobiton
3) Calabash
4) Appium
5) Monkey Talk
6) EarlGrey
7) Testdroid
8) Appium Studio
Conclusion
Mobile application testing with the use of the above techniques is key, given the usage of the mobile apps in this era. Keeping the process and technical facts aside the intention is to deliver an application that is user-friendly and quite responsive. The motivation while testing the application should be set up in a way that the above-mentioned qualities are served to the best. The mobile application is an area for investment where unexpected returns and reputation can be gained. So more we test by getting into the user’s shoe more the benefit that it adds.
Thanks for the read.
by admin | Mar 30, 2020 | Mobile App Testing, Fixed, Blog |
When testing mobile application, below are the important points to consider:
Re-usability:
When there is a web development and Mobile App development with the same functionalities to be built, tools that support both the mobile application and Web App Development should be considered which will increase the re-usability in building the solution and the same should be applicable for testing as well.
Maintainability:
Code integration with the usage of tools like Git / SVN along with quality control validation using tools like SonarQube will increase the chance of high maintainable code. This also helps in performing CI / CD / CT execution and helps in early defect detection.
Performance / Scalability:
When testing mobile apps, an important factor is performance and scalability. Current industry expectation is any user who browses content through mobile phone should have the same performance as it is with desktop/laptop, without any compromise on quality.
There are common issues encountered when using Mobile phones
- Application behaves differently on various platforms and handsets
- High memory and CPU consumption
- Mobile application too slow to load
- Application causing battery drain out
Because of the above issues, performance testing for mobile Application is inevitable
Offline sync:
Below are the reasons why Offline mode is preferred by users and it needs extensive testing
- These apps constantly work without delays.
- They want to keep working without an internet connection.
- Apps with offline mode load quickly.
- Offline apps hardly drain a phone’s battery.
Many mobile users do not stick to a mobile app if there is no Offline support since when the network connection is poor, the app does not load and it leads to poor User experience.
Security:
- Mobile App to be tested with multiple mobile devices across multiple platforms over diverse networks
- Identifying spyware, viruses, Trojans, data privacy, data leakage, unsolicited network connections, etc.
- Validate whether it meets standards like Mobile Application Security Verification Standard
Messaging:
There are various messaging Applications like SMS, MMS, Cell Broadcast SMS, WAP-Push, etc and each messaging system has different parameters to be considered for testing. The architecture of each of the messaging systems is different and the design aspect is different. While testing the messaging system we need to consider all these different parameters and apply testing principles to test them.
Social Integration:
- Most of the mobile app is integrated with Social media platforms like Facebook, Instagram, etc
- Testing these social media touchpoints are mandatory and their interfaces to be tested thoroughly
- This integration when it is seamless there is a high probability of the user to stick on to this Mobile app and it is inevitable
- It also increases the chance of increased exposure and popularity increases
- Since data science and ML is the current trend and most of the users are sticking to their smartphone it has a high probability to access the user preference and it helps in data analytics and helps in revenue generation
Service Testing:
Most of the mobile apps use services as their communication layer to help in faster data transmission and helps in achieving better User Experience. The testing service layer is essential and most of the time, performance testing for the service layer is also recommended. Jmeter is the most popular tool for Performance testing for API layer.
Browser / Web Testing
Like how web testing is done, similarly, web testing is carried out for Mobile devices as well. There are multiple ways to do Web testing, easy way without Mobile is to use mobile emulator options that come as a part of the browser extension.
by admin | Jan 24, 2020 | Mobile App Testing, Fixed, Blog |
Mobile app testing is binary; you either win or lose because there is no middle ground. Technology has boosted the use of smartphones, and this has made mobile testing services relevant to the success of such businesses. As the most common standard for communication worldwide, it drives personal and professional interactions alike. Its development should cover end-user expectations and business objectives through an efficient mobile app testing strategy.
Mobile App Testing Challenges:
- Mobile apps are used on multiple devices, platforms, and operating systems, and fragmentation can be a problem.
- Waning budgets and shorter deadlines, force decision-makers to choose between in-house or outsource options for testing
- Businesses don’t have access to best practices, guidelines, and industry standards.
A valid mobile app testing strategy consists of seven key factors to ensure your QA activities align with your business goals and end-user expectations.
Mobile device selection is based on gadget model, OS version, screen resolution, platforms, memory size, connectivity options, etc. Companies also debate whether emulators or physical mobile devices should be used during the initial stages of development.
Emulators give you a chance to test your app for factors such as network density and type. It also checks how your app behaves on specific devices and how end-users interact with it. This real-world testing environment is impossible to recreate inside a test lab.
Cloud-based mobile app testing simplifies the management of indefinite use-case scenario combinations. It reduces defects, project costs, and time to market while increasing ROI and scalability.
Mobile apps are majorly affected by network connectivity, as smartphones depend on it to work correctly. Simulation tools can help test your mobile apps to check speed, bandwidth issues, and connection failures.
Automation is necessary to ensure successful regression testing during the initial development stages. Still, it requires a substantial amount of initial investment, unlike manual
testing, since they are both essential to make the process bug-free.
Your mobile app performance testing should check the load and stress verification of your app by including scenarios for scalability issues. End-user generated data can grow to enormous proportions over your app’s lifetime, and if your app has a server-side component,
test it for an increasing volume of users as well.
Security testing and constantly checking data privacy isn’t optional because end-users are weary about their data/credentials getting exposed due to vulnerabilities in your app.
Your app should encrypt usernames and passwords when authenticating an end-user over any network and test security-related issues by routing your mobile data through a proxy server.
A smooth mobile app testing is just a part of your success, and the mere existence of a strategy will help you execute your testing efficiently. In-house teams often suffer consequences because they lack QA tools and knowledge. You can create a cost-effective and timely result by hiring an efficient outsourced QA team.
Outsourcing can provide you with access to a pool of qualified professionals, specialized tools/resources, giving you time to focus on core activities, marketing campaigns, and customer services. It reduces overall project costs, so put your trust in Codoid, a mobile app testing company .
by admin | Feb 6, 2020 | Mobile App Testing, Fixed, Blog |
Mobile testing when done in a proper manner can save time, money, and reputation. It is necessary to define the right testing criteria and more importantly, one should decide whether your tests have both test and risk coverage. It doesn’t make sense if one focuses on the number of tests without considering the importance of the functionality or the feature being tested.
In other words, if you don’t taste the food before serving it then there will be a risk that the quality is not up to your standards. One thing we must agree is – App aren’t websites, the experience of mobile app interfaces, patterns, usage, trends is completely different from the website. Most apps integrate with many interfaces to facilitate the users to perform quick transactions and fulfill their needs on the go. So while testing the mobile application, we should consider the following pointers:
- The essential components of the app to be tested.
- Mobile usability/ trend testing – One should understand and test how this app will be used for now and in the future.
You can refer to a lot of discussions about functional testing from the web, specific to the functionality of the app irrespective of platform ie., mobile or web. We would love to share a lot about how one can test the other aspects of mobile testing, it might look simple for the readers/ hands-on testers and many would abandon these types of testing without knowing the risk of app abandonment by the users if the below factors are not given importance while testing a mobile app.
Real-time data testing
In the mobile era, it is much more important to consider real-time data testing. One should monitor and observe how your mobile app will perform when it is connected to different devices with various sensors like RFID, BlueTooth, NFC, etc which collects data from external hardware to your app. Many of the sensitive healthcare apps process this data to treat the patients based on the report. Another best example is the fitness tracking app if a user has a specific time VS distance goal and the app can’t serve that information correctly when it doesn’t measure the actual distance covered by the user.
Interoperability testing
It is common nowadays that our mobile devices are connected to other wearable gadgets and routine devices which we use like the infotainment system of your car, smart watches, Bluetooth headphones, smart TV etc. These gadgets would connect to each other through a common medium like BlueTooth, WiFi etc. and exchange data among themselves. Testing those gadgets which exchange data has to be tracked and monitor data back and forth without causing operational issues, losing data, or losing the functionality itself.
Push Notifications:
People don’t like when they get notified frequently or too often. One should be careful when notifying the users, many testers don’t consider this feature and won’t subject their app to test the push notifications under different scenarios as shown below.
- Verifying the notification when the app is running in the backdrop
- Verify the notification when the user is not Signed in.
- Verifying the notification stack – repeated notification multiple times and check notification is in the order.
- Verify when the notification comes & device is locked.
- Verify when the notification comes when the app runs background.
- Verify notifications are polling correctly.
- Verify notification received on multiple time zones etc.
If the user finds that the push notifications are not working properly and annoying then the chances of getting bad reviews would be high.
Permissions testing
Permissions testing is also an important one. Hardware components (e.g. a camera for video conferencing, screen recording) can be fussy, but they are also the crucial part of the app experience. It’s important for users to disable/ enable a permission. For example, it requires various permissions for some mobile recorder app to work on your device, most banking wallet apps won’t work if you have installed screen sharing apps in your mobile. Some bank apps won’t allow you to take screenshots when the app is up and running. You need to educate your clients on permissions to ensure the security and privacy of the user data.
Battery and RAM utilisation
Users prefer to have their phone running at its top speed. Nowadays mobile users are too smart by checking the app’s performance by monitoring the RAM utilisation and battery consumption. Especially for apps which use complex visual scenes and intense rendering, the testers should periodically check for the RAM utilised and the app should run without any delays.
Conclusion
As with everything in the world of testing, things will continue to emerge and evolve. Staying on top of these areas of testing will become even more important. It is usually good to consider other factors of testing apart from functional testing. Contact Codoid for more information and we are happy to help you to provide best practices in mobile apps testing in all aspects. Happy testing!