第二章主要讲啦什么是单元测试,以及什么是好的单元测试
单元测试是一个合格的软件必备的流程,就像运动员在比赛之前的热身,活动身体的每一块肌肉,检查它是否处于紧绷状态,确保比赛时的完全发挥。
好的单元测试应满足
1.单元测试应该在最基本的功能上/参数上验证程序的正确性
一个软件的基本功能是用户最常用的功能。比方说一个MIS系统,它的基本功能必须包含增删改查这四项,你写出的软件可以没有简洁优美的界面,可以没有高效的信息检索功能,但作为一个MIS系统,增删改查的基本功能必须保证是正确的,否则就是一堆毫无意义的代码。
2.单元测试必须由最熟悉代码的人(程序的作者)来写
单元测试就像运动员比赛前的热身,只有他们自己可以将肌肉调整到最活跃的状态,这种热身不是教练,不是医护可以替代的。程序就像是程序员的孩子,只有程序员自己才最了解自己孩子的“弱点”。所以单元测试必须由程序的作者来完成。
3.单元测试过后,机器状态保持不变
很多机器在出场前都要经过压力测试,单元测试就像是压力测试,它用来检验程序的稳定性与正确性,却不影响用户的使用,这才是一个合格的单元测试。
4.单元测试要快
一个软件中有几十个基本模块,每个模块又有几个方法,如果不能把单元测试控制在一个较短的时间内,那么将会拖累整个团队的工作效率。
5.单元测试应该产生可重复、一致的结果
6.独立性
7.单元测试应该覆盖所有代码路径
8.单元测试应该集成到自动测试的框架中
9.单元测试必须和产品代码一起保存和维护
效能分析工具
优化程序的运行速度是每一个程序员的梦想,VSTS为我们提供了方便的效能测试工具,我们可以清晰地看到每段语句被调用的次数。只要我们按着“效能测试,分析,改进,再效能测试”的流程,我们的编程水平一定会逐步提升。
学习感悟
以前只知道写代码,写代码感觉选啦软件工程这个专业就注定是要写代码为生,然而我忽略拉许多其他的东西,导致我写的代码总是漏洞百出,十行错九行,单元测试便能减少找错误的时间,不要以为真是在浪费时间,恰恰相反他还能帮助你省出许多时间,
所以在以后的编程道路上我会养成单元测试的习惯