软件构造课--感想Lab1 (对于测试的理解)

一个学期下来,对软件构造有了些许的感悟。

本次的课程教授的编程语言是Java。Java语言的语法与C语言和C++语言很接近,使得大多数程序员很容易学习和使用。Java丢弃了C++中很少使用的、很难理解的、令人迷惑的那些特性,如操作符重载、多继承、自动的强制类型转换。特别地,Java语言不使用指针,而是引用。并提供了自动的废料收集,使得程序员不必为内存管理而担忧。同时Java是面向对象的语言,这为我们之后的一些实验的ADT结构做了铺垫。Java语言提供类、接口和继承等面向对象的特性,为了简单起见,只支持类之间的单继承,但支持接口之间的多继承,并支持类与接口之间的实现机制(关键字为implements)。Java语言全面支持动态绑定,而C++语言只对虚函数使用动态绑定。

根据我们实验的内容(我们的学习进度基本上是按照实验的步骤来得):

Lab1 Fundamental Java Programmingand Testing:

我们的学习过程是从一开始最基本的Java语法开始学起。虽然在之前的小学期中有学过一段时间,但再次捡起的时候发现之前的学习仅仅只是判断,一些重要的编程思想,编程模式都没有涉及到。当时的目的只是为了完成大作业,真的是无所不用其极,没太理会程序的健壮性等特性。在本次的实验一当中,我初次接触到Junit测试,一开始对这个并没有太过操心,但是几乎后来的实验都是需要编写测试用例的。一直为全是绿的努力(手动滑稽)。之后还用到了EclEmma来检查覆盖度。。。

软件构造课--感想Lab1 (对于测试的理解)

一开始为了这些测试用例而伤透脑筋,后来发现通过这个可以解决之前可能会忽视的问题。并且也有快捷的方法直接快速生成测试方法(点击src下的method_junit.java--->右击new--->看看后面的提示框中有么有Junit test case,如果没有的话点击other,在提示框中输入Junit 就会出现--->在弹出的对话框中找到Source folder,点击后面的Browse将其改为含有test的那个目录,这里有些可能会提示名字重复,把下面的 Name改改就行--->点击next--->你会看到method_junit里面的所有法,这时候你就可以选中它们)。

下面介绍一下 Junit吧(部分来自简书中一些人的理解):

JUnit4是一个易学易用的Java单元测试框架,一般我们在写完一段代码或一个方的时候,都要测试一下这段代码和这个方法的逻辑是不是正确,输入一定的数据,返回的数据是不是我们想要的结果,即我们在写单个业务代码针对结果进行测试。

Junit看起来是增加了代码量,但是对于程序的维护,提高代码质量有不言而喻的效果。之前为了找一个减一的问题,debug了好几次都没有发现问题(大佬请忽略吐槽)。