`
tanzek
  • 浏览: 52993 次
  • 性别: Icon_minigender_1
  • 来自: 湖南
社区版块
存档分类
最新评论

Joel On Software---JOEL 测试:改进代码的12个步骤

阅读更多

此节为第一部分的第三节:
JOEL测试:改进代码的12个步骤

JOEL测试
1 、使用源控制代码吗?
2 、能一步完成连编吗?
3 、每天都做连编吗?
4 、有故障信息数据库吗?
5 、在编写新代码之前修复故障吗?
6 、有最新的进度表吗?
7 、有规格说明书吗?
8 、程序员拥有安静的工作环境吗?
9 、你用到了你资金能力内可买到的最好工具吗?
10 、有测试人员吗?
11 、新聘人员在试用期写代码吗?
12 、进行走廊可用性测试吗?


在这一节中例出了JOEL测试的12个步骤,个人觉得确实把一些标准软件测试的精华吸取进去了,却又抛弃了各类标准测试中的过于严格、限制灵活性的部分。当然这也如书中所说的,“Joel测试的不足之处,处是,确实不应该用它来保证核动力工厂软件是安全的”。作为个人来讲,应该把这些测试作为一种软件开发的习惯(当然,只是有些部分哦!~)。

在这里把比较精要的地方记录一下:
1、不使用源控制,程序员没有办法知道其他人员做了什么,所以不容易进行错误回滚。源控制系统的另外一个巧妙之处在于,可保证源代码在每个程序员的硬盘上都是经过自动确认了的。

2、从最新的源快照进行一次可分发的连编,需要多少个步骤?在一个优秀的团队通常会维护一个脚本,通过运行它,可以从头至尾地进行一次检查;重新编译每一个代码行;并按其不同的版本、语言以及条件编译语句#ifdef来生成EXE文件;创建安装包;并且生成最终的表现介质——CD-ROM、下载页面等。如果这样的过程需要多步才能完成,那么就很可能出错,并且越接近产品分发时刻,就越希望修复“最后故障”、形成最终EXE文件等操作所经历的周期会更短一些。JOEL指出不应该有20步。

3、无论谁中断了连编,都要负责修复连编操作,直到有别人中断连编过程为止。这是JOEL在Excel开发团队采用一种激励不要中断连编过程的机制,同时也让大家弄清楚连编是如何进行的。

4、故障信息数据库。一个可用的故障信息数据库必须至少为每个故障包含如下数据:重现故障的完整步骤、预期功能、观察到的(故障)行为、要分配谁、是否已修复。

5、发现故障到准备修复故障之间等待的时间越长,付出的代价(时间与金钱上)就越大。微软普遍采取了一种称之为零缺陷法(zero defects methodology)的措施。零缺陷意味着在任意给定时间点,最需要优先去做的事情是在写任何新的代码之前消除故障。这也可以是一个衡量进度表的标准:如果你已经修复了所有已经知道的故障,并且剩下的就是编写新代码,那么进度表就是极其准确的。

6、拥有一个好的进度表的优点:保证它始终反映最新的项目情况;迫使你做出将要实现什么功能的决定,然后强迫你拣出最不重要的功能,并加以剪除而不是陷入功能沼泽地带(也就是功能范围蔓延开来)。

7、“没有规格说明书就没有代码”。不是根据规格说明书开发出来的软件通常会因设计欠佳而停滞不前,从而使进度失去控制。

8、JOEL举了一个比较好的例子:Mutt记不住Unicode版本的strcpy函数的名字。他可以查询该函数,这要花费30秒钟的时间;他也可以询问Jeff,这得用去15秒钟的时间。既然紧靠Jeff坐着,他选择询问Jeff。不过,Jeff因此显得心烦意乱而丢掉了15分钟的产出(仅仅为了节省Mutt 15秒钟)。然而如果当Mutt去询问Jeff需要45秒钟的时间时,Mutt就会去选择自己去查询了。

9、可以显著地提高开发效率,同时程序员是容易通过给他们提供最棒最新的东西而得到满足的,这是一种远比通过支付极富竞争力的薪力来促使他们为你工作好得多的途径。

10、没有专门的测试人员,意味着要么分发充满故障的产品,要么通过让价值$100/小时的程序员去做那些能够让价值$30/小时的测试人员完成的工作。

11、一定要让应聘者编写一些代码。

12、走廊可用性测试指的是,在走廊里随便抓一个从身边走过的人,要他试着使用你所编写的代码。如果对5个人进行了这类测试,那么就可以了解隐藏在代码中的95%的可用性问题。

分享到:
评论

相关推荐

    Joel on Software[English Version] .rar

    3. **团队文化与管理**:Joel提倡建立一个健康、开放的团队环境,鼓励员工成长,并认为良好的沟通和团队合作是成功项目的基础。他还提出了“面试之道”,分享如何有效地评估和招聘技术人才。 4. **用户界面设计**:...

    Joel on Software

    《Joel on Software》是由Joel Spolsky撰写的一本著名IT著作,主要涵盖了软件开发、团队管理、软件工程以及互联网行业的多个重要方面。这本书以其深入浅出的讲解和实战经验分享,深受程序员、项目经理和技术领导者们...

    More Joel on software

    美国著名程序员Joel Spolsky关于软件管理和技术公司管理精辟论述,读来受益匪浅,特别是其中给大学计算机系学生的建议。

    Joel On Software

    Joel On Software 大家都知道这个东西哈。挺不错的

    More Joel on Software

    Further Thoughts on Diverse and Occasionally Related Matters That Will Prove of Interest to Software Developers, Designers, and Managers, and to Those Who, Whether by Good Fortune or Ill Luck, Work ...

    Apress.More.Joel.on.Software.Jun.2008.pdf

    《More Joel on Software》是Joel Spolsky的著作,由Apress出版社于2008年出版。这本书深入探讨了软件开发、设计与管理领域的多样性和相关问题,旨在为软件开发者、设计师、经理以及与他们合作的人士提供有价值的...

    软件随想录 - More Joel on Software

    《软件随想录 - More Joel on Software》是乔尔·斯波斯基(Joel Spolsky)的一本经典著作,他是一位知名的软件开发者、企业家和博客作者。这本书汇集了他在软件开发、团队管理、产品设计等多个领域的深入思考和经验...

    Joel-Yuhas-Code:代码数据库

    Joel-Yuhas-Code:代码数据库

    Joel-landing-page--sem-2:单击此处查看

    标题中的"Joel-landing-page--sem-2"可能是一个网页设计项目,专注于搜索引擎优化(SEO)和搜索引擎营销(SEM)。这个项目可能是由Joel创建的,用于提高网站的在线可见性和吸引潜在用户。"Landing page"是指专门设计...

    软件随想录(英文版) - More Joel on Software

    根据提供的文件信息,我们可以推断出这是一本关于软件开发、设计与管理的书籍,作者是Joel Spolsky。本书包含了对各种与软件开发者、设计师及管理者相关的议题的深入探讨,同时也为那些与这些专业人士合作的人提供了...

    erlang 深度分析

    - **单元测试**: 利用`eunit`框架编写单元测试,确保代码质量。 - **代码规范**: 遵循社区约定的代码风格和命名规则,提高代码可读性。 #### 4. 工具介绍 - **调试工具**: - `debugger`: 提供了断点、单步执行等...

    Joel说软件

    根据提供的文件内容,可以看出这是一篇关于Joel Spolsky和他的网站Joel on Software的文章,但文本中包含了大量的乱码和非中文字符,这可能是由于编码错误或原文本的特殊处理造成的。尽管如此,我们仍然可以从有限的...

    NumPy - NumPy User Guide - Release 1.11.1 - Joel Frederico

    在NumPy 1.11.1版本的用户指南中,作者Joel Frederico详细介绍了如何使用NumPy进行数据处理与分析,并结合了其他几个重要的科学计算库如Scipy、Matplotlib和PyQt等。这一节将对NumPy用户手册中的关键知识点进行总结...

    Joel_Spolsky对计算机学生的七大建议

    ### Joel_Spolsky对计算机学生的七大建议 #### 第一大建议:毕业前练好写作技巧 Joel Spolsky强调,对于计算机专业的学生而言,掌握优秀的写作技能是至关重要的。他通过举例说明了这一观点: - **Linus Torvalds*...

    Tutorial-on-DNN-4-of-9-DNN-Accelerator-Architectures

    - **空间架构**:也称为数据流处理架构,它允许多个独立的数据流同时进行处理,每个数据流都可能有不同的指令。 这些架构通常包含一个控制单元、算术逻辑单元(ALU)、寄存器文件和多层次的存储器层次结构等组件。...

    D78846GC20--oracle 12c administration workshop sg2

    - **技术贡献者**:Daryl Balaski, Rainer Bien, Maria Billings, Andy Fortunak, Joel Goodman, Daniela Hansell, Pat Huey, Dominique Jeunot, Gwen Lazenby, Ira Singer, Lori Tritz, Branislav Valny, Harald ...

    Joel Osteen Tab-crx插件

    您可以在此处找到完整的代码:https://github.com/happyhey/joel-osteen-tab谢谢。 ==要删除它==您有2个简单的选项(与任何其他扩展名一样):-在地址栏中输入chrome:// extensions,向下滚动并删除它-转到chrome,...

Global site tag (gtag.js) - Google Analytics