61% of end users expect the app to load in 4 seconds or less, and 53% of them abandon the software because of its slow start or other mobile-related issues (crashes, bugs, or freezes). This is one of the reasons why companies may need to focus on mobile app testing, helping produce IT products with the minimum number of errors.

In the article, let’s explore everything about mobile app testing: its significance and software aspects that are mission-critical to verify to launch a high-end product.

Why do you need mobile app testing?

Just have a look at this considerable leap. With the rapid proliferation of smartphones, tablets, fitness bands, smartwatches, etc., the number of app downloads reached 255 billion in 2022 compared to 204 billion in 2019. By the end of 2023, it’s predicted to hit 299 billion.

Source: Statista

Mobile apps have definitely become the hub of many industries. For example, eCommerce mobile IT solutions allow shopping online, instantly getting information about the latest promotions, and visiting several stores simultaneously within one click. Users are often impatient and want everything at once, so slow loading and bugs that prevent stable operation may form a negative impression.

Let’s also take the media industry. A clear example of our lives in today’s fast-moving world — whether in the car or on the plane, we use mobile apps to watch news and videos, listen to the radio or music, and write a few lines to friends or relatives. And to catch up with this pace, mobile apps literally need to fly.

To make sure they work as intended and meet customers’ needs, businesses adopt mobile app testing, as it helps enable trouble-free apps operation at any time, under different loads, and across multiple platforms.

Mobile apps testing: what to check?

Unlike web products, mobile ones are much more complex, containing a plethora of functions and more advanced methods of interaction, such as touch actions (e.g., scrolling and swiping) and voice functions (e.g., Siri), which require their constant verification.

Along with that, QA specialists should check the software in different situations: with and without connection or when it’s unstable as well as when switching from one network to another. After all, mobile apps work offline as well. If not testing all these cases, then it may result in numerous errors during the exploitation phase.

Let’s take a closer look at 6 main aspects of mobile solutions that are mission-critical to test to produce a high-quality product and get ahead of the curve with it.

Aspect #1. Functionality

What do people usually do when finding a bug in a mobile app that prevents its further usage? According to the Dimensional Research, 80% of customers won’t use faulty software more than two or three times.

To ensure that the IT solution works in line with the requirements and behaves as intended, companies implement functional testing.

Aspect #2. Performance

Nothing makes end users more excited than stability, especially when it comes to the IT solution performance.

Performance testing allows checking how the app copes with the regular and increased loads, and how it behaves when millions of consumers concurrently carry out online transactions. This is especially true for eCommerce and eLearning solutions to ensure smooth running during Black Friday, Cyber Monday, or just an online lecture with a huge number of students.

Aspect #3. Compatibility

Incorrect display of the interface in different device versions, out-of-screen text, and inconsistency with other smartphone apps — these are some of the defects that arise when using the same software across various platforms. With compatibility testing, QA specialists eliminate these issues and ensure seamless functioning of the IT product across a bunch of devices, operating systems, browsers, and internet connections.

Aspect #4. Usability

97% of users believe that user-friendliness is the most critical quality of mobile apps. Companies may achieve this via usability tests, which are aimed at checking the convenience of software usage and navigation as well as the correct operation and display of all its elements.

For instance, if the company produces an eCommerce app, it’s core to verify the menu layout, product catalog, buttons, and other elements. Are they arranged conveniently? Can the user intuitively find them and perform the necessary actions? If so, then it may be a sign of good software usability that is able to satisfy customers’ needs and provide them with a positive user experience.

Aspect #5. Cybersecurity

Be it a financial, educational, medical, or other kind of an app, they all collect tons of data (addresses, phone and credit card numbers, and even health-related data). With the rapid shift of processes to the online space, more and more personal data is now stored on the web.

With cybersecurity tests, companies ensure strong protection of the software at all levels, eliminate leakage of personal information, and assure compliance with industry-specific and other international standards, such as OWASP, HIPAA, PCI DSS, etc.

Aspect #6. Interruption

Does the app behavior change when interrupted by notifications, messages, incoming calls, and connected or disconnected networks? This is where QA engineers turn to interruption testing, helping make sure that the software handles various types of interventions. Without it, unexpected interruptions may cause interface crashes, data loss, software breakdown, etc.

Test automation to optimize mobile app testing processes

Some tests are too tedious and time-consuming to perform them manually. To meet the project deadline and accelerate the IT product release, test automation is imperative.

Let’s take cross-platform tests, which are indispensable for mobile apps to ensure their smooth running across a variety of devices. It will take an eternity to check all possible combinations manually — thousands (if not millions) of them. In such cases, test automation greatly hastens QA processes.

Performance testing is also a candidate for test automation (to check response time, scalability, speed, etc.). By automating performance tests, experts generate situations with millions of customers who are simultaneously using the software to see if it handles such a heavy load. A typical case of most eCommerce, financial, and eLearning solutions.

Closing remarks

Online shopping, consultations with bank employees, studying from anywhere, just socializing and entertaining — these are some of the reasons why we daily use mobile apps.

Businesses, in their turn, should take exceptional care about their IT solutions quality to provide consumers with the best experience possible (and test functionality, performance, compatibility, usability, cybersecurity aspects, and more).

In case you’re looking for professional support, reach out to a1qa’s experts to fine-tune your mobile app testing strategy to perfection.

We live in pretty amazing times, don’t we. Wish to join a good old school lesson? Just have your laptop or phone nearby — from absolutely anywhere in the world.

eLearning and mLearing solutions are rapidly evolving. Global lockdown made people move lifestyle activities to their homes, education included. So, the positions of eLearning and mLearning software have been reinforced in the IT market.

Let’s have a look at the numbers. In 2015, the mLearning market size counted $7.98 billion, while in 2020, it skyrocketed to $22.4 billion. That’s not all, as the figures continue to grow and are expected to reach $25.33 billion by 2025.

To achieve such results and astonish customers, don’t we need some special care of software quality, its performance, and data safety?

In the article, learn why QA is vital for the eLearning and mLearning apps and what testing types are imperative to roll out high-quality educational software.

QA for eLearning and mLearning products: is it a need or a wish?

Striving to knowledgeable future, educational entities and related businesses develop learning solutions to make studies available for everyone. Global moving to a digital environment also contributed to revamping the traditional educational system and going beyond physical schools and universities.

When providing end users with an extensive variety of IT products from one-on-one or video-based platforms to group learning courses, it’s necessary to pay strong attention to QA in these mediums.

According to the Global Market Insights Report, the eLearning market size is going to reach more than $1 trillion by 2027.

Source: Global Market Insights

These tremendous figures mean expanding target audience of different ages, social groups, cultures, etc. while suggesting taking care of software performance, usability, security, localization, and other major factors.

It is comprehensive testing of all mission-critical components that brings IT products’ quality to the next level while at the same time enabling delighted end users with an advanced learning experience.

6 software testing types for grade “A” educational software

A solid QA strategy and thorough software testing lie behind the successfully released IT solution that increases revenue and contributes to gaining end-user trust. Let’s figure out what QA activities help prevent such educational software defects as long app response time, sudden crashes, poor functioning, and others keeping leading positions in the market.

1. Performance testing

Within remote education, eLearning and mLearning software spike in demand and attract far more students than ever before. It means greater traffic, higher latency, lower speed, and other technical issues triggering closing an app and switching to those that work.

Of course, no one wants to face such consequences.

Then we suggest verifying a range of components related to the system performance while carrying out the following activities:

  • Load testing — to evaluate the behavior of an IT product under the expected and high load.
  • Stability testing — to analyze the platform performance during long-term testing with a moderate level of load.
  • Stress testing — to check how the software works with more than the specified number of simultaneous users.
  • Volume testing — to measure the solution capacity of stored data.
  • and more…

By applying performance testing, companies provide end users with a flawless platform able to operate even in unpredictable situations.

2. Localization testing

Given that educational solutions are aimed at a wide audience, companies adapt their software to various locales and attract customers from all over the globe by supporting end-user native languages, easy website navigation, and convenient search for necessary information.

This is also the case of Duolingo, the learning platform, that provides interface adaptation in more than 20 locales. Sounds great, right?

Localization testing helps identify inconsistencies in translation, time, dates, and calendars adjustment. It also involves localized GUI testing to check if the content doesn’t hinder the layout integrity that often adversely impacts the learning experience.

3. Security testing

Most digital education solutions collect personal data, be it a name when enrolling on a course or a credit card number when paying for online content.

When choosing a platform for learning, end users want to be 100% sure that their sensitive information and online transactions are fully protected. The U.N. Official highlighted that during COVID-19, the number of cyber incidents increased by 600%, making this issue one of the top priorities.

So, companies introduce security testing to minimize the risks of data loss, prevent unauthorized access to the system, and verify the security of online payments.

4. Compatibility testing

Defining what device or browsers your customers use is quite tricky. Before embarking on testing activities, analyze end-user preferences and specify the most popular platforms.

After that, it’s worth performing compatibility testing against the top selected gadgets and browsers while covering all the functionality. In parallel, don’t forget about mission-critical checks on other devices of potential use.

Such a holistic QA approach ensures flawless educational software operation on various browsers, platforms, operating systems, and devices, helping provide the best CX for all learners.

5. Compliance testing

As with any other industry, the eLearning and mLearning solutions have specific regulations, like SCORM (Sharable Content Object Reference Model).

To let educational software pass all the standards with flying colors, open-minded companies introduce compliance testing. With that, QA specialists check eCourses interoperability with other platforms and learning materials while timely detecting discrepancies with the rules that decrease QA expenses and ensure complete software conformity with regulations.

6. Mobile apps testing

With a great demand for mobility, people all around the globe are more and more using their smartphones and tablets for almost all life purposes, mobile learning included. Alongside the usability of portable devices, mLearing improves productivity by 43% owing to advanced mechanisms and precise training activities.

Therefore, it’s crucial to check portrait to landscape phone modes, network interruption, incoming calls, etc. to ensure high quality of mLearing and web mobile eLearning platforms while enhancing mobile CX.

Wrapping up

The ever-evolving IT market brings changes in many areas including education, which is gradually becoming more digital than ever before.

Within the growing number of eLearning and mLearning solutions, businesses need to take special care of software quality to ensure that everything is running smoothly. A robust QA strategy and extensive software testing lie behind this success in the market.

By introducing 6 core QA activities — performance, localization, security, compatibility, compliance, and mobile apps testing — companies enable software excellence, release IT products faster, decrease QA costs, and gain the trust of their worldwide customers.

Feel free to reach out to a1qa’s experts to put your educational software on the IT market’s honor roll.

To my mind when transferring valuable data to the online environment, people are more concerned about their safety. According to IT Governance, in January 2020, the total number of leaked records reached 1.5 billion.

That’s why to take the leading positions in the IT market and provide end users with a reliable IT solution, companies put a great emphasis on its security.

In the article, I’ll tell you about the consequences users face with a poorly protected app, and what QA best practices do help launch the software with in-built cybersecurity.

The paramount role of cybersecurity in today’s IT world

People use apps for various activities — eShopping, eBanking, eLearning, etc. — and entrust their personal data. Here, cybersecurity comes to the fore to protect the private information of consumers, patients, and even organizations.

According to the IBM Report 2021, the average total cost of a data breach increased by $0.38 million and reached $4.24 million in 2021.

Source: IBM Report 2021 

The research shows that only in the US, cyberattacks occur every 39 seconds. No doubt, businesses apply cybersecurity practices, reinforcing overall safety level, and watch out to avoid private data compromise.

When it comes to mobile apps safety, performing comprehensive cybersecurity testing is becoming a dire necessity. This allows protecting the IT solution from malware, phishing, and other malicious activities. Let’s have a look at the most common vulnerabilities if not:

  • Data theft. If your software stores a voluminous amount of personal data without having enough cybersecurity measures, apps transmit the information to remote servers where hackers intercept it. Not a positive scenario for the day.
  • Unauthorized access. When the developers rely on familiar encryption without strengthening or changing it, this makes the algorithms weak and vulnerable (and fraudsters gain access to user information).
  • Session handling issues. Such challenges take place when the app allows the customers to perform transactions without logging or authenticating.
  • Reverse engineering. Attackers introduce this technique to understand the app algorithms and structure while creating a malware program that performs the same functions, like a real one. Finally, this assists them in accessing the back-end servers.
  • Client-side injection. Cybercriminals implement malicious code or send an infected link to end users, helping them reach some of the software functions.

4 mission-critical best practices to test mobile apps cybersecurity

When companies understand the problems that end users encounter, it becomes easier for them to build the right cybersecurity strategy to prevent further system penetration and data leakage.

Let’s take a look at the essential cybersecurity testing activities, helping increase the level of mobile apps safety.

1. Conducting penetration testing

I shall start with an example. You’ve probably heard that in 2021, hackers attacked LinkedIn and exposed 700 million users’ sensitive data on a darknet forum. It’s pretty much easier to prevent similar situations when introducing penetration testing, helping protect personal information, detect vulnerabilities, and ensure threat-resilient software.

How to conduct penetration testing to ensure that your software is attack-poof?

  • Discover apps structure. Gather as much information about the software as possible (IT product architecture, source code, functions).
  • Analyze software security. To assess whether the IT solution is vulnerable, QA engineers apply two methods: static analysis (by using the source code without installing the app) and dynamic analysis (by downloading it).
  • Exploit flaws. Ethical hackers simulate cyberattacks to observe the system behavior, find vulnerabilities, and gain complete control over the software.
  • Document results. The team creates a report on detected breaches, safety risks, and recommendations on fixing weak points.

2. Patching software on a regular basis

When a new vulnerability appears, it’s time to make a patch for the app to eliminate deficiencies. It also helps improve the apps performance and add changes to the functionality if needed. With more than 5.7 million mobile apps in App Store and Google Play, just imagine how many customers may become the victims of eCrime with no patches. By carefully testing them, businesses ensure that all software updates are secure and briskly react to flaws while mitigating cybersecurity risks, including sensitive data loss, ransomware attacks, insider threats, etc.

3. Adopting a DevSecOps approach

In the DevSecOps, the development cycles are short, helping identify and fix defects faster, reduce vulnerability risks, and provide software with embedded cybersecurity from the initial SDLC stages.

At the start of the project, DevSecOps allows considering possible security risks, which prevents critical issues at the development phase and reduces QA costs needed for subsequent fixes. Along with that, it provides a high level of IT solution protection and faster delivery to the market.

4. Performing pre-certification testing

To ensure that the app meets international and industry-specific regulations, such as HIPPA for eHealth, PCI DSS for eCommerce and BFSI, 3GPP for telecom, and many others, companies introduce pre-certification testing. It helps eliminate software inconsistencies with global standards of quality, cybersecurity, and data privacy, identify critical software issues, fix them, and get the product certified.

In order to guarantee the IT solution compliance with regulations, businesses undertake 4 essential steps of pre-certification testing:

  1. Analyzing technical requirements — assessing IT solution specifics to determine the core standards for compliance.
  2. Designing tests — defining the scope of QA activities, choosing the right tools, best practices, and creating test cases.
  3. Executing tests — running various scenarios to detect vulnerabilities.
  4. Reporting — documenting the results and describing non-compliant areas.

Closing remark

Just have a look: by performing thorough cybersecurity testing, it’s much easier to protect end-user personal data and prevent further system penetration. When building a QA strategy, we suggest including 4 cybersecurity best practices: performing penetration, patch, and pre-certification testing as well as introducing DevSecOps.

Feel free to contact a1qa’s experts to get professional support in enhancing your software cybersecurity.

The DCI study shows that 62% of surveyed people delete an app when encountering any defect in production. Probably, you’ve deleted one this month. No time for bad things, right?

What’s more, the total number of downloaded mobile software reached 218 billion in 2020 while it was 204 billion in 2019. The growth is tangible, just like the competition in the market.

This means companies reinforce their business strategies with mobile apps QA to win the race while introducing various testing types, compatibility testing included.

Alongside a high demand on cybersecurity, performance, automated testing, and others, compatibility checks join the range of mission-critical QA activities that help prevent poor user experience.

In the article, discover the importance of compatibility testing and learn 5 tips to bear in mind to ensure flawless software operation against different devices and platforms.

Compatibility testing: superhero of mobile software

The success of an application. What’s that? The ability to withstand heavy load, strong protection of sensitive data, overall efficiency, and many more. Once having covered all critical bottlenecks, companies are likely to expand their customer base and improve brand image.

Just imagine that the number of gadgets is extremely increasing and is expected to reach 18.22 billion by 2025.

Source: Statista 

Within today’s wide variety of devices, browsers, platforms, and other software and hardware parameters, the risks of defects on different gadgets and configurations are pretty high. To minimize the threats, forward-looking companies implement compatibility testing while avoiding issues that affect the functional capabilities of the app, its performance, and navigation.

Compatibility testing: Top 5 tips to keep in mind

When it comes to compatibility testing, it engrosses thousands of checks to perform. However, it’s impossible to verify all existing combinations. Before embarking on testing activities, the first thing to do is thoroughly analyze the target audience, existing users as well as markets, popular gadgets, product specifics, and business objectives. Having performed this analysis, you may set up the priorities to prevent extra checks and budget loss.

Let’s have a look what tips to bear in mind to bring your software quality to the next level.

1. Operating systems

Well, Android and iOS are the most popular OSs, but there are not the only ones among OSs to be used by the target audience. Each year (or more often sometimes), operating systems are updating while requiring refreshening test cases and constantly monitoring the most popular versions among end users.

2. Browsers

It’s hard to say the exact number of existing browsers as well as predict which one’s customers use the most. You have your analytics, but it’s still unfeasible to check the software behavior against ALL browsers and their available versions. Thus, performing the tests against the most popular browsers and conducting testing on other less pervasive ones would be a win-win decision.

3. Hardware

Smartphones and tablets of all shapes and sizes, different hardware components included, are everywhere. RAM, the CPU power, its number of cores, and others vary notably while affecting software functioning against a range of devices.

Let’s take this example. “Jack and Co” are developing a mobile app with built-in fingerprint sensors features. Considering that not every end user possesses a gadget with such hardware specifics, we’d say it’s vital to adapt the feature to non-fingerprint-enabled devices or make sure that the app operates smoothly against them.

4. Screen resolutions

Within multiple screen resolutions of smartphones and tablets, the most pervasive one, 360×640, is used by 10.04% of people worldwide. However, your target audience is likely to go beyond this size and leverage many different devices requiring due attention to compatibility testing.

5. Configurations

Testing the software under different system configurations embraces a range of users’ settings, including system language, network connection, security permissions, and many more. The number of combinations reaches hundreds or thousands of tests, thus making the compatibility matrix an inevitable part of a QA process.

Let’s just state it here, comprehensive compatibility testing helps delight end users with stable apps working against pre-defined devices and settings while allowing companies to improve ROI, mitigate business risks, reduce QA costs, and speed up the velocity of software delivery.

Mobile app testing: real devices vs emulators/simulators

If you are looking for a one-size-fits-all solution, there isn’t one, as projects vary and have specific requirements, timelines, and budgets. These all are the factors of choice: test against real gadgets or harness an emulator/simulator.

A strong point of real mobile devices is verifying real-life scenarios like financial transactions, display of user interface, system settings, etc. Real devices don’t just provide the possibility to test everything in its current state and within end-user conditions but also show limitations that customers may encounter.

Compared with real devices, emulators/simulators are not so powerful despite their cost-effectiveness. They mimic real gadgets’ behavior with no ability to repeat hardware characteristics, thus increasing the risks of missing defects. It is important to select checks acceptable to simulators/emulators and must-have checks for real devices.

Finally, what to choose then depends on a bunch of factors. Sometimes a good practice is to combine them within the need to get the most of compatibility testing.

In a nutshell

Within a tremendous number of mobile apps and devices, competition in the market is becoming more and more rigorous.

Now, along with essential tests such as performance, cybersecurity, automation, and others, compatibility testing has turned into a requirement.

By applying comprehensive testing and verifying software compatibility with operating systems, browsers, hardware, screen resolutions, configurations, and much more, companies accelerate time to market, increase ROI, optimize QA budget, reduce business risks, and get other business values.

In case you need support on compatibility testing, reach out to our specialists to get a consultation.

Having brought fast Internet browsing, high-def video streaming, and smooth mobile CX, 4G connectivity is on the way out. Today, we observe the advent of the wireless network revolution or 5G technology upsurge.

It’s becoming a crucial part of online ecosystems while embracing millions or billions of devices and people. What’s more, 69% of networking executives consider 5G as one of the most critical wireless means to perform their business initiatives.

Mobile software development and testing are reckoning on a new generation of connectivity. Let’s clear up why this happens and discover how 5G will hit the IT world in the foreseeable future.

What will the 5G network bring to online users?

The main benefit of 5G connectivity is load speed. While the fifth-generation network has had rather striking test runs, its real-world speed depends on the infrastructure applied. When compared with 4G’s theoretical maximum download speed of 300 Mbps, 5G could provide 10 to 50 Gbps.

Speed estimation

Source: 5g.co.uk

What’s more, the 5G advantages go far beyond velocity — what about the boost in low latency, capacity, and quality? Yes, they are also included.

In most cases, delays in software operation impair user experience while adversely impacting the customers’ loyalty that triggers their outflow.

Surely, no one wants to encounter such issues and their expensive fixes. So, this is where 5G comes into play with its ability to reduce latency to near-zero. While sending and receiving information, 5G may cut time to 1 millisecond which is 200 times lower than 4G. Sounds impressive, right?

With such great parameters of speed and latency, 5G enables increased connection density by embracing over 1 million devices linked up with the same local network. It reinforces the new era of IoT while exceeding the current mobile Internet frames as well as enhancing the AR and VR experience.

Who can benefit from broadband network connectivity?

Considering the active presence of end users in an online environment, network speed is a clue to better CX. The Zendesk Customer Experience Trends Report 2021 indicates that for 50% of the surveyed end users, CX has become a more essential aspect in choosing IT products than it was a year ago.

Superior video apps, improved AR/VR-based software, always-on devices in homes, and many more introduce a breakthrough to online end users while enhancing their CX.

Within closely operating with networks and the Internet, telecom and media players can make the most of the fifth-generation connectivity. With that, businesses are geared towards launching progressive initiatives derived from 5G to astonish their customers and entice new ones.

Moreover, 5G wireless technology holds the potential to help realize remarkable software transformations through reducing costs and elevating productivity. By applying it, companies intensify energy monitoring and management as well as strengthen its generation and distribution while enabling business growth.

The spread of 5G will also influence mobile app development due to the rise of portable devices and sophisticated means of mobile connectivity provided by 5G. What are the deliverables that pave the way for releasing more efficient mobile software?

  • Faster file transfer. It means better data processing that boosts app performance and handling a greater volume of information.
  • Broader IoT implementation. It accelerates the time to fully smart homes and cities within a possibility to interconnect billions of devices.
  • Better integration. 5G enables the flawless embedding of 3D modelling, cloud-based services, more accurate GPS, and other technologies.
  • Higher battery life. With increased speed, low latency, and less dependence on hardware, 5G needs less battery consumption while allowing users to interact with apps longer.

Of course, such technological improvements require exceptional attention to quality assurance before going live. Let’s take a closer look at how mobile software testing may be changed with the surge of 5G.

How does 5G reflect mobile app testing?

The more advanced mobile app development is becoming, the more efforts businesses need to ensure the proper level of software quality. Quicker response time, better data processing, a broader range of novel technologies — all these and many other features push the envelope of mobile app QA and software testing. However, many of the questions surrounding 5G pertain to the network, rather than to the myriad of apps that will eventually utilize it.

The State of Testing Report 2021 by PractiTest showcases that 60% of QA within the surveyed companies are associated with mobile systems and technologies. With that, mobile app testing is gathering more attention. Let’s figure out what testing types the fifth-generation wireless network is up to modify and how to navigate those changes.

