软件工程学习笔记一:单元测试

      软件的完成一般需要多人的合作,作为团队中的一员,可以通过对自己负责的模块进行单元测试而得到一个质量高的、稳定的成果。单元测试,刚遇到这个概念是很迷茫的,在之前编写程序的过程中,一般都是在多次编译中发现自己的问题并改正之,一旦运行通过就不再管了。当然,程序和软件是不同的概念,有的软件是需要多次维护的,为了避免程序员写的某些模块被其他接手的人误解而引起软件的bug,写完代码后进行单元测试是很必要的。

     创建单元测试函数的主要步骤是:

1.设置数据

2.使用被测试类型的功能

3.比较实际结果和预期的结果

     而什么才是好的单元测试呢?下面将列举一系列的标准:

1.单元测试应该在最基本的功能/参数上验证程序的正确性(如C++中的类)

2.单元测试必须由程序的作者来写

3.单元测试过后,机器状态保持不变(在teardown阶段删掉单元测试创建的临时文件或目录)

4.单元测试要快,且产生可重复、一致的结果

5.独立性(当其他模块费时或不稳定时可以人为构造数据来进行单元测试)

6.单元测试应覆盖所有代码路径(必须测试公开的和私有的函数/方法)

7.对于需要长期使用的软件,最好将单元测试自动化

8.单元测试必须和产品代码一起保存和维护

     看起来,单元测试不是一件简单的事,尤其是对于大量代码的程序,但如果不写单元测试,可能将在后期遇到更多难以修复的bug。

     因此,在编写完软件的一项功能后(如我们想要做的音乐软件的读取音乐功能),最好做一下测试。并养成做单元测试的习惯。

     引用部分出自《构建之法》,作者邹欣。

=======================

     使用VS2015实验了一下,由于VS无法对C++进行单元测试,照着书上编写了简短的C#程序,然而依然没有成功完成单元测试。

     也许单元测试的工作需要具备更高的编程能力才能完成。

原文地址:https://www.cnblogs.com/claraxia/p/5315607.html