App Testing – Appinventiv https://appinventiv.com Tue, 13 Apr 2021 13:23:38 +0000 en-US hourly 1 https://wordpress.org/?v=5.6 AI in Quality Assurance: The Next Stage of Automation Disruption https://appinventiv.com/blog/ai-in-quality-assurance/ https://appinventiv.com/blog/ai-in-quality-assurance/#respond Mon, 17 Feb 2020 10:19:09 +0000 https://appinventiv.com/?p=15493 If we sit to analyze the mobile app development journey ever since agile came into picture, we will find that the ways of how apps are delivered have completely changed.  Before the introduction of agile […]

The post AI in Quality Assurance: The Next Stage of Automation Disruption appeared first on Appinventiv.

]]>
If we sit to analyze the mobile app development journey ever since agile came into picture, we will find that the ways of how apps are delivered have completely changed. 

Before the introduction of agile approach in mobile apps, there used to be a monthly or sometimes bi-monthly release. Ever since the approach has come into the picture, app releases have taken a weekly, bi-weekly approach. 

To keep up with these frequent build releases, Continuous Testing was brought into existence and automation suits were built for sanity and regression testing. This new testing approach supported fast deliveries and even faster-paced testing cycles.

Now, with the world moving in the direction of Digital transformation, the need to anticipate market requirements in advance and developing a system that is scalable and predictive enough for catering to the future trends is at its climax. Moving beyond the continuous testing approach is now inevitable. 

In the present situation, testing needs assistance for accelerating delivery. The role of artificial intelligence to improve quality control can help us reach there. A need for change is required in the manner quality assurance works in different companies. There are mainly two driving forces to continue quality assurance service– one is the agility in the manner testing is done (i.e. constant quality assurance) and second is the quicker time to market. For QA teams to stay up with the agile method of development, traditional test automation is not sufficient, thus making AI in test automation unavoidable.

In this article, we are going to look into the detailing of the role of AI in quality control. We will look into the different facets of AI in Quality Assurance: role of AI in quality management, the benefits of AI-enabled quality solution, the popular AI Quality Assurance tools, and the challenges associated with the integration of AI in mobile app testing.

Evolution of Quality Management Methods

Role of AI in Quality Assurance: Test Cases for Autonomous QA

Benefits of Using Artificial Intelligence in Testing & Quality Control

The Six Levels of AI Testing

The Popular AI Testing Framework and Platforms

Bottom Line

Evolution of Quality Management Methods

Evolution of Quality Management Methods

The Quality Assurance strategies have changed in today’s time. The ones that existed back in the 1980s have crossed several strides to keep up with the changing requirements of the software development and delivery approaches and cycle. 

The present case, popularized as continuous testing, is dominated by the Agile and CI/CD approach. Even after being denoted as one of the most developed stages of software testing using artificial intelligence, continuous testing brings some key challenges in Quality Assurance workflow processes:

  • Siloed automation
  • An absence of end to end requirements visibility 
  • The high volume of test

To solve these issues, the industry must move to autonomous testing which ensures a zero-touch QA. 

Role of AI in Quality Assurance: Test Cases for Autonomous QA

Test Cases for Autonomous QA

Incorporation of AI is what updates the QA process to its autonomous software quality assurance testing services stage.

Mobile app testing consists of a number of different tasks such as scripted automated testing, manual testing, and non-functional testing. The impact and role of AI in software testing can be seen adding value in the present testing efforts by enabling auto-exploring apps on actual devices for making sure that all of the functionalities and user flows work as they are supposed to.

The use of AI in testing can also help in identifying new bugs or defects which are introduced during the app exploration phase. The QA teams can make use of AI testing tools for supplementing normal testing efforts, while getting the best test coverage in expedited time and great accuracy.

The role of AI in quality assurance for machine learning and testing will also be seen in the testing tools where the tests will be enhanced with AI-powered visual verifications, which will give out a range of different outcomes. 

If we explicitly talk about the test cases of AI in Quality Assurance, here are the ways testers are using AI presently – 

  • Implementation of AI through image-based testing
  • Determining whether to run a test script 
  • Using AI spidering 
  • Monitoring API testing 
  • Automating tasks

With the active participation of AI and machine learning in Quality Assurance, the time to come will be extremely experimentation driven for the QA specialists. 

