作业:提问回顾与个人总结
项目 | 内容 |
---|---|
这个作业属于哪个课程 | 2023年北航敏捷软件工程 |
这个作业的要求在哪里 | 个人作业——提问回顾与个人总结 |
我在这个课程的目标是 | 了解软件工程的涵义和内容,提高个人、团队的动手和实践能力 |
这个作业在哪个具体方面帮助我实现目标 | 总结一学期的学习过程,吸取经验和教训 |
问题与回答
链接到以前提问题的博客
Q1:编写单元测试、
最后我在做实际测试的时候主要在这几个方面
-
确保测试用例覆盖输入参数的边界条件。例如,如果函数接受一个整数参数,测试用例应包括最小值、最大值和边界附近的值。
-
代码覆盖率:使用代码覆盖率工具来确定测试用例是否覆盖了代码的各个部分,例如语句覆盖、分支覆盖和路径覆盖。
-
特殊值和异常情况:考虑那些可能导致程序出现异常或错误行为的特殊值和异常情况。
-
反馈和修复循环:定期审查测试结果并反馈给开发团队。
Q2:敏捷的使用范围
敏捷方法可以提供更高效、更灵活的方法来管理项目。在我个人的实践之后,感觉对于那种需要变化和反馈性强的软件都可以适用于敏捷方法框架。
Q3:goto
在我个人的开发后,goto语句的确可以使得代码更加简洁,而且确实有必要。他主要在以下方面:一些特定的算法或底层系统编程可能需要使用goto
语句来实现最佳性能或特定需求。但是,这些情况应该是少数,并且需要经过仔细评估和合理的使用。
Q4:结对关系的思考
我个人感觉这种驾驶员和领航员之间的角色还是必要的,我在结对的过程中,由于编程水平上面的差距,因此在某些情况下我们的项目确实在不断进行各个方面角色的转换。
-
链接到以前提问题的博客
-
请尝试对自己曾经提出的问题进行解答,并阐明,是如何通过看书,实践,或者讨论弄清楚的。
-
是否原来的问题还不明白?如果有,请分析。
-
是否产生了新的问题?如果有,请提出。
-
软件工程这门学问有很多 “知识点”, 这门课强调 “做中学” - 在实践中学习知识点。
-
请问你们在项目的 需求/设计/实现/测试/发布/维护阶段(一共6 个阶段)中都学到了什么“知识点”,每个阶段只要说明一个知识点即可。
-
-
结合自己在个人项目/结对编程/团队项目的经历,谈谈自己的理解或心得。
实践总结
需求
-
最大的收获是分而治之”,即各自划分功能进行处理,遇到不会或者难以决策的事情联合起来处理,这样的分布可以使得效率更高
-
用户的反馈很重要
设计:
-
按需且详细的讨论。简单来说就是尽可能多把某些重要的技术细节讨论好,尤其是在和别人的对接模型处。
实现
-
代码管理的实现:即使用CI/CD的管理方法高效管理代码
-
个人分配任务并进行适当对接
-
尤其注意重视鉴权问题。
测试
-
保证代码覆盖率高
-
边界测试尽可能全
发布
-
准确的应用受众并进行宣传
维护阶段
-
保证产品的稳定性和安全性
心得体会
结对编程
很感谢自己找到了这么好的一个队友,在实际的结对开放中,我其实干的事情不如另一位同学。这主要是由于自己的coding能力差了一些,不过我也在其他的地方帮助队友。其中动态链接库的vs和makefile的开放方面真的遇到了很多的问题,接触了google test这一单元测试框架,这些地方真的很费时间,全都是环境问题。
团队项目
我比较幸运的加入了这个团队,相较于其他同学的技能书,自己的能力简直弱的可怜,大家实力都很强,沟通交流也非常顺利。而经历了这样的一个开发过程,包括了427次合并和n多次的会议后,我们终于把Compilify编译平台完成了。能亲身参加到这样一个项目是我的荣幸。