读《颠覆完美软件》有感

该书首先说了测试可以提供降低风险的信息,随后又对第一条的结论做出了一些否定,那就是测试提供的信息并不是所有的都是有用的,不良的测试反而更糟糕。很多人对测试有误区,就是让测试人员测试所有可能发生的路径,但是有些开发写的后门如果不看代码,你是无法测试出来的。所以测试只能说是覆盖尽可能多的路径,而非所有。所以在测试过程中,要注意收集质量信息的准确度、相关性、清晰度,还是全面性,来提升测试效率并降低成本。

当把这些信息反馈出来时,大家常常把这些信息看成某种威胁,然而受到威胁时就会恐惧。我们会刻意压抑无法接受的事物,比如:鸵鸟把自己脑袋埋到沙子里面的场景,看不见……看不见……为了压抑恐惧,就会试图让没有意义的,愚蠢的或者无理的举动合理化。批评其他人具有我们自己身上也有的某种并不希望有的品质。指责并非问题真正来源的人或者事,从而免除自己的责任。然后发现自己不足时,会进行过度补偿,在觉得失去控制时强迫自己。信息是中性的,但是人们对信息做出的反应很少是中性的,所以要保持警醒、深思熟虑、注重实效,消除情绪上的混乱。

书中说道:“永远无法知道测试是否完成的很好,但是如果完成的不好,有很多方法可以知道”。发现大量缺陷可能会让测试看起来工作的不错,但是会减缓测试进度,降低测试覆盖率。如此看来,开发的代码质量很重要。另外,测试不只是点点点,更重要的是要思考,寻找会对行为产生影响的信息。

书中提到了萨提亚交互模型:摄取->确定含义->确定重要性->做出反应。摄取不是简单的输入,而是对信息进行大量选择。根据摄取的信息,推断出某些含义促使我们去获得更多的信息。通过我们获取的数据,确定重要性,根据重要性做出反应,采取行动。对于缺陷,反应很简单:发现(find),评估(figure),修复(fix)。

另外,书中还提到了:随着产品变得更大更复杂,内外的系统动态特性会让测试和修复花更长时间。所以应该控制需求的增长,让系统尽量小,同时以增量的思想构建清晰接口的分立组件,测试先行。测试先行就是在开始构建每个组件前先建立一组验收测试。

书中还提到:最重要的测试工具不是计算机,而是人脑!投入大量脑力对一个系统进行测试的最简单的方法是技术评审,评审也是一种测试。最迅速的评审方法是对“最差的”部分先评审,然后再处理相对次要的问题。技术评审会让测试人员更快的投入项目。

对于工具,作者提到:良好的工具可以增强有效性,如果测试的有效性是消极的,增加工具只会放大消极作用。工具只是工具,他们仍然需要会思考的人,来进行有意义的操作。

本书从测试方法,心理学,项目管理和方法论等各个方面讲述了软件测试必须知道的事情,读完后,感觉大有裨益!

你可能感兴趣的:(读《颠覆完美软件》有感)