AlignMinds Technologies logo

Ensuring Quality in Mobile Apps – Key Considerations

We are living in a world where mobile phones have become a part of our lives.

Mobile phones, nowadays are not only used for calling but are used for many activities as well. Ordering food, shopping of products using platforms such as Amazon, booking tickets for various activities such as travel, watching movies etc. are made easier by the introduction of mobile apps.

Courtesy: Statista.com

Moreover, surveys show that the usage of mobile phones is increasing over time. This has led to the development of mobile apps in many genres. Every business is considering turning into developing quality mobile apps after evaluating the huge usage of mobile phones. But only a few mobile app development companies are investing time and money to develop a quality mobile app.

If you ensure a high mobile app quality then you can witness the steady growth of your business. Users of your app will admire your venture for keeping up the quality standards.

Users do not compromise on the performance of a mobile app. If the mobile app did not work as intended, users will uninstall it and give it a lower rating in the app stores. This will have a negative impact on your business.

Let’s see what are the negative aspects of a mobile app that makes a user remove it from their mobile phone.

8 things users hate the most about low quality mobile apps

Here are some aspects that reduce a mobile app’s quality.

  • Customers hate it when mobile apps crash while using it.
  • Freezing is another aspect that reduces the quality of a mobile app.
  • Users uninstall apps that are slow to respond.
  • High battery usage and too many ads are not appreciated by the users.
  • Some users try to free up their internal storage by moving mobile apps to external storage. Inability to move an app to external storage also declines the overall mobile app quality.
  • Not responding to feedback is another problem that a user hates.
  • If the user experience is not up to the mark, he/she will uninstall it from their mobile phone.
  • Users don’t like it when a mobile app is asking for unnecessary permissions.

To ensure mobile app quality, the mobile app development company or developers face many challenges throughout the development cycle of an app.

Following a mobile app QA checklist is an important factor which determines the overall quality of an app.

But, what is QA?

QA and ensuring mobile app quality

Throughout the app development cycle, QA is the most important factor that determines the popularity of the app among users.

QA means quality assurance. QA is the systematic monitoring and a way to check and prevent any errors or defects while developing a product. Ensuring QA in every stage of development helps in delivering a product that meets customer expectations.

Your company should plan a mobile app QA checklist and should work accordingly to meet the goals. Ensuring QA during every stage of app development helps in avoiding issues such as crashing or freezing of the mobile app. This will help in gaining positive feedback from customers.

There are about six stages of mobile app development. Every stage should have its own mobile app QA checklist. This will ensure an excellent mobile app quality.

1. Ensure mobile app quality during product conceptualization

Maintaining mobile app QA checklist at the very first stage of development helps in delivering a perfect app to the user.

Product conceptualization is the initial stage of app development. It is the stage where your ideas and concepts about the mobile app are envisioned.

The requirements and the design features of the product are drafted in this stage. This stage of development helps you to get a better understanding of the possibilities of your product.

Understanding the priorities of the user helps in ensuring mobile app quality from start to end of the development cycle. Market research based on customer needs helps to identify the demand for a particular product, in this case- the mobile app. Planning app specifications based on this evaluation will help you efficiently in the development process.

Involving employees, who are also customers during product conceptualization helps you in accessing more ideas. Verifying practicability of the suggestions put forward is also a necessary part of ensuring mobile app quality. Documenting these suggestions helps to make the necessary changes during the development cycle.

Take into account the calculations based on the future course of your business while planning a mobile app. In the future, your business might venture into new fields. There is no need to develop another app if you have a mobile app that can cater to the needs of the near future.

Users will not tolerate any performance or quality issues in a mobile app. Hardware and OS (Operating System) also determines the mobile app quality. So while product conceptualization, consider these two factors. A best quality mobile app will exceed the expectations of the user and also should work in every condition.

Planning based on the user requirements and interactive features of the app is another important aspect that ensures mobile app quality during product conceptualization.

A mobile app should have all the functions that a customer needs. Users look into many aspects while downloading a mobile app. Some of this includes seamless login and registration, user-friendly interface and design, engaging content etc.

Choosing a platform, which is the most preferred by users, is also important. There are three types of platforms in which mobile apps are developed. They are web-based apps, Native apps and hybrid apps.

