Abstract:
This thesis presents a semi-automated testing framework for use in application-level
testing of Java systems. The framework is intended for small-to-medium development teams,
allowing them to scale their testing efforts while retaining reliability and repeatability, and
without the cost and complexity of a fully automated testing solution. Manual approaches to
testing are not scalable or repeatable, while fully automated modes of testing require
considerable set-up, knowledge and maintenance. The framework proposes a good
middle-ground that is configuration driven, and black-boxed in a way that limits code
dependency and complex scripting solutions .
The framework, at its heart, lets testers define test scenarios externally using simple forms
of configuration files. For example, a configuration file can define API methods to be tested,
input, and expected output so that test cases can be flexible and reused and retained in an
accessible way. Since the test logic is separated from the application code base, the effort to
make implementations due to changing application requirements and changing API structures
is reduced.
The framework provides a graphical user interface (GUI) to enhance accessibility and
usabil- ity so that the user can select test methods, enter values, and run tests with little to no
technical background. This makes the tool accessible to many possible users, including those
that do not have extensive programming backgrounds. This makes the tool suitable for a wide
range of users, including those without deep programming backgrounds.
The structure of the framework uses a modular system of components for the firms that
need to execute tests, manage configuration, log output, and facilitate users. While the current
implementation provides semi-automation only for Java, it has shown great promise for
inclusion in agile development contexts where timely feedback and repeatability of testing is
critical.
Future versions can increase support for other supported languages and allow for further
levels of automation, which would increase its overall effectiveness. Overall, this research
contributes a practical, flexible, and easy-to-use testing framework that provides an efficient
and reliable way to bridge the gap between manual and fully automated testing.