The automation trend

Benefits of Using AI Technology in Testing & Quality Control

Expedited timelines 

There are many ways in which our team of developers speed up the app development process. Incorporating disruptions in the testing process is one of them. In place of going through thousands of lines of codes, AI will be able to sort through the log files, scan the codes, and detect errors within seconds. Additionally, AI lacks the burnout syndrome and thus yields better and more accurate results. 

Also, AI can evolve with the code changes. It can adapt and identify new functions and can be programmed to decide if something is a new feature or a bug arising out of code change. 

Well-Researched build release 

By using Artificial Intelligence in Quality Assurance, it becomes possible for AI development companies to examine similar apps and determine what contributed to their success in the market. Upon understanding the market requirements, new test cases can be made for ensuring that the app doesn’t break when it comes to achieving specific goals.

Effortless test planning 

Presently, a good amount of QA expert’s time goes into planning test case scenarios which otherwise would have got them app launch confidence. The same process has to be applied every time a new version is released in the market. 

AI QA automation tools can help testers analyze the app by crawling through every screen while generating and executing test case scenarios for them, thus saving on the planning time. 

Expanded role of a tester

With AI entering the picture, the teams of QA engineers will find themselves learning new skills. They will need to up their skills in neuro-linguistic programming, business intelligence, math optimization, and algorithmic analysis. 

Job title wise, we can foresee these names coming into prevalence – 

  • AI QA Strategists 
  • AI Test Experts
  • Data Scientists

Predictive analysis

AI can utilize existing client and examine data to determine how users’ necessities and browsing practice will advance. This permits testers, designers, and developers to be in front of developing users’ standards and offer better help quality. With ML, the platform consisting AI will improve with analysed user behaviour and give progressively more exact forecasts.

Improved regression testing

With fast deployment, there is always an increased need for regression testing, and sometimes the testing is to the point where it is impossible for people to practically keep up. Organizations can utilize AI for more tedious regression testing tasks, where ML can be used to create test contents.

In the case of a UI change, AI/ML can be utilized to scan for color, shape, or size. Where these would otherwise be manual tests, AI can be utilized for approval of the progressions that a QA tester may miss.

Visual user interface testing

AI helps in the visual approval of website pages. AI can test different contents on the UI. These tests are difficult to automate, typically needing human intervention for making a decision about design. Nonetheless, with ML-based visualization tools, contrasts in pictures are seen in a way that would not be feasible for people to pinpoint. AI testing removes the manual effort of modernizing the Document Object Model (DOM), constructing a structure and profiling risks.

The Six Levels of AI QA Testing 

Level zero: 

At this stage, writing the code is a repetitive process. Hence, adding a field to the page would mean adding a test. In a clearer manner, adding any form to a page means adding a test that checks all the fields. Adding a page means looking at all the components and forms through a whole new test.

The more the tests, the greater are the instances of you failing to ensure the app’s functionalities as a whole. To solve this, you check all the failed tests to know whether something is a bug or a fresh baseline.

Level one: 

At this level, the better the AI is applied to your application, the more autonomous your QA will become. AI should not just look at the page’s Document Object Model but also its visual picture. Once the testing framework sees the page holistically, it will help you write checks which you otherwise had to write manually. 

Today’s AI technology can help you with writing the test code by writing the checks. Also, they can check whether a test passes. If it fails, it should notify you so that you are able to check if the failure is real or happened because of a software change.

Level two:

Through Level One, the QA specialist would avoid the time-taking aspect of writing checks, while you can also use the AI for testing the visual elements of the page. But what follows – checking every test failure – is a tedious task. 

At this level, your AI understands the differences in terms which the app users would also be able to understand. Thus, it will be able to group the changes from a number of pages, as it understands them semantically. 

At Level 2, AI can tell the tester when the changes made are the same and ask whether it should accept or reject the changes as a group. 

Level three:

In the previous level, human intervention is still needed for vetting any change or failure detected in the app. At Level 3, AI does the job. 

For example, by applying the machine learning techniques, AI can examine visual elements of the app and decide if the UI is off, on the basis of the standard rule of design. 

The AI at this level can evaluate pages minus human intervention, simply by understanding the data and design rules. It would look at hundreds of results and analyze how things change over time. Then, with the help of machine learning, it’d be able to identify differences in changes. 