A web-based mobile app is easy to develop and is directly linked to the website of the firm. All the functions of the website are accessible using the mobile app. Native apps are exclusively developed for a single platform (Android or iOS etc.). A Hybrid app is an app which is the blend of the two types discussed above.

The design of an app is also a part of measuring mobile app quality. There are certain aspects that help in building an app with a striking design.

2. Ensure mobile app quality during the design stage

Apps help to simplify your business and tasks. A good app with a brilliant design catches the eyes and mind of the users.

Attractive app design is an indicator of mobile app quality. There are about four steps in the design stage of an app.

2.1 Wireframing

Wireframing design is the first step in creating design layouts.

Digital sketches of designs are called wireframing. Wireframing provides a clear outline of the styling, colour, graphics etc. that will be used in the app. Creating device-specific designs during wireframing will help in providing a better user experience.

2.2. Style guide

Style guides provide a set of guidelines which is useful while designing the content.

A style guide is used as a reference manual that helps in achieving an overall consistency of the mobile app. Style guide documents the font style, colour scheme etc. which is based on the interests of the firm.

2.3. Mockups

The design is rendered using style guides and wireframes.

This visual layout is called mockups or high-fidelity designs. This high-fidelity design resembles the final product. It is a computer-based interactive representation.

2.4. Prototypes

Prototypes help in testing the functionality and design features of the app.

A Prototype is used to demonstrate how an app works. It simulates real-time user experience. App prototyping shows the basic functions and design of an app.

Different mobile app platforms have different design guidelines. Android and Apple recommend some design guidelines that will help in ensuring the mobile app quality.

2.5. Android app: design guidelines

Android uses a design system called Material Design which is based on print design methods. Some of the design guidelines put forward by Android includes the following:

  • Organize the content using cards, lists and sheets
  • Notify users with the help of snack bars, banners and dialogues
  • Usage of a floating action button to perform tasks
  • Android also has an organized system to apply colour to promote consistency and accessible contrast.
  • Material Design provides 13 types of typography which include headlines, captions and body text.

For more information on Android app design guidelines, please visit the official page.

2.6. iOS app: design guidelines

For apps designed for iOS, Apple recommends the following to enhance your mobile app quality.

  • Use legible text at every size with precise and bright icons
  • Highlight content using suitable graphics, colour, fonts etc.
  • Keep the interface design light and casual with minimal use of drop shadows and gradients
  • Use distinct visual layers.
  • Use of transitions provides the users with a sense of depth while navigating through the content.

For more details on the same, please visit the official page of Apple.

The design stage of the app is followed by the development stage.

3. Ensure mobile app quality during the development stage

A properly planned and documented development stages of the application ensures overall mobile app quality.

In the development stage of a mobile app, the developer writes the codes. These codes are then tested by another team that looks into errors in the code. By continuous testing, the team makes the code bug free.

In the development phase, a good level of attention is necessary to develop a bug-free app. A prototype of the app built by the developer and proper documentation sees to it that nothing misses out during actual development

Planning and maintaining a “mobile app quality assurance checklist” from the very beginning of the development cycle is a very important aspect of this phase. It helps in checking mobile app quality during every phase of development.

In the development phase, a good level of attention is necessary to develop a bug-free app. A prototype of the app built by the developer and proper documentation sees to it that nothing misses out during actual development.

There are three important parts of mobile app development. This includes the following:

  • Back-end or server technology: Back-end is a process which involves writing codes for an app to operate. The end-user does not directly interact with the back-end features. There are three types of back-end technology – cloud server, custom server and Mobile Backend as a Service (MBaaS).
  • Application Programming Interface (API): API helps the app to communicate with the back end. APIs are used to increase the user experience and also help the users to interact with other applications.
  • Mobile app front-end: Front end is the user interface part where the customers see and interact with the app. It is also called client-side development.

A simple and easy to use app helps in building up the reputation of the company. Issues such as security breach, crashing, slow processes, failing transactions during purchase will decrease your reputation in the eyes of the users. You will eventually incur a loss in your business as a result of a low-quality app.

If there are any such issues mentioned above in the app, this will lead to high remediation costs and also increases maintenance and marketing costs.The development team should follow popular coding guidelines and can thus avoid committing any such faults.