Network connectivity

The sharp alteration of speed and performance may need a suitable response with new test environments. Acquiring 5G testbeds helps QA engineers verify the signal distribution, perform 5G design validation, and detect connectivity drawbacks at a physical level.

Security testing

Living in a world infused with IoT, security becomes a greater concern. Embracing millions of devices storing a massive volume of users’ data, it brings information safety and privacy to the next level. The risk of data breaches is high, so precise security testing before going live is a must of IoT-based software development.

Compatibility testing

With the presence of over 750 5G-compliant devices in the IT market, 50% of them being mobile phones. These figures will only grow, extending the banks of test gadgets. By mimicking end-user conditions, verifying software on real gadgets is much more reliable than on emulators. Moreover, due to a great number of non-5G devices, it’s vital to ensure proper work of 5G-oriented applications against lower-band gadgets.

Performance testing

With better file transfer, higher speed, and extremely minimal risk of delays, checking software performance requires right-skilled experts. Being predominant infrastructure in mobile apps, 5G will bridge the mixture of the 5th generation and legal networks. This mixed environment needs robust testing of mobile software interaction while verifying them on the numerous performance configurations.

In a nutshell

Being an IT innovation, 5G connectivity brings enhanced mobile broadband, low latency, and massively synchronized devices that enable worldwide adoption of IoT, AR/VR-based solutions, and a new normal of mobile apps.

Within novel technologies delivered by 5G wireless technology, mobile app development and testing are industries that will experience the fifth-generation network surge the most.

By thoroughly verifying in advance, 5G-oriented apps may bring the value of business growth as well as end-user satisfaction.

Reach out to the a1qa experts and be confident in releasing a high-quality 5G-based app.

Today, the market share of mobile gadgets have exceeded the one for desktop by 12%. The estimates of using portable devices have been trending upward since 2016, and the number of mobile users is steadily increasing while applying more load on systems.

Market share

Source: gs.statcounter.com 

Due to providing a vast range of opportunities amid multiple industries, mobile applications are a new normal in terms of executing daily and business tasks. However, to ensure the successful release of an application in the market, companies should consider mobile app software testing and pay close attention to performance checks in particular.

Thus, we’ve prepared an overview of mobile app performance testing insights and a QA scenario on how to carry out efficient testing processes.

MOBILE APP PERFORMANCE TESTING: 3 CORNERSTONES

Mobile application specifics assume testing of an IT product itself as well as verifying device, server, and network interactions with it. Let’s have a closer look at each cornerstone in order to clarify their peculiarities.

#1. Device performance

The first thing to think about is checking how a mobile app will function on a certain gadget.

What will a QA engineer do to get confident that the target audience can use the tested application on any device with diverse memory and processor parameters? He or she will embrace distinct hardware characteristics, including frame rate and CPU and GPU capacity.

With higher frame rate, customers have better user experience and obtain stable interaction with the application. This is directly connected with central and graphic processing units providing overall functioning of a device. Make sure a tested app doesn’t consume excessive resources to dodge problems with pausing and crashing of an app.

Memory consumption is another issue to ponder. By adding recently developed functionality to an application, the memory usage amplifies, and its critical index can adversely impact system performance as well as IT product operation in general.

While working for a long period of time, some mobile applications may utilize a drastic volume of battery life causing device overheating. QA specialists should verify battery life consumption for certain IT solutions to ensure they use as much amount of battery life as they require. 

The time it takes for an app to open (is it quick or does it take 10 seconds?) can define first impression for end users. “You never get a second chance to make a first impression.”— Andrew Grant said.

Moreover, do not forget to verify high-quality interaction of a tested application with the other ones that are installed on a device. For that, answer the following questions:

  • “How does it behave in the background?”
  • “Does it keep the entered data when shifting between applications?”

These two issues and many others need to be covered.

#2. Server performance

Being a vital part of mobile solutions functioning, server responses and data handling specify system performance. Delays in receiving and sending information may produce slower response time provoking software drawbacks.

Moreover, the number of API requests from a tested app can cause an application overload. With each newly added feature, the stack of API calls is augmented that impacts the overall performance. Testing APIs before releasing may help reduce risks of insufficient mobile app performance in the going-live stage.

When the main server is out of reach, provide a backup one to get data without delays. To prevent data loss in a critical situation, bear in mind to timely synchronize failover and principal servers, develop and follow a backup policy.

#3. Network performance

This cornerstone assumes checking an app functioning while connecting to various networks. The core things under test are latency and bandwidth.

Testing the time of sending data packets from a client to the server and back along with the maximum amount of information that an IT solution is capable of transferring are two pillars of stable network performance.

By simulating the 3G, 4G, and 5G networks, QA engineers can conduct more precise performance checks and be confident that customers will not have any delays or data losses while using their mobile apps.

SUCCESSFUL MOBILE APP PERFORMANCE TESTING: THREE-STEP SCENARIO

Value-driven and comprehensive software testing requires a carefully designed QA strategy with a team of consummate specialists at the core. Thoroughly chosen employees may guarantee high work efficiency while covering all critical and minor issues by delving deep into business logic of a tested application.

Alongside onboarding right-skilled experts, don’t forget about other topical QA matters. We’ve already identified the most relevant points to consider for everyone wishing to reach desired outcomes. Let’s check out the steps of providing high mobile app performance.

Step 1. Introduce QA at early SDLC stages

According to the World Quality Report 2020-2021, 52% of respondents prefer preparing and executing software testing from the very start of their IT projects while contributing to business growth and providing faultless operation at short notice.

This is where QA managers apply Agile, DevOps and shift-left practices to avoid expensive bug fixing after going live, increase team efficiency, and accelerate time to market.

Step 2. Select strong toolkit

Performance testing requires mimicking customers’ and software behavior. By choosing proven and suitable to business needs performance testing tools, one can simulate real end-user actions to identify the upper limits of system capacity, evaluating its functioning under a specific expected load as well as to measure software performance with increased processing power.

Step 3. Execute client-side performance testing

Its prime objective is to identify hindrances that affect customer experience and slow down IT product operation on the client side. Within growing significance of satisfying end-user needs, companies should consider this testing type to delight customers and provide impeccable mobile app performance. 

Carrying out client-side performance testing, QA engineers detect software issues that hamper page and app loading, monitor that updates don’t undermine system functioning as well as verify loading speed from different locales and optimize processing of heavy-weight data.

IN A NUTSHELL

Being one of the core mobile testing types, performance checks may help with eliminating sluggish app operation while enhancing customer experience.

By introducing the three-step scenario into a QA strategy, one can enable high overall performance including stable operation of the device, server, and network that engage with a tested solution.

Need support in executing mobile performance testing? Reach out to a1qa’s experts to improve CX.

Aiming to astonish end users, BFSI companies have created dozens of new opportunities ― eWallets, online services paying, crowdfunding platforms, and much more. The further going into development, the more complex BFSI solutions are becoming.

Dealing with finances and sensitive data makes this industry strictly liable for the soundness and safety of the software created. Within its serious and conscientious character, the quality should become a top priority.

The World Quality Report 2020-2021 indicates BFSI has a higher degree of achieving targets than the other industries that took part in the survey. For instance, two-thirds (66%) of banking organizations cover all the software functionality through QA.

However, to set the leading position in the market is not as challenging as to sustain it. Let’s have a closer look at the QA role in developing the BFSI industry and how it helps keep the outcomes for a long time through 3 do’s and 3 don’ts in software testing.

QA for BFSI: yes or no?

The banking, finance, and insurance industry is a tidbit for hackers. This is why BFSI solutions are highly susceptible to cyber attacks. Moreover, the soaring number of online transactions assumes more opportunities to acquire sensitive data illicitly and opens new ways for criminals to target both individuals and organizations.

Some statistics indicate a 238% rise in cyber incidents on banks is a cause of the events of 2020, so 80% of companies have seen a surge in malicious usage. Thus, customers’ safety and privacy are gaining even higher rank, and this is where quality assurance is to be a paramount measure to avoid undesirable digital actions.

We gathered some tips on how to provide high quality of BFSI apps within the industry’s fast paces.

3 don’ts in QA or what may blunt the effectiveness of QA

Within a promptly evolving BFSI market, companies are striving to shorten the software development life cycle to speed up time to benefits. We have observed some of them apply measures that bring short-term results and impair both software testing and programming activities.

1. Do not cut test coverage to speed up QA processes

Compromising on some test cases and functionality under test might bring losses rather than benefits. It is worth verifying the entire BFSI solution to be sure its operation is stable and reliable. Otherwise, one might miss critical defects that may adversely impact the application in the go-live stage.

2. Do not follow false economy when it comes to test automation

Test automation is also a favourable method of accelerating release time that many companies turn to. However, organizations face challenges when implementing it owing to makeshift test automation. Within the lack of QA teams’ skills and poorly defined QA strategy, automated tests may be performed in a non-lean way.

For instance, if companies maximize test automation scope, further changes in functionality may slow down the QA processes due to time-consuming revision of the automated tests. On the contrary, a shortage of test automation cannot save precious time and the manual efforts may remain at the same level bringing fewer value or no value at all.

3. Do not lose a huge customer base part due to bad UX or slow performance

Despite of the extensive usage of portable devices, some companies compromise on mobile testing and perform web checks only. That’s why we may observe a decline in customers’ satisfaction with mobile offerings, as Deloitte demonstrates. The widespread error in mobile testing is leveraging emulators instead of real devices.

Mobile apps have already become a vast stratum, so they need to be tested thoroughly. Let’s ponder recommendations on improving QA that can turn the tide and ensure achieving desired outcomes.

3 do’s for productive BFSI software testing

Returning to one of the crucial business objectives, accelerating time to market, companies should implement novel approaches and technologies into a QA strategy to have a long-term beneficial effect.

1. Do opt for a professional approach to adopting test automation

The most pervasive way to derive these results is by introducing wise test automation. It assumes a balanced automated test scope and its application to features that QA engineers check frequently and change in several weeks.

Thus, it speeds up the processes and helps find bugs early in contrast with manual testing. To get more value, companies are starting to introduce innovations into test automation processes. Despite its slight beginning, the embedding looks confident and promising. In the picture below, you can see the top 3 aspects of reimaging test automation.

Test automation techniques
Source: World Quality Report 2020-2021

2. Do focus on mobile apps testing

Coming back to portable gadgets broad usage, the BFSI industry also is geared towards releasing mobile apps. According to J.D. Power’s recent survey on financial services, 54% of banking customers prefer using mobile apps.

So, as the demand for mobile solutions has increased, companies should do their utmost to provide end users with top-notch systems. Comprehensive mobile testing can help ensure stable network connectivity and flawless apps’ operation during third-party interruptions (income calls, notifications, charging, etc.).

3. Do rely on the enduring classic of holistic QA

QA for BFSI

The must-have testing types for BFSI solutions should include at least functional, security, and performance verification. Thus, one might be confident in the system’s operation following the pre-defined requirements, personal data privacy and safety, and stable work under heavy load. Testing types may vary depending on the IT solution’s purpose and specific business needs.

Extra: Do create space for implementing progressive testing approaches

Shift left testing and DevOps practices are becoming prevalent amid companies. Onboarding QA specialists at the initial SDLC steps paves the way for timely detecting defects and avoiding expensive bug fixing in the go-live stage.

Summing up

Within the fast pace of developing the BFSI industry, it is getting more and more challenging to keep leading positions in the market.

Some companies apply less effective strategies such as makeshift test automation, cutting the test coverage, and compromising on mobile testing.

We recommend rethinking these methods of speeding up the QA activities and implementing more progressive ones, like lean test automation, novel practices, and a balanced QA package.

Need support in BFSI testing? Get hold of us, and we will arrange a consultation with a1qa’s representatives.

Lockdowns, digital transformation, massive migration to the online space, changing trends and end-user needs…All this makes companies and enterprises from the media and entertainment industry re-image their business models and embrace novel software development approaches to stay at the top of the competition.

Being limited to harnessing various outdoor entertainment activities, people seek options on the Internet. Alongside applications of day-to-day tasks performing, an extensive range of media and entertainment solutions optimized to modern requirements has emerged.

During 2020, the businesses with mobile apps at the core focus became leading ones, as App Annie’s State of Mobile 2020 report indicates. The pervasive usage of portable devices is also reinforced by the worldwide stay-at-home period. People are more and more involving in digital entertainment, namely gaming, podcasts, audio streaming, and many more.

Within such a high demand for media and entertainment applications, ensuring flawless operation is a silver bullet. How can companies deliver impeccable software products and meet customers’ needs?

Software testing is a way out. Get to know in the article our insights on:

  • Tendencies of the industry
  • QA as a must-have for media and entertainment solutions’ development
  • A comprehensive software testing pattern for media and entertainment.

A new personalized era of media and entertainment

Within the modern market’s tenets and changed customer behavior, end users are geared towards enjoying media experiences uniquely adjusted to their personal preferences, contexts, and schedules.

Now, digitally empowered users want to exert greater control over what content to watch and when. This paves the way for developing software products in conformity with consumers’ wishes and needs. However, there is no one-size-fits-all way of how to gratify all the end users.

Companies should implement novel solutions that help make one’s media space personalized. Amid such innovations, AI algorithms are handy to gather personal data, process it, and provide consumers with new content.

People are more and more rejecting traditional TV bundles and harnessing specific ones through various over-the-top media services. OTT platforms, like Netflix or Hulu, have become a trend in recent years. Statista’s report indicates 74% of US consumers had a video streaming subscription in 2019, and that is an increase of more than 20% in four years.

Further parameters of the shift to active individualized consumption can be seen in the elevation of the smart home building. The core figure here is a smart speaker. Noteworthy is its usage is growing by leaps and bounds. By 2025, 75% of the US households will have a smart speaker in utilization, as Loup Ventures forecast highlights.

As they proliferate, smart speakers can become a conduit to the new frontiers for competition in the burgeoning industry of voice-related media, namely podcasts, music, and news.

Video games, especially eSport, take a substantial part of the media and entertainment industry. Assembling thousands of players and watchers, mobile gaming is becoming a new pillar of the eSport business. It also contributes to a huge jump in live viewership numbers for mobile eSports that have increased by 600% in 2019 compared to the previous year.

Therefore, the media and entertainment sphere encompasses almost every person, and to make end users feel confident in their media experience, IT solutions are to be tested appropriately.

Why test this non-life-threatening sector?

Many companies believe an application not dealing with someone’s health or money doesn’t require proper testing before going to production. Despite the field’s non-responsibility for lives and non-guidance to certain standards, as eHealth and BFSI industries follow, the media and entertainment sector is one of the most complex ones. Within an extremely high market competition, it embraces dozens of content types and an extensive range of devices.

According to PwC Global Entertainment & Media Outlook 2020-2024, revenues of the global media and entertainment industry are rising steadily that means it is getting harder to be ahead of the competitors.

Media revenue
Source: PwC Global Entertainment & Media Outlook 2019-2023

Now, alongside improving content quality and increasing views and subscriptions, it is crucial to ensure IT solutions’ flawless operation to allure more customers. As the market contains thousands of options, end users have become more fastidious in choosing entertaining applications.

A seamless user experience and immersive content are the core concepts of media and entertainment business success. Software testing helps get confident in the delivery of upscale and competitive products providing end users with an impeccable digital entertainment journey.

Even strict budget and time constraints can’t prevent QA introduction. Due to Agile methodologies at the forefront, software testing adjusts to the circumstances and stays on guard of the IT products’ quality.

Applying holistic QA to soaring numbers of customers

Software testing is all about spotting defects sharply, enhancing IT solutions’ quality, and maintaining their adequate level. Alongside its apparent purpose, QA assists in deriving desired business objectives. Within the main media and entertainment goal of expanding consumption, quality assurance can help to reach it through proper and thorough testing services.

Improved CX is a cornerstone of media and entertainment business success, so a1qa’s experts recommend performing a comprehensive QA bundle.

  • Functional testing. Flawless and accurate operation plays a pivotal role in any-industry applications. By executing a full scope (from smoke to exploratory testing), one can timely detect errors and verify novel functionality didn’t affect the developed features.
  • Usability and GUI testing. Design and user-friendly interface are other aspects of end-users’ involvement. Usability testing results provide 360-degree visibility into how the customers see your applications and an understanding of the journey they want through the products.
  • Mobile testing. As there is a tendency to use portable devices, it is lean to introduce mobile testing encompassing cross-platform and cross-browser testing. Harnessing real devices ensures glitches don’t appear on customers’ phones or tablets. Providing complex QA assistance to a developer of online casino games, a1qa leveraged 110+ mobile devices to cover all possible defects and guarantee consummate UX.
  • Performance testing. With due regard to massive media and entertainment solutions usage, the number of consumers is steadily growing. Software behavior evaluation under an expected load, the upper capacity limits identification, simulating users’ actions — these all are about ensuring flawless real-life user journeys. However, performing some testing types is not enough. In order to get a high-end IT solution and stay at the top of this competitive market, companies should consider how QA processes are carried out. Keeping in mind all the extensive expertise, we do believe they require to be optimized and adjusted to modern working approaches.

Shift-left testing is one of the progressive strategies in an Agile world. Putting testing activities at the very project start, companies can avoid expensive post hoc defect fixing and provide a robust ground for thorough testing. Also, within a heavy workload and frequent releases, businesses should be faster while maintaining high software quality. Automated testing is a way out. Alongside streamlining testing processes and freeing up manual QA engineers, it contributes to QA costs reduction and time to market acceleration.

Summing up

The world is getting more and more personal, and the media and entertainment industry is no exception. Despite the field doesn’t deal with health or finances, it is more complex assembling thousands of users.

To reach a win-win solution between them, companies should consider trends amid consumers and innovative approaches to work. AI, OTT services, eSport, and voice streaming are getting more pervasive. Through a proper testing bundle and up-to-date working strategies, one can derive desired business outcomes and deliver upscale solutions meeting end-user needs.

Get hold of us to have a talk with a1qa’s experts on how to provide media and entertainment applications with stellar operation and improved CX.

Digital transformation paved the way for a faster transition to leveraging multiple devices. Now, smartphones are the most pervasive: end users harness mobile apps while performing day-to-day tasks and can no longer imagine the future without next-gen technologies.

This shift is streamlined even more due to the global situation, as more people have to move to online space to work, entertain, and savor communication from their homes.

Within the outbreak, the number of Internet users worldwide has dramatically increased. Statista survey indicates that 70% of respondents prefer mobile phones, compared with 40% of laptop users.

Therefore, companies rushed to build new applications, services, and systems. All of them include users’ sensitive data to one extent or another. Apps preventing coronavirus dissemination have appeared (for instance, people tracking service that warns of being at a risk zone was developed in China).

It’s vital to deliver robust and highly secure solutions, as cybercrimes are widespread now and will only increase in the future. Moreover, they adversely impact the budget. Recently the Ponemon Institute has finished a 14 years’ research showcasing that the most expensive data leak is detected in the U.S. And the average cost per breach has been increasing within years: from $3.54 million in 2006 to $8.19 million in 2019.

To avoid such unpleasant consequences, many organizations turn to OWASP standards being a trusted resource and providing an unbiased opinion reinforced by vast expertise. In this blog post, let’s discuss the most dangerous OWASP mobile top risks and show which steps to make to mitigate them.

Top 3 OWASP security issues in mobile applications

According to the NowSecure research, 85% of tested apps are vulnerable to at least one of OWASP mobile top 10 risks mentioned in the picture below, while nearly one-third of software products suffered from coding drawbacks.

OWASP risks
Resource: NowSecure research

Let’s have a closer look at the top 3 challenges and shed light on why it’s essential to know about them.

1. Insecure storage of data

Bearing in mind that almost every application contains sensitive data like user credentials and private information, companies should provide an appropriate security level from both intentional and unintentional breaches.

And since there is a higher chance of physical theft or loss of mobile phone, rather than other devices, additional protections should be implemented to complicate retrieving the confidential information.

BFSI and healthcare are those industries that are exposed to the highest risk levels. No related company wants to see the spelled disaster with credit card numbers or details about health condition fall data into the wrong hands and get a distrust from the side of end users.

2. Unsafe network communication

Amid new technologies, the principle of open API is gaining more popularity in every economic sphere bringing benefits not only to companies but also to their clients. Interactions between services provide consumers with a multi-functional and user-friendly application while meeting planned business outcomes.

However, the risk of data leak through the communication channels between systems or remote service endpoints obstructs the further dissemination of this innovation.

Organizations should encrypt the transmitted data using TLS or SSL protocols with appropriate settings and make sure that connected third-party apps fit all verification requirements, including the minimum set of permissions, validation of input data from external sources, and much more.

3. Extraneous apps functionality

It came up that nearly 50% of assessed mobile applications have hidden functionality because of developers creating features that simplify software testing and debugging. In the future, they are likely to be in a production version which can be exploited by malicious users.

How does it work? Hackers effortlessly download the app, examine log and configurations files, and even the code itself, discovering vulnerabilities and extraneous features. Unauthorized users get access to the back end and can perform high-privileged actions, which may lead to revealing sensitive data, cryptographic constants, ciphers, and intellectual property.

It goes without saying that companies should consider this case and prevent their app from potential risks by ensuring high security level.

Elevating the mobile app soundness: 3 steps to make

How can a company create reliable software under tight deadlines?

Step 1. Implement security testing at all SDLC stages

According to the World Quality Report 2019-2020, over one in four respondents have optimized testing processes by introducing Agile methodologies. Once the company has introduced them, iterations become shorter with more frequent releases.

Security is of equal importance to deliver 360-degree safe, high-performance, user-friendly software solutions. So, try to build security testing from the initial steps relying on one of the key best practices to not test late in the SDLC when some vulnerabilities are overlooked and are cost-consuming to fix.

Solid test strategy, preliminary sensitive data identification, and building threat model compile the backbone of avoiding security issues in the future.

Step 2. Don’t bail on penetration testing

Application safety can also be evolved through penetration testing. Security testing specialists simulate the actions of real hackers, including spotting the vulnerabilities, exploiting them, and getting access to the necessary information.

Pentesting major perk is the search for particular loopholes required to achieve certain goals. The exploitation of vulnerabilities can lead to negative consequences in the form of a server crash or restart. So, ensure that you are ready for such responses.

Step 3. Automate more security testing

Automating security tests is another trend reflected in the WQR. Apart from achieving faster time-to-benefits, it reduces errors and increases test quality. More than 50% of respondents report that automation has decreased their overall security risk.

However, its full-fledged deployment is impossible as some actions are to be done manually. Nearly 30% of surveyed companies face challenges while balancing between these approaches.

Considering that each app has unique architecture, business logic, and technical peculiarities, various techniques and frameworks can be leveraged to verify its security.

In a nutshell

Within great demand for portable devices caused by the unstable situation, many companies kick-started building novel bespoke mobile solutions.

It’s vital to provide their security and high quality to lead in this ever-so-competitive market elevating end-users’ CX. It can be spoiled while facing pervasive security challenges like data storage, network communication, extraneous functionality, and more.

Harnessing OWASP security testing recommendations, businesses can easily overcome them. And a1qa – a grizzled QA vendor focused on testing the boundaries of what’s possible – can supervise the process to help you deliver upscale software solutions.

Have questions on security testing? Feel free to ask them to our experts.

The perfect world should have every mobile app tested on all sorts of popular devices. It’s difficult to implement but possible and indeed necessary to accomplish. At the early stage of every QA project, the team should make a choice: run tests on emulators, simulators, or real devices.

Each team has to decide on the strategy to develop and how to base the checks. In this article, we’ll talk about different testing options, and we hope it’ll help you make a choice while checking the quality of your product.

