Putting in Order the Components of the Program Based on the Test Requirements
Main Article Content
Abstract
Finding bugs that are already present in a software product is the primary objective of the
testing process. It is not feasible to ensure that the software is free of errors for most actual
systems, even after the testing step has been properly carried out. This is because it is not
possible to test every potential combination of inputs. This is because the majority of software
solutions have a relatively broad input data domain, which contributes to this result. It is not
possible to test the program thoroughly with regard to any value that the input data may take
on. This is because such testing would be impractical. The significance of testing should not
be minimized, despite the fact that there are limitations inherent to the testing process that
cannot be avoided. It is important to keep in mind that testing does, in fact, reveal many bugs
that are already present in a software product. Therefore, testing offers a realistic means of
minimizing the number of flaws in a system and boosting the trust of users in a system that
has been established. Even after doing exhaustive testing on a program, it is not uncommon
for some errors to persist. These lingering flaws are often dispersed across the whole of the
code. It has been noticed that errors in some sections of a program might result in failures that
are both more frequent and more severe than those caused by errors in other sections. If this is
the case, it ought to be able to arrange an object-oriented program's statements, methods, and
classes in the order of their propensity to result in a failed attempt. After the program parts
have been organized, the testing effort may be divided up such that the elements that are
responsible for the most frequent failures are subjected to a greater amount of testing. In this
thesis, we provide a proposal for a programming measure that we name the impact of program
components, which is based on this notion. The capacity of a class to bring about failures is
indicated by its level of influence. In this method, we have relied on the program's
intermediate graph representation in order to solve the problem. A forward slicing of the
graph is used to determine the degree of impact exerted by each class. Applications like as
coding, debugging, test case creation and maintenance, and other similar tasks may benefit
from the use of our suggested program metric.