A good level of attention given to every detail during testing can help in fixing errors easily and early. Avoiding bugs from the early stage of development can help in reducing the cost of bug fixing, patching and updates.

Apps use data such as images and videos commonly. To increase the performance of the apps, the development team can reduce the size of this data by compressing it without compromising on the mobile app quality.

Reducing the load time of the app by pre-fetching data is also a good measure to ensure mobile app quality. Load the data as per the need of the user. Breaking down the content and pre-fetching them helps in reducing the data loading time.

Today, the mobile phone makers use different methods such as sensors, gestures, voice etc. to provide the best user experience. The app development team can use these to the advantage of their app by providing certain features which other apps of the same genre lack.

The next stage involves continuous testing for fixing the mistakes in the app. There are many types of tests that help in enhancing mobile app quality.

4. Ensure mobile app quality while testing

Fixing bugs through frequent testing ensures a higher mobile app quality.

Documenting every test will help in maintaining an overall consistency in mobile app quality. Another factor that helps with ensuring mobile app quality is high accuracy test results. Using real devices will help in achieving high accuracy during testing.

Different platforms use different types of testing to maximise mobile app quality. So the testing team should choose the suitable tools for testing in different devices working on different operating systems. As updates are rolled out for various operating systems every year, test the app on different versions to reduce compatibility issues.

Testing an app on various screen resolutions and rectifying the errors help in improving the performance of the app. Consider the geo-location and carrier while testing the app to reduce crashes as some apps are available only through particular carriers in some locations.

Tests done on the basis of confidentiality, authentication, authorization, storage and web services will ensure the development of good quality apps. Tests should ensure that proper encryption protocols are followed by the app to secure the privacy of the user. Before giving data access to a third-party application, the app should communicate it with the user.

Tests should also ensure that proper encryption protocols are followed when data is stored locally on the phone.

Making and receiving calls- this is the main function of mobile phones. Apps should not interfere with the connectivity and performance of mobile phones.

There are three methods of testing an app which includes:

  • Manual
  • Automated
  • Cloud-based

4.1. Manual testing

Manual QA testing is done with the help of a qualified tester without the usage of any automated tools.

Manual testing consumes time and money as it is done by professional analysts and testers. As the end-user is a human, manual testing helps in determining how the customer uses the final product.

4.2. Automated testing

Automated tests are done with the help of automated tools and without human assistance.

In this method of testing, a test script is generated based on the targeted platform. It saves time as it is faster than manual testing. It also saves money as fewer manual tasks are required in automated testing.

4.3. Cloud-based testing

Cloud-based tests are based on cloud-based technologies.

While using this method of testing, the testers get access to a wide variety of devices through the internet. The testers can test the app simultaneously in different platforms, thus saving a lot of time. But, the chance of data breach is higher while using this type of testing.

There are various types of tests conducted to ensure maximum mobile app quality.

4.4. Mobile app QA checklist: Different testing types

Proper testing makes a mobile app perfect. Security, compatibility and usability are given prime importance while testing a mobile app.

Testing done on real devices helps in getting a more accurate result than using an emulator.

There are various types of tests done to ensure quality before the deployment of the app.

  • Smoke testing: Smoke testing is also known as ‘build verification testing’. It is one of the tests done to verify if the app is stable and to look into the working of the key functionalities of the app.
  • Cross-platform testing: Cross-platform testing helps to know how your app functions in multiple platforms. It looks into the consistency, user experience, performance issues etc.in different environments.
  • Functional testing: This test helps to know if the app is functioning as intended.
  • User interface testing: It is a test used to detect faults in the graphical user interface of the app. The user interacts with the app through this interface.
  • Accessibility testing: It is a test which gives an insight into how a person with disabilities such as poor vision and hearing can use or access the features of the app.
  • Performance testing: The test helps to know how the app performs under various workloads and looks into battery consumption, network performance, memory usage etc. There are different types of performance testing. This includes load testing, stress testing, endurance testing etc.
  • Usability testing: Usability testing ensures better customer comfort. Usability testing is usually done with the help of people who closely resemble the targeted users. This test helps in receiving real feedback before the launch of the app.
  • User experience testing: The test helps in improving user satisfaction. User experience testing helps to know how the app interacts with the user. The test also ensures that the original design and specs are also maintained after the development of the app.
  • Security testing: This test helps to identify the vulnerabilities of the app. The most important tests under this category include vulnerability tests and penetration tests. Stick to global level security standards while testing app security. High security of the app provides a good reputation for the company and ensures an overall mobile app quality.
  • Compatibility testing: A test to ensure that the app functions smoothly in a variety of devices, platforms, screen orientations etc.
  • Beta testing: Beta testing helps in getting feedback from a real user.