Pros and cons of emulators and simulators

Emulators and simulators are good to grasp the idea of the product quality level at the start of the project. They are also necessary to conduct initial testing in a short time and detect critical defects.

Will emulators and simulators be enough for testing? Unfortunately, not.

Let’s consider their four main drawbacks

  1. These solutions cannot follow human logic. Consumers use a mobile app on a real smartphone or tablet, but not on an emulator.
  2. It’s impossible to emulate all characteristics of the phones and provide a real mobile environment when running tests on the emulator (e.g. phone’s overheating, battery level changes, conflict of additional applications running in the background, connection to the charger, wireless charging usage).
  3. Many user actions cannot be modeled on all emulation systems (GPS, USB sensors, switching between Wi-Fi and mobile internet, etc.).
  4. Checking on emulators cannot reflect technical features of each smartphone model and cannot consider the real operating system of the device.

Real devices: advantages and disadvantages

At the end of 2017, the total number of licensed mobile apps for Android and iOS had reached 5.5 million. Every month this number increases and seriously affects the competitiveness of the products.

Therefore, companies are interested in releasing apps that run smoothly on the majority of devices preferred by their target audience. Testing on real devices can help with that.

Even if checks on real devices are more resource-intensive and expensive, this testing has its advantages.

  • It’s carried out in real conditions. During manual testing, the tester interacts directly with the device and can control the user interface in the same way the real consumer does (scroll, double tap, etc.).
  • Such testing recreates the actions that consumers perform while using the app (e.g. hardware interrupts such as SMS, calls, push notifications).
  • Payment gateway testing is also impossible to be performed efficiently on emulators. A QA engineer won’t understand whether the money was written off when one has subscribed to the service. The informative results of such a test can only be obtained with the help of a real SIM card.
  • Another recent example is related to testing Pokemon Go. A simulator won’t show the location of a Pokemon in a 100.000 crowd. To perform high-level testing of AI games, the tester will have to use a real device.
  • The accuracy of rendering up to each pixel can only be fully verified on a real device. It also allows testing the brightness and screen resolution, using different lighting scenarios. This is especially true for game apps.
  • When releasing a product for new versions and models of smartphones and tablets, testers primarily use real devices.

Summing up

The success of the product influences the reputation of the brand and affects the number of downloads, users’ relevance, rating, and reviews. Therefore, before releasing the product, check it for the compliance with all the criteria of app quality.

End users trust the applications that run quickly and without errors. That’s why it’s important to find a balance between emulated testing and testing on real devices.

It goes without saying, it’s very сonvenient when all verification resources are available, and they just need to be scaled to fit your budget and product.

At a1qa, we run a proprietary testing lab with 300+ multiple devices – smartphones, tablets, wearables – that will cover the needs of any project.

Request a free consultation with a1qa experts and find out how we can ensure the quality of your mobile application.

Computer vision is used in a variety of modern devices and security systems. However, its application in test automation isn’t widespread. Most often verifications are limited to comparing two images or searching for a particular element in an overall picture. Is it possible to go beyond this? Is there a way to make automated tests ‘see’ all objects on the screen of your tablet or smartphone, for instance?

Read our article to learn how to streamline mobile test automation through computer vision, what tools to choose, and why its application sometimes can be restricted.

In most cases, to automate testing of iOS and Android mobile apps Appium is used, which is a solid tool. However, the scope of its possibilities is at times limited.

For instance, automatic search of certain elements within the same image can become a challenge for Appium.

The issue is that it can’t track location of individual elements of an image on the screen unless developers have previously added the corresponding unique addresses for each of them. Appium will overlook them.

What is the way out? Make use of computer vision.

Computer vision potential

Computer vision is a scientific discipline that allows machines to ‘visually’ analyze their environment. Images/videos usually form the core of this process.

Nowadays, the technology allows recognizing people by their faces and postures, helps unmanned vehicles to distinguish road signs and identify pedestrians accurately. It is also used to process images in medicine and support manufacturing.

This technology serves to solve the following tasks:

  • Object identification

Computer vision assists to detect whether the video contains a particular object. Images search by their content, the assessment of the object’s location, and the defining of characters in the text also belong to the list of this function.

  • Estimating speed of moving objects

This point presupposes processing a sequence of images to determine the speed of each point of the image.

  • Image recovery

Its core goal is to remove noise (fuzzy image of an object in motion).

  • Scene restoration

If there are more than two scene models, it’s possible to recreate its three-dimensional model.

Mobile testing automation using computer vision

Furthermore, the technology under discussion serves to automate the mobile software testing process.

In automation, it is used specifically for searching for individual elements in the overall image. It is necessary to pre-cut these elements and store them. This process isn’t appropriate for mobile testing automation on devices with different screen resolutions.

Therefore, the automation of this process will help to eliminate the need to manually cut elements out, thus optimizing the workflow significantly.

How to find the necessary elements in the whole image?

Computer vision tools serve this purpose. Combining them with Appium, test automation engineers solve the existing issue.

Let’s discuss each tool in detail.

Overview of computer vision tools

OpenCV

This С/С++ based tool is an open source library that contains computer vision and images processing algorithms. It can also be applied for Java, Python, Ruby, and some other languages.

OpenCV performs image binarization by converting a full-color display to a monochrome with only two types of pixels (dark and light).

Binarization is performed by either an adaptive or a threshold method. The first one is applied only to heterogeneously lighted areas of the image. The second one detects a certain threshold, which allows dividing the image into black and white.

Built-in algorithms separate the background from the object itself, as well as search for individual elements by contours. Open source code allows combining these methods for a specific solution.

SikuliX is an alternative tool when searching for an individual element within the overall image. It represents an open cross-platform script development environment focused on programming GUIs using screenshots.

For scripts creation one may use such languages as Ruby and its implementation jRubi, Jython, constructions from Python. The program is applied for Windows, Mac OS X, Linux. SikuliX is based on OpenCV algorithms.

Tesseract OCR

This is one of the most popular and high-quality programs for text recognition from images. It is written in C/C++ and is suitable for Mac OS, Windows, and Linux OS.

This tool supports new programming languages and fonts, while neural network forms the basis of an updated product version 4.0.

Leptonica (image processing library), the latest version of Tesseract OCR, and data for learning the desired language (for example, Spanish) are necessary to start working with this solution.

When combining these tools with Appium, the automated testing of a mobile application looks like this.

A screenshot of an image is created automatically, then it is divided into separate elements. Each of them is added to a configuration file. Engineers already have the coordinates of each element.

After that Appium accesses the configuration file, obtains the necessary information, and interacts with these elements using their coordinates.

Why is computer vision not a versatile solution?

Despite its vigorous development, QA and Dev teams can’t implement it on a daily basis.

It happens due to the following factors:

  • Dependency on the image quality

Sometimes the quality is quite low. That’s the reason why computer vision tools fail to provide an accurate result.

  • Inability to automate all test cases

It happens due to the existing limitations in the process of recognizing animated elements.

To sum up

Appium is a proven and robust mobile test automation tool. However, sometimes test automation engineers opt for combining it with computer vision instruments in order to elaborate a sustainable solution.

The one that will provide you with exact and quick results and can be extended to multiple applications with minimal effort.

Contact us to get more information on test automation service.

Three decades ago, the advent of mobile phones made telecom business extremely profitable. Today, digital transformation makes their life rife with challenges.

In today’s blog post we examine the most vital telecom challenges and ways to overcome them with the help of Software Testing and Quality Assurance companies.

What challenges make telcos’ life difficult?

Seamless infrastructure

Flexible, dynamic, and scalable infrastructure is the need of the hour for the communication companies. Without it, embedding of any smart solution will be impossible.

It’s also important to take into account that various services provided by the telco put different demands to the network, sometimes – the opposite. For example, those subscribers who use communication device will value the quality of sound and connection speed, while for machine-to-machine devices – that use network resources to communicate – low power consumption and an opportunity to connect multiple devices matter. The speed of the connection is not of high priority for them.

Seamless infrastructure that will allow for developing multiple services is the integral part of the telecom business.

Declining topline

With the boom in the mobile communications industry, telecom companies have to shift from traditional voice and messaging services to new offerings. Otherwise they will run out of business.

For sure, these new services should have no functional snags that will do more harm than good and all efforts will come to naught.

New offerings

Considering the point above, Internet of Things, Mobile Money transactions, OTT services should help retain customer base and increase revenues.

However, the primary goal for any telco is to find out the preferences of new generation. Subscribers today opt for WhatsApp, Skype and other messengers. What do telecom companies have to offer in this connection? For example, they can re-route calls to messenger apps if the subscriber is out of the network coverage area, but is available in the WiFi area.

Another solution is to build business relationship with players from other industries: online retailers, bank and finance services providers, transport and logistics companies.

Participation in Internet of Things projects is also a promising solution. To deal with the IoT ecosystem, telecom companies have to build strong partnerships with the technology providers in the e2e IoT value chain.

Applying to well-established Quality Assurance service providers can help to ease out most of these obstacles.

How QA companies help telcos tackle the challenges

Ensuring quality of the key business products

Business support systems (BSS) and operation support systems (OSS) are software components that are used to run telco business operations towards customers. Proper testing will guarantee that the BSS/OSS solution meet all business and customer requirements.

More and more often telecom providers come to realize that their BSS solutions are not up to new industry challenges and become too costly to support. As a result, telcos undertake modernization and upgrading of the software. In this context, QA providers can help to ensure proper data migration from the legacy system to the target one.

Optimizing QA processes

Professional QA consultants will examine the existing QA process and recommend a plan to improve. They will also develop right test documentation and quality metrics to measure the results. QA consulting team can also implement the proposed solutions, supervise the entire process, addressing any issues that will arise.

As a result, the telco vendor will get a well-set QA process that will fit their type of business and developed solutions.

Supporting innovations

QA and Software Testing providers support communications vendors in their pursuit to launch new services and apps. Timely testing will help the telco to outshine the competition. But this brings forth the need to ensure that new products function properly, are convenient and secure.

Ensuring positive user experience and customer retention

Launching new products isn’t the reason to forget about the tried and tested ones. There are still many customers who use their mobile phones to make calls and send instant messages. Therefore, it’s vital to ensure high performance of the backend infrastructure, develop high-quality IVR menu that will speed up communication with the operator, create positive user experience and increase loyalty of the long-term subscribers.

a1qa eagerly helps telecom industry beat all the challenges. We run a fully functional Center of Excellence in Telecom. The team of the CoE focus on testing all sorts of telecom-related solutions optimizing time-to-market and reducing the number of customer complaints related to quality.

This is what Julia Ilyushenkova, head of the center of excellence, says about the Telecom – QA business prospects:

Many communication companies run their own development and testing departments. However, when the project of the software modernization or upgrading approaches the active phase, the QA team is to be scaled up very often. In this context, managers come to realize that it’s no effective to hire and educate new team members. Outsourcing testing needs to the dedicated team of QA engineers with years’ experience in telecom – is the solution.   

Moreover, it’s not that easy to find test automation or data migration pros. As for us, we have a pool of over 100 engineers who perform testing of telecom solutions and can tackle and challenge.

Summing up

Telecom operators should reinvent their roles in the new world as the missed opportunities will cost too much. Obviously, it’s become more difficult to catch up with the industry demands as time goes by.

Seamless infrastructure, high quality of the traditional and new services, and optimized processes – are the key elements to retaining customers and increasing the client base.

And finding a professional QA team that will accompany telco on the journey to success in the 21st century is a good start.

Do you want to stand out in the Telecom industry? Contact our Telecom testing team now. They know how to help you!

Recent years have brought in a lot of innovations. Technologies have moved so far forward, and the progress is seen with the naked eye. All these recent alterations will definitely impact the sphere of software development.

And as always, business will want the high-quality product launched as early as possible. In today’s blog post we share the prominent QA trends for 2018 to help shape future plans related to the assurance of the software impeccable quality.

#1. Increasing role of DevOps and Agile

DevOps provides for close collaboration between development team and operations staff throughout all the stages of final product creation. According to the World Quality Report 2017-2018, about 88% of the companies used the DevOps principles in 2017, which is an obvious majority. DevOps and Agile together give you the smooth and fast development process and minimize the time and money spent on the product.

‘Applying DevOps and Agile will give you and your clients in the long run such benefits as acceleration of time to market and outage reduction, increase of quality and faster reaction to changes and defects.

Moreover, today SAFe (Scaled Agile Framework) as an Agile for large teams is becoming more and more widespread. If we talk about our own experience at a1qa, we see that clients want to have QA engineers who are able to provide both manual and automated testing – cross-functional QA specialists, so to say. 

That’s convenient for both QA vendors and their clients. The former benefit from having one person who can perform multiple tasks and grow as a professional in various testing areas. As for the clients, they don’t need to spend additional time on knowledge transfer and communication’, says Vitaly Prus, Head of Agile Testing Department at a1qa.

#2. Ongoing trend on test automation

Test automation is a great method to shorten software lifecycle. Every client is eager to have time to market accelerated and cut the costs of the whole process.

However, automation should be applied wisely. If it’s an end in itself, there is no reason to use it. For example, fast changes in the product will make the automation process unnecessary and unreasonable. If the customer wants to automate testing process, it’s always worth estimating its practicability and figure out whether there is even a slight possibility of negative earnings’, Maxim Chernyak, Head of a1qa Test Automation & Performance Lab, talks about the trend.

However, test automation is under-exploited now as only parts of the QA process are automated. According to the World Quality Report 2017-2018, the average level of automation is about 16%.

#3. Open source tools

Today a big portion of IT companies accept the use of open source tools for testing process, which are easy to apply. Moreover, they are technology-savvy and offer great testing opportunities. You will definitely benefit from these solutions, as the expenses for your services will include only the costs for the actual work of your QA team.

#4. Security testing

Security today is of crucial importance for any product or system. Given the fact of the increased popularity of the IoT technologies, security testing became an inalienable part of the product development. Security and penetration testing services are worth using as hackers will continue seeking access to the IoT devices for destructive purposes.

a1qa pays a lot of attention to the security testing to assure that the protection of personal data must be implemented on the highest possible level.

‘IoT devices security is a pain in the neck for the developers of smart devices in 2018. It is reinforced by hackers’ interest in routers, cameras and other smart devices available through the Internet. Several botnets, which were used for DDoS attacks on various corporations, appeared in 2017. In addition, there is a trend for complicating and sophistication of the attack. Thus, the first versions of botnets simply gathered in password and usernames, however now they are able to compromise the device without knowing the username and password‘, Alexey Abramovich, Head of a1qa Security Testing Department, comments on the trend.

#5. Big Data testing

The expansion of Internet of Things (IoT) deals a lot with big data as laptops, home devices, various sensors and machines generating huge amount of data on a daily basis. IoT evolution, as well as digital revolution in general, plays a great role in Big Data world.

The Big Data testing will be in great demand in the near future. It seems that big data system testing will be easier as machine-learning models are becoming more sophisticated and are able to cope with great deal of data variety.

#6. Mobile testing

The number of smartphone users is increasing every year and it is expected to surpass the 5 billion mark by 2019, which will increase the mobile development and testing.

People tend to use their mobile devices for the activities they used to perform on their PCs. Considering the variety of services trusted to smartphones, customer experience and apps functionality become the most important things to check before the final release of the product.

‘As a number of mobile devices grow constantly, the number of mobile applications grow exponentially. Mobile applications are not only an additional customer acquisition channel, but they are becoming the leaders for this goal. What concerns the trends they are determined by the new technologies and innovations. For example, mobile games still stay popular, but AR technology will definitely increase the number of mobile games on the market in the near future. Apple, Facebook, Google use this technology not only in GameDev sphere – its use is much wider.

Another incontestable trend is blockchain technology which was a great deal of discussion in 2017. This technology became in high demand as it provides new opportunities and growth for businesses. However we should not forget about the other popular technologies, such as IoT, Cloud Based applications and E-commerce, which are still edgy’, Pavel Novik, Head of a1qa Mobile and System Application Testing Department, shares his thoughts.

#7. Performance testing vs. performance engineering

Today, we are moving from Performance Testing to Performance Engineering.

To amplify the chances for a successful release of the app on the market, user experience and performance issues must become the most significant things to consider throughout the entire development process.

‘DevOps and Agile practices couldn’t but influence the QA involvement. More and more often, the QA performance team collaborates with the development team, the functional testing team, and the business stakeholders. This gives an opportunity to move from simple performance tests to a deeper understanding of the way how all parts of the system work together. The use of true-and-tried practices and techniques during each phase of software development lifecycle enables the performance team to improve the software speed and robustness, ensure optimum performance given the business goal, which is the main objective of Performance Engineering‘, says Mihail Urbanovich, a1qa Performance Testing Manager.

We hope this brought together trends will help you make up smart plans in assuring high quality of your products.

Test automation isn’t a new topic discussed by the software development and testing community. However, mobile test automation is a relatively fresh trend. And the demand for the service is continuously growing. Mainly, it is attributed to the fact that mobile apps get more functionality and adopt the role of the desktop PC.

However, the attempt to get the market share first doesn’t always allow for timely testing. Manual testers don’t manage to run all regression tests as fast as needed. And this is where automation comes to help.

Benefits of mobile test automation

The main benefits of automated testing for mobile apps coincide with those typical of web apps testing:

  • Automated tests run faster than the manual ones
  • No human errors
  • Opportunity to perform simultaneous testing across various devices
  • Coverage of multiple localizations

The advantages are significant, yet the drawbacks are also worth consideration:

  • Once the operating system is updated, automated tests will stop functioning until the framework is also updated.
  • It takes more time to develop a test automation script for mobile apps. Compare: one script for web apps takes 8 hours, while for mobile an engineer will have to spend about 20 hours.
  • Many mobile test automation tools lack stability.
  • UI components differ from one mobile platform to another. Due to the overall variety, it’s very difficult to come up with a single tool that will go well with all kinds of UI. It’s either technically impossible or the development will cost too much and bring the benefit from automation to nothing.
  • Special requirement to iOS: all .ipa files should be signed with a development identity.

Choosing the right approach and tools for automation

When it comes to development test automation scripts for web apps, there are very few questions arise. Selenium WebDriver is highly-adopted open-source framework appreciated by all professional QA teams.

However, with mobile apps the situation is a bit different and the choice isn’t that obvious.

The main question, by the way, isn’t related to tools selection, but to the approach. The selected approach will predefine the tools and the automation process.
Generally, there are two techniques to automate mobile apps testing:

  • Record and Play
  • Screen Object-Mapping

Record and Play used to be very popular in the early days. The software records and logs all actions performed by the manual tester, including every mouse movement, clicks, and screenshots, and develops the code that will test the app.

Pros: fast implementation, no knowledge in programming is required
Cons: the test scripts can not be tweaked and as soon as the app is changed, the script should be re-recorded

Another technique is UI elements mapping. The approach is commonly known as Screen Object-Mapping.

All UI elements are treated as an object class, and the identifier for this class is stored in the object map.

The approach works as follows. The test script contains the logical name for the object. When the automation engine of the test framework reads the test data (login and password), it picks up the logical name of the object, select the class identifier from the object map, calls the wrapper function for the object class “Login page,” and performs the required action.

Pros:
The code is reusable
The test script is reliable and isn’t sensitive to app changes
Easy-to-understand logic

Cons:
Programming knowledge is required
Time-consuming development of scripts

We recommend to implement the second approach to provide thorough testing of the software. If you in-house team lacks the knowledge, consider hiring the third-party QA vendors to perform automation.

When you’ve selected the approach, it’s time to consider the available tools and choose the right one.

