Cagdas Basaraner talks about 10 Groups of Software Quality Factors That Should Always Be Remembered, and we think they are also true for mobile apps:
“Flexibility is the ability of software to add/modify/remove functionality without damaging the current system.”
In mobile: Many mobile apps keep improving each update to include adding, modifying and removing features.
Maintainability and Readability
“Maintainability is a little similar with flexibility but it focuses on modifications about error corrections and minor function modifications.”
In mobile: It is important that the code is maintainable and readable. Otherwise, the maintenance cost will increased over time.
Performance and Efficiency
“Performance is mostly about response time of the software.”
In mobile: By nature, mobile apps are used on the go. If the response time of the app is long, it will affect the user experience.
“A scalable system responds user actions in an acceptable amount of time, even if load increases.”
In mobile: If you app becomes a top app, you will most likely need to handle a large amount of users and data. When designing the app architecture, it is important that the developers consider system scalability.
Availability, Robustness, Fault Tolerance and Reliability
“A robust software should not lose its availability even in most failure states.”
In mobile: Mobile apps are used in a variety of circumstances (foreground/background, with/without Internet connection) and developers need to account for each.
Usability and Accessibility
“User interfaces are the only visible parts of software according to the viewpoint of user.”
In mobile: This is especially true for mobile. If users can’t figure out your app in the first 60 seconds after launching it for the first time, they will probably remove the app from their device.
Platform Compatibility and Portability
“A quality software should run on as many various platforms as it can.”
In mobile: Android and iOS are the two main smartphone platforms. The mobile app needs to support these two mobile platforms at a minimum either natively or through HTML5.
Testability and Manageability
“Quality software requires quality testing.”
In mobile: Quality apps require quality testing.
- How to do unit test?
- How to do complete test before release?
- How to do regression test after adding new feature?
- All these questions are important for mobile app development.
“Security is a very important issue in software development, especially for web or mobile based apps which may have millions of users with the ability to remotely access the system.”
In mobile: This is very true on mobile, as users are storing lots of sensitive information on their devices.
Functionality and Correctness
“Functionality (or correctness) is the conformity of the software with actual requirements and specifications.”
In mobile: No doubt, the mobile app must work as expected.