关于阅读《构建之法》第1、2、16章的疑问与感悟
术语解释:
第2章,23页
什么是代码覆盖率?
————————————————————
在测试中的代码覆盖率是指,你运行测试用例后,走过了多少句代码,拿这个走到过的代码除以你这个测试对象的代码行数,就是你这次测试的代码覆盖率了。
参考博客:http://blog.csdn.net/Kesa_Kong/article/details/1652341
第2章,29页
什么是“自动化”回归测试?如何实现?
————————————————————
运行自动化测试代码来验证当前的修改没有破坏已有的功能。
利用第三方软件,比如TestBird自动回归测试
参考文章:
https://baike.baidu.com/item/%E5%9B%9E%E5%BD%92%E6%B5%8B%E8%AF%95/1925732?fr=aladdin
第2章,36页
什么叫做“高质量项目需求,给程序员的输入质量”?如何编写?
————————————————————
高质量的需求文档就是能最有效的达到需求文档撰写目的的文档
即-能够有效协助产品干系人(视觉、交互、页面、开发、测试)完成与预期吻合的产品。必须具备以下特征:正确、无歧义、可验证(易于测试)、可修改、可追踪
参考文章:http://blog.csdn.net/bcqtt/article/details/51670438
问题:
第1章,12页
表1-2 计算机科学与软件工程的不同侧重点 中 提出 计算机科学侧重正确性,软件工程侧重可靠性。
————————————————————
那么什么是正确性什么是可靠性?一个软件可能存在可靠但是不正确的情况吗?比如说?
没有找到好的答案……
第1章,17页
什么是bug?软件的行为和用户的期望值不一样,就叫做bug。
————————————————————
“以人为中心”的思考。软件是为了解决某种需求,满足某种需求,不是“质量最好”。我的一个叔叔想要一个仓库管理系统,我告诉他网上有许多成熟的仓库系统在售卖,而且功能很强大,他告诉我他知道,可是都不合适,所以一直在找。当我问到,他的产品需求是什么,最想要的功能是什么,他的回答是“材料出入登记,货品出货记录”。我想,这不就是最简单基础的部分吗?难道网上售卖的软件不能实现这个功能吗?不,事实是,他只需要这些功能,过于“强大”,“齐全”的软件只会加大他的投入负担。这也正是“对某些顾客而言,他们会买的某一类汽车”。
这是说,我们设计的软件,必须是以人为中心的,是满足人的需求的,但是有很多时候,客户自己都不是很清楚他自己要的是什么,这时应该如何处理?又或者客户的要求反反复复,增大了许多工作量,又该如何规避?如何处理?
第16章,345页
怎样让人喜欢(至少不痛恨)你的创新呢?
要对利益相关人讲清楚“你能从中获得什么”
————————————————————
作者说,IT 行业的创新,有些颠覆性的创新会引起现有技术拥有者的极大不安。(第16章。342页)是的,所以如果你有了颠覆性的创新,不要去找现有技术者,而是去找他们的对手,或者是虎视眈眈想进入这个市场却没有成功的人。
让我想到这一篇回答“我有一个 App 创意,如何将其实现?”
这篇知乎问答是我最早接触的引导性的问答,推荐大家阅读:
https://www.zhihu.com/question/25284456/answer/39328355
同时推荐一本书《九败一胜》,描述了美团的成长史。
————————————————————
一个课本之外的问题:我在百度寻找答案的时候,不喜欢比较早之前的回答和博客,比如说零几年的内容,觉得时间比较久了,软件工程又是一个发展这么快的学科。可是有时候又发现一些近年的所谓“原创博客”,许多内容都转自之前零几年的博客了。那么,那些比较久的博客,回答参考价值有多少?