Those of you who are new to application development might be confused what does web service means & why it’s important in today’s time. When I started working, I too use to ponder what is it. Name appears to be cool & yes web service technology is really cool. Let’s understand it.
Web service Introduction
When we develop application aka software than one of the important characteristic which it should posses is robustness. We cannot store all the data in the application itself. You might say why not connect the application with database directly but this reduces robustness & have security risk. Web service becomes a layer between the applications. It becomes a mechanism to transfer data over Internet easily between the systems/devices. For example, lets take an example of flipkart (e-commerce website). It has website, mobile app as channel to sell the products. So, their development team is going to write API which can be re-used on both website as well as on mobile device. This reduces efforts, increases robustness. API will fetch the data for product name, details, price, Inventory etc so if in future they want to try different channel say B2B than existing API’s can be used to build B2B system easily.
There are 2 types of web services commonly used:
RESTful aka JSON (Java script object notification) is used majorly as it’s light-weight & easier to implement as compared to SOAP. SOAP (simple object access protocol) is used in legacy systems, applications which require lot of security etc. I hope this small article was able to convene the concept of web services because if you understand the concept that it becomes easier to understand further in detail.
With the Advent of smartphones, We are now moving from Desktop to Smartphones. Since these smartphones are coming with lots of features in terms of computational power & Memory that more and more applications are being written for it specifically. It has opened new channel for businesses to provide their services to there customer directly & also to reach out to their potential customers too. This had led to lots of companies be it startups as well as big MNC to hire people for mobile application development & testing. Be an QA professional so I will be covering areas which should be tested for mobile Apps. These points are applicable to developers too which will help them to cover these areas during development itself which will reduce sprint cycle & enhance product quality.
- Installation Testing: All mobile applications should go through Installation testing. This means for an android device, .apk file should install on all the android devices irrespective of device vendors , OS supported versions without any issues.
- Usability Testing: When user opens the device for first time than he/she should be shown help overview on screen which tells basic functionality of each button from usability point of view. App should be easy to use & operate for end user.
- Multitasking: Moving application into background & bringing it back should neither make App unresponsive nor it should crash.
- If App supports both Landscape & portrait mode than all the screens present in the App should be tested in both the mode.
- Services Testing: If app requires Internet to work than it must be tested on all networks like 2g, 3g, 4g & wifi.
- Regulation Testing: If it’s android app than it should be tested against Google playstore guidelines. Same is the case with iOS app which should be tested with respect to Apple’s Guidelines.
- Validation & Verification: All input fields within the App should be tested for valid values accepted & maximum input value accepted. For e.g. username input box cannot accept username size more than 30 characters.
- API Testing: All Data from web services should be rendered properly without distorting UI or text over writing.
- Multiple tapping at different location at the same time should not crash the app.
- Upgradation Testing: With New OS version being launched frequently so up gradation testing is a must as there are chances that some functionality may or may not work.
- UI Testing: UI need to be tested for supported screen sizes as it’s very common for UI distorting on certain screen resolution.
- Mobile Performance Testing: Mobile App Performance testing needs to be carried out to find bottlenecks & optimise it.
- Push Notification Testing: If app supports Push Notifications than it has to be tested with all types of network. Also, if push notifications are sent based on user account than user should not receive push notification if he/she has not logged into the App.
- Storage Testing: Sometime we store user data within the app than it should be tested data is stored securely & also if we upgrade the app with new version of app than user data should remain intact. There should be no loss of data whatsoever.
If there are UI or performance or functional issues in the app than user will eventually remove the app & move to another app which will result in low conversion rate.
I tried to cover mobile application testing on high level & I hope, you enjoyed reading it. Please feel free to share your valuable feedback if any.