Level four: 

Till now, humans have still been driving the tests. Level 4 is where AI would take over. 

Since Level 4 AI is able to examine an app semantically and understand it like a human would, it can drive the tests. This AI will be able to see the user interactions over time and visualize the interaction, understand the page and user flow. 

Once AI understands the page type, it will use reinforcement learning techniques to start driving tests, automatically. 

Level five:

This part is out of a science novel right now. At this stage, AI will be able to communicate with the product manager, understand the app, and drive the tests – all by itself. 

While presently, AI is still on Level 1, there are some automation events that are already using Artificial Intelligence: Visual UI testing, API testing, Automated quality assurance and  testing, and Spidering. 

Talk to our QA experts

 

The Popular AI Testing Framework and Platforms

Although slow but Quality Assurance has been making an entrance and prevalence in the third wave of automotion with the help of AI-driven quality assurance platforms.
Here are some of the top AI test automation tools and platforms operative in the market today to answer the most asked question, how AI tools can improve quality assurance?

Test automation tools

Test automation tools Eggplant AI

It makes use of intelligent algorithms for navigating software, predicting the many defects, and solving the challenges through the help of advanced data correlation. It also enables automating of test automation engines and provides graphical analysis of test coverage and outcomes.

Appvance

The platform provides software’s deep analysis through machine learning and delivers “app blueprints” models which apply cognitive generation. These blueprints hold the capability to develop multiple test cases in only a few minutes. Appvance also comes with a Test Designer functionality that can be combined with screenshot comparison, data driven tests, and AJAX or DOM auto capturing. 

Testim.io

Uses of AI and machine learning for authoring, execution, and maintenance of the automated tests is done by this tool. It focuses on functional end-to-end and user interface testing. The platform continuously becomes smarter and the stability of its test suites increases with more runs.

Testsigma

It is one of the most commonly used AI-driven tools for continuous automated testing. The platform makes use of natural language testing processing for writing quality auto tests. It also identifies relevant test cases for test run and saves sudden test failures.

Applitools

With this tool there is no need to set up any visual processing settings, percentages or configurations to create visual testing. The tool automatically understands which changes are more likely to be bugs and which are the desired changes and then prioritize differences.

TestCraft

It is an AI-powered test automation platform for continuous and regression testing. With TestCraft testers can visually create automated, Selenium-based tests using a drag and drop interface, and operate them on several browsers and work environments, simultaneously.

SauceLabs

It is a robust cloud based tool that leverages ML and AI. The tool is said to be the world’s biggest continuous testing cloud that offers around 900 combinations for browser and operating systems along with thousands of real devices.

AI platforms

AI platforms Google AI platforms

It is an end-to-end platform that helps you build application-specific models and improve existing model architectures with an automated AI software development service. From ideation to production to deployment, the platform helps developers to build and run their own ML apps.

Tensor flow

It is an open source software library that has comprehensive and flexible tools, libraries, and community resources that lets developers deploy computation to one or more CPUs/GPUs in desktop, mobile device, or server with a solo API.

Microsoft azure

A public cloud computing platform that provides cloud services like computing, analytics, storage, and networking. It is known as a backup and disaster recovery dream tool due to its flexibility, advanced site recovery, and built-in integration.

Dialogflow

This platform is a natural language understanding platform that makes it simple to plan and design a conversational UI into a mobile application, web application, bot, device, interactive voice response framework, and so forth.

Infosys NIA

The next-generation integrated AI platform is a knowledge based platform. With its unified, flexible, and modular platform, Nia allows a wide set of industry and function-specific solutions and enables customers to create custom experiences to fit their business needs.

Rainbird AI

The Rainbird platform uses AI-powered automation technology to have smart decision-making and smooth customer experience. The platform has an open-architecture so that it is integrated effortlessly with other solutions and APIs.

Mindmeld

This new generation conversational AI platform is streamlined for building conversational assistants which show profound understanding of a specific use case or domain while giving exceptionally valuable and flexible conversational experiences.

Bottom Line

There is no clear answer to which platform is the best, as every platform and tool have their own distinct features and uses. But if you need any help with streamlining your app development or understanding the quality assurance role then you can contact our expert team and ask out your doubts.

