在本周自学了第二章的内容后才发现了自己以往编程所忽略的很多事情,就拿测试来说,以往的编程我几乎是不会去进行测试的。以前只知道把编好的代码一通敲进去,然后点击执行,结果对了就成。其实这样的做法,小型的程序中可能体现不出什么问题,但一旦做到大型的程序就有可能包含很多的隐患。单元测试的进行可以使模块的质量得到稳定量化的保证,并且可以使自己负责的模块功能定义明确,模块内部的改变不会影响其他模块。回归测试则可以用来确保已经修复的bug没有再复发。再来就是效能分析,它能让我们的程序跑的又快又好等等。可以说这大大刷新了我以往编程时的对编程需要做的事情的概念。由于没有学习过c#,对本书中的一些例子不能够很好的理解,这是本周学习有点遗憾的地方。一下是本周学习中总结的一些知识点:
单元测试:
好的单元测试应具备的条件:
1.单元测试应该在最基本的功能/参数上验证程序的正确性
2.单元测试必须由最熟悉代码的人(程序的作者)来写
3.单元测试后,机器状态保持不变
4.单元测试要快(一个测试的运行时间是几秒钟,而不是几分钟)
5.单元测试应该产生可重复、一致的结果
6.独立性——单元测试的运行/通过/失败不依赖于别的测试,可以人为构造数据,以保持单元测试的独立性
7.单元测试应该覆盖所有代码路径(注意点:100%的代码覆盖率并不等同于100%的正确性!)
8.单元测试应该集成到自动测试的框架中
9.单元测试必须和产品代码一起保存和维护
回归测试:
单元测试是回归测试的基础
回归:回归到以前不正常的状态
回归测试最好要自动化以便尽早发现问题。
效能分析工具:
两种方法:抽样和代码注入
一般先抽样再做代码注入
抽样作用:找到瓶颈
代码注入作用:详细分析
个人开发流程:
软件工程师接到一个任务后需要做的内容:
1.计划
2.开发
3.记录用时
4.测试报告
5.计算工作量
6.事后总结
7.提出过程改进计划