鉴于大家对C/C++十分关注,我们编辑小组在此为大家搜集整理了“ 基于测试驱动开发的c语言教学研究 ”一文,供大家参考学习
1 测试驱动开发与 C 语言教学的结合在多年的 C 语言教学中,我们发现,初学者在学习 C 语言的障碍来自于多个方面,其中主要有 2 个方面的原因(:1)缺乏计算机的程序化思维模式。作为大学生的第一门计算机语言,很多学生刚开始学习编程时,往往不知从何处入手。出现这个问题的原因是学生不能正确认识计算机能做什么工作,以及实际问题的解决步骤和算法。(2)不能深入理解程序的执行过程。
要想学好 C 语言,必须理解 C 语言语句的执行顺序和执行效果。有了这方面的知识,就会领悟计算机解决问题的方法和实质。同时,也就会解决(1)中所提到的问题。怎样才能深入理解程序的执行过程呢?要借助于调试工具。通过调试,我们可以单步运行程序,能清晰地查看程序运行的流程以及相关变量值的变化过程。由此可见,调试在 C 语言学习和实践中起着至关重要的作用。
调试与测试有着极大的内在联系。一般来说,调试是指在软件开发过程中,定位并排除程序中的错误,而软件测试是通过验证一些测试用例,找出软件中存在的错误。因此可以说,调试中要进行大量的测试,测试中(特别是白盒测试)要借鉴调试的方法。将测试驱动开发引入到 C 语言教学中,可以让学生熟悉调试与测试的过程,提供了一种解决实际问题的思维模式,让学生养成测试的习惯,确保程序开发的质量。
2 实例分析为了更好地理解测试驱动开发方法的优越性以及在 C 语言教学中的应用,下面以一个实例来进行说明。
例如,要求用户从键盘输入一个年份,接着判断该年份是否为闰年。这个问题是参考文献中的一个例题,学习过 C语言的同学几乎都做过。对于初次遇见这个题目的学生来说,还是感觉有一定难度的。然而,当看完教材的解释以后,思路就会变得很清晰。由此可见,问题的结症在于闰年判定规则的建立。
怎样才能快速总结出规则并解决问题呢?一种很自然的想法就是列举一些实例,再总结出规则。比如,闰年的情况有2000、2012、1996,非闰年的情况有 2011、1998、1900。这两组年份符合一些什么规则呢?最容易找出的一个规则是,不能被 4整除的一定不是闰年,如 2011、1998。再来分析一下 1900,为什么它也不是闰年呢?因为它能被 100 整除,则要求能被 400 整除才算是闰年,否则就不是闰年。由于不满足这个条件,1900年就不是闰年。于是判断不是闰年的第二条规则也找出来了。其实,考虑到这个程度,我们已经把不是闰年的情况全部列出来了,其它情况当然就是闰年。完成了“列举实例”、“总结规则”这两个步骤后,接下来就是编程实现了。