Age testing is a software testing type in which the durability of the software is tested and more importantly, it is tested whether and how the software would behave in the future.
Age testing is performed to check whether the software can perform well in the future.
Age testing is necessary to know the durability of the software. Also with the help of this testing report, we would be able to take the necessary steps to update, modify and add new features to the software which can eventually help us to continue with the software without any interruption.
Age means, the time of sustainability of a system. Everything from living entity to non-living entity to a virtual entity such as softwares are prone to aging. As we know, due to aging either there is a lack of new functionality in the system or the existing software may be older enough to be used.
There are several problems with the aging of the software. Some are listed below:
This is one of the major concern, that whether the software will still support the systems or hardware or protocols which may be used in the future. When a particular software is developed, then the company invest in the software, and of course, does not want to see it obsolete after a few years.
Supportability can also disrepute the company if not handled with attention and efficiency. Supportability is hampered due to the aging of the software because technology is changing every day and the software must be able to cope up with all the changes.
The first and foremost concern for Age Testing should be the supportability of the software in the future.
When software is built, then all the security functions and encryption modules are created as per the network, protocols, algorithms, topologies, and hardware available at that time.
When this particular software is used for a longer period of time, new technologies come up and the software face challenges when new security threat has to be managed which was never known to the software at the time of its development.
Thus this is a big problem faced by the software due to aging.
Software is dependent on different libraries and packages. The libraries and packages which has to be updated from time to time as per requirements, may not be able to cope up with the existing software.
Therefore, this is also a big problem that the software needs to be updated as per the libraries and the packages which are becoming popular in the market.
A defect is anything which can be identified by abnormal functioning or malfunctioning of the software. However, when we speak about a defect, we see it in terms of the functional and non-functional defect.
Functional defects are those which are found in functional requirements of the software, on the other hand, defects on the non-functional properties in the software are called the non-functional defects of a software. Defects may occur in a different phase of software development.
Here, as we are speaking about the age of the software and testing is performed to check whether the software would perform well when it would cover an age. Also, we must understand that defects also have an age.
Let us see how a defect age is calculated:
For that, we have to understand first that what are the different phases that we are going to use in while;e developing the software. For example, let us consider a general example of the steps below:
Now let us number all the above testing starting from 1 (Planning & Gathering Information) to 10 (Acceptance Testing).
Now while calculating the defect age, we find the difference between the time of the finding the defect and the time when the defect is fixed.
Defect Age = Defect idenfied - Defect Originated.
Sometimes it may happen that, the defect may be identified in one phase and could have originated in another phase of the software development.
Now in such cases, the defect age is calculated as:
Defect Age= Defect identified(System Testing Phase) - Defect originated (Coding Phase)
= 7-4 = 3.
Therefore, in this case, the age of the software is 3.
It has to be noted that, defect age should also be calculated in terms of time also. Let us see how defect age can be calculated in terms of time.
Let, the defect is found in 23-02-2019 at 12:40 AM and the defect is resolved on 24-02-2019 at 12:40 AM. Then the duration gap of the hours becomes the age of the defect, which is exactly 24 hours.
Defect spoilage is the factor for which it becomes difficult for the tester to find or detect the defect. When the spoilage value is higher, it means that detecting defect is not that much easier, On the other hand, lower spoilage value means that its easier to detect the defect and debug it.
Defect spoilage is calculated as:
Defect spoilage= (Total number of defects in one phase * Phase in which defect is discovered)/ Total number of defects found.
There are several benefits of age testing. Some of the most important points are listed below:
If age testing is carried out properly, then there are no risks of software failure in the future or the risk reduced in significantly reduced. When big softwares are released globally, and people develop faith on its smooth running and once the trust is broken, it's not possible to gain.
Not only for risks but also the software's quality is improved when the Age Testing is done. As in age testing, not only the test is carried out to check for the software's future run, but also parallelly the quality of the software improvided, which is an added benefit.
Age testing is also support for different types of testing we have seen so far. Age testing is also carried in the later developmental phases of software development. And in the later developmental phase, the testings like the integration as well as the system testings are carried out.
The benefit of this is when age testing is carried out parallelly with the unit, integration and system testing, then it becomes a support for all those testings.
If the age testing is performed well than the old can be made gold. When software is developed for the first time, all the requirement and analysis are carried out properly and so the software has good integration of modules.
Now due to aging when the software becomes obsolete, it is not that the entire software becomes obsolete at the same time, but only a part of it. Therefore, if only the particular part of the software which needs to be repaired or updated is modified and thus the originality is sustained.