单元测试
单元测试是为了让代码模块功能定义尽量明确,模块内部的改变不会影响其他模块,保障模块的质量稳定。
单元测试好坏的标准:
- 单元测试应该在最基本的功能/参数样验证程序的正确性。
- 单元测试必须由最熟悉代码的人(程序的作者)来写。
- 单元测过后,机器状态保持不变。
- 单元测试要快。
- 单元测试应该产生可以重复、一致的结果。
- 独立性——单元测试的运行/通过/失败不依赖于别的测试,可以认为构造数据,以保持单元测试的独立性。
- 单元测试应该覆盖所有代码路径。
- 单元测试应该集成到自动测试的框架中。
- 单元测试必须和产品代码一起保存和维护。
回归测试
回归测试的目的是为了验证新的代码的正确性,改正缺陷,还有验证新的代码有没有破坏模块现有的功能。
个人开发流程
计划:
1.估计这个任务需要多少时间。
开发:
- 分析需求
- 生成设计文档
- 设计复审
- 代码规范
- 具体设计
- 具体编码
- 代码复审
- 测试(包括自测,修改代码,提交修改)
记录用时
测试报告
计算工作量
时候总结
提出过程改进计划
读后感想:
刚开始看本书第二章时,居然没有弄明白什么是单元测试。我还以为写单元测试需要相应的编辑软件以及特定的语法格式呢。不过后来明白了,所谓单元测试其实就是写相应的代码来查看程序的运行结果。检查程序是否有异常情况,排除我们需要的情形之外的事件发生。例如,求一个数的倒数。我们所求的这个数必须是不为0的数,因为0是不能做除数的。如果程序中出现0作为除数,程序就会出错,我们在写代码的时候就需要考虑这种情况,做好相应的防护措施。单元测试需要一个模块一个模块的进行,如果将所有测试都集中到一起来测试,那么非常容易出现大规模的错误。以前我在写程序的时候也是喜欢在完成所有的代码之后进行最终的测试。但是这时候往往会出现很多错误,而且同一个错误有可能不是由一处异常情况引起的,更可怕的事情是按下葫芦浮起瓢,更改一处后又有另外的错误。碰上这种事情真是让人头疼。现在看来,这就是没有做单元测试的结果啊。以后编程应当稳中求进,编程过程中,每完成一个模块都需要进行测试,而且测试时应该考虑到所有情况。
至于软件的个人开发流程中,我怎么看这个流程中那么多的东西我从来没有干过啊。在以前的编程练习中,每次都是接到老师的作业后,先考虑考虑怎么开头,然后就开始写代码,如果写了一段代码后不知道怎么写了,就停下来想想想。直到写完代码进行测试,如果有错误就查找错误,没有错误就可以写实验报告提交作业了。至于软件工程的任务清单中的流程,比如说估计任务时间,生成设计文档,设计复审,代码规范,记录用时,测试报告,计算工作量,事后总结等等,以前没听说过,跟没有这么做过。虽然现在老师要求我们严格按照这个流程来完成作业,但是每次编程时这实在是太分神了,尤其是记录时间和记录测试报告,当我在编程的时候,其他的什么是都忘了,压根儿就想不到这回事。希望以后我可以适应这样的开发流程吧。