There are also tests that help in knowing the reliability, content localization, Wi-Fi and GPS integration etc. Multiple testing approaches and testing on different devices help with improving mobile app quality.

5. Ensure mobile app quality during the deployment stage

Users download their desired app from various application stores such as Google Play and App Store. The policies for deploying apps are different for each store. You should have a good understanding of these submission policies to reduce time and effort during the deployment of the app.

You need to work on creating an End User License Agreement (EULA) to protect your organization, intellectual property etc. and also design an icon for your app before deployment.

The vendor of the app store will review your submission to look if your app is following the guidelines or norms put up by them.

Here are some important points to consider before launching Android and iOS apps.

5.1. Important points to consider before launching an Android app

  • Localizing content: Plan to localize your app according to differences in geography and culture before deployment.
  • Simultaneous release: Plan your release simultaneously on different platforms to ensure a better reception among the users.
  • Follow all mobile app quality guidelines: Offer the best design, features and functions for your users.
  • Design details for Play store listing: Add a description of the app along with videos and screenshots in the app store listing. Also, attach the privacy policy of your app.
  • Plan the in-app products and subscriptions: Add details about in-app products and confirm the countries which can access these products and subscriptions.
  • Promoting the app: You can promote the app using Google Play badge.

For more best practises, please visit the official page of the Android launch checklist.

5.2. Important points to consider before launching an iOS app

Before submitting an iOS app, consider the following:

  • Safety: People should download an app with confidence. The app should not have any offensive or upsetting content. Implementing proper data security is another factor that makes an app safe and thus ensures an overall mobile app quality.
  • Performance: Apple divides this category into five important sections.
    • App completeness: Apple App Store will reject an app which has incomplete app bundles and binaries, the apps that crash or have other technical problems. You should submit a fully developed app with all metadata, fully functional URLs etc.
    • Beta testing: App store does not include trial or beta versions of your app. To beta test, you can use the TestFlight (beta testing app of Apple).
    • Accurate metadata: Metadata provided in descriptions and screenshots of the app should mirror the content of the app.
    • Hardware compatibility: Apple encourages developers to build an app that is equally accessible with iPads as well.
    • Software requirements: Apps should not interfere with volume and power buttons. Such an app will be rejected by the Apple App Store. Apps should not alter features or functionalities of other apps and hardware components.
  • Business: Apps that cheat users with expensive in-app products will be removed by the App Store. Ads should be displayed according to the app’s age rating.
  • Design: Develop designs that are simple, refined and innovative. Update your apps and give more functions to the users.
  • Legal: All legal requirements should be followed according to the location where the app is going to be launched. All apps should include their privacy policy in the App Store metadata.

For more detailed information, consider visiting the official site of Apple.

After you submit the app, there is a review process of Apple to check whether the app has met all the quality standards.

6. Ensure mobile app quality in the post-deployment stage

Mobile app analytics platforms help you to get a glance into the performance of the app.

Updating the app to meet new user requirements will help in increasing the app value. Proper maintenance is another factor that determines mobile app quality post-deployment.

Users will give feedback once they start using the application. Use such feedback to update the app as per the requirements of the users. Take feedback and suggestions into account while planning an update for the app.

Replying to all the queries of users will help in gaining positive feedback. The app developers should watch for operating system updates and should fix compatibility issues by bringing necessary changes to the app.

Users look for mobile apps with high quality while downloading and using an app. In order to give the customers a perfectly built app, you need an expert and experienced team to develop the app for you.

In other words, hiring qualified developers is also an important aspect of ensuring mobile app quality.

You can get in touch with expert mobile app developers through a search on the internet. According to the budget and other requirements, you can choose to hire

Hiring a dedicated development team is the best option if you are looking for cost-cutting strategies without compromising on the mobile app quality.

For startups,hiring a freelance mobile app developer is a good choice. Hire only established freelance mobile app developers rather than freshers for assuring mobile app quality.