There is a great number of test automation frameworks. In the picture below you can see the most popular of them. Pay attention that some of them are language-specific (Xamarin for C# apps only). Some of them may appear to be too costly (Ranorex, for example).

test automation frameworks for mobile apps

That’s why it’s very important to weigh all pros and cons of the process and of the tool before making a sensible decision.

The a1qa team recommends paying attention to the Appium framework.

Appium — best choice for mobile automation for iOS and Android

Appium is a free open-source test automation tool for native, hybrid and mobile web apps, tested on simulators (iOS, FirefoxOS), emulators (Android), and real devices.

One of the key advantages of Appium is the support for different scripting languages: Java, Ruby, Python, C#, PHP.

Before getting down to work with Appium, it’s necessary to set up the environment composed of the following elements:

QA team to perform mobile test automation.


Let us elaborate. First of all, we install Appium Server that will map the initially generated code with various devices or emulators.

Then it’s turn to install Xcode and Android Studio with Android SDK. This will enable us to run tests on emulators, if you want to.

After defining the programming language that will be used for developing test scripts, it’s vital to install the pack of libraries. For instance, if your choice is Java language, then you’ll need Java Development Kit.

Once the software is installed, take care of the app itself. You’ll need .apk file for Android products or .ipa files for iOS. These files function as containers and make sure that the selected app can be uploaded to the necessary device.

Real devices vs emulators

Real devices or emulators? This is probably the most troublesome question for the engineers who perform testing of mobile apps. We won’t talk much about it now, as we’ve previously addressed the issue here.

The main point is that while using emulators is less expensive, it will put additional pressure on the machines thus slowing down testing.

Also, the results delivered by testing on emulators are not always valid. It’s not a rare case that test results on emulators are positive, while the launch on a real device is blocked and the test fails.

Considering this fact, the a1qa automation engineers run tests on real devices only.

Summing up

If you’ve decided that mobile apps test automation is what you need on your project, make sure that the chosen approach and framework will benefit to your team and project requirements. By identifying this, you’ll build solid foundation for achieving the main goal – deliver a high-quality product within the set time limits.

In 2016 IDC Health Insights reported that 40% of the US healthcare providers scaled up their IT budgets. The expanding budgets attribute to the development of top-notch cloud solutions and clinical applications, including EHR/EMR solutions, patients’ engagements portals, revenue cycle management and other medical software.

Given the constant growth of the medical IT market and high quality requirements, healthcare solutions need a smart approach to eliminate any inconveniences, pain points before the software will be blamed for irrevocable mistakes.

Based on a1qa almost 15-year experience in software testing for both ISVs and healthcare suppliers, we share our tried and tested tips to ensure that the solution is reliable, secure, well-performing and provides the required user experience for healthcare professionals, patients, administrative personnel and other parties involved.

Main points of testing reference

With the great variety of medical software solutions on the market, any of them should be mobile-friendly, secure, convenient, possess a user-friendly interface. Localization to all target markets or the world’s mostly used languages wouldn’t go amiss as well.

Healthcare IT testing strategy should include:

1. Functional testing

Healthcare software products provide complicated functionality that directly impacts humans. Therefore, assuring that the software functions as it was meant to – step number one for QA vendors. It makes no sense to go any further if the surgeon won’t be able to check in to the app from the operating theatre to inform about the need of the blood transfusion.

2. Performance testing

The app should respond fast. In the medical context, it’s not a passing fancy, but a necessity. Timely load and performance testing according to real-world scenarios and load metrics will guarantee the app won’t fail when it’s needed most and will handle as many concurrent users as it was developed to.

3. Vulnerability assessment and penetration testing

Healthcare software deals with confidential personal health information. And this information has become a target for high-profile cyber attacks. Back in May 2017, tens of thousands of computers at hospitals and GPs across the countries in Europe and Asia were hit. The malware blocked access to blood results, patients’ history and prescription files on a PC until a ransom was paid.

Kaspersky Lab estimated that 45,000 attacks had been carried out in 99 countries before the virus spread to the USA.

If anyone doubted about the importance of the security testing, 2017 dispelled them. Testing healthcare IT products for vulnerabilities is a top priority. Fortunately, QA providers have a legal framework to rely on.

HIPAA is the US Health Insurance Portability and Accountability Act that makes provisions for safeguarding patients information.

At a1qa, we assign medical software security testing on HIPAA-certified engineers who are fully competent to handle patients’ information to ensure its security.

4. UX testing

Usability testing is a crucial step within a healthcare setting. What does it have for a quality assurance team? First of all, it brings about the necessity to identify all roles of the software users, and develop diverse test cases to cover all user scenarios. A tester should be careful and meticulous to gather the right data and interpreting it in the correct way.

5. Assessing localization quality

It’s hardly possible to find a hospital where all the personnel and all patients belong to one nationality and speak a common language. To address the language issue, most developers strive to make their medical IT solutions international. Therefore, internationalization readiness and localization quality should be tested as well. It will guarantee that the app can be reliably used from any location by the representative of any linguistic group (the target one, of course).

6. Focus on mobile experience

Mobile devices have hugely impacted various fields, including healthcare. The mobile experience has transformed many aspects of clinical practice. Healthcare professionals have gained aid in patient management and monitoring, health records maintenance and access, and many other routine but still very important, tasks.

Therefore, testing specialists should pay special attention to assuring quality of the mobile apps. Selecting right suite of real mobile or/and wearable devices, developing accurate test cases and simulating real-use conditions are one of the most important steps to successful testing.

Domain knowledge accumulation is a must

Strong technology expertise is required to perform informative testing. However, domain knowledge is also very important. Healthcare is a highly regulated domain. Moreover, it is prone to constant changes. To be knowledgeable, we recommend testing specialists study reliable sources of healthcare information, online magazines, regular in-filed reports, etc.

Summing up

The constant growth of IT investments by healthcare vendors signals the need for testing providers to practice medical software testing with the focus on domain regulations, security, performance, usability, and attention to mobile experience. And only a highly professional team with an eye to detail will help to eliminate all the bottlenecks before the software will be delivered to final users.

Today we’ve shared the basis of our medical software testing approach. To learn how we implemented the comprehensive approach in practice – click here.

Stay tuned to find out more testing insights from a1qa team.

On August 3, Google has announced it has launched new search and discovery algorithms on Google Play. The new algorithms give preference to higher quality apps.

The announcement was made in the Game Developer Conference. The new algorithm has been launched in early August. What is the reason for this change?

Previous algorithms analyzed only the number of downloads and user reviews. Some unscrupulous developers applied to special services to cheat the number of downloads, thereby increasing the application rating. As a result, not all popular applications had high quality.

Some developers of popular apps do not pay attention to negative feedback from users, striving to add more and more new functions to the application before their competitors will. Of course, there is not enough time to fix all defects then. This fact results in launching new versions of the application with the same defects. It’s understandable that users leave negative feedback and uninstall the application.

When users install first-rate mobile applications on their smartphones, they are expecting to get quality apps without functionality and performance issues. And such factors as excessive battery usage and crashes can cause irritation and make users uninstall apps. Google notes that half of 1-star reviews mentioned app stability.

Thanks to the new algorithms, users will find the application without defects first. Developers who focus on app quality, in their turn, will be able to see a boost in their rating and a greater number of downloads.

What awaits unscrupulous developers?

All applications that are ranked high will be thoroughly tested. Once a bug is found, the application will be removed from the ranking for an indefinite period. The developers will receive a letter with concerns they have to address.

It is unclear how many negative feedbacks and deletions can lead to downgrading. Google does not disclose concrete numbers. But it is known for certain that the algorithms analyze various quality signals, such as application performance, battery usage, statistics of crashes, and deletions from various mobile devices. Feedback from users will be taken into account as well.

According to Google representatives, the result is already tangible: users download higher quality applications and the amount of uninstalled apps has reduced.

How to save the application from downranking?

New algorithms will make developers apply a more responsible approach to software quality issues. It can be frustrating to spend several months on product development and to be punished by Google and get forced to fix defects. You will have to spend extra time not only to addressing the concerns, but also to relaunching the application. Meanwhile, users can find a better analogue.

How can you find all defects in advance and ensure your application has a high position in search results? The answer is evident – test your mobile application before placing into in stores.

Professional testing of your application will minimize the risk of receiving negative comments from Google. You will be able to focus not on fixing bugs, but on improving the application and developing new features.

Right before releasing the application, you can perform basic checks and detect defects using the Google Play Console:

  1. The Android Vitals application will help you identify stability issues and know how the application works on user devices.
  2. The test report will show all defects detected in your application during the alpha or beta testing on the most popular devices.
  3. User feedback will inform you about the problems that your audience is facing and devices that experience most problems.

It is evident that these checks will not reveal all bottlenecks. The process of mobile applications testing is handicapped by various parameters and operating systems of mobile devices, screen resolutions, and usage of different Internet connection types.

How can you benefit from QA engineers assistance?

QA engineers can perform the following actions:

  • Thoroughly examine the application lifecycle: from installing to upgrading or uninstalling
  • Check the application operation under different conditions that a real user may encounter (horizontal and vertical screen orientation, different types of connection and switching between them, interrupts, external devices connection). For example, your application is aimed at downloading files from your smartphone or tablet to Dropbox. While the files are being downloaded, the Internet breaks and the application is down. Such operation is a defect. Similar stress-scenarios can be provided for every application
  • Check GUI and navigation, using different buttons and gestures
  • Test the application performance with different language settings and localization
  • Analyze application operation and performance
  • Check how the application process media and audio, send notifications
  • Perform specific tests on mobile devices (authorization using accounts on social networks, synchronization with other accounts)

This list includes only basic checks that are applicable for most mobile applications. In fact, this list can be much longer.

QA engineers, who tested tens or hundreds of applications, know how important it is to test the application when switching from a Wi-Fi network to a mobile 2G / 3G network and vice versa, as well as to test the application performance with pure Internet connection.

We can enumerate different types of checks almost endlessly. However, covering all aspects can make the testing process long and expensive, which is unacceptable. Therefore, a QA engineer needs to understand how a particular application works to analyze complex, non-trivial defects.

What about the AppStore?

The situation has also changed. Previously, optimization of the application for AppStore mainly included the selection of keywords and adjusting the design. Now, more and more developers receive messages from the store about bugs in their apps. If they don’t fix defects by the deadline, the applications are deleted from the store.

Summary

The search and discovery algorithms directly link the quality of your application to the number of downloads and the place in the ranking. Once you have invested in development, make sure your app has high quality – test it.

After thorough testing, you will be sure that issues will not spoil the impression of using the product. And besides a high position in the store, you will receive positive feedback from satisfied users.

In the last article on mobile apps testing we’d like to tell you how we tested on our own accord Pokémon GO that became a smash hit in 2016.

It should be immediately noted that we performed testing at the beginning of August, immediately after the game was released to the market. To date, many of the defects have been fixed. But the objective of the article is not to list the relevant defects but rather what to focus on while assuring quality of mobile apps.

By the way, we recommend mobile testers to test the existing apps from time to time. It helps hone the outside-thinking and investigation skills.

So, last year in July we downloaded the app to our smartphones to immerse into those times when at school we collected Pokémon pogs and rushed home to watch Ash and Misty’s adventures.

While testing we discovered that the games has its fair share of bugs and glitches. What have we found out?

First, we gathered all the information we could about the product.

What did we know about Pokémon GO?

  • Multiplayer online role playing game.
  • Free-to-play.
  • It uses real location information to encourage players to search far and wide in the real world to discover Pokémon.

What else? We also knew that the app was mainly targeted at the users from the USA, Australia and New Zealand and was built on the Unity game engine.

It supported iOS 8 and 9 versions and Android 4, 5, 6. Keep it in mind that testing was conducted in August, and it was still a month before iOS 10 was released.

It’s an important moment that testing on tablets wasn’t required as the app wasn’t adapted to tablets.

To detect user’s location the app would use the GPS module and constant internet connection so these functionalities also had to be tested.

Having analyzed the info and the available statistics we made up a list of the following test configurations:

For iOS we included the devices starting from iPhone 5.

Android devices were more numerous. This was due to the vast number of versions of the system and various devices popular in different regions. We also managed to check the app on 5 different screen resolutions.

What defects did we find in Pokémon GO?

For a number of reasons, such as no access to the app backend (the customer is hypothetical) and no opportunity to get the scope of test data (and test geolocation) we could hardly detect all defects. But even those that we were able to detect would have been enough to compile a multipage test report.

All the defects we grouped according to their severity level:

Blocked defects:

  • Authorization Failure. It seemed like every second user of the Pokémon GO faced this issue. And it wasn’t not clear whether the problem’s roots lied on the client’s or server’s side.
  • Another frequently reported bug took place when the user tried to create the in-game character. The mistakes of the indistinct nature prevented users from starting the game.

Critical defect:

  • The so-called three-step glitch. Pokémon GO is the augmented reality game. It tracks the nearest monsters and the user has to catch them. Initially, the steps printed next to the Pokémon would show the user how far the monster was. Thanks to the three-step glitch this feature became useless. This glitch showed Pokémon in the vicinity as always being three-steps (three paw prints) away, no matter how much you should walk.

As well experienced testers we proved all the defects with screenshots.

Major defects:

  • Broken UI. Relaunching the app or clearing the cache would resolve this issue.
  • No in-game characters and Pokémons images. However, by some indirect indicators we guessed that they should be there.
  • AR mode issues. It turned out that many users couldn’t use the mode. We guess that the essence of the problem was connected to the software and hardware specifications.

Some average defects were related to the application several functions. Catalogue challenges, frequent camera issues and GPS module problems spoilt the monster-catching experience.

Moreover, there were minor defects that would rather make user smile than swear. For example, UI defects (look at the screenshot below) and the opportunity to exceed the number of items in the inventory.

Shall the customer be real, we would have generated the detailed bug report and product quality report. We would also perform another iteration of testing.

Pokémon GO became widely available in July last year and generated $200 million in revenue within 30 days of launch. The game surpassed Candy Crush Soda Saga, the top grossing mobile games of all times.

However, it was unable to keep up the momentum and in September already more than 10 million users stopped entering the game. The reasons are many, but the detected defects can be among them. Who knows how many users would have preserved their loyalty to the game but for all these bugs?

That’s it. We’ve taught the theory and tested the app. We hope you’ve enjoyed the read and will take advantage of it.

Any questions left? Welcome to the comments!

We continue our mobile app testing series of articles. This time let’s discuss how testing team shall support the product at the release stage.

Once the first round of testing is over, it’s important to realize that it’s hardly ever enough to ensure outstanding quality of the product. The first round is usually followed by at least two more where bugs fixing and application stabilization should be verified.

Testers’ activities after the first round of testing

  1. Defects validation. After the defect was marked as Resolved in the bug tracking system, the reporter should check whether it can be reproduced again or not. If not – the bug is closed. If the problem still exists – reopened.
  2. New feature testing. If a new feature was added to the application, testing team should check it on all devices and compare the app performance with the previous build.
  3. Regression testing is a type of testing performed to verify the previously developed software still functions correctly despite the implemented changes (software enhancements, configuration changes, software deployment in new environment, etc.)

In most cases the app will gain high quality after several test iterations and can be shipped to the market.

The app should meet the following criteria to be fully ready for release:

  • Lack of critical and major defects that will affect user experience.
  • App compliance with online stores requirements. Non-compliance may result in the publication deny even if the app is 100% perfect.

Depending on the mobile platform you build your app on, the release checklist may contain the following issues:

Android

iOS

  • The application should possess a unique title and fall into one of the categories in the store.
  • The application shouldn’t contradict the Human Interface Guidelines.
  • The application can be published unless it contains banned materials or it duplicated the functionality of the already existing product.

Taking into account these and many other aspects you’ll ensure that the app is ready to be shipped.

That’s it. Now let’s briefly sum up the main peculiarities of the mobile apps testing:

  • Strategy and selecting devices make a much bigger difference than for web and desktop systems testing.
  • It’s a “must” to include specific mobile checks into test documentation.
  • Utility programs can significantly facilitate your testing process (gathering stats, taking screenshots, etc.).

Make everyone feel the part of success

And the last tip that some managers neglect: thank your team once the project is over. It’s very important to know that you are valued. At the end of the day, the app’s release is the success of the whole team.

We are done! Thanks for taking your time to read the entire cycle of articles. We tried hard to compress the information we wanted to share in readable publications.

In the last post we’ll show you how we applied all this knowledge to ensure quality of one of the best-loved and best-known apps of 2016.

Sure you’ll enjoy the read.

The strategy is developed, test documentation is prepared, the team is ready to begin.

Time to run tests. As we’ve previously said, mobile apps should be tested against multiple devices. However, we’ve noticed that the majority of defects are not sensitive to the environment and will be reproduced on any device. Accordingly, it’s not necessary to perform all tests on every device.

The first testing round shall include the full test and compatibility test.

  • The full test is aimed at checking the entire functionality of the application. Testing is carried out in two different ways: applying positive and negative test cases. At this stage an engineer should check how the app interacts with the supporting back-end infrastructure. Specific mobile checks should also be performed in full. Moreover, during the full test the app’s compliance with iOS and Android Interface Guidelines should be verified (iOS Human Interface Guidelines, Android User Interface Guidelines).
  • The compatibility testing includes checking of the main functionality and testing for displays of the devices with rare software and hardware specifications. This test presupposes only positive test cases and checking the most common use cases. It doesn’t include testing against unthinkable usage scenarios.

Mobile apps testing is a widely discussed topic. As our article is targeting QA managers, we won’t go into the most obvious issues and better specify some of the tips that can be neglected or undervalued at times.

1. Set up Wi-Fi hotspots

It’s very important to check mobile apps at different connection types and speeds.

Setting up multiple Wi-Fi spots will help save time for testing, emulate real-world working conditions and discover defects that could have been missed otherwise.

Have a look at the spots examples:

SSIDEncryptionSpeed LimitHidden (yes/no)
WEP256WEP256 kbpsYes
WEP512WEP512 kbpsYes
WPAWPA1024 kbpsNo
WPA2WPA2UnlimitedNo

2. Perform testing on more than one device at a time

This done, you’ll check two or more interfaces for the same aspects simultaneously.

3. Conduct education of the project specialists

For example, at a1qa company there’s a Mobile Applications Testing Center of Excellence. It provides regular trainings and workshops for the in-house team.

More experienced senior testers share their expertise, talk about differences in mobile operating systems, show real bugs detected in real software. It’s also useful to learn how to apply utility software that will help gather logs, take screenshots, install build, etc.

4. Take advantage of the technical audit services

Do not have the complete certitude in your testing process? If not, take advantage of the technical audit services to assess “technical health” of your project.

To put it simply, experienced consultants will arrive to examine your workflow, ask relevant questions on how you test, report results, assign people, etc. As a result, they’ll come up with recommendations for improvement.

Solving ongoing issues

The project proceeds as it was planned? The customer doesn’t interfere and let you do your job? Great! However, it’s a rare case. More often, you’ll have to deal with customer’s questions, proposals, new requirements. Do you know how to cope up with them?

For example, you’ve offered the customer to perform testing on too many devices and asks you to cut the number down. You should explain the possible consequences and fulfil their requirements. Using the collected stats, remove the less popular configurations from the list.

Another case that may require discussion is the customer’s request to run tests against a device that you don’t have at your disposal. Find out the reasons of such a need and try to offer another option that has similar software and hardware specifications.

The customer’s development team can’t reproduce the bug you’ve reported? Sometimes it happens. If you reset the device, the bug may not be reproduced on your device as well. But it doesn’t mean it doesn’t exist. To avoid such disputable situations, accompany defects with video or screenshots. It will ensure that the defects won’t be returned to you marked as “To be reformulated”.

Test ending

At the end of every test iteration, the following artifacts should be generated:

  • Defects submitted to the bug-tracking system.
  • Completed test documentation and quality report. The quality report usually contains estimation of the application current version quality level and is based on the number of defects and their severity.
  • Most critical issues description (from the point of view of the end user).
  • Statistical data on the number of defects and their nature. Statistics helps to monitor product quality dynamics and estimate the quality of developers’ work.
  • Recommendations for improvements.
  • Conclusion on the product’s readiness for release.

Once testing is finished, don’t rush saying goodbye to the customer. Product release is coming and it won’t happen without quality assurance and control specialists’ participation.

Next week we’ll talk about how testers should support the product release.

After developing testing strategy, we move to the next step and start planning test activities. Test planning involves describing tests that should be carried out in test documentation and allocating resources.

Before starting to write test documentation, define who will be conducting testing. List the individuals and indicate their areas of responsibility.

While this stage can be a tutorial in itself, this portion of the article aims to bring out the tips that will enable you to appoint the rights specialists.

  • Assign the tasks to the engineers with the real-world experience in testing mobile apps.
  • If you lack resources with the needed skills, conduct preliminary education of the team.
  • If it is possible, address experts to consult you on the peculiarities of testing mobile apps.
  • Advise your team to get familiar with the similar apps before testing. It will help to get an overview of the functional patterns and interface peculiarities of such apps.

Creating test documentation

After you’ve appointed the team to test the app, start preparing comprehensive test documentation.

Proper documentation can significantly improve the product quality due to clarification of details and check lists. Once testing is over, test documentation help to estimate how successful it was.

There are several types of test documentation:

The Acceptance Sheet contains a list of all product modules and features that should be tested, as well as the results of their testing. Generally, the Acceptance Sheet also contains statistics on the most important build performance indicators that will determine its overall quality.

The Test Survey contains the list of the specific checks of each feature and expected results.

Test Cases (test suite) is a set of input data, preconditions and postconditions, under which a tester will determine whether an application, software system or one of its features is working as it was originally designed to.

Documentation typeWhat does it specify?When shall we use it?Example
Acceptance SheetModules and features of the app that should be testedIn short-term projects with simple business logicsWebsite login form

Test Survey

Specific checks of a single feature In medium-sized projects with clear business logics Website login form:
  • Correct data input
  • Wrong user’s name input
  • Wrong password input, etc.

Test Cases

A sequence of steps to test the correctness of  functionality behaviorIn huge and long-lasting projects that require deep in-field expertise from the testersWebsite login form:
  • Open the login form
  • Enter the following user’s name: test1
  • Enter the following password: test1
  • Press Enter button
The expected result: the users get to the Home page.

Whatever documentation type you use, it should contain all tests for any usage scenario.

Don’t forget about the specific mobile tests. We advise checking the following aspects:

  • Installation, launching, deletion and application upgrading
  • Screen orientation changes
  • Working with various connection types and switching between them
  • Responding to interruptions
  • Graphical user interface and navigation
  • Notifications
  • Working with physical buttons
  • Data control: saving, usage and deletion
  • Application functioning in power saving mode

Let’s mention and explain some of these checks separately.

If you test an app using different types of Internet connection (2G/3G/4G/Wi-Fi) you may discover wrong handling of connection loss and incomplete files downloading at slow connection, which can be very frustrating.

Another example is testing of an application reaction to interruptions and switching to other apps. At times it may cause a disorderly shutdown and loss of the input data.

Too many checks to keep in mind? Make use of the mind maps. They efficiently structure information and will help mobile testers not to miss the points that should be taken into account.

Distributing builds to testers

At the stage of writing test documentation, negotiate the app distribution from the customer to your team. The easiest way is to send files by email. However it may be quite challenging as the security policy of your company may block the incoming letters with the attached files.

If the customer prefers to provide you with the build directly, ask them to use any sharing service (Dropbox or Google Drive) or distribution services like HockeyApp, iTunes Connect, Crashlytics, Ubertesters. The latter allow to upload apps, see previous builds and generate crash reports. The price of these services is very reasonable and it will definitely pay off.

Also it’s possible to upload the app from the online store if it’s already there.

Now we’ve completed another vital stage of our testing project.

Let’s make a list of what we’ve already done:

  • Discussed all questions with the customer.
  • Selected the devices for testing.
  • Agreed on the type of documentation.
  • Estimated the project duration.
  • Negotiated on the builds distribution.
  • Assigned QA engineers to perform testing.

This was our attempt to bring out the most specific issues of test planning. Everything is ready to start testing, which will be the subject of our next article.

Stay tuned!

a1qa Company specializes in assuring quality of software products. Mobile apps testing is one of the main services with more than 220 company’s employees certified to engage in mobile testing projects.

Today we offer you a series of articles prepared by Pavel Novik, head of the Mobile Testing Center of Excellence. The series will be made up of 5 articles. One article is mapped to one project stage. We’ll start with the proper strategy development. Then we’ll touch upon test documentation preparation and testing itself. Product release and associated testing activities will be the subjects of the fourth piece. And to make it more interesting for you to cope with all this amount of theory, we’ll tell you how we’ve decided to test the popular mobile game of 2016 and what bugs we’ve discovered.

So let’s imagine that we’ve been addressed to assure quality of some mobile application. The customer’s goal is to release the product to the market without defects.

We’ll start with a strategy. In our context strategy is the selection of testing devices and planning of all testing activities. The strategy should be presented and agreed upon with the customer.

The first step is to analyze the product and get answers to the following questions:  

  • What are the project goals?
  • What is the target audience of the product?
  • What are the app’s technological specifications?

The answers to these questions may help estimate the project scope and assign it to the employees with the right set of skills.

What devices to test on?

Once we’ve received questions to the answers listed above, we have to compile a list of the rights devices to test on.

Consider the following factors:

  • Customer’s preferences
  • Target markets/regions
  • Target audience
  • Application specs (oldest and latest OS versions supported, app requirements to hardware, etc.)
  • Budget limits and timeframes.

Let’s analyze every point separately.

  1. If the app is already available live, the customer may have gathered stats about the user’s devices. Some customers also have their own preferences about the testing devices. Check if there are any in your case.
  2. Target region also matters. If the app is aimed at the Asian region, give attention to the Chinese smartphones Xiaomi and Meizu. In Europe Samsung devices are more popular, while in the USA Google (Nexus) and HTC devices hit the market. However, making guesses isn’t a good way. Analyze statistics to make the informed decision.

There are numerous free resources that enable to see, compare and analyze the list of the most and least popular devices. Consider several of them and compile the final list. Some of the most popular are Antutu, Akamai, DeviceAtlas, Futuremark, etc.

For example, the most widely used in North America in December 2016 are the following:

  1. Knowing target audience will help to limit the number of devices according to their “age”. Statistically, the youth prefer to use the latest devices, while the elder generation is loyal to the smartphones and tablets of 3-4 years on the market.
  2. Analyze the hardware and software specifications and remove the outdated or, vice versa, most recent devices that aren’t supported by the app from the list.
  3. And the last but not least important point is to comply with the budget and time limits. Sometimes you’ll find it necessary to test on 10-20 devices to provide full testing coverage. However, it may be impossible due to tough deadline or limited budget.

At this first stage you may come to face some odd questions from the customer. You’ll have to deal with them to avoid misunderstandings and make sure that the final results respond to their expectations.

Most commonly the customer will ask you about testing devices. “Why do you need so many devices?” “Why will it take you so long to click through the app?” Don’t grudge the time to answer them. A brief presentation about testing process, number of checks and the consequences of reducing the number of devices may be of help.

Initiate discussion on other options if you don’t have the required device for testing. Can the customer provide you with it? Can it be replaced by something else?

After addressing all the questions and gathering stats, we start drawing up a schematic matrix of configurations we want to test on. A test configuration is a combination of variable values (type of device, operating system, browser, CPU, database, etc.)

Every device type (smartphone, tablet, wearable devices) should be represented by various screen sizes and operating system types. Most commonly specific defects will depend on the operating system type. That’s why we recommend including the latest versions of OS in configurations (9.0 an 10.0 for iOS, 4.0, 5.0 and 6.0 for Android). Also don’t forget about beta updates. Include them into test plan.

Questions to ask the customer before testing

Is the app integrated with the third party services? What is the application monetization strategy? If it’s applicable, schedule integration and payments testing.

Was the application tested before? Previous testing results will be useful to estimate the quality of the app and to analyze the problems that were addressed by the predecessors. Moreover, ask the customer whether he was satisfied with those results.

Does the app support multiple languages? Then it may be worthwhile to perform localization testing. Negotiate it with the customer.

Finally, don’t forget to request access to the back-end and test accounts. It can be especially useful if you’re engaged in testing game app. Very often it’s not enough to pass the game to the end. Accessing the backend, you’ll be able to generate various playing scenarios and in-game events, say nothing about saving time.

When we’ve discussed all questions it’s time to start planning future testing activities, i.e. preparing of test documentation and assigning QA engineers. This is what we’ll clarify next week.

Mobile testing is a multi-faceted and complex subject area. A wide range of platforms and devices, as well as constant application updates make testing process complicated even for seasoned professionals, to say nothing about those who’re just making their first steps in assuring quality of mobile apps.

We’ve decided to help the beginners and give them a number of tips to keep them from getting lost in the mobile testing world. All pieces of advice were provided by Pavel Alekseev, mobile applications testing specialist.

Here are the 10 points we offer you to take into consideration to make the process of testing first of your mobile apps or features easier.

1. Heuristics and mnemonics

It’s very difficult to keep in mind all aspects of mobile testing. What we recommend is to use heuristics and mnemonics not to miss anything crucial. All of them were invented by professional testers. SFDPOT, I SLICED UP FUN and COP FLUNG GUN are one of my favorites. Do you know what they stand for?

2. Mind maps

The excellent tool that combines all advantages of test cases and checklists is mind maps. They efficiently structure the information and help you not to miss the points that should be considered by a mobile tester.

3. Screenshots, logs and videos

Prove your testing results with screenshots, logs and videos. What can be more reliable than the documented proof of the detected defect? For various reasons, some bugs can’t be reproduced on the developer’s machine. So it’s always worthy to support the found defects with screenshots, video or client logs (especially if there’s a critical application failure). By doing this, you’ll avoid doing one task twice and your defects won’t come back with a “To be reformulated” or “Incomplete” mark.

4. Test “monkeys”

Release your time for more difficult functional tests. Test “monkeys” can replace you in detecting crashes and hang-ups. These utilities imitate users’ simple actions, such as pressing OK button or taking a screenshot. After all, these simple steps take a lot of time and attention.

5. Screen orientation

Consider the screen orientation. Many applications are designed to support portrait and landscape formats. If this is the case, pay attention to how the application behaves when the screen orientation changes. Sometimes it may cause memory leaks or crashes.

6. Real users

Involve real users in testing the app. A couple of experts will definitely not be enough to go through all possible combinations of test scenarios, not to speak about all checking all kinds of devices (especially for Android). What is more, no one has denied the eyes fatigue. Obviously, the shortcomings that you’ve missed after a week of testing will likely be noticed by attentive end users. Approach volunteers from all over to examine the app during the beta testing stage.

7. Debugging menu

Simplify your testing process by using a debugging menu. Functions of such a menu make life of testers and developers much easier. Its functions may include the following:

  • Simulating server responses;
  • Setting particular parameters for a server;
  • Cleaning sessions;
  • Clearing cash, etc.

8. Developer options

Enable “Developer Options” menu. The hidden developer menu offers a wide variety of settings, especially for Android, from showing CPU usage to allowing mock locations.

9. Stress tests

Conduct stress tests. Determine the maximum abilities of the app before launching it. The stress testing will help to determine whether you can save the app stat how fast the app can recover after an adverse event.

10. Testing on emulators

Don’t overlook (but do not abuse) testing on emulators. Of course, nothing will replace the real hardware and software system. But in some cases it may be appropriate to use emulators. If the device is rare or expensive and your funds are limited, for example. Or it may also happen so that the client has put all the devices on sale and won’t let you conduct tests on real items. In should be noticed that the Android and iOS emulators are mainly designed for native applications. However, their default browsers will be able to accurately reproduce how the site will look like on a real device.

Of course, all these tips and tricks are not the full realm as there are many more tools that can mobile testing more efficient and tester’s life easier. We would appreciate to hear your opinion in the comments below!

Do you feel comfortable with sharing your geo coordinates or payment details in your mobile app? Probably, not. Statistically, only 6% of respondents don’t hesitate while inputting their personal data into the application. Pavel Novik speaks on how testers and developers can help overcome the challenge and instill trust in users.

We live in the era of Big Data, where the Internet of Things and smartphones are ubiquitous. Each month we adopt new applications that require us to enter personal information, share our geo-coordinates, or ask to observe our browsing habits. Obviously, the main goal that marketers are pursuing is to collect social profile data and improve user acquisition.

The more personal data that marketers obtain, the better they can serve their users. However, users do not typically have much desire to help them.

Sharing is scaring?

According to the Global Consumer Trust Report 2016, the number of mobile users who feel comfortable with the idea of sharing information has decreased.

In 2013, 21 percent of the respondents said they would eagerly share with the application. By 2015, this number has fallen to 6 percent. The scope of “reluctant sharers” who share data only because they have no other choice if they want to use the app has leapt to 41 percent from 2014’s 33 percent.

This data should serve as a wake-up call to the mobile industry to collaborate and do more to instill consumer trust in mobile services. There are a number of practices on asking users for more information such as social sign-in options and bonuses in the exchange for extra data.

No matter which of them you adhere to, one thing remains constant: you need to be sound clear and reliable. Obviously, a good marketer should be aware of the security issues relevant to its app.

Users must feel confident installing the app and using it wherever they might want to. However, most public Wi-Fi networks lack security. So it would be a wise choice to disable automatic connectivity to such networks to prevent loss of important data.

Data leaks are the concern where users are expected to sync data to the cloud. The vendor’s protection mechanisms cannot be controlled even if the company’s security policies comply with best practices. To tackle this issue, it is recommended to ensure a different password for every app or service.

However, most of the security shortcomings are to be tested beforehand, on the development and testing stages of the security lifecycle…

Read the full article here.

In 2014 OWASP (Open Web Application Security Project) conducted a poll to gather mobile apps vulnerability statistics. The objective was to level up the mobile security and to allow individuals and companies worldwide to make informed decisions in the course of their mobile app development and security testing.

Survey results identified the top ten mobile vulnerabilities with the most frequent ones being weak server side controls, insecure data storage, and insufficient transport layer protection.

This year OWASP has updated the report. The surveyed audience has mainly included penetration testers (38%), security specialists (35.2%), security engineers and designers (27%).

The obtained results has revealed that during the last two years developers worked hard to secure coding and configuration practices used on server-side of the mobile application, establish mechanisms to protect data stored and ensure sufficient transport layer protection. Thus, the vulnerabilities 2014 have almost been combatted while the new bottlenecks have appeared.

OWASP Top 10 mobile vulnerabilities 2016

  • M1 Improper Platform Usage (new!)
  • M2 Insecure Data Storage
  • M3 Insecure Communication
  • M4 Insecure Authentication
  • M5 Insufficient Cryptography
  • M6 Insecure Authorization
  • M7 Client Code Quality (new!)
  • M8 Code Tampering (new!)
  • M9 Reverse Engineering (new!)
  • M10 Extraneous Functionality (new!)

As for a1qa, keeping our customers’ information secure and private is a top priority for our QA experts. We greatly appreciate the OWASP survey results and consider them when testing and assessing security of our customers’ mobile products.

The growth of the mobile market is not new: mobile industry has been skyrocketing for the last decade as users spend more time on multiple devices and consume mobile content. Year on year, we see new trends in mobile testing that change the way we test software.

To move with the times, we at a1qa analyze the latest reports and surveys in mobile industry to be aware of focus areas, challenges, new handsets and operating systems.

Evaluating the data, we adjust our methodology and testing approach to deliver the top-notch solutions to our clients.

At the start of the year 2016 there appeared numerous forecasts regarding the mobile testing patterns of development. Now, as summer has come round, it’s high time we gave an eye on those predictions to see which of them have stood the test of time.

In the second part of the interview, Daniel Knott clarifies the difference between the traditional test pyramid and a mobile one. He also talks on smartwatch app testing, which is the main subject of his recently published book. If you’ve missed the first part of the interview with Daniel on modern trends and challenges in mobile testing, you can find it here.

Daniel Knott is a well-known mobile expert, speaker at various conferences and a blog author. He has been working in the field of software development and testing since 2003.

Daniel, in your book Hands-On Mobile App Testing you write about a testing pyramid. Can you tell our readers about this pyramid?

Sure, in chapter 5 of my book “Mobile Test Automation and Tools” I wrote about test automation pyramids. I think every software tester and developer knows about the testing pyramid created by Mike Cohn. In this pyramid the foundations are unit tests, the middle layer are integrations tests and at the top of the pyramid there are end-to-end tests.

The size of the layer should be an indicator for the amount of automated tests that should be written. There should be lots of unit tests, because these tests are small and fast in execution. Then write many integration tests to test the integration of smaller units. In the end, write some end-to-end tests to see if the system works as expected through every layer.

However, this is just a theoretical model and is a mere guidance for software developers and testers. From my point of view, this pyramid is not applicable for mobile apps and the mobile environment.

Can you please clarify this? What is a mobile test pyramid and how is it different from the traditional testing pyramid?

In most cases mobile apps are used on the move. The users maybe walking around, the commuting to work by car, train or plane.

In all these environments they have different internet connection and face other factors, like weather conditions, that may influence the mobile app functioning. Because of these facts, I think, the traditional testing pyramid is outdated for mobile.

From my point of view, the foundation of the mobile pyramid must be manual testing! Manual testing is the key for a successful mobile app. It is important to test the app in the environment where the potential customer will use it. Simulating the environment is a bad idea and will lead to apps with really bad quality.

The next layer of the mobile pyramid is end-to-end tests covering all components of the app: backend, network and user interface.

The next layer is beta testing – another manual testing layer but with real customers. Try to establish a beta testing community with real customers to get real feedback before going live to 100% of your customers.

And the top of the pyramid there are unit tests. This might sound really strange but writing unit tests for mobile apps is not as easy as for backend or web applications. There are so many APIs and sensors that can be used by an app and it is really difficult and time consuming to mock all those interfaces to write effecient unit tests.

However, I created the mobile test pyramid in a dynamic way like the whole mobile world. The pyramid may not fit every app and therefore it is important to have a flexible model, too.

Daniel, this year you’ve published another book – Smartwatch App Testing. In this book you provide readers with an overview of the different smartwatch platforms with a focus on design guidelines, input methods, connectivity, manufacturer as well as software features. Why have you decided to cover this topic?

It was never my goal to write this eBook in the first place. My initial intention was to learn something new in the mobile sector. I was really curious to learn more about smartwatches. I got my very first one at the end of 2015. It was Samsung Gear S2 and I really liked it and soon I was interested to learn more about watchOS, Pebble OS and Android Wear.

Luckily, I had a chance to use every system for a while and try them out. And as a blog author, I decided to write a series about it on my blog to share my findings with the community. At the end of the series I thought this might be a good idea to publish it on LeanPub as a small eBook.

What are the peculiarities of smartwatch app testing?

Most smartwatch platforms are really stupid in terms of features and functionality without a paired mobile device. So one of the main challenges is the connectivity between the watch and the paired device in order to exchange data.

Another important point is the usability of the smartwatch apps. Smartwatches offer only a very small screen to show the information to the users and because of that, the UI must be well designed in order to perform the required actions efficiently.

There are new ways of interacting with the watch, e.g. with new wrist gestures or voice commands. During my exploring activities I focused on all smartwatch platforms I identified 4 key areas when it comes to smartwatch app testing.

  • Design
  • Usability/Interaction Design
  • Functionality
  • Connectivity

What advice can you give to mobile testers?

Try out many things, install many apps on your private device, use them and try to learn from other apps. Stay hungry and up to date to new trends in mobile.

Thanks for for sharing your viewpoint with us. We will be glad to see you and talk to you again.

If you want to learn more from Daniel, visit his blog Adventures in QA. You may also find helpful his books Hands-On Mobile App Testing or Smartwatch App Testing.

Daniel Knott is a well-known mobile testing expert specializing in test automation. Apart from his daily work, he’s also a blogger and author of several books on software testing. This time we’ll talk about modern trends and challenges in mobile testing.

Hi Daniel, can you please tell us about yourself, your current occupation and expertise?

Sure, my name is Daniel Knott and I am a mobile test engineer at XING AG, social network for business contacts founded in Hamburg, Germany. I started my career in 2003 as a trainee at IBM where I was already involved in a number of software development projects. Soon software testing became my passion and I started a career as a software tester for web applications. Later on I grabbed the opportunity to move into the mobile development and testing area.

When I took to test mobile applications in 2010, everything was completely new for me I started everything from scratch studying relevant tools and processes and I really enjoyed the freedom at this time. Since 2010 I have been working in the mobile testing field.

Currently I am a member of the Android platform team at XING where our most essential challenge is to scale the whole mobile development and testing to the whole company. To date, we have grown from 1 central mobile team to 7 mobile development teams contributing to the master branch of our iOS and Android apps. Every two weeks we submit a new app version to the app stores of the mobile platforms. And with this scaling many new challenges came up that we in the team have to handle.

My current task is to help the web software testers become mobile testers. Therefore, I created an in-house training to teach them all necessary skills they need for their daily work. Besides that, I coordinate the releases and test our apps both manually and in an automated way. So there is lots of work to do and more things will come up in the near future. No day is like the other and that is what I really like.

In your view, what are the main challenges in mobile testing?

For me, the main challenges in mobile testing are:

  • customers
  • mobile fragmentation
  • test automation

Customers are challenging because you need to know them. If you don’t know who your customers are you might have a problem developing wrong features. To handle the customer challenge in mobile it is very important to collect some data about your target audience: devices it uses, its habits and usage patterns.

If this is the first time you release an app, watch out for competitors and find out information about the target customers. If you have a web application that is already used by the customers and you want to provide them with a mobile experience, use the collected data from the web to create mobile personas to identify possible features. If you have apps in different app stores you can add tracking to your apps to gather information about your target customers.

With this knowledge you can also handle the second challenge in mobile testing, the fragmentation. If you know what devices are used by your customers, you can concentrate on developing and testing only on these devices.

A nice way to handle the device fragmentation is to create the so called device groups. For example, create three groups A, B and C. In group A add the most popular devices with the highest priority. Include the less popular devices in the Group B and the most unpopular in the Group C. With the help of these groups every mobile developer and tester can downsize the effort in testing on many devices.

The last challenge every mobile tester needs to handle is the mobile test automation. Mobile test automation tools are not that mature as their web counterparts but the tools are getting better and better. There are so many great mobile testing tools out there and the cool thing is most of them are open source and free to use. When choosing a tool the company must decide which of the available tools fits best into its software development environment, as there is no universal solution in the field.

Are there any trends in mobile testing that influence the way you work?

There are so many trends at the moment coming up in mobile but none of them infuence the way I work. But it may change tomorrow, so it’s important to be ready for new things and for changes.

However, there is something that impacts my daily work and this is the software testing community. There are so many great software testers out there who share their knowledge with the community to help others become better and this is great. There is always someone you can ask, e.g. via twitter or slack about a problem or solution to get almost immediate feedback.

What skills are vital for mobile testers?

The same skills every software tester must have. Apps are also software but with a different focus. Nevertheless, skills like strong communication, curiosity, critical thinking and creativity are vital for any mobile tester. There are so many ways to go in mobile testing that these skills are really important in order to become successful.

What is more, it is very important to be a constant learner. The mobile world is changing really fast and it is crucial to keep up with the market and the new features that are coming up every month.

Thank you, Daniel, for sharing your ideas with us.

This is the first part of the interview with Daniel Knott, read the second part here on our blog soon. If you want to learn more from Daniel, visit his blog.

Electronic commerce is the trading in goods or services via the Internet. Nowadays, e-commerce is developing by leaps and bounds. According to statista.com, in 2013 41.3% of global internet users purchased products online. In 2017 this figure is expected to reach 46.4%. This fact drives the business to enter the online trading market.

To build online stores, most organizations are using Magento, a powerful and multifunctional e-commerce platform. It offers great flexibility due to its modular architecture. This platform covers 24.6% of e-commerce today (Hivemind Research).

A wide range of functions helps Magento win customers worldwide. According to cometrics.co, Magento is used in all parts of the world. The largest number of users is allocated in North America and Australia.

Advantages of the Magento platform

Magento has gained its popularity for a number of reasons:

  • Stable system with regular updates that cover issues appearing in the system
  • Possibility to create multiple stores in one control system
  • Multilingual system
  • Free Community Edition that gives user an opportunity to try Magento before purchasing it
  • SEO friendly system
  • User friendly and intuitive administration interface
  • A huge number of extensions

Disadvantages of the Magento platform

As any other system, Magento is not perfect and has some drawbacks:

  • Performance (good hosting is required)
  • Magento customizing is rather complicated
  • Enterprise Edition is expensive
  • Many extensions lead to a great amount of bugs

Setting up the Magento platform

During the setting up process, it is advisable to pay attention to:

  • Performance
  • Compatibility of extensions
  • Payment methods
  • Responsive design

Testing Magento e-commerce applications

The more functions a platform provides, the more vulnerable it is. Therefore, thorough testing is vital for Magento e-commerce applications to prevent end users from facing defects and errors. a1qa has considerable experience in testing online stores on the Magento platform. We have the first-hand knowledge of all pitfalls and bottlenecks connected with Magento.

a1qa experts advise to use the following testing tips:

  • Provide cross-browser and mobile testing (front-end testing on various browsers and mobile devices, e.g. we encountered absolutely different issues on Firefox and Google Chrome).
  • Check that every installed extension is compatible with other extensions (make sure that a plugged-in extension works properly, provide regression testing for extensions with similar or connected functionality, one extension can cause a problem in another one).
  • Carry out performance testing (check the application under a heavy load and large amount of data to be sure that a great number of orders won’t make your online store go down).
  • Check every payment method (calculation should be correct and the payment process should be clear to the customer).
  • Double-check calculation on checkout and basket pages (especially with vouchers, promotions and gift cards).
  • Automate typical workflows (recommended to run after every change and helps detect problems in the early stages).

Magento offers a lot of possibilities for starting or growing great online business and satisfying end users’ needs. A sound approach to setting up and testing will make e-business work right and bring profit.

The year 2015 is distinguished by multiple innovations and events in the app sphere. The two leading platforms, iOS and Google Play, have shown consolidation in the download and income streams. Google Play remains a leader in downloads, thus leaving iOS the main position in revenue shares. What new trends should we expect from the 2016, and how those in the mobile app testing services industry can prepare?

1. Introducing deep linking for easy app searching

Application searching is expected to become easier and behave more like web with the help of Google Now on Tap app. This could be achieved due to the introduction of deep linking, which is likely to decrease navigation drawbacks and simplify content discovery within apps. Google Now on Tap can make Android even more attractive for developers and enhance users’ engagement with apps.

2. New income stream for eSports

From 1999 to 2009, a large interest in rare live events burst due to the development of digital music. A similar interest for mobile gaming events is observed in the eSports industry. The year 2016 is supposed to increase a demand for competitive mobile gaming events thus helping game publishers gain new revenues as sponsorship and broadcast rights.

3. Implementing multiple services for messaging apps

Messaging apps are extremely popular and much more frequently used in Asia comparing with the West market. Amid combining messaging apps with other services like game or offline payments, the Facebook Messenger platform will attempt to change its strategy in 2016 to enhance the usage of messaging app and gain a leading position in this sphere. This is supposed to be achieved by implementing additional platform elements such as commerce and payments.

4. New consolidation growth in Asia

A wave of consolidation is believed to burst even further in the Online-to-Offline (O2O) commerce industry. In Asia, where heavily subsidized pricing and discounting have become a main attraction for users, the trend is already visible in such major acquisitions as e-commerce (Snapdeal’s acquisition of FreeCharge) and food delivery (Foodpanda’s acquisition of Just Eat India). This consolidation of industries can result in higher quality of apps and a healthier ecosystem.

5. Improving productivity app downloads

iPad productivity downloads still remain at the year 2010 level. The number is expected to increase in 2016. One of the possible opportunities to achieve this is Microsoft future improvement of Office suite and mobile-first productivity apps like Office Sway.

6. New trends for financial services

Finance apps have been showing a stable growth on the iOS platform and finance downloads are ahead of all iOS downloads for the past two years but fintech apps are only starting to be deployed. Amid an increasing usage of apps for remittance, asset management, fintech apps are expected to grow on both iOS and Google Play platforms.

7. New revenues for TvOS

Allowing third-party apps with gaming and video streaming, AppleTV is going to gain a leading position in 2016. That can possibly create a lager gamer population and user engagement, as well as foster competition among developers. Moreover, TvOS is likely to increase income using smartphones or tablets as a second-screen.

8. Youtube red: attracting more viewers

The market of over-the-top (OTT) is expected to be broadened by YouTube Red. YouTube Red is going to make original series together with YouTube celebrities, which is supposed to attract more young viewers, who may be familiar with them.

9. Discovering new usage methods for smartwatches

Mainly used as smartphones, smartwatches represent a challenging sphere for developers and are not likely to have innovations. The way smartwatches are used is supposed to be changed to cover vertical-specific contexts and enterprise spheres. Nevertheless, smartwatches can become particular useful for fitness and health monitoring.

10. Increasing interest in Augmented and Virtual Reality (AR/VR)

Supported by major platforms like Google, Augmented and Virtual Reality (AR/VR) is expected to increase users awareness and engagement in AR. Future releases of Facebook’s Oculus Rift, Samsung’s Gear VR and Microsoft’s HoloLens will give us a first insight of AR/VR platforms.

From QA perspective, the increasing popularity of the above described apps is likely to foster competition among other apps. Conducting a deep investigation of important features and being aware of the new trends, quality assurance can become an essential step in helping any application meet the highest quality standards.

This article is prepared on the basis of the report “Top App Predictions of 2016”.

In the modern mobile world all organizations are beginning to build their own enterprise mobile applications, which makes them turn to specialized mobile application testing services to respond to new challenges and market requirements. To analyze how today’s enterprise trends shape this process, it is useful to consider two surveys conducted by trustworthy organizations: Apperian mobile application management company and Cisco networking company.

According to the Cisco forecast, the amount of mobile-connected devices will increase significantly and there will be 11.5 billion devices by 2019. Last year the number of mobile-connected devices exceeded the world’s overall population. Companies are doing their best to roll out applications, and make them as easy as possible to use.

Apperian research demonstrates that 60% of companies are developing their own mobile apps to support and speed up main business processes. 67% of respondents consider improved business processes as a goal for mobility.

Top challenges

The respondents were asked to name the top challenges to achieving their mobility goals. The results were as follows:

  • Security concerns (67 % )
  • Determining ROI (32 %)
  • A lack of funds (29 %)
  • Reaching Bring your own device (BYOD) policy, contracted or unmanaged devices (26%)
  • A lack of management tools (23%)

Security

Security tops the list of the challenges that organizations face when they develop their applications. This is due to the constant evolution of mobile security threats. All mobility programs must ensure that they appropriately respond to the security risks.

The Apperian Research shows that less than 25% of respondents can see when the information is lost. That means that some 75% can’t detect the events that can lead to corporate data leaks if the right controls are not in place.

Visibility and investments

Any enterprise mobility program need to be thoroughly analyzed in order to be successful. According to the Cisco forecast more than 50% of all organizations have no idea whether their apps are used. 48% do understand who is using their applications and 42% can see how frequently apps are run.

All surveyed organizations need greater visibility into statistics about their app usage.

Participants stated the list of investments they are making to increase the adoption:

  • More applications for core business processes (47%)
  • User interface/experience improvements (43%)
  • Training (35%)
  • Analytics (35%)
  • Agile development with user input (33%)

Recommendations

The Apperian provides the organizations seeking a competitive advantage with a number of recommendations.

  • During the development of the application, focus first on main business processes
  • The best option is to support business processes with internally developed apps
  • Invest money in technology to manage the applications
  • Think of your users as clients
  • Invest in analytics

To take advantage of the continuing mobile revolution you need to analyze the needs of your customers. Moreover, it is vital to keep abreast of the current situation on the market of mobile applications. If you follow all the recommendations, you are likely to have remarkable success in the industry of mobile application development.

The seventh edition of the World Quality Report, the only global report for application quality, was published this autumn. 1,560 respondents from 32 countries participated in the research. What are the latest QA and testing tendencies? Are there any changes in them?

a1qa has analyzed the recent IT trends and would like to present the five most interesting and relevant research items that are confirmed by our experience.

1. Main areas in mobile testing

Mobile testing remains important in all spheres of business alongside with the increasing number of mobile devices. It is remarkable that there is a shift of attention from traditional testing (functional and compatibility) to security testing (55%).

Security testing is followed by performance, ease of use, and compatibility testing. Functionality testing still remains vital but its prioritization is in decline (48% compared to 54% in 2014).

This situation is quite logical, as appropriate security is strategically essential while other types of testing are significant in the application performance. The number of the challenge areas is declining, because organizations are becoming more mature and experienced in mobile testing.

2. Common security testing activities

As it can be seen from the previous point, we observe that the main attention is payed to security. There is a set of testing activities that are commonly performed. They include:

  • Dynamic application security testing, performed by running test cases to expose the application vulnerabilities (57%).
  • Static application security testing, performed using scanning tools to check code by development teams (52%).
  • Manual code checking, carried out to find out whether anything can produce vulnerabilities using the physical line-by-line code review (52%).
  • Penetration testing (39%), aimed at trying and demonstrating infrastructure vulnerabilities.

For maximum benefit organizations need to combine the use of automated checks with manual testing.

3. The increase in test cases automation

Every year the number of automated test cases within the organization is rising. The level of test automation is considered to be one of the key indicators of a testing company’s efficiency. It’s a common belief that in a few years all testing will be automated.

A great variety of test automation tools (both licensed and open source) is currently available in the market. Test automation has evolved dramatically and now embraces the integrated automation of QA aspects across the lifecycle. However, manual testing is still prevailing (55%). Thus, automated testing has a considerable way to go. In the mature testing environment some 70-80% should be automated.

4. Test automation challenges

The adoption of automated test cases is slowed down by a number of challenges:

  • Functionality changes very often.
  • Test automation is not supported by delivery methodology.
  • There is an absence of appropriate automation tools.
  • Organizations don’t have the required automation testing process/methods.
  • There are not enough skilled and experienced test automation resources.

Despite the above-mentioned challenges organizations have achieved a considerable increase in the level of automation. In future automation won’t be considered as the secondary activity behind manual testing.

5. Test data management

Test data management (TMD) is still a relevant problem for a large number of organizations. The adoption of agile, DevOps and cloud initiatives makes the test data creation and maintenance complex. It becomes difficult to synchronize the testing, control and maintain the data in different versions of environment under test.

Managing test data is a growing concern. Some companies are introducing a new role of the Testing Data Manger. It means that TMD starts to get the attention it deserves. The creation of complex test data sets for end-to-end workflows is expected to become easier in future. It is confirmed by the fact that the reducing trend in test data challenges from 2013 has continued in 2015.

Comparing with the 2014 research findings, this year we witness the shift to security testing and rapid development of automated testing. Will these trends remain relevant in 2016?

Most people believe that mobile application tester’s work is rewarding and easy. Nevertheless, all mobile testers do face difficult tasks and challenges. This fact gives reason to state that mobile testing is not as simple as it might seem at first glance.

Zombie apps

Mobile testers always need to be aware of the latest trends in mobile applications. There is a list of applications (such as Facebook, YouTube, Facebook Messenger, Google Play, etc.) that have become the sample in their field. They set up standards of application design and functioning. Along with top applications it is worth mentioning so-called “zombie applications”.

The applications that are available on the store and have hardly any downloads are called “zombie apps”. In short, it is all the useless programs that are collected in application store and prevent new applications from reaching the top. At the moment, 84% of apps in Apple’s App Store are considered to be lifeless. The question is: how can a tester help the application be really effective and not turn into a “zombie”?

Tip 1. Efficient onboarding

In the mobile apps sphere onboarding is a set of instructions for new users, including hints, wizards, context help, etc. Modern users have neither time nor desire to read large and complicated manuals. They want to download an app and use it straightway. If you want the users to run the application, it’s necessary to organize mobile onboarding properly. The most common mistake is to write a lot of instructions at the very beginning. Think of yourself running the application for the first time. If you see a huge instruction, you a looking for the Skip all or Next button, don’t you?

There are some rules of efficient onboarding:

  1. presenting only the real benefits that users can obtain from the application;
  2. showing the process of work instead of describing it in plain text;
  3. giving step-by-step instructions.

Tip 2. Plain notifications

Notifications are also noteworthy. If the application requires special settings, including an access to your camera, microphone or information about the location, the absence of the access makes it worthless. Notifications should have the following characteristics:

  • clear to all users statements;
  • user-friendly manner;
  • behavior based text.

Tip 3. Timely feedback request

Feedback is very important for developers of mobile applications for several reasons. Firstly, it is one of the most significant elements in the applications promotion. Secondly, it is one of the best ways to find out application drawbacks.

Statistics say that only 5% of users leave feedback. The application rating directly depends on how and when the application requests the feedback. There are several ways to ask for feedback.

  1. The most common and risky way is a dialogue or splash screen. Although it is one of the most effective ways, since users can’t but see, it usually leads to an app disruption.
  2. Another popular but less effective method is a request for feedback via a banner, hyperlink, or notification. It does not lead to a disruption, but at the same time users are likely to ignore it.
  3. The last option is to place the request in the application settings. It does not affect the application, but users will hardly leave a feedback using it.

The time when the request for a feedback appears is equally important. Let the user gain benefit from the application ant then call for a feedback. A good example is to ask users whether they like the app first. If the answer is “yes”, then a request should be displayed.

Tip 4. Well-structured login form

A crucial part of many applications is a login form. If the application has the opportunity to use a login through social networks (such as Facebook, Twitter or Google), then it will be a great way to prevent users from the login failures.

Quite common and annoying problem is the passwords and username restrictions. If the application has additional requirements, it is better to place them directly on the form.

Finally, you need to focus on the buttons location. It affects the efficiency of task performing. If users do not find the button, where they expect it to be, they can quit the application. Thus, the Send or Registry button should be near the last field.

As has been noted only 16% of all applications can be called successful. The above-mentioned tips are intended to help improve applications design and functionality and as a result reach the top of an App Store.

The article by Nadia Knysh was published on RCR Wireless News. 

The park of mobile devices is at the core of the whole application testing process. If configured correctly, it provides the best coverage of the target audience.

Analyzing trends to strengthen the app development process

Usually, the park of mobile devices includes popular gadgets operating on the latest mobile OS versions. It is the consultant who analyzes the trends, popularity and usage statistics in the target region to configure the park.

First of all, the consultant draws attention to these:

  • Popularity of mobile platforms
  • Testing focus on popular OS versions
  • Announcement of new devices and analysis of their potential popularity
  • Popularity analysis of the current devices
  • Specific analysis of new OS versions and devices

The main point of analyzing these trends is that the earlier the development team knows about the novelties, the better the app will be. Close cooperation between the consultant and development team allows for providing the first users with an application of the highest quality.

Conclusion

In a nutshell, mobile testing consultants are becoming essential to the app development team. Even though some may doubt this – given a consultant is being brought in from outside and thus less familiar with the project – there are more pros than cons when bringing in an independent testing consultant.

First of all, the viewpoint and decisions a consultant makes are not discussed, because it is agreed upon throughout the team that the consultant is being brought on as the expert in mobile testing and has the most experience of those involved in this area. Second, the consultant serves as a kind of walking reference book or a synchronization point, if you like. The consultant shares the knowledge, which is important for successful app development and testing. Third, as a person from outside the project, the consultant is objective – the set of fresh eyes that every team needs. Finally, oftentimes, engaging the mobile testing consultant actually accelerates the release of the application.

Read the first part here.

The article by Nadia Knysh was published on RCR Wireless News. You can read the full story here

Launching a new application in the market is always a risky business. The app should respond to user needs, and be innovative and easy to use. Still, through the development and testing processes, engineers often tackle issues that are beyond their expertise. Seeking a beneficial solution, software development companies often decide to engage independent testing consultants on projects.

Today, this trend is exceptionally popular. Independent specialists can take a fresh and unbiased look at the testing processes and improve the entire approach. More importantly, they can and should cover a certain scope of specific testing duties that are unfamiliar to the testing team.

My story of an independent testing specialist started with the role of a mobile testing consultant on a telecom project. I had been working a lot on mobile testing projects, so when a client addressed our company with a request for consulting services, I happened to be the right person to contact.

Our client – a mobile operator – applied an OSS/BSS as a standard system for delivery of telecom services. However, the more easily and quickly users can interact with the services’ provider, the higher their loyalty level and the bigger the target audience. To help accomplish that, the company decided to develop a mobile app.

While OSS/BSS and Web application testing was definitely the development team’s cup of tea, mobile testing was something out of their usual realm. To overcome this pitfall and get moving, a project manager decided to involve an independent specialist – a decision that ended up saving the project. The independent consultant was expected to correct the testing strategy and play the role of “he-knows-everything-about-that” for the team.

The role of the independent mobile testing consultant

It is not a secret that telecom projects are always quite comprehensive. They possess complex business logic and architecture; thus, if the team has shallow knowledge about the system, testing will not succeed. However, for effective management of activities, the consultant does not need to plunge deep into all of the business logic details, which helps to quickly hit the ground.

Still, the consultant cannot forget about those components of the architecture that are integrated with the mobile client. Nothing must be missed. Each and every detail of these components should be thoroughly investigated starting with the structure of databases and ending with communication protocols.

I cannot say that my duties on the project were huge and incomprehensive, mainly because the team had an opportunity to test the administration module independently from the functionality of the mobile client. Still, there was no time to lounge.

But let me give you a better description of what exactly was expected of me. Besides playing the part of the one-to-be-obeyed, I was responsible for delivery of the high-quality application to the users. Meaning I needed to understand and analyze the mobile client’s functions, architecture, specifics, incoming/outgoing calls and messages transferred from the mobile client to the administration module forwards and backwards.

Along with that, I was entitled to develop a number of test scenarios. While the team was in charge of functional scripts, my responsibility lay on those aimed at testing the app on various mobile devices. A bit of team management was also in my hands – tracking the process, working out specific tests, defining the priority of tasks and the team’s efforts, etc.

The process of data transfer between the mobile client and the administration module was one of the most difficult parts of the project. Any of the outside factors, like different mobile networks, level of signal reception, or a switch between modes, could bring damage to the app, and consequently, to the potential clients. Thus, I tried to consider all of these factors and include them in the test cases.

As I was the only one who possessed the unique knowledge about mobile testing, I selected the necessary test utilities and wrote guides that described testing steps along with tools in detail.

Read the second part here.

The article by Nadia Knysh was published on RCR Wireless News. Read the full version here.

Think like a criminal

One day, my friend “lost” money in her own apartment. She couldn’t find it anywhere, so she asked me where I would search for money if I were a criminal who had broken into her apartment. She figured thinking like a criminal would help us think to check places we may not have otherwise considered. This approach stuck with me. I decided to follow it every time I test a new application.

For instance, when testing an app for purchasing medical services, I thought of my grandma. She is so nimble and able to do several things at a time, and she does them fast. She can text and bake an apple pie simultaneously, but that doesn’t always mean she’s giving each activity her full attention. Thinking of my grandma doing those things, I did the same with the app. Not paying attention to graphics, I quickly filled in graphs of the app I had to test. I did it roughly and inattentively. Doing it this way allowed me to discover a major bug; a paid medical app was allowing clients’ consultants free of charge.

When testing a voice-surfing app, I pretended to be a teenager who always listens to music on his smartphone. It was a challenging task, but it helped me find bugs.

Usability is key

There is no doubt such tests as security and performance are extremely important, but I’ve found usability to be the top priority. Even when a tester doesn’t have a direct task to improve usability, he should always keep that in mind; usability-thinking is something that should penetrate every test. When you help make an app intuitive, everyone benefits. When you have a great performance app but it takes a user a couple of hours to cope with its settings to reach the stated performance, it’s a failure.

Thinking “like criminals” and finding as many bugs as possible, applications are being improved every day to make them more usable. This is how we not only push civilization ahead, but also maintain peace and calmness among the new generation of Homo tapiens.

If you missed the first part of the article, read it here.

The article by Nadia Knysh was published on RCR Wireless News. Read the full version here.

We are witnessing the biggest technological turn in history where the very human is involved. Now, in a time when almost everyone has a smartphone, when all you need to reach anyone or find out anything is to tap your touch phone’s screen, we can proclaim the birth of a new type of human – Homo Tapiens.

Smartphone religion

Gadgets and devices have become a sort of religion in modern society. Kids are not dreaming about new books or new “Kinder surprises,” which was common for kids 20 years ago. Modern kids want a new iPhone, same as their fathers and mothers have.

This is where we are finding the new technological and psychological turn. In the 1990s, Andrew Bromfield translated a novel, “Generation “P,” where the term “Homo Zapiens” was used for the first time. According to the novel, TV had changed the human mindset. Once people got the opportunity to zap channels while seating or lying on the sofa in front of the display, the way of thinking was changed. The new turn of the 2010s has been tapping – hence Homo TAPiens.

Who maintains the new civilization?

Think of how you start your day. You wake up switching off or pressing snooze on the alarm of your smartphone. Then some of you are calling a taxi via a special taxi app or checking the bus schedule on another app. When on the bus, people all around you are playing games, posting “Good morning” photos on Instagram, answering emails and chatting via WhatsApp. The majority of people starts their day using their smartphones in one way or another.

As a tester, I know the hidden side of Homo Tapiens. To ensure the best performance and convenient interface of applications, millions of picky testers like me put all the apps through the wringer, testing for security, performance, usability, compatibility, localization and functionality. If you have an app on your phone that you love, chances are there were several developers and testers that worked very hard behind the scenes to get it that way.

Although it might sound odd, testing software is all about psychology and anthropology. When testing a new application, pretending tester must put himself/herself into the end user’s shoes and think of how a user who downloaded the app would respond.

Read the second part of the article here.

The article by Nadia Knysh was published on Software Testing Magazine.

There is a specific approach of completing the mobile park and its maintenance. One of the key factors is the proper usage of gadgets. This article provides some simple tips that will help your company to optimize testing on different devices, save your time and expenditure on these pricey resources.

Common rules of keeping your mobile park

The majority of QA managers are dreaming to have a unique mobile park for every project. However, they realize how expensive it is, so just a few companies can afford it. This is why most companies will keep only one mobile park for all departments and all projects. If it consists of up to a dozen devices, you don’t really need a strict control of who and where uses them. But if you have a greater number of mobile devices, you should have detailed regulations about borrowing and returning them back.

Mobile testing: how to maintain your mobile devices

We recommend starting with sharing a document the rules for your mobile park usage. Once a tester accepts the rules, he or she is allowed to take the devices. The document should define the rules for usage mobile testing devices, usage time limits, and penalties for breaking the rules. It’s a good idea to set the access priority for different testers. Don’t forget also to prohibit taking devices out the office.

It would be just perfect if all devices could be kept secured. If you trust all your colleagues, you can avoid these costs and equip a stillage for devices. In addition, you can also order a special stand for every device, which also enables charging them.

What else can you do to provide a safe and convenient storage for mobile testing devices? It is becoming a common practice to keep devices in plastic bags with zippers. Thus you can put some accessories such as USB cables, power adapters and headsets together with the device. Unlike standard paper boxes, plastic bags occupy less space.

When returning the device, the whole set should be checked so that none of the accessories is missing and the device is in its previous condition. When a tester returns a device, its charge level should be at least 80%. If not, a tester should be denied to return the device until it is charged enough.

All devices should have stickers with detailed information about the firmware version and its technical characteristics. The mobile park rules should state that any unauthorized updates and changing firmware versions are strictly prohibited.

The simplest way to watch the current device user is keeping a register of check-ins and check-outs. If you have money and your budget allows that, you can automate the process. To accomplish it you can use such tools as Sharepoint or Google Drive, for example.

How to properly use devices while testing?

Ideally, any device should keep the same settings during its entire life. This is why we strongly recommend fixing the device settings every time a tester takes it. When he is done with testing, he should restore the device to its previous settings. Resetting the device to factory settings each time would solve that problem, but we find it just as a waste of time.

Any new applications, uploaded files and changed settings might have an impact on the way a tested application performs. Keep in mind that the majority of users are purchasing mobile apps, rather than using Jailbreak or Root. These actions could influence the app performance and some bugs could be missed because of that.

When testing, it is also not recommended to have the phone connected to PC through the USB cable, since working like that adversely affects the device accumulator. Connect the phone to the computer only when you have to install a build, delete logs or upload files. The best way of charging the phone is mere using the standard power charger.

When you are done with testing, restore all the setting to the previous condition. You should delete files you have uploaded and applications you have installed, as we mentioned before. Double check whether the cache is also deleted. Then, clean the display and panels using microfiber or a special cleaning liquid, put all accessories and the device in the plastic bag. If it is charged enough, now you can return the testing set to the mobile park.

Benefits of regulations

If you follow these simple rules during testing and maintenance, the mobile park of your company will last the way longer and tracking a tester who uses the device at any time would be easier. Managing a well-organized and regulated mobile park is the key to successful and transparent work with mobile devices. It provides also a peaceful atmosphere in the company and the perfect project coverage by all kinds of mobile devices.

It’s no secret that automating the mobile application testing process is the best way to achieve the quick, precise results needed to accommodate fast-development cycles. However, this is more challenging than it may initially seem, as mobile devices are less accessible and less open than standard desktop environments or Web-based applications.

That is why vendors of automated testing tools typically offer specialized modules or additional tools as part of their products designed for mobile applications. There also are a couple of free, open-source tools that can be used to automate mobile application tests.

We all know that automation decreases the duration of the testing/development/time-to-market cycle. On the other hand, a positive return on investment is also expected. In the case of mobile automation, the duration benefit is much more achievable and tangible than the economic effect. The cost of solution development as well as total cost of ownership is much higher when compared to the Web and even desktop.

The reason is the vast number of technical issues, which can require added effort and prove to be quite time-consuming. Below, I will describe the common issues, which should be taken into account when evaluating automation tools.

The choice of automation testing tools and approaches for testing mobile applications depends on a number of factors, such as:

Web/native application

When testing mobile versions of Web apps, QA automation engineers usually apply the same approach used for conventional Web applications. However, I would recommend WebDriver with driver versions developed for Android and iOS browsers. Moreover, bear in mind that if a Web application does not include frequent and complex Javascript calculations, and complicated and dynamic page layout and AJAX requests, the testing of the website mobile version will provide results similar to those of tests performed in the non-mobile browser.

Compliance with different platforms

In the event you need to run tests on several platforms, you will likely face some challenges from the very beginning. In this situation, you should consider a paid-for solution like T-Plan Robot, SeeTest or MonkeyTalk, to name a few. Going this route will give you the opportunity to re-use the source code and launch tests on several platforms. Even so, business logic and applications realization peculiarities for various platforms are very different. Therefore, it is likely you will need to run Android and iOS application tests through different solutions; requiring extra test development time even if code compatibility is expected.

OS versions and API

When developing automated tests, you must remember to define from the very beginning which OS is being used. For example, iOS 7.0+ versions have strict security setup conditions that won’t allow a background process – usually masked as a “GPS navigating software,” but an automation testing agent in reality) – to simulate user input on the devices. It is worth mentioning that this update has significantly influenced UI automation techniques for iOS.

