人月神话札记:整体部分

简介: 人月神话札记:整体部分

前言:关于测试,的确太过重要,尤其是把新做成的功能加入到原来已经正常运行的系统中,先随我一起进入到Brooks的世界中看一看。


剔除bug的设计


产品的概念完整性在使他易于使用的同时,也使开发更容易进行,而且bug不容易产生。

在我所经历的项目中,我只参与了其中一部分,或者负责了较大部分,在与别人负责的代码打交道的过程中,如果我稍不留神,就会滋生很多bug在其中。除去我对整体业务掌握的不够全面以外,大部分的原因是因为我们彼此之间的差异太大。


自上而下的设计。我所经历的项目的确都是自上而下的设计,都是先搭建整体模型,再不断细化。但是很多时候,做的不好,是因为模块之间的耦合度太高,导致不够灵活。


构件单元测试


Brooks提到了本机测试和交互性测试,也许我理解的不够深刻,我认为的本机测试就是我们在个人的电脑中配置软件运行所属环境,进而对代码进行整体性测试,等本地测试通过后,我们在部署到服务器当中。这个时候,因为代码以及服务器的一些固性原因,我们需要手动去改变服务的某些状态,我们在这个时候,就会对代码多加上一些人为操作手段,进而控制程序进行交互性测试。

image.png


系统集成调试


系统集成调试的概念,对于每个学习编程的开发人员来说,并不陌生,甚至我们经常挂在嘴边,我们都倾向于只做集成测试,而不太重视做集成测试之前先要做构件测试,也就是说保证集成到整体系统的每一部分都顺利通过。


小型团队没有代码review,也缺乏同级的代码评审,更缺少自我的代码测试,我们经常性的只要完成了代码,就认为可以放到服务器上供用户使用了,然而这个时候,我们经常吃很大亏,一些不负责任的程序员经常为我们埋雷。


我个人最近也深有体会,写完代码之后,我自己会反复检查几次, 然后对重要的部分进行单元测试,然而,等放到服务器上运行时,就出现了不应该出现的错误。


在集成测试之前,一定保证每个部分已经被测试通过了,至少确保你在集成测试时候发现问题时,能尽快的定位到为题发生的所在之地。


搭建充分的测试平台。这个非常的必要,我们项目部有两个小组,有一个小组虽然有测试服务器,但是很多时候,代码在正式环境上线后,依然出现很低级的错误,这其中一个很主要的原因就是没有保持好两者之间的同步。


伪构件、伪文件。我想很多时候,我们都经历过,并且取得了很多的成效。当我们无法真实产生所需的xml时,我们会手动构造一个;当我们的某个功能尚未完善时,我们会假装它已经完成。这些在测试的时候,都会给我们很大的帮助,让我们的整体测试顺利的进行下去,而不是阻塞,当然这是因为伪构件和伪文件足以让我们发现应该找到的bug。


控制变更。由于我们的小组成员人数只有我和另外一个人,再加上两人可以随时语言沟通,所以我们没有进行变更控制。但是如果项目人数有5人以上时,遵守Brooks的观点是应该的:

一个是供构件测试使用的最终锁定版本;一个是测试版本的拷贝,用来进行缺陷的修复;以及一个开发库,供其他人员进行各自的程序开发。虽然我知道svn有分支,但是我还是不太确定如何在SVN上执行这些操作。


一次添加一个构件。在很重要,交易平台的项目目前主要由我整体把控,所以我经常性的优化代码结构,但是有的时候会事与愿违,优化后的代码不足够保证程序正常运行,这很大一个原因就是我改动的太多,所以出现问题后,如果我反复很多很多次后,依然无法找出问题所在的原因时,我就会还原版本,再改动。再次改动的时候,我就会缩小范围,保证每一次修改都不会影响到原有的程序。这很重要。


相关文章
|
程序员 测试技术
人月神话札记:效率
人月神话札记:效率
97 0
|
敏捷开发 Java BI
人月神话札记:系统设计
人月神话札记:系统设计
76 0
|
设计模式 算法 程序员
代码大全2札记:软件架构中的设计
代码大全2札记:软件架构中的设计
139 0
|
敏捷开发 架构师 安全
代码大全2札记:前期准备
代码大全2札记:前期准备
98 0
|
安全 程序员
人月神话札记:未雨绸缪
人月神话札记:未雨绸缪
118 0
人月神话札记:沟通
人月神话札记:沟通
91 0
|
敏捷开发 开发框架 Java
软件开发启示录——迟到的领悟
我的软件开发生涯开始于15年前。 但是直到最近的5年,我才真正开始看到自己在软件开发领域的巨大进步。 这里有一些感悟是我希望能够在我进入软件开发领域时所知道的事情,如果我早一些领悟到,相信会比现在更加成功,也更节省一些时间。
135 0
《设计原本—计算机科学巨匠Frederick P. Brooks的反思》一一3.2 我们通常不知晓设计树的样子—一边设计一边探索
本节书摘来自华章出版社《设计原本—计算机科学巨匠Frederick P. Brooks的反思》一 书中的第3章,第3. 2节,作者:(美) Frederick P. Brooks, Jr. 著 ,更多章节内容可以访问云栖社区“华章计算机”公众号查看
1238 0
《设计原本—计算机科学巨匠Frederick P. Brooks的反思》一一1.5 设计面面观
本节书摘来自华章出版社《设计原本—计算机科学巨匠Frederick P. Brooks的反思》一 书中的第1章,第1. 5节,作者:(美) Frederick P. Brooks, Jr. 著 ,更多章节内容可以访问云栖社区“华章计算机”公众号查看
1029 0