Hire a mobile app development company if you do not want to compromise on the mobile app quality and if budget is not a problem.

Make sure that the team you hired that consists of mobile app developers, designers, project managers and QA testers are top-notch in their field of work. Give preferences to the ones who update themselves with the latest trends and technologies.

Hiring a dedicated development team is the best option if you are looking for cost-cutting strategies without compromising on the mobile app quality.

For startups,hiring a freelance mobile app developer is a good choice. Hire only established freelance mobile app developers rather than freshers for assuring mobile app quality.

Hire a mobile app development company if you do not want to compromise on the mobile app quality and if budget is not a problem.

Make sure that the team you hired that consists of mobile app developers, designers, project managers and QA testers are top-notch in their field of work. Give preferences to the ones who update themselves with the latest trends and technologies.

AlignMinds Technologies is an award-winning mobile app development company with a decade of success stories. We offer digital product engineering services that include strategy and design, web and mobile app development, DevOps and cybersecurity. We can help your businesses to get an edge in the competition through innovative solutions. Contact us now!

Testing iOS & Android Applications: Our Thoughts on MonkeyTalk!

Mobile Application Market is gaining so much popularity now. With so many innovations happening in the field of mobile technology, mobile application testing is becoming a very essential part of the Software Development Life Cycle.

Excellent quality and highly efficient application have become a great challenge. To meet this challenge in a fruitful way, thorough and repeated testing of the system is required. Thorough testing can ensure that the application runs smoothly and meets user expectation. Effective test strategy and a combination of manual and automated testing tools are required to ensure a high-quality app.

Automated tests increase effectiveness and productivity and help maximum code coverage. Automated testing is sometimes considered as high cost, but if utilized effectively with balanced manual testing, the end result is overwhelming.

Why Test Automation?

There are many advantages to using Test Automation. It is fast and can be efficiently used for repeated testing. It can quickly find out the defects that occur due to the code changes thus, ensuring stability to the system. Repetition of tests can be effectively achieved using automated testing.

What is MonkeyTalk?

MonkeyTalk is one such automation tool used for efficient functionality testing of iOS and Android mobile applications. It is a cross-platform testing tool that record and playback functional test suites for iOS and Android applications running on real devices, emulators or simulator. Monkey Talk supports both native and hybrid iOS and Android apps.

MonkeyTalk has basically three components:

  • MonkeyTalk IDE – is an Eclipse-based tool that helps in the record, playback, manage, edit test suites for iOS and Android apps.
  • MonkeyTalk Agent – are the libraries that must be included in the mobile application under test. These Agents help the application to record and play MonkeyTalk commands.
  • MonekyTalk Scripts – describe different activities that need to be performed while testing.

Benefits of MonkeyTalk tool

  • A free, Open Source and simple to use tool.
  • Can be used for both iOS and Android applications.
  • Easy to understand and learn.
  • Testers need not be expert programmers to use the tool.
  • Support almost all iOS (iPhone, iPad, iPod etc.) and Android devices, either tethered or over the network.
  • Unlike other automation tools, MonkeyTalk uses Object-based recording. Object-based scripting is more flexible and unbreakable when compared to Image-based scripting.
  • Touch and gesture-based operations are easily captured by this tool. Actions like swipe, drag, move etc. can be efficiently recorded and played back.
  • MonkeyTalk is a cross-platform tool. For logically identical apps, MonkeyTalk commands recorded in one OS can be played in another OS.

Limitations of MonkeyTalk

  • Mobile app under test must be instrumented with MonkeyTalk Agent which means access to source code is required or help from the developer is needed. Also, 3rd party apps (like Camera, Map etc.) cannot be tested as the source code is not available.
  • Currently, it can be used only for iPhone and Android applications testing.

Conclusion

MonkeyTalk is a simple yet tremendously powerful test automation tool for iOS and Android applications.  There are so many exciting things yet to happen in MonkeyTalk world and with all the upcoming features to test desktop apps, flex mobile apps, more reliable tests for game engines of mobile games etc., MonkeyTalk has a great future ahead of it!

– Susan B John

Codeception: Efficient Key to Kill Bugs!