Integration with third-party API is also an important aspect. For example, if an application uses Google Maps, a new version of Google API may cause changes in the map control elements layout. Some APIs can become charged; some will disappear and become incompatible with new versions. Taking these peculiarities into account when launching automated tests will allow you to avoid unnecessary struggles in the testing process.

Jail-broken or non-jail-broken for iOS

A so-called “jail-break” of iOS devices directly influences the opportunity of remote control via virtual network computing protocol. This protocol provides a picture from the device screen through an immediate client-server connection and allows the user to simultaneously send user actions to the device. The only way for VNC server realization for iOS devices today is to use the Veency app.

Control outside the tested application

The area covered by automated tests can be limited by the tested application (native app) or a browser (Web app). Sometimes there is a need to create a shortcut on the desktop or make a change in the OS settings.

This need to control things outside of the application undergoing testing limits the choice of automation tools, as some of them allow you to control only the application itself.

Objects identification

There are two applicable ways to identify objects: by object properties or by imaging. Image recognition can be accessed from a local source (if the test is performed on the emulator), or remotely (via the above-mentioned VNC protocol, AirPlay application or other proprietary technologies).

The properties of UI objects – their completeness and accuracy of the values determined – will depend upon the specific instrument being used. In other words, when testing the same application with different tools, engineers will obtain access to different sets of object properties. Object recognition may also be different in cases when you instrument your application or use native mechanisms to interact with UI.

