73
社区成员




项目 | 内容 |
---|---|
这个作业属于哪个课程 | 2024年北航敏捷软件工程 |
这个作业的要求在哪里 | 个人作业:阅读和提问 |
我在这个课程的目标是 | 学习软件工程知识 |
这个作业在哪个具体方面帮助我实现目标 | 了解软件工程知识 |
如果单元测试的结果是错的,那一定是程序出了问题
在第2章中,有如上的结论,但如果单元测试依赖于外部系统或资源(如数据库、API等),而这些系统或资源在测试时不可用或返回错误的结果,那么测试也可能失败,不一定是程序出了问题。
单元测试必须由最熟悉代码的人(程序的作者)来写
第2章中有如上的说明,但是我认为最适合写单元测试的人应该是最熟悉该模块需求的人,或者说由提出该需求的人来测试,这是因为程序的作者可能只是按需求完成了代码,那么在测试时,也会按自己的代码的理解来完成测试,而如果他在写代码时已经误解了该需求,那么无论如何去测试,都是测不出问题的,因为在他眼中这就是正确的,而在真正的需求上,可能该功能是有问题的,因此我认为应该由最熟悉需求的人来写测试。
书中介绍了基础功能、核心功能、惊喜功能的投资/效益关系。书中提到惊喜功能可能随着时间的推移,会降低竞争力,变成核心功能甚至基础功能。那么在前期投入的时候,如何去衡量一个功能的效益呢?
书中讲述了二人合作过程中可能出现的一系列阶段,提及“二人合作过程中的相互影响”。诚然,二人合作中不断磨合会让两个人成长和进步,但是同样的,一个人的坏习惯也有可能影响另一个人,如何避免不良习惯的互相影响?
一个团队项目要在一段时间内完成诸多任务,满足用户的需求,实现团队的目标,同时还希望项目能维持良好的技术架构,以便持续开发,千头万绪,从哪里人手? 一队人马站在项目的“需求”前,就像愚公和家人站在王屋山前一样,他们可能都在想:这座山到底要花多少时间才能搬走呢?这时候我们需要一个角色站出来领导大家,把看似巨大无从下手的项目逐步分解为可以操作的工作。PM 是责无旁贷的领导者。
在谈到分解需求时,作者提出 PM 应当是“责无旁贷的领导者”。然而,在实际开发中,开发者可能会遇到各种技术层面上的困难,而这一点 PM 有可能是无法预料到的。因此如果简单地让 PM 成为项目需求的分解者,那么在项目管理和项目时间安排上极有可能出现估计错误的情况。