In 1985, Canada’s Therac-25 radiation therapy machine malfunctioned due to software bug and delivered lethal radiation doses to patients, leaving 3 people dead and critically injuring 3 others.

During the first Gulf War, an American Patriot Missile system in Saudi Arabia failed to intercept an incoming Iraqi Scud missile due to a software rounding error in calculation. The missile destroyed an American Army barracks and 28 soldiers dead, 100 injured.

In May of 1996, a software bug caused the bank accounts of 823 customers of a major U.S. bank to be credited with 920 million US dollars.

Do you realize, how Testing is vital?

Do you think, understanding a product and testing the same against functionality, performance, security, GUI and many others is an easy task?

We can implement new & better choices for a product’s quality and security. There are lots of ways to test our product.

The most accepted deal is unit testing. Also, we should need to write functional or acceptance tests as well. For all these Codeception is the right choice! The Codeception testing framework figures out all these levels of testing and it is a multi-featured testing framework for PHP.

Codeception can handle unit, functional, and acceptance testing of web applications.

Major types of Tests

It was evoked in November 2011 and released the first stable version 1.0 in January 2012. Codeception tries to simplify and combine the process of writing tests, plugging different testing suites with the use of modules and it opens the way to anyone to extend and sharpen it. Codeception is testing framework in which all tests are written in a single descriptive manner.

What variety of tests & How?

Major types of Tests covered and its Pros & Cons

Acceptance Test (WebGuy)

Acceptance testing can be performed by a non-technical person. That person can be your tester, manager or even client. It allows us to test our applications using the normal website viewing process i.e.; visit a webpage, fill in a form, and submit the form to see the desired result.

The difference is with Codeception, we don’t have to waste time going to the browser each time we want to test a new feature out, instead, we can just run our acceptance tests to see its passes or not.

Try a sample scenario;

Probably the first test you would want to run would be signing in. In order to write such a test, we still require basic knowledge of PHP and HTML.

This scenario can probably be read by non-technical people. Codeception can even ‘naturalize’ this scenario, converting it into plain English:

It can be done by command:

The Want To section describes your scenario in brief. The $I object is used to write all interactions. The methods of the $I object are taken from the PhpBrowser and Db modules. We assume that all am commands should describe the starting environment. The amOnPage command sets the starting point of a test to the /login page. With the PhpBrowser you can click the links and fill the forms. That will probably be the majority of your actions.

Functional Test (TestGuy)

We can check our application without running it on a server, this is what done on Functional tests. These tests are written in the same way as Acceptance tests with PhpBrowser module enabled. It’s tested by a technically advanced guy i.e., TestGuy. The TestGuy knows how the application works, passes different $_GET, $_POST and $_REQUEST variables to assure the functionality. Codeception can connect to numerous web frameworks Symfony2, Laravel4, Yii2, Zend Framework and others which support functional testing.

We can open a web page with amOnPage command.

We can click links to open web pages of the application.

Functional tests will perform much better if we use powerful frameworks. It allows us to access and manipulate their internal states and this helps our tests shorter and faster. On the other hand, if we do not use frameworks there is no practical reason to write functional tests.

Let’s allow our application tested by this technically advanced guy for better results.

Unit Test (CodeGuy)

“Unit” casually refers to low-level tests and the developer understands how and what is tested here, though some would say a better name is DeveloperTest. The person testing, CodeGuy, knows the internals of the application and tests database operations and anything else that might need proof of concept. Codeception provides some well-built tools to make your unit tests simpler and cleaner. Even inexperienced developers should understand what is tested and how.

We can start with generating a classical PHPUnit test by this command:

We can use another command to create Codeception-powered unit tests.

Both tests will create a new ExampleTest file located in tests/unit directory.

A test created by generate:test command will look like this:

This class has predefined _before and _after methods to start with. We can use them to create a tested object before each test and destroy it afterwards. All Codeception tests are written in a descriptive manner. We can easily catch it from the test body. Its aim is to make tests easy to read, easy to write and easy to debug.

After all, this is how the Codeception works and you should give it a try on yourself.

Go ahead, use Codeception skillfully.

(Reference: codeception.com)

– Jisna Mathew

Mobile is Eating the World: Is Your Mobile App Tested Enough?

“Mobile Is Eating the World “

In November 2013, Benedict Evans, a well-respected and widely followed analyst, said: “Mobile is Eating the World”. He foresaw the new revolution in the business and predicted it most accurately.

