As more businesses migrate to cloud environments, making it easier for customers to access their services/ products, we have witnessed a sharp rise in the number of online businesses employing web applications. Also known as web apps, they have assumed great significance in this digital era, allowing businesses to develop and achieve their objectives, expeditiously.
Well designed web apps allow organizations to gain competitive advantage and appeal to more customers. Hence, it is essential to have measurable or quantifiable metrics to gauge the quality of a web app.
What is a web application?
Web apps are software programs that require a web browser for interaction. And unlike other applications, users need not install the software to run web applications; all they require is a web browser. Web applications include everything from small-scale online games to video streaming applications like Netflix.
What are Software Quality Metrics?
Software quality metrics gauge the quality of the software, its development and maintenance, and the execution of the project itself. In essence, software quality metrics record not only the number of defects or security flaws in the software, but also the entire process of development of the project, as well as the product.
Classification of Quality Metrics
Based on the components and features, software quality metrics can be classified into:
- Product quality metrics
- In-process quality metrics
- Project quality metrics
A user grades the quality of an application based on their experience with its features/functionalities, the value it provides, and after-sales services such as maintenance, upgrades, etc. However, the quality of the software is also measured based on the project, the teams involved, project cost, etc.
Six major quality metrics to consider for better web applications
-
Usability of the web application:
Usability testing assesses the ease with which end-users consume the application. It ensures effective interaction between the user and the app. Web applications that have a complicated design or interface, are least prefered by users.
In order to test the usability of web apps, its navigation, content, and other user-facing features should be tested.
For example:
- Images and other non-text content should be placed appropriately, so as to avoid distractions.
- The options “Search” and “Contact us” should be easy to find.
-
Performance of the web application:
Performance testing determines the behaviour of the application under different settings and configurations. For example: Performance during high usage vs normal usage. Performance of a web app contributes to its adoption, continued usage, and overall success.
Types of performance testing
- Load testing
- Web stress testing
In load testing, we evaluate the performance of the web app when multiple users access it concurrently. This helps to ascertain if the app can sustain peak hours, handle large user requests or simultaneous database access requests, etc.
In web stress testing, the system is tested beyond the limits of standard conditions. The objective of web stress testing is to assess the behaviour of the app during volatile conditions such as when web pages time out or a delay between requests and responses, and how it recovers from crashes.
-
Compatibility on different platforms and browsers:
The quality of the software also depends on whether the application is compatible with different browsers, hardware, operating systems, applications, network environments, and devices.
For instance,
- If developers intend to have a mobile version of a web application, they ought to address and resolve any issues that may arise in that scenario.
- While performing various actions such as printing or downloading, from a web application, the elements on the page, including text, images, etc., should be fixed in place, and properly aligned to fit on the page.
-
Requirements Traceability:
This parameter traces and maps user requirements throughout its life (from its source, through stages of its development and deployment), using test cases. It checks whether every user requirement is met and defines the purpose of each requirement and the factors they depend on.
Modes of requirement traceability
Based on the direction of tracing, requirement traceability can be classified into:
- Forward traceability: Tracing the requirement sources to the resulting requirement, to ensure coherence.
- Backward traceability: Tracing the various components of design or implementation back to its source, to verify that requirements are updated.
- Bidirectional traceability: Tracing both backward and forward.
-
Reliability:
A web application is not reliable if it does not produce consistent results. In an ideal situation, the application must operate failure-free, for a specified period of time, in a particular environment.
For example, a medical thermometer is only reliable if it measures the accurate temperature every time it is used.
-
Security testing for the web application:
The security implementations of a web application is another factor that determines its success. As a study shows, hackers can attack users in 9 out of 10 web applications. These attacks include redirecting users to a malicious site, stealing credentials, and spreading malware. So, ignoring this factor could cause serious damage to users and their businesses.
For example,
- To test the security of web applications, we test URLs that a user can and cannot access. If an online document has an ID/ identifier such as ID=”456″ or identifier=”zm9vdC0xNl8yMDE5…” at the end of its URL, the user should only be able to access that document. In the event that the user tries to change the ID/ identifier, they should receive an appropriate error message upon altering the URL.
- Automatic traffic can be prevented by using CAPTCHA.
Types of security testing
- Dynamic Application Security Testing (DAST): It detects indicators of security vulnerabilities in applications that are running.
- Static Application Security Testing (SAST): It analyzes the application source code, and/ or compiled versions of code that are indicative of security vulnerabilities.
- Application Penetration Testing: It assesses how applications defend against possible attacks.
Additional components to be considered
To ensure that the web application is fully functional in all aspects, the following components should be inspected:
Links
- Internal links
- Outgoing links
- Links that direct users to another section on the same page
- Orphan pages in web applications
- Broken links
Forms or other input fields
- Verify all validations
- Check default values
- Wrong input
- Links to update forms, edit forms, delete forms, etc. (if any)
Database
- Review data integrity while editing, deleting, and updating forms
- Check if data is being retrieved and updated correctly
Cookies
- Check whether the cookies are encrypted or not
- Evaluate application behavior after deleting cookies