Abstract:
In the software development life cycle, there are a few, well-known, major phases and their sub-phases. Those are, namely, requirement engineering, feasibility study, design, development, testing, deployment and maintenance. Within those, the most likely sub-phase to be overlooked is the unit testing, in the testing phase. One of the main reasons for such negligence is that the cost it takes for unit testing. This cost is in the aspect of the effort, the amount of human resources to be put for unit testing. Most of the time, the project managers and the other responsible personnel, trade-off between carrying out unit testing and the cost it would take, and, either, neglect unit testing or carry out unit testing lightly.
In the case where carrying out unit testing lightly, it could be either writing trivial unit test code, or carrying out unit testing by debugging the code for various cases for functional units. In these cases, the code could not be tested enough at all. Or, there would not be any valid evidence to prove that a comprehensive unit testing has been carried out.
It is important to have a very good balance between carrying out comprehensive unit testing, keeping solid evidence of unit testing and saving the cost it would incur for unit testing. Considering all the aspects mentioned above, this research suggests a spreadsheet format as a unit test specification and offers a unit test code generator tool to generate unit test code based on the said unit testing specification. This research has considered using Microsoft Excel as the spreadsheet software to create the unit test specification, as it is widely used and popular. The unit test code is generated for the C++ programming language, which does not have that much of good unit testing frameworks. And, the unit test code is for the emerging unit test framework, Google Test.
The outcome of this research has been applied to five different industrial software system projects and six target functions of each of those projects, which ultimately sums up to 36 target functions. The results have been presented to an expert software architect and his judgement of the generated unit test code has been obtained.