Mobile devices have witnessed a phenomenal growth in the past few years and on this Mobile-Era, people use mobile in Work, Gaming, Networking, Business, Education, Shopping and all day-to-day activities.

What about Mobile Apps?

As we all know, Mobile apps are software applications structured to run on Smartphone, Tablets, Computers and other mobile devices.

Every organization needs to ensure that the application meets a high-quality level in all circumstances. I think effective testing will help to achieve this eminent quality bar. Hence excellent testing is essential for addressing the challenges and complexities of a mobile application.

Mobile app testing: Elemental checklist

We’re seeing the current booming stage of Mobile apps; it is necessary to test apps carefully in all possible ways to reach a larger audience. Suppose if you are going to test a mobile app, we need to ensure our business goals, customer expectations and also follow up to the updated industry practices as well. The most important thing while you are testing a mobile app or even the web-based app is to make a checklist and test accordingly.

The major checklist categories are as follows:

Mobile App Checklist Categories

Device-specific checks

  • Installation, Uninstallation, Re-Installation and Updations: Verify whether the application can be installed, uninstalled, re-installed and updated successfully.
  • Verify that buttons/ keys which have no un-defined function & unexpected behaviour on the app when activating.
  • Verify the app behave as designed/desired if the sound on the device is turned off.
  • Verify whether the app behaves as designed/desired if the device is in aeroplane mode?
  • Verify that the app is found in the app store? (Check after go-live)
  • Verify whether the app switches properly to different applications on the device through multitasking.
  • Verify whether all touch screen positions (buttons) working when a screen protector is used.

Network-specific checks

  • Does the app behave according to specification if connected to the internet through Wi-Fi, 3G, and 2G?
  • Verify the behaviour of the application when there is a Network problem.
  • User should get a proper error message like “Network error. Please try after some time”
  • Resource Downloading: Verify whether the app handles the ‘Pause’ & ‘Resume’ to downloads.
  • Does the app resume work when it gets back into network reach from outside reach of the network?
  • Does the app use standard network ports (Mail: 25, 143, 465, 993 or 995 HTTP: 80 or 443 SFTP: 22) to connect to remote services, as some providers block certain ports?

App-specific checks

  • Has the app been tested on a different type of devices and different versions of OS?
  • Integration: Does the app connect correctly to the different social networks (LinkedIn, Twitter, Facebook, etc).
  • Is downloading of the app prevented in case it’s bigger than the OS allows downloading when connected to cellular networks?
  • The app does not interfere with other apps when in background/multitasking mode
  • Check if any payment gateway occurs like PayPal, Chargify, etc.

App UI checks

  • The main function of the app should be apparent immediately. It should speak for itself.
  • If there is a long list of data to scroll through, provide a search option above the list.
  • If performance is slow, indicate a progress status icon (“Loading…”), preferably with a specific message
  • Users should be warned of the consequences of deleting a document
  • All inactive buttons were clearly distinguished from active buttons
  • Check for navigation, tabs, page scrolling etc.

Store-specific checks

  • The app should not access information on the device outside the app without the user’s permission
  • The app cannot download code to be installed without the users’ consent.
  • The app can only get new functionality by way of an upgrade through the app store.
  • An app can’t be a “trail”, “beta”, “demo” or “test” version.
  • You cannot mention other app platforms in your app (for instance: “Also available on android!”)
  • Functionality should be in sync with the functionality described in store.
  • The app can’t use the user’s location without permission.

Interrupt Handling

Call

  • User should be able to accept/reject a call without any problems.
  • Sound of application should stop when the user is on the line.
  • The application should resume after user rejects/ends a Call.

SMS, MMS

  • User should get a Message alert while the application is running.
  • Messages should be received without any problems.
  • The application should resume after receiving Message.

Alarm Handling

  • Alarm should work without any problems while the application is running.
  • The application should resume after the Alarm is turned off.

Other elements of mobile app testing

  • Other app notifications should not affect app performance.
  • Storage low: Check the app by filling the memory and emptying it, and then compare the application performance.
  • Battery low: Check the app performance on low battery.

Have a Happy Testing.

– Jisna Mathew

Agile Testing: 10 Principles to Follow While Testing Your Web and Mobile Applications

