教材学习内容总结
2.1 单元测试
- 单元测试:能让自己负责的模块功能定义尽量明确,模块内部的改变不会影响其他模块,而且模块的质量能得到稳定的、量化的保证。
- 单元测试主要步骤:
1.设置数据(一个假想的正确的E-mail地址)
2.使用被测试类型的功能(用E-mail地址来创建一个User类的实体)
3.比较实际结果和预期的结果(Assert.IsTure(target != null);) - 回归测试:工程师们在新版本上运行所有已通过的测试用例,以验证有没有“退化”情况发生(例如:在3.1.5版本,模块A的编号为125的测试用例通过了,但是在新的版本3.1.6上,却失败了,这就是一个倒退),这个过程就是回归测试。
2.2 效能分析工具
- 有抽样和代码注入两种分析方法,一般的做法是先用抽样的方法找到效能瓶颈所在,然后对待定的模块用代码注入的方法进行详细分析。
1.抽样:具有不需要改动程序,运行较快,很快找到瓶颈,但是不能得到精确的数据,也不能准确表示代码中的调用关系树等特点。
2.代码注入:具有可以精确测量程序中各个数据,但是运行时间大大加长,还会产生很大的数据文件,增加了数据分析的时间。
2.3 个人开发流程
- 计划→开发→记录用时→测试报告→计算工作量→事后总结→提出过程改进计划
2.4实践
- 单一职责原则:一个模块应该只有一个导致它变化的原因,一个模块应该完全对某个功能负责。
- 开放-封闭原则:软件实体应该是可以扩展的,同时是不可修改的。
- 简单的程序从几个维度逐步扩展,增加复杂度。
1.从数据方面扩展
2.从需求方面扩展
3.从用户方面扩展
4.从软件构件方面扩展
教材学习中的问题和解决过程
- 问题1:下载了VSCode,编写的c语言程序总是一闪而过,按照步骤配置c_cpp_properties.json的时候,命令行输入include
并没有出现黄色灯泡,从而无法产生c_cpp_properties.json文件,为什么? - 问题1解决方案:网址:http://blog.csdn.net/bat67/article/details/76095813,最后只能在代码中输入
system('pause');
才能实现停顿。