软件工程第三周实践与理论学习
一、上周问题改进
上周展示的代码规范性检测和性能测试都是在命令行中完成的,这周已经集成到VsCode上:
二、理论学习
1、完成慕课第三章的相关学习和作业,第三章的编程实践已经完成,一些总结写在了博客里:
https://www.cnblogs.com/dbefb/p/12425272.html
2、阅读《构建之法》讲义中的“两人合作”:
这几周的学习意识到,敲代码之前的整体设计和算法语句的选择都是非常重要的,并不是以前我所认为的能完成功能任务就行,代码的可读性非常重要,优雅的代码能给人以美的享受;看第二章的慕课有一句话感触很深,不合格的程序员是不适合结对编程的,反思我自身,还未达到一个合格程序员的标准,编程实践任务中常常要baidu、google很多资料才能进行下去,对于库顶多到能使用的阶段,运行原理并不清楚,一个功能的完成也不能使用多种算法求最优解,这些都是我有待提高的地方。
3、“测试驱动开发”:
百度百科:测试驱动开发
测试驱动开发,英文全称Test-Driven Development,简称TDD,是一种不同于传统软件开发流程的新型的开发方法。它要求在编写某个功能的代码之前先编写测试代码,然后只编写使测试通过的功能代码,通过测试来推动整个开发的进行。这有助于编写简洁可用和高质量的代码,并加速开发过程。
个人理解:这周用unittest学到了一个mock.patch模块,可以模拟还未编写好的函数,返回你想要的特定值,可以在部分功能还未实现的前提下进行测试。测试驱动开发的意思应该就是测试一个模块,编写一个模块,这样能更加全面的开发模块的功能、性能、健壮性。
三、实践学习
1、慕课第三章编程题:对game_map.py进行单元测试,完成情况上面已经贴出博客链接
2、对计算器和单词检索程序进行单元测试并改进代码,完成情况和总结写在了博客里:https://www.cnblogs.com/dbefb/p/12427356.html
四、总结
本周主要对几个程序进行了单元测试、覆盖率测试,测试过程中可以发现程序存在的种种问题,甚至有把程序推翻重写的感觉,可以看出测试的重要性,覆盖率测试可以更好的辅助单元测试,可以看到测试文件和被测文件的代码覆盖率,对测试用例的选择非常有帮助;本周存在的问题还是感觉知识储备不足,敲代码经常性的百度、谷歌查资料,没有太轻车熟路的感觉,对各种可用的单元测试库、方法了解不算深入,有待学习提高。