Having worked in various organizations for many years in the area of Software Testing, I could firmly say that an Agile based testing approach is becoming a critical factor in bringing superior quality to today’s web and mobile applications.

Agile testing process by Ayal Shimoni

Though there are several testing approaches available, it is high time to come out of traditional approaches and adopt more rigorous and iterative testing practices that make testing more real and bring more effective results.

Agile testing is becoming very crucial while delivering quality results to the customer. I thought I will share with you some basic principles if followed that can bring drastic value additions to your test approach and make your client happy.

Agile Testing: Top 10 principles

Deliver value to the customer

Ensure that each prototype delivered to customer meet their expectation. Example: Is the layout of the website as expected by the customer, are the messages meaningful and user-friendly, does the click on button work, are there any broken pages etc.

Enable face-to-face communication

Direct communication with the client is very important to get a clear picture of the requirements. There might not be proper documents for the change requests as change occurs in a rapid manner in agile environment, however, if a representative from each team (developer, tester, program manager) meet together on a regular basis to discuss the amount of work done, it can help measure the work progress, determine bug status (how many severe bugs still exist, how many were re-opened etc.) and where we stand when compared to customer needs.

Keep it simple

Make a note of changes happening. Organized documents might not be available for every change that comes from the customer, but if you have a record of all changes (with date and comments) preserved at a commonplace, it will help you refer in future in case any confusions arise.

Also, when you report issues to the developer via bug tracking tool (or any other means like a simple spreadsheet), give a precise description of the issue that gives clear idea about the issue, if possible always attach a screenshot as the saying goes “A picture is better than 1000 words”.

Keep a big picture in mind

Although in agile testing methods, prototypes are delivered in short intervals, testers must not get distracted from the big picture of the overall product. Continuous change in code and implementation can sidetrack you from the original requirement of the client. Ensure that rigorous code change does not alter the output from the original agenda.

Provide continuous feedback

Testers must be proactive enough to provide timely feedback to developers and program managers about the quality (bugs founds, requirement missing etc.) of each prototype being delivered to client as each prototype is developed in short time spans and the early the feedback, the sooner the developers can fix those bugs, thus, ensuring delivery of quality product to the client. Focus more on people – make sure all teams (including developers, program managers, and testers) and the customer has the same understanding about a requirement.

Have courage

Sometimes a customer might not have an exact idea of what fits best for his/her requirement. Asking questions and offering ideas can help them choose the best fit for their requirement. Also, it gives you better insight into customer expectations.

Sometimes implementation must be questioned as it might not be the exact way customer is expecting. So, dare to question implementation and the way in which system is behaving as a developer who has developed that piece of the product might not have enough understanding about the requirement and your question can help them build the right piece of product.

It might create friction among teams as you cross-question their code; however, a friendly approach and the right attitude can lead to a fruitful discussion to build a product that fulfils customer needs. Ensure that your team is not intimidated by developers.

Picture by Dave Gray on Flickr

Practice continuous improvement

Always strive to improve your testing skills. Evaluate your testing skills at each delivery. How closely you tested customer requirements?

Were any of the areas left out while testing?

Did customer raise issues that you missed while testing?

Learn from your past experience, make a note of mistakes happened, list out how testing could have been improved at your side and try to implement new steps in your next project.

Respond to change

Change is a constant part of agile testing. Requirements change continuously, code change continuously. If you are having difficulty in keeping track of changes, make a practice of writing down each change (with date and comments that will help you remember why the changes were made etc.). Sometimes this kind of documentation is also helpful to other teams while re-visiting requirements or you can also show it to the customer when they say your product does not match their requirements.

Self-organize

Plan beforehand how your day is going to be. Be prepared to handle an unexpected situation. In an agile environment, there will be constant changes; so, keep a note of what tasks are to be tested on a daily basis and on what priority.

Keeping your work organized and a planned approach to handle your testing tasks can help you to test better and finish tasks in a more efficient and productive way.

Enjoy your work

Knowingly or unknowingly you are doing a very responsible part of bringing the world to a better place, so take this responsibility with great enthusiasm and passion. It gives a great sense of satisfaction to see the product you tested is the built-in right way that makes your customer happy, thus, bringing joyous results to your hard work.

– Susan B. John