With our global platform, that is, AI development company in USA, Asia and other countries, we assist our customers and clients to leverage the latest technology to the utmost and provide better ROI for your business.

The post AI in Quality Assurance: The Next Stage of Automation Disruption appeared first on Appinventiv.

]]>
https://appinventiv.com/blog/ai-in-quality-assurance/feed/ 0
Understanding OWASP Mobile Top 10 Risks with Real-world Cases https://appinventiv.com/blog/owasp-mobile-top-10-real-world-cases/ https://appinventiv.com/blog/owasp-mobile-top-10-real-world-cases/#respond Tue, 28 Jan 2020 10:19:14 +0000 https://appinventiv.com/?p=14840 Carrying an industry record of developing 100% hack proof applications come with a responsibility and a baseline guarantee that none of the digital solutions developed under our name would face security breach.  As a way […]

The post Understanding OWASP Mobile Top 10 Risks with Real-world Cases appeared first on Appinventiv.

]]>
Carrying an industry record of developing 100% hack proof applications come with a responsibility and a baseline guarantee that none of the digital solutions developed under our name would face security breach. 

As a way to achieve that, Appinventiv’s Quality Assurance team are familiar with all the possible security risks which an app can face. Knowing the risks makes it easy to ignore pitfalls and write secure apps.

Helping us be on top of the game when it comes to assuring security is having a complete knowledge of OWASP secure coding practices (Open Web Application Security Project). It is an online community of security specialists who have developed free documentation, learning materials, and tools for building secure mobile and web applications. 

Along with other things, they have also compiled a list of OWASP Mobile Top 10 security threats in mobile applications.

While the OWASP security practices document is fairly clear, it can sometimes be difficult for businesses to connect it from real-world cases. 

In this article, we will give you a basic overview of Top 10 mobile security risks and give examples of the real world disclosed vulnerabilities for each of them. It will give you an insight into what we prepare for at Appinventiv when we work on your application. 

Before looking into the risks, let us look into statistics. 

NowSecure looked into the apps on Google Play store and App store identified that over 85% of apps violate one of the risks.

Of these applications, 50% have had insecure data storage and somewhere the same number of apps were working with insecure communication risk. Here’s a graph showcasing the percentage of occurence of the OWASP Mobile Top 10 risks

owasp mobile top 10 voilation rates

List of 10 Most Common Threats to Mobile Applications and the Best Practices to Avoid Them

M1: Improper Platform Usage 

The category of OWASP security testing consists of the misuse of a device functionality or the instance of failure when using platform’s security controls. It can include  platform permissions, Android intents, misuse of the TouchID, Keychain, etc.

Real-World Case:

Three iOS apps: “Fitness Balance app”, “Heart Rate Monitor”, and “Calories Tracker app” came into light for bypassing Apple’s Touch ID. They were asking users to use their fingerprint to get fitness information, while they were using it to charge money from the App Store. 

Best Practice to Avoid: 

  • The developer must not allow Keychain encryptions through server route and keep the keys in one device only, so that it’s impossible to get exploited on other servers or devices. 
  • The developer must secure the app through Keychain to store the app’s secret that has a dedicated access control list. 
  • The developer must take permission to limit which apps are allowed to communicate with their application. 
  • The developer must control the first of OWASP Mobile Top 10 list by defining the explicit intents and thus blocking all other components to access information present in the intent. 

M2: Insecure Data Storage 

OWASP consider it a threat when someone gets access to a lost/stolen mobile device or when malware or another repackaged app starts acting on the adversary’s behalf and executes action on mobile device.

An insecure data storage vulnerability usually lead to these risks: 

  • Fraud
  • Identity Theft
  • Material Loss.
  • Reputation Damage
  • External Policy Violation (PCI)

Real-World Case:

Dating apps like Tinder, OKCupid, and Bumble have time and again been scrutinized for their insecure data storage practices. The security lapses present on these apps vary according to feasibility and severity and feasibility, can expose users’ name, login details, message history, and even location, in addition to other personal account activity. 

