Is quality always in the eye of the beholder, or can it be achieved by producing statistics and defining proper threshold
values? The correct answer is: both, and so much more. Quality is usually perceived as the application’s ability to fulfill the reasonable expectations and needs set by the developer or the end user. By this definition, quality is subjective, depending on who is assessing the quality and in what context. In addition, quality
can be assessed from an objective point of view: by following the statistics provided by testing, for example. It seems that
these two perspectives are insufficient when used separately: a subjective evaluation often lacks the methods that allow objective
measurement, while statistics alone do not provide a complete picture. In other words, quality is the sum of these two viewpoints,
and more.
The traditional quality model presented in ISO 9126, the international standard for software evaluation, identifies the following
aspects of quality:
- Reliability: The application behaves in a reliable manner in its working environment.The appliccation is able to recover from
error situations. In general, the maturity and stability of the software is properly tested before launching it to a live
environment.
- Functionality: the functions of the software application meet the set requirements, and the software is implemented so that
it complies with the relevant standards, allowing interoperability between different systems and client devices. Issues related
to security are considered.
- Usability: the users perceive the application easy to learn and to use, the application allows the users to perform their tasks in
a consistent and efficient manner. Quality and usable application is also simple and hides the complex technology and
implementation from the user.
- Efficiency and performance: the application operates efficiently in the target environment, performing the tasks in an appropriate
time frame while utilizing a reasonable amount of system resources. In the mobile environment, the device performance capabilities
and network connectivity issues are constantly improving, but still require special attention and effective resource usage
is essential.
- Portability: the application can be transferred from one environment or target device to another in an efficient manner.
- Maintainability: It is possible to make changes such as feature updates and correction patches to the software if necessary.
In general, the compatibility in the fast-developing and not fully matured mobile platforms and in the vast variety of devices
based on those platforms is typically not yet good enough to guarantee that software developed today also runs in all future
platform versions and devices (in other words, future platforms and devices may not be 100% backward compatible).
Quality in the Mobile Application Business
The traditional aspects of quality apply to mobile applications as well. No matter what the product, it should fulfill the
end user’s expectations, technical accuracy requirements and the demands of the business case logic. However, the mobile markets
differ from the traditional software markets in several aspects. For example, the development cycles are shorter, the target
user groups are more varied and it is necessary to differentiate more from the competition. These special characteristics
should be taken into account when planning the product concept and the process by which the product will be developed. Therefore,
the following aspects of quality should be emphasized in the mobile world:
- Business: You should make certain that the application has a valid business case, and that there is an existing market need.
Although the mobile context and the new technologies that are available awaken many unique ideas, it is crucial to keep the
business considerations in the forefront.
- Concept: Due to the increasing competition, your product concept should have sufficient unique selling points in order to
succeed. The application should be based on an innovative new concept that utilizes the special characteristics of the mobile
environment.
- Technical accuracy: Ensure that the application is implemented according to proper conventions, that the mobile environment
requirements are considered, and that the application is properly tested. The final application must be polished, free of
bugs, and it must not create problems in the user’s device.
- End-user needs: Consider the different user needs early in the process, prioritize and select the needs or tasks your application
aims to fulfill and take them into account during the requirement specification phase. The final application should enable
the user to perform the tasks for which the application is designed. The pitfall of many quickly developed applications is
that they are designed by an engineer for other engineers and technology enthusiasts. This approach takes the mass markets
out of the equation very efficiently.
- User experience: In addition to the user being able to perform the necessary tasks, using the application should provide a
positive experience and the application design and interaction flow should be pleasing to the user. Competition in the mobile
application world has taken a step to the next level. The deciding factor is no longer the selection of features, or even
the usability of the features – these are taken pretty much for granted. Today, the competition is about having a pleasurable
user experience that entertains multiple senses.
- Security: The user can reasonably expect that a high-quality application does not lose or corrupt the user’s data in the
device or does not contain malicious features. It is also fair to expect that the application performs only those tasks,
which it is designed and understood to perform. The application must not allow others to exploit it for malicious purposes.
Even if the application fails, it must not compromise security. The user should also be sure that when he or she installs
an application from a trusted source, the application meets at least some quality requirements defined for mobile applications.
All these issues have been considered when defining security models for mobile applications.
- Power management: Power consumption is one of the main challenges of mobile devices. Individual applications should be designed
to save as much power as possible. This serves the interest of the end user, as well as those of the mobile device manufacturer.
See the Power Management web page for more information on how to optimize your application power consumption.
Read more
S60 Platform: Development and Quality Assurance Process Guideline
A practical approach to the S60 application development process including insights into how quality aspects can be integrated
into the S60 application development process.