As part of my Ph.D. research, we have proposed and implemented a new software development method that emphasize on the software testing cycles. Our method, Testing Before Coding (we refer to it as TBC) does not require previous background in software lifecycles and can be adopted in the existing programming or related courses without changing the course contents, syllabus, policies, or course loads. The primary feature of our approach is that software testing is presented as an integral part of programming practice; specifically, a student who is to write a program begins by writing a test suite. Figure 1 shows the TBC software development mehtod. The TBC method has been applied in teaching undergraduate computer programming courses for the last five semesters in the Department of Computer Science at North Dakota State University. More than 150 students in each semester participated in our experiment, and the sections that applied the TBC method improved at least 24 % of their programs’ quality (in terms of black-box testing) comparing to the sections that did not apply the TBC method. Our experiment also concluded that applying the TBC method in program development helped in understanding the problems and writing the code, made it easier to do debugging, improved the quality and reliability of the code, boosted developers’ confidence, and so on. TBC method make a cultural shift in teaching programming languages by making testing as an integral part of programming practices and apply software engineering concepts in programming courses. In our approach, developers or students must learn how to test their own code. Not only producing the correct output or a compiled version of the code. In our opinion, if developers or students know how to write the program then they better know how to test it and make sure that their programs are doing what they expected it to do. |
![]() |
| Dr. Rahman completed the MS degree in Computer Science in the department of Computer Science at North Dakota State University. His research focus was web-based applications’ development, Software development frameworks, and Software Testing . As part of his MS research, he designed a prototype of a web-based application and implemented in both J2EE and Zope environment. Please click to visit the website for his MS research. |