Best Practices to Avoid: 

  • For iOS, OWASP security practices recommends using purposely made vulnerable apps like iGoat to threat model their development framework and apps. This will help the ios app developers understand how APIs deal with the app processes and information assets. 
  • The Android app developers can use the Android Debug Bridge shell for checking the file permissions of targeted app and DBMS to check database encryption. They should also use Memory Analysis Tool and Android Device Monitor to ensure device memory doesn’t have unintended data.

M3: Insecure Communication 

When devising a mobile app, data is exchanged in client-server model. So, when the data is transmitted, it should first traverse the device’s carrier network and the internet. The threat agents could exploit vulnerabilities and intercept sensitive data while traveling across wire. Here are the different threat agents who exist:

  • Adversary who shares your local network – a compromised Wi-Fi
  • Network or Carrier devices – cell towers, proxy, routers, etc. 
  • Malware on the mobile device.

The interception of sensitive data via communication channel would end up in a privacy violation, which can lead to:

  • Identity theft
  • Fraud
  • Reputational Damage.

Real-World Case:

Rapid7 security company disclosed several vulnerabilities attached with kids’ smartwatches. Those watches were marketed as ones used by parents for tracking their children and sending them messages or making calls on their smartwatch. 

The watches were supposed to be contacted by approved contact numbers through the mode of a whitelist, but the company found that the filters were not even working. The watches even accepted configuration commands via text messages. It meant that a hacker could change the watch settings and put children at risk. 

“You can identify where the phone or the child is, you can gain access to audio, or make phone calls to children,” said Deral Heiland, the IoT research lead at Rapid7.

Best Practices to Avoid:

  • Developers should not only look for leakages over traffic communicated between app and server but also device that holds the app and other device or local network. 
  • Applying TLS/SSL for transporting channels is also one of the mobile app security best practices to consider when it comes to transmitting sensitive information and other sensitive data.

  • Use certificates given by trusted SSL chain verifications. 
  • Do not send sensitive data over alternate channels like MMS, SMS, or push notifications. 
  • Apply separate encryption layer to sensitive data before giving to the SSL channel. 

M4: Insecure Authentication

The threat agents who exploit authentication vulnerabilities do so via automated attacks which makes use of custom-built or available tools.

The business impact of M4 can be:

  • Information Theft
  • Reputational Damage
  • Unauthorized Access to Data.

Real-World Case:

In 2019, a US bank was hacked by a cyber attacker who took advantage of the bank’s website flaw and circumvented the two-factor authentication that was implemented for protecting accounts. 

The attacker logged into the system through stolen victim credentials and upon reaching the page where PIN or security answer had to be entered, the attacker used a manipulated string in the Web URL, which had set the computer as a recognized one. This enabled him to cross the stage and initiate the wire transfers. 

Best Practices to Avoid:

  • The app security team must study the app authentication and test it through binary attacks in offline mode for determining if it can be exploited. 
  • The OWASP web application testing security protocols must match those of mobile apps. 
  • Use online authentication methods as much as possible, just like that in case of web browser.
  • Do not enable app data loading until the server has authenticated the user sessions. 
  • The places where local data us eventual, ensure that it is encrypted through encrypted key derived from users login credentials. 
  • The persistent authentication request must also be stored on the server. 
  • The security team should be careful with device-centric authorization tokens in the app, since if the device gets stolen, the app can get vulnerable. 
  • Since the unauthorized physical access of devices is common, the security team must enforce regular user credential authentication from server end. 

M5: Insufficient Cryptography Risks

The threat agents in this case are the ones who have the physical access of data which was encrypted wrongly. Or where a malware is acting on the behalf of adversary. 

Broken cryptography generally result in these cases:

  • Information Theft
  • Intellectual Property Theft
  • Code Theft
  • Privacy Violations
  • Reputational Damage.

Real-World Case:

Sometimes ago an alert from DHS Industrial Control Systems’ Cyber Emergency Response Team and the Philips advisory warned users of a possible vulnerability in the Philips HealthSuite Health Android app

The issue which was tracked back to inadequate encryption strength, opened the app to hackers who could get access to users’ heart rate activity, blood pressure, sleep state, weight and body composition analysis, etc. 

Best Practices to Avoid:

  • To solve this one of the most commonly occuring OWASP Top 10 Mobile risks, developers must choose modern encryption algorithms for encrypting their apps. The choice of algorithm takes care of the vulnerability to a great extent. 
  • If the developer is not a security expert, they must refrain from creating own encryption codes. 

