Abstract:
|
In this century, computers have become an inseparable part of human life. Human
beings entrust them with day-to-day activities and as well as highly sensitive data such as
credit card information. Therefore, it is highly essential to ensure the proper working of the
software before it is handed over to the users. Simple errors in the software may cause billions
of dollar loss or even cause harm to human life. Therefore, the software needs to be dependable
and reliable. Software testing is one of the most important methods to assure an error free
software. This thesis work is centered on software testing.
One of the major concerns in today’s practical software testing is the size of the
source code which the testers have to deal with. Simple and effective testing methods that can
handle the issue of source code length are highly essential. As the length of the program
increases, testing activities like test case generation and test execution becomes more
complicated. From the literature review it was evident that most of the existing methods for
software testing did not address the problem of source code size during testing. Considering
these scenarios, the work presented in this thesis tries to handle these challenges in practical
software testing so as to make testing easier. With this aim, we have proposed a forward
slicing based framework which helps to identify the statements of relevance in a software.
Program slicing is used in several fields like program comprehension, debugging, software
maintenance, program cohesion, refactoring and reverse engineering. Anyhow, the works that
explicitly demonstrate how program slicing may be applied in software testing is extremely
rare. In this thesis, we have clearly demonstrated how to perform software testing and trace
dependencies in the source code using forward slicing. A formal representation of forward
slicing is also presented in this work. As an extension to our forward slicing framework, we
have also introduced the concept of partitioned forward slices and partial slices which helps
the testers to focus on statements of interest. Partitioned forward slices helps to handle the
large size of forward slices whereas partial slices identifies statements of interest with respect
to output variables. The research finding finally concludes that, software testing approaches
should incorporate slicing methods to make testing more effective and easier. |