There are always huge responsibilities imposed on the tester to uncover any kind of bug that software has got. Irrespective of the functionality and user interface, testers can raise bugs wherever there is a non-conformance.
This article helps in understanding the importance of the functional and the cosmetic bugs. Additionally, the factors to be considered in prioritizing them are also explained here in an understandable way with some live examples for illustrations.
Bugs are inevitable in the Software development. Hence it is always very important to perform the software a through testing before it can be used live. Software testing can become more essential as they help in identifying the bugs missed out by the developers. These unidentified bugs can become very costly in live. Hence a proper test plan and the testing have to be carried out to enhance the software quality.
The above figure has to upload an image file which the software has failed to display. This is a serious issue which can seriously cause business impacts.
What You Will Learn:
Cosmetic requirements are nothing but the user interface or just the front end appearance of the software. Most of the times it happens that it keeps changing between different releases. This happens especially in the projects where the agile methodology is being followed. The releases occur here in the form of sprints. Hence they are usually called Sprint release or just SR-xx, where ‘xx’ refers to the release number.
Each and every release can have a certain set of requirements. Generally, the clients prepare to request for changes in the user interface or just the UI very often.
Following are few examples of cosmetic requirements:
The above are few examples of cosmetic requirements that can come up. These are the requirements mainly aimed at improvising the usability of the software. Another reason behind the cosmetic requirements is to optimize the software and its design for the business purpose.
In the above figure, there are both functional as well as cosmetic issues. A functional issue like checkbox is not displayed for an option “Use DeathByCaptcha”.
The cosmetic issue can be seen here like no uniform font that has been used.
The cosmetic needs are marked bit essential by the clients. This is because of the concern towards the need for making the interaction of the software very simple and at the same time efficient so that the accomplishment of goals occurs easily. In case there are issues with the user interface, clients reach the vendors with a low priority bug. As it generally happens, the functional aspects of the software are concerned by the developers than the cosmetic aspects as they are mostly low impacted areas.
The Software Testers wants all the requirements mentioned by the clients to be available in the software failing which they naturally raise a bug. And it is here where all take off. The priority set by the tester occurs as an outcome from client’s suggestion. The developers’ view is a bit different from what testers look at. They always look if the bug can cause the break in functionality. Here come some recurring discussion and the outcome of it can have the recommendations from the testing team happen at some point. If not in the current release it can happen in the subsequent one.
Real Example #1:
The client has requested the company logo to be appearing on the home page within the title frame along with quick loading feature. The vendor has delivered the software where the company logo takes time in loading and the clients with the feeling that the logo is not loading proceeds to raise a customer live issue. Hence this has done more damages to the vendors. The root cause of the issue might be the size of the image or nature of the image or anything else. Though this has not functional breaks, this has been put up as a live issue.
Functional bugs – Critical and priority factors
Generally, the bugs are considered prioritized based on the priority set by the clients and the potential impacts they can leave at the business. It is the general belief across the developers that the high critical bugs are to be worked on. This is more obvious as the functional bugs are something which suppresses their work. And based on the priority, the clients want to prioritize few of the functional and cosmetic bugs in the same release. Criticality factor depends on the impact or the potential impact the bug can leave it. The priority factor is based purely on the client and their needs.
In terms of criticality functional bugs are much significantly needed to be fixed without delays. For the cosmetic bugs, they can go with the decisions taken by the clients
In the above figure, there are functional issues like design issues and text overlapping and cosmetic issues like the font problem.
Real Example #2:
The client in example #1 had multiple releases from the same vendor. The clients are satisfied with the deliverables provided by the vendors. Now suddenly there are few business scenarios which the clients identified to be not working along with few other lists of display issues. As they functionally impacting issues are considered to be critical to the clients, they asked the vendors to fix them ASAP. And as the display issues had signs of leaving the lesser degree of impacts, the clients prioritized them in multiple releases. Clients were ready to go live with fixes for few of the display issues and most of the functional issues. This is because all the functional can impact the business and the few display issues have the potential for creating impacts.
All bugs may lead to some non-conformance in the software to that of the client’s requirements. When it comes to the impacts in business, it is definitely the functional bugs that deserve to cause severe impacts to the business. As cosmetic bugs conform to the issue with the UI design and the appearance, they can create problems with the usability and appearance among the users. In other words, these are better called as cosmetic enhancements than bugs. Though these cannot impact the business severely in a greater fashion, they can bring in some difficulties among the users while using the software.
Real Example #3:
Vendors have delivered a new version of the software application in a mobile version. There are few features in the mobile apps that required the user to click on some link more often. This created a sense of degraded usability among the users. The vendors have to reconsider the design and the flow in the application. After changing the flow, the application started getting multiple users using them.
Usability takes the main role in plenty of such applications. Though there were no functional changes, there were few changes in cosmetics that made the applications to grow stronger
There can be a number of variations between the classifications of bugs like functional and cosmetic ones in multiple aspects in the Software testing life cycle. Few among them are formulated and tabulated as a difference between both the types:
|Comparison area||Functional Bugs||Cosmetic Bugs|
|Degree of recreation||Recreation of the functional bugs can be done either by the Testers or by the clients themselves||Cosmetic bugs requires minimal effort in recreation as they are identified at UI level mostly|
|Criticality||They are mostly critical as the functional break down can impact the business in a severe form||They can become critical at very few occasions.|
|Priority||The priority is as defined by the clients||The priority is as defined by the clients|
|Potential impact||Functional break down can cause serious issues in the clients’ business||Though they cannot create direct impact, they can also take on to make potential impacts.|
|Enhancements consideration||These bugs can never be recommended or considered as enhancement||These bugs can be or considered as enhancement|
|Costs when not fixed||High cost when the issue is found on live software||Not much cost|
|Potential Causes||There can be multiple causes:|
1. Coding issues
2. Sync issues
3. Dependant applications issues
|The following can be causing the issue:
1. Design issues
2. Unsupported file issue
Cosmetic bug illustrations
The cosmetic bug can cause impact in some places where there are company logos or the partnerships’ images on the software but it is not loading properly. Though they are non-functional bugs, they can become severe. Let us understand the following illustrations to understand the importance of the cosmetic bugs and their significant role.
Software A is being developed by the vendor B. The mode of deliverables to the client is in the form of code drop once in every month after a base version release has been made. From the delivered product, clients will list down all the issues, bugs, enhancements based on their criticality and the priority.
Priority goes as: P1, P2, P3, and P4.
Criticality goes as: Severe, Major, High and Low.
Now the clients expect all of the Severe, Major, P1 bugs to be fixed in the week 30. Similarly the High, P2 bugs in the week 35. Low, P3 bugs’ fixes are expected in the week 40. Finally, P4 bugs are expected in the week 40. In between all the release of the fixes, the client blocks 3 days buffer time period.
Now the following observation becomes very critical:
“Do not count the eggs before they get hatched” – This line is applicable to the developers as well as testers. When software has been developed and ready to be tested the testers tend to think of the above lines. Post-testing, it is now the developers’ turn to spell the lines to the testers. The following are the thoughts flowing in between them:
Hence it is always kind of argumentative approach which goes between the testers and the developers. To make sure the entire project deliverables are in sync it is essential that an intermediate person (project manager) who can solve the controversies so that the deliverables are optimized and absolute with no defect leakage.
The above articles must have explained all the unavoidable and important aspects of the cosmetic bugs and how it can be compared with the functional bugs. The above article also explains how the cosmetic bugs can be treated when compared with the functional bugs.
Though the criticalities of the functional bugs are higher than that of cosmetic bugs, the latter reserves their own place in getting priorities from the clients. In order to balance the software with resolutions for all the bugs, it is generally advised to treat the bugs understanding the criticality, priority and the client’s recommendation.
About the author: This is an article written by Nagarajan. He is working as test lead with over 6 years of Testing experience in various functional areas like Banking, Airlines, Telecom in terms of both manual and automation.
What’s your take on cosmetic and functional bugs? I would like to see your thoughts below.