M6: Insecure Authorization Risks

In this case, the threat agents are able to access someone else’s application typically via automated attacks which use custom-built or available tools.

It can lead to following issues:

  • Information Theft
  • Reputational Damage
  • Fraud

Real-World Case:

The Information security specialists at Pen Test Partners hacked Pandora, a smart car alarm system. In theory, the application is used to track a car, cut off the engine if stolen and lock it until police arrive. 

On the other side of the coin, a hacker can hijack the account and get access to all the data and the smart alarm functionalities. Additionally, they could:

  • Track vehicle movements
  • Enable and disable alarm system 
  • Lock and unlock car doors
  • Cut the engine
  • In the case of Pandora, hackers got access to everything that was talked about inside the car through the anti theft system’s microphone. 

Best Practices to Avoid:

  • The QA team must regularly test the user privileges by running low privilege session tokens for the sensitive commands. 
  • The developer must note that the user authorization schemes go wrong in the offline mode.
  • The best way to prevent this risk is to run authorization checks for permissions and roles of an authenticated user at server, instead of the mobile device. 

M7: Poor Code Quality Risks

In these cases, untrusted inputs are passed by entities to method calls made in the mobile code. An effect of this can be technical issues which can lead to degradation of performance, heavy memory usage, and poor working front-end architecture.

Real-World Case:

WhatsApp last year patched a vulnerability that hackers were taking advantage of for installing surveillance malware called Pegasus Spyware on smartphones. All they had to do was place a WhatsApp audio call on the targeted phone numbers. 

Within a simple few steps, hackers were able to get in the users’ devices and access it remotely.

Best Practices to Avoid:

  • According to the OWASP secure coding practices, the code should be rewritten in the mobile device instead of fixing them at the server side. The developers must note that bad coding at the server side is very different than poor coding at client level. Meaning, both weak server side controls and client side controls should be given separate attention.
  • The developer must use third party tools for static analysis to identify buffer overflows and memory leaks. 
  • The team must create a third-party libraries list and check it for newer versions periodically. 
  • Developers should see all the client input as untrusted and validate them irrespective of whether they come from users or the app. 

M8: Code Tampering Risks

Usually, in this case, an attacker exploits code modification via malicious forms of the apps hosted in the third-party app stores. They might also trick users into installing an application through phishing attacks.

Best Practices to Avoid:

  • The developers must make sure that the app is able to detect code changes at runtime. 
  • The build.prop file must be checked for the presence of unofficial ROM in Android and to find out if the device is rooted. 
  • The developer must use checksums and evaluate the digital signatures to see if file tampering has taken place. 
  • The coder can make sure that the app keys, code, and data are removed once tampering is found. 

M9: Reverse Engineering Risk 

An attacker typically downloads the targeted app from the app store and analyzes it inside their local environment with a suite of different tools. Following which, they are able to change the code and make the app function different. 

Real-World Case:

Pokemon Go recently faced the security breach glances when it was found that users had reverse engineered the app to know the vicinity of the Pokemons and catch them in minutes. 

Best Practices to Avoid:

  • The best way to safeguard an app against the risk, according to OWASP mobile security, is to use the same tools as the hackers would use for reverse engineering. 
  • The developer must also obfuscate the source code so that it gets difficult to read and then reverse engineer. 

M10: Extraneous Functionality Risk

Usually, a hacker looks at the extraneous functionality inside a mobile app in order for discovering the hidden functionalities in the backend systems. The attacker would exploit extraneous functionality from their own systems without any end-users involvement.

Real-World Case:

The idea of Wifi File Transfer app was to open port on Android and allow connections from the computer. The problem? An absence of authentication such as passwords, meaning, anyone could connect to a device and get its full access.

Best Practices to Avoid:

  • Ensure that there is no test code in final build
  • Ensure there is no hidden switch in the configuration settings 
  • Logs must not contain any backend server process description
  • Ensure that the full system logs are not exposed to apps by the OEMs
  • The API endpoints must be well documented.

The post Understanding OWASP Mobile Top 10 Risks with Real-world Cases appeared first on Appinventiv.

]]>
https://appinventiv.com/blog/owasp-mobile-top-10-real-world-cases/feed/ 0