My personal belief is that tools incorporating all the methods, image recognition and object recognitions – both instrumented and native approaches – will become the leaders in the market.

Emulators/physical devices

Few automation tools support physical devices as well as emulators. If you launch emulators while testing an iOS system, consider the requirements defined for the test environment.

Need for parallel launch

Launching tests simultaneously on several devices will require some additional environment set up – USB or Wi-Fi router setup, port forwarding, continuous integration server settings, etc. Keep in mind that performing parallel tests may not be an option if you are relying solely on a test launcher built-in automation tool. The environment is the factor that will significantly increase the total cost of ownership of an automation solution in the usage stage when compared with Web and desktop test automation practices.

Development platform for native applications

To develop a native application, it is possible to use third-party platforms that are not officially supported by the OS. For example, an application for iOS can be developed in the Adobe Air environment; then, Adobe can be used to wrap it into an IPA file and deploy it on the device. The application would look like a usual iOS app, but testing will be a bit difficult, as the object won’t be identified by standard means.

As long as you are aware of the factors influencing the choice of the test automation tools, getting the one you need is not a big deal. This is still a developing area, so there are no clear market leaders yet. Recently, I had a conversation with one of the tools’ producers who mentioned that close interaction with the client during the automation process helps adapt the tool to the particular needs of the customer. It shows that this sphere of mobile test automation is  the one where both test developers and test tool producers can really come together to create a bright future for automated testing of mobile applications.

This article was published on rcrwireless.com.

The beginning of this century was marked by the birth of a document that has strongly influenced software development: the Agile Manifesto. Signed by 17 software developers in February 2001, this document presents a list of ideas that were discussed by many developers, but few dared to use it. In the last 14 years, flexible methodologies have outpaced classical models of the project life cycle. The Agile principles have influenced a great number of new software development approaches.

Flexible technologies have also impacted the whole sphere of quality assurance. Testers have turned into universal soldiers able to complete their tasks while time and information constraints limit them. The particularity of mobile projects allows using a maximum amount of flexibility to achieve the true quality of software product.

agile-manifesto

While there are many flexible methodologies, the Agile principles are fitting mobile testing best. The world of electronic gadgets itself requires special flexibility, not to mention the process of working on mobile projects.

Each user of a modern mobile device faces issues while operating a particular application. Numerous defects in mobile applications are making them competitively disadvantageous as there are many apps performing the same function. The constant updating and following of the mobile fashion require maximum flexibility in the development and testing of mobile software.

