软件工程网络15个人阅读作业2-提出问题
问题一:
- P40
代码的作者最了解代码的目的、特点和实现的局限性。所以,写单元测试没有比作者更适合的人选了。
- 我不认为这种观点一定正确。比如一个编程能力较弱的同学,花了很长时间写了一段代码,但是他也不一定是最了解这段代码的人。当一个初学者刚开始写代码,写的时候肯定也是很吃力的,更不用说去考虑代码的目的了。在这两种下,最适合做单元测试的人不一定是作者本人。比如学JAVA的时候,如果有学生写的代码一直有错误,检查了很多次,网上也查了,就是找不到错误的地方,这时候如果让一个已经写出来的同学或者老师来帮忙,不是能更快找出问题改正。
问题二:
- P42
所以,对于“回归测试”中的“回归”,我们可以将其理解为“回归到以前不正常的状态”。
- 回归测试是工程师们在新版本上运行所有已通过的测试用例,已验证有没有“退化”情况发生。这样的话,“不正常的状态”是指测试失败的时候吧,那么如果回归测试在新版本上运行成功的话,“不正常的状态”要怎样理解?
问题三:
- P91
极限编程对工程师提出了更高的要求。这种要求不关乎技术水平,也不关乎学历水平或工作经验。这种要求是对一个人的心智、道德修养的更高要求。
- 在我看来,道德修养在结对过程是很重要,但是两个人的编程水平差异也是要考虑的。两个人结对经常会有这样的情况发生:一个是大神,一个是抱大腿的,编程能力很弱。然后在复审的时候,大神写的代码另一个人都看不懂,这样的话不断审核、提高设计和编程质量的只能是大神。对另一个人就没有什么锻炼,这样的结对对抱大腿的人来说只是应付作业罢了,对他来说也没有什么帮助。
问题四:
- P302
首先,我相信有分工是好事,软件团队中应该有独立测试角色。所有人都可以参与QA的工作,但是最后要有一个角色对QA负责。
- 我对这个观点是赞同的,这相当于是团队中有一个队长,队员可以在团队中畅所欲言,把自己的想法说出来,然后由队长来制定最后的计划,也就是让他来做最后的决定,这样既可以让团队充满活力,也不至于变得混乱。不过队长既然承担了最大的责任,那么当队伍获得成就的时候,他应该也要得到属于他的回报才行,这样一个赏罚分明的团队在我看来才是最棒的。
问题五:
- P297
前面提到功能方面的质量与具体的程序相关,那么软件工程方面的质量就与“快“、“便宜”比较相关。一个团队也许可以靠一些特殊的方法来提高程序的质量(例如在交付之前通宵加班,或者在软件发布后,长期加班修复用户提出的问题),但是软件工程的质量需要长期的过程来提高。
- 在软件质量的维护中,要怎么保证软件开发的质量以及软件质量的后期维护的同时,节省后期维护的成本?因为后期维护的成本应该要比前期开发高,这是一个比较重要的问题。