Quality assurance is the planned and systematic set of activities that ensures that software processes and products conform to requirements, standards, and procedures.
Processes include all of the activities involved in designing, developing, enhancing, and maintaining software.
Products include the software, associated data, its documentation, and all supporting and reporting paperwork.
QA includes the process of assuring that standards and procedures are established and are followed throughout the software development lifecycle.
Standards are the established criteria to which the software products are compared.
Procedures are the established criteria to which the development and control processes are compared.
Compliance with established requirements, standards, and procedures is evaluated through process monitoring, product evaluation, audits, and testing.
The three mutually supportive activities involved in the software development lifecycle are management, engineering, and quality assurance.
Software management is the set of activities involved in planning, controlling, and directing the software project.
Quality assurance at CodeMyMobile is a high priority and forms an integral part of our Mobile app development lifecycle.
Azure Monitor & Application Insight to monitor Infrastructure & Application
Quality Assurance and mobile applications!
1. The Importance of Quality
Assurance for Mobile
Applications
www.codemymopbile.com. 261 Madison Ave, New York, NY 10016, USA
2. Defining QA
Quality assurance (QA) is the adherence to a quality system which places an
emphasis on conforming and meeting standards to deliver high quality
product lines. It is a systematic process for improving the quality of
deliverables through a series of pragmatic steps. As the mobile space evolves
and app stores increase in size, the importance of viable, well thought out
mobile apps is only the beginning. Mobile apps that are not executed and built
to proper standards increase the chance of a user quickly uninstalling the
application. Today, quality assurance is more important than ever, as the
quest to capture the end user has become more competitive.
What does traditional web/desktop
QA mean?
Traditional QA for web/desktop applications refers to dealing with a uniform
landscape. Web/ desktop applications consider multiple browsers across various
operating systems; however, there are very minimal hardware or connectivity
concerns. QA for the web/desktop has defined standards and processes to
follow and a more mature toolset at hand because it has been around for
decades.
For example, web tools such as Selenium, can inspect web pages and help
create boiler plates for testing scripts ahead of time by looking into input tags.
Standards are well defined because they are built upon over long periods of
time, and since the frequency of change is less it can be measured in years.
QA for Mobile
There’s no argument that mobile is the future. The rapidly evolving mobile
landscape is compelling businesses across every industry to rethink how they
connect to people across a multitude of platforms. Whether for enterprise or
consumer use, mobile application development is escalating at a drastic rate.
And this exponential growth in market demand has left developers with no
choice other than to forfeit QA testing.
3. Currently, according to the 2012-2013 World Quality Report, only 31% of
[groups] surveyed across the world test mobile applications (Capgemini). The
need for speed has placed an overwhelming emphasis on delivery, which has
led to shabby mobile app infrastructures. The race to the app store allows for
severe risks to persist that result in negative user experiences and can be
detrimental to an organization’s long-term success.
4. Today’s Mobile QA Process
Today, businesses simply don’t have the adequate resources required to
conduct thorough
QA testing. Successful testing must take into account the functionality,
security, performance, compatibility and usability of mobile applications.
This plethora of test requirements is time consuming and costly.
Today’s process can be broken into 6 fundamental steps:
1.
Developers deliver a build to QA
2.
QA performs functional testing & identifies bugs in the code
3.
QA sends report to product owners for feedback
4.
Product team prioritizes the bugs for developers
5.
Product team presents priorities to QA
6.
QA recaps with development team
Mobile is certainly having a significant impact on
the Q A function and it seems that QA has been
slow to react to the expectations from within
the business.
2012-2013 World Quality Report
This process is redundant and inefficient. By the time these 6 steps are
completed the developers may have moved into a different portion of the app,
which means that the bugs found have to be prioritized in a backlog. And often
times, developers have to relearn the code by the time they receive a report
from QA.
5. Lack of a QA Standard
A common problem developers are facing is the lack of standards and tools
for testing. Most QA tools are still in their infancy, which poses great
challenges for developers testing across various mobile platforms and
connected devices. Since mobile has only been in the mainstream for 3-4
years, QA tools have not had the chance to mature.
Right now, developers are trying to bring the QA concepts used for desktops to
mobile. This transference of knowledge is a difficult task because with mobile
there are multiple operating systems and devices to consider. The continually
evolving mobile ecosystem increases device fragmentation, which adds to the
complexity of testing further. To avoid these hurdles, many companies seek
to offshore QA. However, off shoring the problem can lead to poor quality
controls that allow for the existence of bugs, which results in lower quality
products.
65% of organizations do not have the right tools to
test mobile applications... and 52% do not have
access to the required devices.
2012-2013 World Quality Report
CodeMyMobile’s approach to QA
It’s important to understand that the proliferation of mobile QA standards is
going to be an evolutionary process like the processes of its predecessors. For
now, we can surround ourselves with the best of what’s on the market and
evolve it to fit our own needs. The first step is to identify a baseline set of
automated standards that apply to mobile apps - despite individual
requirements.
We must ask, what are standard QA tasks that we perform on Android vs. iOS
apps? For example, on an Android device testing could involve how apps
behave with and without an SD card present; whereas, iOS doesn’t have
removable flash so that test is not necessary.
6. 5 Main Data Points
1.
Total bugs - These are the bugs that are reported by the
QA team as well as bugs reported by the clients during
customer acceptance testing
2.
Complexity point - The difficulty to accomplish a
specific user story in relation to other stories within the
app
3.
Total bugs to complexity point - Each task to build the
application is associated with a complexity point, the total
bug to complexity ratio is used to monitor the “bug-iness” of
the application as the scale increases
4.
5.
Bugs reported by customers
Slippage ratio - Total bugs reported over the development
lifecycle to number of bugs reported by the client. This
number is important to measure as it has direct correlation
to client happiness and cost.
A focus on QA testing implementation at the start of development reassures
developers that the mobile app is functioning properly when it comes to
deployment. Plans should be tested during product definition, before
anything is coded.
30% of manufacturers predict that new
testing tools will be the greatest spend in
2015
2012-2013 World Quality Report
7. Testing on a large scale of devices
Testing on a large scale of devices requires automation. This means having a set
of automated
Test scripts, or random testing that can be run against a number of different
devices. This is where Android device pose a big challenge. Android offers a
plethora of devices, so as a tester you have to purchase a large number of
them to carry out testing. But, because the frequency of new devices
Are so high testers needed to implement a rotation, where certain devices are
put aside in order to take others into account. To help with these issues there
are open source projects such as Spoon, which
connect multiple devices through a usb-hub.
Conclusion
The mobile landscape is changing how we communicate and interact in the
way we work and socialize. And on the backend it’s creating the need for
new standards and procedures for QA testing. These new complicated
requirements make it crucial for your mobile strategy to take testing into
account right from the start.
QA automation is a critical component of a high quality end product. QA can help
alleviate the stress of the demanding app market by providing increased
accuracy for the agile development process.
If organizations are to turn the mobile opportunity into a business advantage,
they need to invest in building stronger QA testing skills. An overall methodology
for QA testing helps cut down on costs as well as time across the lifecycle of a
project and ensures optimal success and satisfaction.