Authors: Thareendhra Keerthi Wijayasiriwardhane, Gamini Wijayarathna, Damitha Karunarathna
Abstract: In the first year of studies, undergraduates who follow computing degree programmes, write number of programs to learn computer programming. They even test them in ad hoc manner but not using any formal approach. As a result, the programs are not tested comprehensively. If students are given an opportunity to test their programs comprehensively, it would not only allow them to get revealed their own errors but also give them an indirect training on writing defect free code. If this could make a practice during their course of studies, we speculate that it would ultimately help to produce better computing graduates who have mastered the skill of writing defect free code. Although the basis path testing could simply be used as a formal approach for testing these programs, a major issue that a tester experiences is how to determine the test cases. The tester requires enough test cases to uphold the thoroughness of testing, but not many that all the limited testing resources are used up. In most cases, the tester has to determine test cases manually. However, when program has a complex branching structure, it becomes very difficult to determine them manually. This makes the automated test case generation a need. However, the usual practices are not adequate to address this problem. In this paper, we present the detailed development of an educational software tool to generate test cases from the flowchart specification of a program for performing basis path testing using a method proposed in our previous work. The results of an experiment conducted confirm that the students who experience their own programming errors with the help of our tool demonstrate an improved level of skill of writing defect free code over others and our speculation is thereby reasonable.
Keywords: computer programming, computer science education, educational software tools, software testing, software testing tools