We should underline two key ideas of the Agile Manifesto that are the most applicable to mobile app:

  • The real working product is much more important than its detailed description in documentation
  • Flexibility and readiness to change is more important than following the original plan.

Why Agile is the best approach for mobile testing?

In this section, we present the mains reasons why Agile methodologies provide the best approach for mobile testing.

1. Continuous evolution of product to satisfy customer and user needs

The application should be simply the best among many competitors. Successful developers of mobile apps want to see their product at the top of all charts and ratings. Without doubts, a fast reaction to the market’s demand is one of the keys to success in the mobile world.

For QA engineers such trends often lead to frequent changes in requirements, performing testing “on the wing” and a lack of well-structured documentation. Agile concepts could be real lifesaver in this case.

The following Agile principles are applicable:

  • Achieving customer satisfaction with rapid delivery of useful software
  • Welcoming changing requirements, even late in development
  • Working software is delivered frequently in weeks rather than months

These practical tools allow implementing these principles:

  • Common access to build storage
  • Clarification of functionality on daily scrums
  • Notifications about availability of the newest builds

One of the basic features of mobile applications development is the ability to provide the latest version of the product for testing at practically any given time. In most cases, the application’s build and its deployment requires not more than 20 minutes. Constant and uninterrupted supply of application versions to QA specialists enables the customer to receive the validated product on demand.

The ability to make rapid changes and the opportunity for tester to check the new functionality in a few minutes at a critical moment can dramatically improve the competitiveness of mobile product on the market. Thus, the customer can implement any cadence of supply, up to 1 hour, and QA will be ready for that.

In a recent project, the customer wanted to receive new version of the app each Tuesday, but the only chance to clarify the change request was during the weekly call on the previous Friday.

2. Readiness to react on new operating systems and new devices

The world of mobile technology is developing rapidly and this speed cannot be compared with any other area of IT technologies. Information about the latest trends, the correct choice of test environment and the willingness to follow innovations from leading companies should be provided by QA leads. The flexibility has to be demonstrated equally by QA team leaders as well by quality assurance engineers.

The following Agile principle can be used here:

  • Regular adaptation to changing circumstances

These three methods and tools making it possible implement this principle:

  • Tracking of mobile novelties
  • Working with custom firmware
  • Planning of the tests for further OS/device release

The testing of custom the Android Lollypop firmware on target device before its official release is a practical example of the application of this principle.

Read the full article here.

The article by Nadia Knysh was published on Scrum Expert.

In security testing, reverse engineering is the process of analyzing the software application to determine its functional characteristics, internal architecture and, eventually, its functionality: modules, functions and algorithms. Reverse engineering is used for different purposes:

  • Improving the functionality of the application when the software company that developed the app no longer exists, or there is no way to contact the developer.
  • Analysis of worms, Trojans and viruses to highlight their signatures and create remedies (anti-virus software).
  • Transcript file formats for better compatibility (file formats of popular paid applications for Windows without Linux analogues – Open Office or Gimp, for example).
  • Education and much more.

Both mobile and PC applications could be goals of attackers. In the context of reverse engineering, it does not matter whether the application is installed on a smartphone or a personal computer, because hacking techniques depend largely on the programming language and implemented protection mechanisms.

After all, taking a closer look, mobile applications essentially become archives that consists of configuration files, libraries and compiled programming code. Therefore, general approaches to “break in” to mobile and desktop applications are identical.

However, reverse engineering is often used for other purposes as well. Once one has studied the architecture of the application or obtained the source (initial) code, he/she can change it and use it for his/her own purposes – not always backed by good intent. For example:

  • Endless use of applications trial versions. Let’s imagine we have a software product that is free to use for a month or so. When the application starts working, it checks the date on the current installation. By removing this check or replacing it with the function that will always return the necessary result, the application will remain in the mode of trial forever.
  • Information or code stealing. The attacker’s goal may not be the app on the whole, but its module or some part. This tactic is relevant for competing companies engaged in software development.
  • Avoiding copyrights. The hacker’s purpose here is to remove the copy protection of audio and video files, computer games or e-books for later free distribution.

The process of obtaining the source code depends on thWe1e programming language and platform, as is the process of reverse compilation. For example, applications developed in the .Net framework are first compiled into an intermediate language (Common Intermediate Language (CIL)) and then converted into machine code by a Common Language Runtime (CLR) during execution.

Similarly, the compilation of Java and Python applications works as follows: high-level code is first compiled into an intermediate low-level language (byte code) and then converted to machine code by a “just-in-time” compiler.

Such organization provides a cross-platformity and allows writing of different parts of the application in different laWe`llnguages within a single framework. However, considering reverse engineering, intermediate language (such as CIL and the byte code) is able to provide information about the classes, structures, interfaces, etc., and restore the original architecture. For this reason, there are some ready-to-use utilities such as .Net Reflector, MSIL Disassembler, ILSpy and dotPeek for .Net applications; Javap, JAD and DJ for Java restoration of the byte code; and pyREtic, pycdc and Uncompyle2 to work with Python applications.

If an attacker is sufficiently familiar with the CIL or byte codprovide you e, then sooner or later he/she will be able to make changes, recompile and force the application to work for his/her own purposes.

Reverse engineering of applications on traditional programming languages (such as C, C ++ or Objective-C) is more challenging. Applications written on those languages are compiled directly into executable machine code and do not keep any information about the structure of the original application: class names, function names or variables, etc.

An additional barrier is that low level language used in  such applications does not contain branching structure (if, for, etc.), and its restoration requires the re-creation of the “ruling tree” (i.e. list of application managing constructions).

This requires considerable time; though, this alone cannot guarantee the safety of the application’s source code. Having deep knowledge in assembler and programming skills, the task of rebuilding the source code (or its identical in functionality) becomes only a matter of time.

Knowing all of this, how can the application be protected? At the very least, how can one discourage the attacker from completing his/her task? Below are some suggestions:

  • Code obfuscation –the process of bringing the code to “hard to analyze” mode while keeping its functionality. Obfuscation significantly complicates the process of reverse engineering, so even if the attacker obtains the source code, it will be extremely difficult to determine that particular code’s function.

Mutation can be considered one of the most effective types of obfuscation. This means that the application is constantly changing its source code at runtime, which makes the task of reverse engineering extremely difficult.

However, this method has its own problems. Obfuscated code becomes “unreadable” not only for the attacker, but also for the developer. Also, adding some extra code branches can reduce performance and even add defects to the code. Perhaps the biggest issue, however, is that obfuscation does not guarantee high safety in cases where the criminal gets the source code, even if it is difficult to understand. After all, the target in this case is a particular area of the code.

  • Integrity Check – confirmation that the code has not been modified. For this, checksums of different code segments are calculated, and in the case of a discrepancy with the preset value, the application ceases to operate. However, if an attacker gains access to the application source code, he/she can remove an integrity check or replace it with the function always displayimg the desired result.
  • Programming code encryption – verification that only “legal” consumers are able to use the application. Without the encryption key, the app becomes inoperative or functions only in its trial version. Meanwhile, nothing can guarantee the safety of the code since the offender is able to disclose the mechanism of keys generation.

There are some other methods of protection (watermarks, the imposition of critical sections of code in separate modules, secure execution environments, etc.). However, none of these options can provide complete safety. The benefits of each application protecting approach must be considered for each unique case. For example, code obfuscation is, in fact, not only a means of protection, but in certain cases may increase performance.

Therefore, choosing methods of code protection, first you must consider the threat model – namely, what in the application needs to be protected and in what ways can an attacker most effectively try to get it. If an attacker strives to change the code, and thus, get control over the application, then the best response is an integrity check. If, however, we are considering an application fragment as an object of the attack, then it is worth considering obfuscation or encryption as an option.

Everyone knows that Android is an “open” system, which means a user should expect a great number of vulnerabilities in the system. Nevertheless, it is iOS that is considered to be a more vulnerable operating system. According to the research of 2014 the amount of vulnerabilities in all iOS versions reached the number of 335, while in Android system only 36.

From the perspective of mobile app security testing, it is assumed that the number of vulnerabilities in the iOS system would increase, as after the presentation of iOS8 beta-version there appeared new targets for attack: a side keypad, increased number of API-calls new in the innovative SDK and HomeKit system. Still, Apple users should not much worry about security as Apple engineers quickly response to new issues.

Google, in its turn, amplifies the protection mechanisms of operating system. SELinux module integrated in Android 4.4 performs severe access control on the kernel level, while in Android 4.3 SELinux is turned off. This module runs independently from the basic Linux security model.

So, none of the both operating systems wins the “security mechanisms competition”, though Android and Apple have powerful mechanisms to provide protection from the hackers` attacks and pay special attention to OS security.

Above these all, the BYOD tendency rapidly increases its popularity. Though using mobile device for different purposes is a great thing, it is also a great security risk for corporations. Attacking any vulnerable or lost device – a smartphone or a tablet – hackers can get secret documentation and access internal resources like corporate email. As a result, there is a great demand for Mobile Device Management (MDM) solutions that allow managing security policy of mobile devices that run in corporate networks.

From the corporations` viewpoint Apple OS has more advantages over Android. There are powerful means for centralized device management in iOS: configuration profiles, remote data reset and incorporated support of outside MDM solutions. Android has no such an opportunity. To integrate with MDM system Android needs downloading a specialized OS.

It is worth mentioning that Samsung corporate security mechanisms left behind lots of Android devices producers. I mean the SAFE (Samsung For Enterprise) program and KNOX suite. They separate all work activities in MDM-system from all others. Thus all Samsung devices operating on Android 4.3 and higher versions fully comply with corporate security principles. Comparing with Android running devices, Apple has a smaller range of products and can easily provide support for corporate security systems for all versions of its smartphones, tablets and OSs. In this case the winner is iOS.

The topic of the security mechanisms of both operating systems deserves, I guess, a series of articles, this was just an overview. Those who want to have more profound information about Android and Apple security mechanisms can read detailed manuals on the companies` websites.

I would like to resume pros & cons of the OSs from the security viewpoint:

Android

Pros

  • “Open” for security research
  • Applications are immune to buffer overloads
  • Severe access control on the kernel level

Cons

  • Lots potentially harmful software in Google Play
  • Poor corporate security opportunities
  • Great number of OS versions and device models, which complicates the security methods standardization

iOS

Pros

  • Control of downloaded applications in App Store
  • Quick response to the security issues
  • Opportunities to support corporate security systems

Cons

  • Lots of vulnerabilities in the operating system
  • Increase of potential targets for attacks

To cut the long story short, I want to say that today very few people choose a smartphone because of high security protection. And that`s not a mistake, as Android and iOS are similar in their security approach. Still, if the device security is really essential for you, choose any Apple device or something by Samsung operating on Android 4.3 version and higher ones.

Before jumping to discussion of the differences between security mechanisms of both operating systems, we would like to mention basic security principles, like “read only mode” and process delimitation at the kernel level.

Android and iOS system partitions are unavailable for records, which prevents accidental or purposed file changing. Moreover, both operating systems apply “sandbox” principle. According to it every application operates in separately and cannot access system files or other applications data.

In iOS system almost all applications run under unprivileged user named “mobile”.

In Android system every application has its own user, which delimits the rights of running applications at the kernel of operating system.

The main differences of security mechanisms of Android and iOS are about:

  • limited access to the kernel
  • verification of downloaded OS
  • access right control

Before appearing in the App Store, iOS applications go through mobile app security testing to get checked and verified according to the requirements. Every application installed on the iOS should have unique certificate «iOS Developer Program» received after the verification process. These measures provide protection against malware in the App Store.

It`s curious but Google doesn`t check application before uploading to Google Play, but regularly runs the scan the store to detect malware. The approach might seems not much secure and it`s the truth as in Google Play there are lots of dangerous OSs. Still, according to the Hewlett-Packard research and “HP Security Research Cyber Risk Report 2013” these programs are unable to do much harm and are simply advertising applications.
Needless to say, that Google Play definitely has malware, though having certain user skills you can defend your device and OS.

When downloading applications to an Android device a user can see the full list of access permissions the application needs. If, for example, a flashlight application requests access to the contacts` list or needs internet access, it is definitely a malware.

The situation with access permissions is a bit different in iOS: every access request should be accepted or canceled by user.

What about the vulnerabilities in the OSs themselves? That we`ll discuss in the next post.

Though security by itself is priceless, there still is one thing about it – people tend to remember about security when the system is hacked. The situation with mobile devices is even worse. Today users know a lot about the consequences of desktop and web applications hacking, though they never think smartphones and tablets security.

In fact, there are three categories of people caring about mobile device security:

  • Users
  • Product developers and owners
  • Corporations

Every group has its own risks and security requirements. We`ll try to cover the Android and iOS security mechanism that is essential for mobile app security testing of each group.

From the developers viewpoint the main risk is client loss as a consequence of hacker`s attack. Actually, Android and iOS are similar in resisting local and web attacks. Though, if developers follow the security criteria in the process of development, they are able to develop a well-protected application for Android and iOS.

Generally Android applications are written on Java language are immune to buffer overflow attacks unlike iOS applications written on Objective-C. Still, Android applications are easy to decompile and interchange the primary code to the harmful one, thus developers are to apply code obfuscation techniques.

Though the iOS applications are vulnerable to the buffer overflow, iOS developers use mechanisms that can prevent exploitation of these vulnerabilities. Among those mechanisms are used compilation parameters like PIE (Position Independent Executable), SSP (Stack Smashing Protection) and ARC (Automatic Reference Counting). These parameters effectively manage memory and prevent the mistakes that can lead to the buffer overflow. Moreover, on the presentation of iOS8 Apple introduced the new programming language – Swift – that would be used instead of Objective-C. It is claimed that the new language is more secure. If it is true or not we can say only in the end of 2014.

So, both Android and iOS applications are quite secure, when the followers follow the security requirements.

Users` device security depends upon the security of the mobile OS. Having found breaches in the OS hackers can easily attack the device, even if users apply only high secure applications. Though being almost equal in security protection, the attack tactics is different.

In the next post we`ll discuss the operation systems’ security mechanisms.

Mobile applications become more popular day by day. Over the last year the usage of mobile apps reached 115%. According to the research people use mostly messengers, social network applications and photo/video sharing applications.

We analyzed applications made for iOS and Android mobile platforms and get curios results:

  • Google Play took the lead over the Appstore in downloads

THOUGH

  • The revenue of Android developers twice less than iOS developers

Where mobile OS should be targeted in the near future?

Specialists say that the countries like Russia, China, Brazil and India will increase the revenues this year. Such a statement bases upon the growth of downloads in these countries, the number has reached 1.8 points now, which defines he direction in some way.

What OS users expect?

It won`t be a great surprise but what users want is GAMES, besides it`s the most profitable OS. Mobile games have three times exceeded the gaming console income. If compared with other applications, users spend time for games more than on all others.

Successful sales criteria

Analyzing the application sales rate, I can say that the most popular applications are those that use Freemium monetization system. This service model allows using basic application features free and then you can expand the features list by purchasing a Premium account.

Multimedia

Photo and video sharing applications take the next point in popularity list, especially if they are integrated with the social networks, like Facebook and messengers. And due to the revenue increase from music sales, music applications also rapidly gain the popularity.

Financial instruments

Moreover, people today more often prefer mobile payments making mobile banking applications of high demand.

QA

As long as popularity of mobile applications increases every day the cost of failure is high, that’s why mobile app testing services are in that high demand today.

The first stage of testing process – requirements testing – is often of great demand. What makes this step so essential?

Requirements` testing begins before the development process. On this very stage testers analyze the navigation scheme, screen layout and customer requirements. In most cases QA engineers can detect most of the contradictions and requirements incompleteness on this step. Among those can be absence of secondary screen layout, presence of non-used buttons. As long as all malfunctions are removed QA engineers start writing test scenarios, while the requirements directed to the developers team. Due to the requirements testing process the customer can decrease delay time during the application development process.

When Android applications are tested, engineers often apply monkey-tests. The application should respond correctly to accidental or unexpected occasions. Extremely often mobile devices get useless information (for example, when the buttons get tapped on the unblocked devices), thus the device should correctly process the information.

Still, this is only the analysis the time shows what will really happen.

Mobile devices are growing in popularity daily and it is becoming more likely that software and Web applications will be run on tablets and smartphones. The importance of mobile testing is becoming increasingly crucial as a result.

My goal with this article is to provide some practical advice to keep you from getting lost in the world of mobile testing.

What first comes to your mind when you hear “mobile testing?” Yes, it is all about devices.

How to choose a proper device for testing?

If you begin by answering the following questions, you will significantly decrease the number of required devices and avoid spending extra time and money:

  1. Smartphones or tablets? Or both of them?
  2. What is the earliest operating system (OS) version supported?
  3. Which devices could be the most popular for the target audience?
  4. What screen sizes and OS versions are not covered by the devices from the points 1-3?

When working with iOS, you need no more than 10 devices to test. No more than 20 Windows Phone devices are required – for most of projects, you will need just five to 10.

As for Android, you will need a thorough approach while selecting, because hundreds of devices exist. Thus, it is really important to pick out the optimal combination.

How to test?

1. Analyze

Check the documentation and try to understand the business idea and application architecture properly. This allows you to find the most important basic defects to be fixed by developers first.

2. Functionality first, graphics later

Take the most popular device and perform the full test on it. You will notice all the application specs not covered by the documentation.

Ask questions regarding functional solutions you consider controversial and identify the most serious defects and bottlenecks of the app. Pay special attention to these issues during the compatibility test performed with less popular devices.

3. Include basic usability checks

Yes, we are testing the functionality, but basic usability issues could be easily “caught” and submitted without even applying the usability standards and special checks.

For example, is the application logic too complicated? Are the help sections easy to understand? Can we confirm that tips and labels are marked well and easily seen given the application’s background color? These and many other questions could help to make the application more user-friendly.

4. Do not forget about the real environment

Ensuring the gathering of real environment results is the most important thing, so do not forget to check all the specific conditions device could experience during its usage. This process guarantees that users will not have problems with the application in the event of issues caused by:

  • Unstable network connections.
  • All types of interrupts (SMS, notifications from Calendar and other applications, calls, alarms and low battery notifications).
  • Low battery or small free space volume available.
  • Working with different time zones and GPS.
  • Different combinations of sound and notifications settings.
  • Various test sizes, blind mode and specific restrictions to the data usage.

5. Exploratory and ad hoc testing – last, but not least

Even if you are convinced that all of the functions and possible environments have been covered properly, give yourself some time before deeming the results final.

Make some coffee, sit back and try to break the application first, or even ask someone from another team to take a fresh look. These types of steps can help to uncover sudden defects you missed before.

How to submit results?

The more information and descriptions you submit in your report, the more likely you are to fix and reproduce the defect.

1. Preconditions

The memory is almost overwhelmed? Or maybe five different accounts have been prepared? Or something is wrong with preinstalled applications? All of this information should be accurately mentioned.

2. Steps

This is the easy part – just describe scrupulously what you do and what you see without missing steps.

3. Environment

Include surroundings and settings you used while testing:

  • Device type and version.
  • OS version should be indicated for each device.
  • If the simulator/emulator was used to reproduce the defect that should be pointed out.
  • If the defect was reproduced on every device except one or two, you should specify that fact, as it could be extremely helpful for the developer when finding and fixing the defect’s cause.

4. Expected result

This is where you explain the way the application is behaving or should behave after the bug is fixed.

Basically, this section provides actual instructions for the developer, details of how the application should work in the correct case and why in any case where the defect’s cause is not clearly identified.

5. Additional information

This section of the report allows you to give a complete picture of what has been done by the tester and the results that he or she achieved. The below items help the developer better define the battlefield:

  • Screenshots
  • Screen videos (if the screenshot is insufficient)
  • Application logs: necessary to be attached to each graphical defect. All log types should be enclosed (collected by the device itself, collected by additional applications such as CatLog for Android, collected with help of SDKs or other utilities, including Console in the iPhone Configuration Utility)
  • Additional items that were used to reproduce the defect: all of the files, images, videos, provisioning profiles used to reproduce the defect must be affixed; sometimes one symbol in the file may cause the defect, and even logs could not reflect this.

THE ABOVE TIPS are merely large strokes – not the full realm necessary for functional mobile testing.

However, they should help provide a basic understanding of the structure and substance for the mobile testing process.

You can also rean this article on MobileMarketer.

It is well known that the sale of mobile devices has exceeded the sale of desktop computers and laptops for a few years running. And don`t forget about the declining cost of mobile devices, resulting in greater accessibility for the consumer.

These two facts have not only led to the current high number of sales for mobile applications, but also lead directly to the growing need for app development.

According to the International Data Corporation (IDC), there will be 76.9 billion global downloads of mobile apps by next year at a value of $35 billion, according to sourced mobiThinking. As a point of reference, 300,000-plus mobile apps were downloaded 10.9 billion times in 2010.

With the continued high demand for mobile apps, marketers, retailers and developers in 2013 will face many challenges and opportunities, mostly associated with new devices or new versions of existing devices. So what exactly awaits us?

All about size

It is likely that mobile phone manufactures will continue to increase the diagonal size of their phones. As a result, developers will need to adapt existing apps to fit the new screen sizes, while addressing optimum performance within the new format. The good news is that these larger screens are becoming more informative, which means the consumer clicks or touches the consumer to access apps and, therefore, less tweaks needed by developers.

Rise of new platforms

Recent Windows Surface launch has become an important event in the world of mobile app development. This is a significant step towards the adaptation of desktop apps for mobile operating systems, both in terms of the availability of the tablet as a full desktop operating system and the ability to use a desktop OS for touchscreen devices.

The main challenge with this device is that there are two versions of the operating system: Microsoft Surface Pro and Windows RT Microsoft Surface, which means that two more versions of any given app should be developed.

Speaking about HTML5

In terms of new technology, the introductions of Mobile HTML5 and Near Field Communication (NFC) are the most important developments for the mobile app industry. Having become popular after the “death” of Microsoft Silverlight, Mobile HTML5 has gained ground in numerous ways.

Most devices already support Mobile HTML5, there are no significant competitors since the abolition of Silverlight, and the high level of performance from current mobile devices allows HTML5 to take the full advantage.
HTML5 is also the most obvious way to create a universal app that supports various mobile operating systems, which doesn`t mean that “native” apps will disappear, as they are a mainstay of connecting users to a particular mobile platform. Despite this fact, understanding of HTML5 is a must for mobile app developers.

NFC is a relatively new word in the world of mobile devices that refers to the ability to exchange data between devices at a distance of approximately four inches. Current leading mobile OS Android devices, such as the Samsung Galaxy S III and Motorola Droid Razr Maxx HD, already have the NFC-chip built-in and the next generation of Apple’s iPhone may likely include the chip.

The quick deployment of NFC technology means new opportunities for mobile interaction with various other devices and, as a result, the emergence of new and improved services, such as one-time ticket authorization and faster bar code/QR code recognition. With these advancements, developers get new challenges with existing payment systems and creating separate niche-oriented apps for miscellaneous services and goods.

Moreover, this technology can be used in services and devices for personal identification by the owner of the mobile device and, therefore, involves the development of customized apps for data services. Currently, there is no protection from a third party in the implementation of NFC standards, which means that the developer should apply to cryptographic algorithms to provide high level security. This implies an increase in the time and effort for app development.

What is all the hype?

Gartner’s Hype Cycle neatly represents the maturity and adoption of apps and technologies. Among those noted in 2012 are HTML5 and NFC. Both surrounding the peak of inflated expectations, it is still unsure how far these technologies will progress over the next five to ten years. Will the other technologies noted provide the most feasible and efficient methods of adapting and creating mobile apps? Only time, and successful apps, will tell.

Quality Assurance plays a vital role in the development of mobile applications, but many underestimate how critical mobile app testing services are to the overall success of the app development process.

QA should be involved in all stages of development, starting with concept creation and till the post-development review process, so as to ensure the success of an app. Let`s go through the phases.

