Testability assessment and improvement of existing software in an iterative and incremental development process

No Thumbnail Available
Journal Title
Journal ISSN
Volume Title
School of Science | Master's thesis
Checking the digitized thesis and permission for publishing
Instructions for the author
Degree programme
[5] + 62 s.
Testing is a main cost drive during software development and maintenance. However, software is often designed and implemented without the consideration of good testability. Consequently, in many cases poorly testable software is designed and implemented, at the cost of customer satisfaction and money. The goal of the thesis is to investigate how to assess and improve software testability in an iterative and incremental development process, if the software already has its legacy implementation and is to be maintained for a long term. In this thesis, the author investigates the research problem by applying design science research approach. He designs a testability assessment and improvement framework that covers the long term lifecycle of the software, by assessing testability iteratively with software evolution and by improving testability incrementally with implications and validation feedback from assessment results. The testability assessment and improvement framework is evaluated by a software project in Company A with legacy implementation. Due to time limitation, the author follows the framework with only himself as a practitioner in two-month duration. Results of the evaluation serve as detailed examples of how to apply the framework. According to the author's experience, the framework is basically practical to follow in a single software iteration process with some negative experience. Additionally, because of the weak evaluation, there are yet some potential limitations and threats to validity left to be investigated in the future.
Kauppinen, Marjo
Thesis advisor
Myllärniemi, Varvana
Huovila, Mikko
testability, testability assessment, testability improvement, existing software, iterative and incremental development