Preparatory phase

The phase begins in between the end of app development and before the first assembly of a functioning app begins. During the phase you are to pay special attention to the points like identification of target devices, introduction of functional requirements, test documentation development, test environment preparation. The phase put you through some challenges, like determination of target devices.

Though, if you follow the guidelines the challenge becomes quite clear. So, start with figuring out the devices that the application supports (phones, tablets, other devices – players, navigation). Then you need to determine the earliest version of relevant operating systems that supports an app. Doing this you`ll have to choose between two options: a special restriction, which will further be reflected in installation requirements, or you should select the least productive OS that still can provide perfect app functioning.

For example, for iOS devices it should be the first iPad with iOS 5.1.1 (if the application has no performance problems on it, there should be no problems in later versions of the device); the iPhone 3GS only runs iOS 4.3.5, so it is the least-productive platform to develop for, but the device is still popular globally.

After all that, do not forget to identify the most popular models for the target audience for app verification, and then select additional devices with different screen sizes than the most popular models.

Functional requirements

The next step is introducing functional requirements. It is important to define whether the app is browser-based or installable. Whether it interacts with a Web site or database, other apps or social networks, or maybe it is completely self-contained (does not interact with the Internet and cellular network).The information collected at this stage should focus on important app functions.

Test documentation

Then it is time to develop test documentation. Many mobile apps need high-level documentation, as tasks within the app are typically executed with just a few clicks and do not involve complex tasks.

The simplicity means that there is no need for detailed testing instructions. For non-mobile apps as well, much depends on optimally partitioning app functionality into blocks while creating test documentation, allowing connections between different units to be tracked accurately, and moreover, it requires less time to verify various functions.

User feedback

If the app got updated version from AppStore or Google Play, it is useful to analyze user reviews and feedback that has been posted on social networks and the app marketplace. Problems are often found and documented in these environments by end users, and this information will help to identify and focus on the app’s most important shortcomings.

When new app versions are introduced, users expect to find that specific problems to be fixed. If they are not, it often causes negative reaction, especially if they and others have taken the time to document or report errors. It can be useful to add end-user concerns to the test checklist as a separate category of problems, and pay special attention to them during testing.

Test environment

Preparing test environment typically requires the installation of required apps on the mobile device and on a QA engineer’s computer, which can include apps such as the iPhone Configuration Utility and Android SDK.

Starting from here, the process becomes an iterative cycle. It begins after the integration of the first assembly and ends with the completion of product development, including testing multiple assemblies at regular intervals (once or twice a week, for example). Development and testing are carried out simultaneously after each new build of the app.

The main idea of testing is for the QA engineers to put themselves into the user`s shoes, but with a more profound knowledge of the settings and the principles of a particular device and the features of the app being tested.

Here are the characteristics of different types of apps and operating platforms, along with areas that require special attention when it comes to testing for various mobile operating systems.

Apple iOS testing

  1. Verify compliance with UI Guidelines from Apple
  2. Apps must be backward-compatible with the OS (a new version of the OS is expected to maintain full functionality of the app)
  3. When multitasking, all settings and current progress of the app must be preserved when the app is minimized or when the user switches between apps
  4. You must be able to debug the app and collect logs via a USB cable connection without additional operations being performed on the device
  5. There is no need to reboot the device while testing

Google’s Android testing

  1. The app must support running multiple apps in the background
  2. For debugging via USB, you must first select “Enable USB Debugging” in the device settings, and then connect the device to the computer
  3. When using the hardware “Back” button, the app should be minimized, not closed. Otherwise, the device may require rebooting to run the app again. You can also use an app such as Task Killer as an alternative to rebooting.

Windows mobile testing

  1. The app must support multiple apps running in the background
  2. You must be able to close the app through the task manager
  3. You must connect the device to a computer via USB to debug the app.

Check these, regardless of the device/OS

  1. Input methods, devices and form factors (number pad, qwerty-keyboard, touch screen, side panel, external devices)
  2. Different networks (WiFi, Edge, 3G, 4G, GSM / CDMA), including unstable networks
  3. GPS functionality
  4. Energy consumption
  5. Accelerometer
  6. Standards Compliance mobile development (AppleHIG, Android principles)
  7. External interrupts (calls, SMS, stability in the event of a shortage of disk space, installation and restoration in the background)
  8. Memory cards
  9. Stability after a crash
  10. Using data on the device (address book, calendar)
  11. Access rights apps
  12. Social networks and other third-party apps
  13. Interface (animations, icons, portrait/landscape orientation, Retina (for iOS), the visibility of labels, size, ease of use)
  14. Time (server time/phone time, time zones)
  15. Redirections (Web → app, app → Web)

Control phase

The control phase is where you prepare the draft for release after product development ends.

This phase includes detailed and complete testing (during early iterative phases, a full test might not have been performed, or more regression tests may be required) to stabilize the app and uncover minor defects.

These are also tests for loss of auxiliary modules (testing in the app can present opportunities to check subsidiary functions such as Log Collector and artificial recharge of game balance, which were added to facilitate or reduce testing time, but that should not appear in the final product).

The approach typically used for testing in this control phase is somewhat like using scaffolding when constructing a building.

We can add features and change settings for the sake of development and testing that will not be in the final version of the app.

For example, an app undergoing control phase testing might be set to provide endless lives or infinite ammunition for the tester.

Once the building is complete, the scaffolding is taken away – much like how settings and features used to test and develop the final version of the app are then taken away before it is made available to the public.

Acceptance testing

The final phase is acceptance testing. The focus here is to check, if the app matches the acceptance criteria (which was defined at the start of the development cycle) or not.

Acceptance testing is performed based on a set of typical test cases and scenarios that are created based on the app requirements. It may specify “no major defects exist in the application,” or “all application labels and functions fully correspond to the rules of the target language.”

This phase of testing is also typically the most important, especially when further support of the app is not provided once it is made public.

Acceptance testing is used to ensure the quality of the app is perfect – or near perfect – and to ensure that the customer is happy with the results of the development process.

At this step, the customer decides if the app is excellent enough to accept it as final, and that decision is primarily based on the test results.

AFTER CAREFULLY tailoring these test phases to the app being developed and meticulously carrying them out, you are certain to end up with functional product.

The author of this blog post, Tatiana Mahlaeva, is an experienced tester and a QA analyst at a1qa. Having started her career 3 years ago, now she manages projects, analytical activities on the pre-sale stage, and runs trainings at QA Academy. Being a well-versed specialist she knows every hardship of the mobile testing process.

Timely, thoughtful and consistent testing is an important part of the quality assurance process. So, what helps to ensure consistency and structure of mobile application testing services? First and foremost, it is well-written test documentation.

When creating a strong application testing plan, you should pay attention to two important aspects. First, all application functions and device features must be tested. Second, it is desirable to expand coverage to previously detected defects and rare scenarios leading to their reproduction.

Before jump-starting to the DOs and DONTs, let us divide all the functions of the application and device features into several large groups. Though, the division is not definitive, it offers quite good classification option:

  • Lifecycle issues;
  • Audio/video;
  • Graphic user interface;
  • Network-related issues;
  • Hardware/software specialties;
  • Data-related issues.

Let`s start with lifecycle issues. This functionality includes un/installing, previous version update, and the initial steps of opening an application – launch and log-in processes. The most common defects here include:

  • Blank or corrupted application icon/name;
  • No registration function;
  • Incorrect or missing application version number;
  • Application data not saved during update process;
  • User data remains on the device after removing the application;
  • When updating, a new version doesn`t fully replace the previous one;
  • Issues with updating from a previous version;
  • The inability to log out permanently (critical for public devices);
  • No synchronization in accounts (when both desktop and Web versions exist).

Next is audio/video group. There are typically not many defects in this part, but it is important to keep them in mind, because defects they can so mush, that a user will forget about the app forever. Among those you face:

  • When the application has its own sound, the music player application is not paused;
  • The inability to turn off sounds in the application;
  • Video does not pause, when another video on the page begins to play;
  • Video problems with a device/application having two or more screens;
  • Sound lags behind the video or on-screen action, or video/action lags behind the sound.

Graphical user interface defects exist in every application. The reasons vary, for example, remaking the application for another platform and static design leads to problems on devices with different screen resolutions. There are many types of such defects, the most common one are:

  • Portrait/landscape mode issues;
  • Resizing issues;
  • Animations that do not run smoothly;
  • Inconsistencies with action elements and their place in the design;
  • Non-retina display for devices with retina support;
  • Inconsistency with platform standards (e.g. iOS HIG);
  • Font size and type issues (cut text and elements overlapped);
  • Keyboard issues (e.g. standard keyboard in case of numeric-only field);
  • Grammar issues.

When it comes to network-specific issues, most defects are found in case of switches – switching between Wi-Fi points and switching from EDGE to 3G. It is also necessary to check what happens with a poor connection (real or simulated).

Of course, if the application needs to transfer large amounts of data, crashes can be caught during normal EDGE connection, while in airplane mode, or with cellular data switched off.

All of these should be checked at all key points of the application – installation, launching, registering, logging in and submitting forms. The application should react correctly every time – working normally, or displaying a message asking the user to check the connection.

The next group includes potential defects. Hardware and software factors are too different, especially for Android devices, to cover all of them in this article, but let us try to highlight the main areas of concern:

  • Low operating memory issues (memory warnings);
  • In-app purchase issues;
  • Gestures reaction;
  • Interruptions (calls, messages and low battery);
  • GPS (location services) issues;
  • SD card issues;
  • External devices issues (display and keyboard);
  • Browser, email client and other OS-specific services issues;
  • OS compatibility issues.

These are main groups of issues specific to hardware or software. Though, there may be no or very few defects in each of them.

Please remember, that if your application uses any of the device specific functions (e.g. location services) – you must include deep checks of this functionality in your test plan.

Data-related issues are specific to each application type. Games will have data issues that are completely different from enterprise applications. Data types can also be different.

Here are the main points to check:

  • Time settings (Does the application use server time or phone time? Is the time determined correctly?);
  • Correct application of check-ins/adding friends/sending gifts and other data exchange between the device and server;
  • Ensuring that progress is saved in the application;
  • Desktop/Web profiles, if any, are correctly synchronized;
  • File types – all necessary types are supported, and unsupported types are correctly processed with appropriate messages;
  • Large and small files are correctly processed;
  • Caching issues;
  • Redirecting from the application to the Web and vice versa;
  • Social network content.

The groups outlined above are not comprehensive, but they provide a high-level checklist that should be completed with specific checks based on the type of application being tested.

For rare defects, consider conducting research on application reviews in markets or social networks – particularly if this is not the first version of the application or there are similar applications already available. The defects can be detected during ad hoc testing or with special complex scenarios based on prior experience.

Here are several examples:

  1. A game crashed if there was a need to download audio files from the server larger than 25MB
  2. A blank white space appeared on the Settings screen when the user quickly changed the On/Off setting (five times in a second)
  3. “Post to Twitter” posted tweets not to the current account timeline, but to the timeline of the account which was the first used in the application

This is the basic tips to start writing a test scenario, they define the process, though it`s not a complete solution for the creation of test documentation. Remember that the point is to include all possible sources of defects – functional specification, your experience and social network reviews.

The final test documentation for each application will be different, and may vary greatly for different projects. Your skills, experience and knowledge of your application will be the key in finding your own best solution.

When describing cloud services I tried to give you all the pros and cons. Now, I want to offer some issues to think over before buying an account at a cloud platform. First, which is better: cloud service or a real device? In fact, from a tester`s point of view a REAL device is always better. But how it looks like from the financial side? Let`s compare the prices depending upon the project category, workload, and terms.

Option 1. 10 hours per month

DeviceAnywhere offers 10 hours per month with one hour costing 18$ + 100$ registration fee. Perfecto Mobile is a bit cheaper – 17$ per hour. As a result:

  • If you need multiple devices, non-standard platforms, medium environment quality, get a package at 170$ in price at Perfecto Mobile platform (in case it is not enough, think of package comprising 10 hours at 250$ in price);
  • If  you need multiple devices, non-standard platforms, and you have free means for a good tool, then package at 280$ by DeviceAnywhere is your option;
  • If you have NO requirements to the number of devices. It`s better to get an inexpensive Android model and a Windows Phone, as they are always necessary.

Option 2.  50 hours per month

Need 50 hours per month for efficient work flow? Then you should choose between DeviceAnywhere account – 16$ per hour + a fee; and a Perfecto Mobile account – 15 $ per hour. Let`s see what we get:

  • 900$ account at DeviceAnywhere versus 750$ Perfecto Mobile account. If you have NO free means, then the Perfecto Mobile account is a good choice. If you HAVE means, than it`s obviously better to choose Device Anywhere account
  • Yet the pricing for the accounts is equal to the price of a new iPhone. Maybe, it`s worth buying a real device, if a company still doesn`t have it. But the requirements define everything,and when a company needs a complex like “iPhone 4S + iPhone 5 + iPad mini + iPad 4”, cloud services is definitely a way out.

Having analyzed the numbers and various options, I would like to say that cloud services are better to use in case of lack of real devices.  The prices for the accounts vary from 1440$ to 72600$ depending upon the hours, number of users and duration of use.

When applying to cloud services REALLY worth doing?

  1. You are engaged in project that requires minimum time, e.g. a week or even one working day; and the tests are exercised upon a platform that your team is unfamiliar with. OR, the test should be run upon multiple device models, which are of little interest to your company. In case like this, think first, how the test like this can be held in such short time AND why did you get engaged in project like this? Afterwards, if there is no other way out get a paid cloud service account (DeviceAnywhere showed the best effectiveness).
  2. A project presupposes testing within some region or mobile operator (like American Verizon). If the client hasn`t found a vendor with real devices connected to the operator, then apply to cloud services with no hesitation, a paid account is a right choice.
  3. In case you face a strong need to buy some specific device in some special region, first of all check the device availability. If the device is really impossible to buy, and it`s unavailable in the support service; think of a paid account on one of the platforms. Though keep in mind, that Perfecto Mobile and DeviceAnywhere are not the museums of ancient devices, so no one can guarantee that it`s a solutions to your problem.
  4. If a client developed an app specially for the newest device model, but it`s not on sale yet, and the deadline grows closer. Then, first check the device availability at the cloud platform device park, if they have it – buy an account.

Eventually, except some situations of force majeure, it is always better to widen the company`s device park.  Mobile cloud services cannot compete with real devices; both in price and in testing environment quality.

Anyway, if the project budget won`t get hurt much in case of buying a paid account, and 10 minute trial sessions is not a problem – it is reasonable to apply to a free account on DeviceAnywhere platform while testing websites and small mobile applications.

So in a nutshell, keep in mind that tests always show better results on a REAL device.

American company Keynote Systems is a developer of cloud monitoring services. DeviceAnywhere platform includes complex solutions for mobile app testing and automation of testing processes, along with development, analysis and certification processes.

In the end of 2012 DeviceAnywhere served more than 2000 devices including smartphones and tablets, having real time connection to mobile operators of US, Canada, UK, France, Germany and other countries. The company cooperates with Dell, Salesforce, Google and Microsoft.

Among the services that DeviceAnywhere offers are:

  • Application and web-sites manual testing run upon the company`s devices
  • Web-site testing upon multiple device with URL input
  • Application testing supported with outgoing and incoming text messages
  • Calls and messages exchange among several virtual devices
  • Full control under device operation process (physical and virtual keypad, touch and slide functions, g-sensor, device restart, battery disconnection)
  • Operation upon unlimited number of devices simultaneously (fee per hour)
  • Fast screenshot export
  • PC keyboard text input
  • Scalable picture form device to PC
  • Control over audio/video quality (important for slow internet connection)
  • Test case manager, business paper organizer
  • Automation script creation and processing upon several devices (Enterprise package)

Trial service version offers unlimited free connection to the limited park of devices consisting of 10-15 devices, each session lasts for 10 minutes. In trial version you may work on platforms: iOS (iPhone 4S, iPhone 5), WinPhone (Nokia Lumia 710) and Android (trendy smartphones by Motorola, Samsung and LG).

The picture is quite distinct – imaging and colours are clear, text is readable. When watching HD video you may face some hovering.  I haven`t met negative feedback on the service, devices are responsive to every user action, though a bit slower than real smartphones. All the devices operate correctly, without malfunctions in the testing process. Talking about disadvantages, I`d like to point out that you can`t upload apps through Market/Store, when using free version.

In fact, I`d like to say cloud service DeviceAnywhere is a perfect and (even irreplaceable) free tool testing web-sites imaging and running Smoke tests for small ready apps. To hold more profound and serious testing, you need to buy a paid account, that has an increased device park and no 10 minutes sessions. Despite of all platform advantages, think before buying a paid account.

In the next article I`ll give you some points to think over before buying a paid account.

Perfecto Mobile is an Israeli based company, one of the biggest ones in the domain of Cloud Services. Main company`s product is SaaS MobileCloud platform, which includes MobileCloud-Interactive, MobileCloud-Automation and MobileCloud-Monitoring services. This tool package is a universal system for application testing and monitoring.

Applying to MobileCloud platform you can perform real-time testing of smartphones, phones and tablets. Company`s park of devices includes more than 500 devices, operating on Android, Blackberry, iOS, Symbian and WinPhone platforms. Almost all devices have real a connection to US mobile operators (at&t, T-Mobile, Verizon), UK operators(O2,Orange, Vodafone). Devices are also connected to Indian, Canadian, Israeli and other mobile companies.

Making this research I singled out such advantages of Mobile Cloud platform as:

  • Full control over the device (real and virtual keyboard, touch and slide functions, accelerometer, turn in/off functions)
  • Possibility to make calls, send text messages, access to the internet (devices work have access to price plans)
  • Automized procedures of app installation, incoming calls, incoming text messages, file upload, information input from OS clipboard and laptop keyboard
  • Recommendations about device utilization in different countries
  • Simultaneous automation testing on several devices
  • Device sharing

Nevertheless, real-time operation with MobileCloud services is far from being ideal. First of all, you have only 60 minutes to use trial-version (this is the time-limit for non-paid account), and while this 60 minutes you face certain challenges like:

  • Long response time
  • Indistinct (often unreadable) image
  • Constant device interaction failures (cannot process data/touch function challenges)
  • Hot-functions do not operate upon most of the devices ( incoming call and text messages simulation)
  • Constant device malfunctioning (screen turns off, restarts, loses data, reports about mistakes)

Working in trial session you have only 5 devices in your disposal: 2 iOS (iPhone 4S and iPad 4), 2 Android devices (Motorola Droid Razr 4.0.4  and Samsung Galaxy Nexus 4.2.2), and a Blackberry 9860, though even in trial version you often face malfunctions.

In the whole, I can say that, even though MobileCloud platform offers multiple tools and possibilities for mobile testing, lots of malfunctions make the process of testing quite challenging. Mobile Cloud platform is really expensive in comparison with other services. That is why before choosing between real devices and MobileCloud you have to weight all the pros and cons – calculate expenditures, critical issues and lack of devices.

In my next blog post we`ll talk about DeviceAnywhere project, article comes out on next Tuesday.

Users divide almost all popular companies  into those they LIKE them, those they DON`T. The situation with iOS7 by Apple is of no exception. Some users are really amazed by it, others surf trough the Web seeking for the way to roll the system back to iOS6.

Being a professional tester I dare join to none of those two groups, what I can do is to draw your attention to the pros and cons of the OS making an experienced-based insight.

When we got the project comprising iOS7 testing, first things we faced were, of course, the interface changes. Flat design by Jonathan Ive comprises minimalism and strives for perfection. Nevertheless, changes made in the interface entailed applications defects. Bugs arising in lists, menu, pop-ups caused first challenges like inconsistent menu transposition, shift of application forms, unavailable scrolling, lists` cutting.

Functionality changes weren`t left aside, and due to them new OS tracks and remembers user actions searching for necessary content, like fresh tweets and news. Updated task manager allows app-previewing before direct using, which is, certainly, an advantage. But nothing is perfect, when you open several apps and turn over the phone, some screen elements may not follow the screen position. Users also point out that, when you remove an app its icon sticks to the control panel and doesn`t quit. In the same time the app-icon may vanish from the panel, when you need to close an app.

New design made the phone better in use. For instance, you don`t need to reach the left upper corner to get to the superior menu item any more. Now all you need is to run your finger over the screen from left to right, as if you flap away something, though this useful function doesn`t work everywhere.

AirDrop – one more Apple innovation – is a quite efficient way for file exchanging between Apple devices via radio channel. Nevertheless, function using is possible, if you have iPhone 5 and newer Apple devices. There can also be malfunctions, when you try to connect devices operating on iOS and OS X. And to crown to it all, AirDrop function can cause problems for apps installed on iPhone 4s, 4, 3gs.

Going through the testing specifics, I would like to add that a tester should be specifically accurate while localization testing and app internationalization, as users really complain a lot about internationalization of new OS.

Today more than half of all devices operating on iOS got updated. Making the research, I`ve come to a conclusion that improvement of iOS7 calls for better cooperation of developers and testers. As users are not satisfied with the OS, they cannot roll it back to iOS6 and performance of iPhone 5 is quite low. Moreover the apps often fail and crash, which again causes users discontent.

So, you can adjust to iOS7 specifics or go on using iOS6, all is up to you.

The author of this blog post, Pavel Andreev, is an experienced tester and QA manager at a1qa. Pavel is a talented QA engineer, with 6 years of working experience. During this years published articles in several magazines, like “Power electronics”. Pavel has a bachelor degree and fluently speaks English. Being a well-versed specialist, he knows every shoal of mobile functional testing and offers an experienced-based insight in mobile clouds services.

The issue of acceptable application functioning becomes more and more essential in mobile testing industry. Various platforms, operating systems, screen sizes and mobile devices complicate the process of app adaptation and cause new issues. Thus mobile cloud services become popular for mobile device testing. Nevertheless, multiple questions arise. As for efficient use you are to know how the cloud services function, which service is better and are they really valuable?

It worth saying that applying to cloud services you get a great package of functions that simplify and optimize mobile app testing, among those you can find:

  • Remote use of mobile park devices;
  • Big choice of devices with different screen sizes and functioning on different platforms, operation systems;
  • One-click function imitation (incoming call, incoming messages, connection loss etc.);
  • Establishment of mobile testing environment: logging, screenshots and one click video record.

These functions offer you considerable advantage for mobile testing. To be specific you can:

  • Test devices that haven`t come out to market yet (for example, devices made only for the US);
  • Work with most popular devices, which launch delays in some regions;
  • Work with outdated devices, which are of no buying purpose in company`s devices park;
  • Work with real connection to foreign Telecom operators (at&t, T-Mobile, Verizon, Vodafone etc.);
  • Work with various types of internet connection (Wi-Fi, 3G, LTE, Edge, GPRS);
  • Test mobile apps without need of buying expensive devices.

Nevertheless, there are some disadvantages when you operate with cloud services:

  • Low connection speed;
  • Weak device response;
  • Constant server and device glitches;
  • Expensive subscription for  paid-for-service.

Today among the world the greatest domain companies stand Israeli company Perfecto Mobile (MobileCloud project) and American Keynote Systems (DeviceAnywhere project). Wondering which to choose? In these article series we`ll have a detailed insight into the both services.

Next article of Cloud services for mobile testing comes on next Tuesday.

Get in touch

Please fill in the required field.
Email address seems invalid.
Please fill in the required field.
We use cookies on our website to improve its functionality and to enhance your user experience. We also use cookies for analytics. If you continue to browse this website, we will assume you agree that we can place cookies on your device. For more details, please read our Privacy and Cookies Policy.