`
partech
  • 浏览: 31663 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

看看测试多重要

阅读更多
前些天测试中发现,缓存好像不能处理数据变更的情况。原来还是好好的阿。
经过跟踪,发现问题出在UpdateTimestampsCache,不知哪位仁兄手快,改了一行if语句,把原来正确的逻辑改错了。在7月13号到11月15号之间,下载的hibernate都有这个BUG。

				return lastUpdate.longValue() < timestamp.longValue();
//				if ( lastUpdate.longValue() >= timestamp.longValue() ) return false;


从这件事情,引申出另外一个问题,测试是如何的重要。
如此重要的特性在四个月后才得以修复,应该说hibernate的测试工作是有问题的。至少,在多对象连接的情况下,缓存没有测试。

没有测试的代码就是这样可怕,浪费时间和精力不说,还打击了信心。
所以说,测试工作怎么强调都不过分阿。
分享到:
评论
6 楼 partech 2006-11-22  
xyz20003 写道
还是回归到测试的覆盖度上。有一套全面的测试手段,就能从一定程度上避免问题。

是啊,有一套效验程序是否正确的保护网,确实很重要。
5 楼 xyz20003 2006-11-22  
还是回归到测试的覆盖度上。有一套全面的测试手段,就能从一定程度上避免问题。
4 楼 together 2006-11-22  
所以感觉java语法相比过于严谨的pascal,还是太灵活了。
像下面的写法,确实增加了关注点。比如while(iter.hasNext() && notFindCacheToUpate)
但如果直接return的语句多了,是比较容易出错
3 楼 nihongye 2006-11-22  
引用
严格一点来说,方法的返回值,是否应该在方法体的最后统一提交更好一些呢?而不要在方法中出现很多的return

比如循环就会变成while(iter.hasNext() && returnValue)。
这会导致相关的执行路径要关心这个返回值,增加复杂性。
2 楼 together 2006-11-21  
这个错误简直是不可原谅的。

不过就此也引出一个问题,在循环里直接return返回值,虽然语法上没问题,但是就逻辑而言,很容易出错。像这个错误的产生,就是由于修改代码的人,简单的认为
if ( lastUpdate.longValue() >= timestamp.longValue() ) return false;
等价于
return lastUpdate.longValue() < timestamp.longValue();
,而没有看清楚原代码中当lastUpdate>=timestamp时,是不会跳出循环去return的。

严格一点来说,方法的返回值,是否应该在方法体的最后统一提交更好一些呢?而不要在方法中出现很多的return。

另外采用缓存策略还有一点不知如何处理为好,就是当缓存已经存在的时候,服务器的系统时间被回退,这样lastUpdate时间就可能小于timestamp,但实际上缓存应该是被更新的。这种可能性不是没有的。
是否可以这样来处理,每次的操作均在系统中记录最后一次的操作时间,一旦新的系统时间小于上次操作时间,则系统终止运行,并报错。类似某些有试用时间限制的软件防破解一样,即使把系统时间改回,也一样无法继续试用。
1 楼 together 2006-11-21  
是啊,测试工作都交给用户去做了。
除了俺们自己写的程序,还得去替使用的这些框架和JAR包做测试。
所以我觉得除非有必要,不用经常更新所有的jar到最新版本,稳定第一。要是系统中换了某一个jar包,就得把所有的测试流程再重走一遍才行,谁也保不准哪个地方会出错的。

相关推荐

    想做金融测试,那银行测试工作内容?职业测试人经验?来吧,看看SIT测试和UAT测试测试的区别?

    在金融行业中,特别是银行领域,测试工作至关重要,因为它确保了系统的稳定性和安全性。本文将深入探讨银行测试的主要方面,特别是SIT(系统集成测试)和UAT(用户验收测试)的区别,以及它们在银行测试流程中的角色...

    看看你的网络有多快 网络 测试 速度

    标题中的“看看你的网络有多快”是一个典型的网络速度测试应用或服务的表述,这通常指的是对互联网连接上传和下载速度的测量。网络速度测试是评估网络性能的重要工具,它可以帮助用户了解自己的网络是否达到运营商...

    另一个角度看软件测试

    总之,从另一个角度看软件测试,我们应该更加重视测试技能的基础和深度,以及个人在职业生涯中不断学习和实践的重要性。通过不断学习和积累,测试人员可以逐步提升自己的能力,最终成为测试领域的高手。

    性格测试工具(看看你属于哪种性格)

    标题 "性格测试工具(看看你属于哪种性格)" 暗示了这是一款基于心理测试原理的应用程序,用于帮助用户了解自己的性格特征。这类测试通常采用心理学中的量表或问卷形式,通过一系列问题来评估个体在不同性格维度上的...

    开发的角度看测试,测试的角度看开发

    理解从开发角度看待测试,以及从测试角度看开发,对于提高软件质量和项目效率至关重要。 首先,严格遵循测试流程是保证软件质量的基石。开发工程师小C认为,遵循测试流程可以保证产品的质量责任,而小K则认为这可能...

    非常完美的软件测试简历——值得一看

    软件测试简历是软件测试工程师在职业发展过程中非常重要的一步。下面我们将基于给定的软件测试简历,总结出一些重要的知识点。 测试专业知识 在软件测试简历中,金丽娟自我评价中提到了具备测试专业知识。这一点...

    多媒体技术测试图片集

    多媒体技术在信息技术领域中扮演着重要的角色,尤其是在图像处理方面。这个名为“多媒体技术测试图片集”的资源包,就是专为测试和验证图像处理算法设计的。它包含了各种类型的图像,如灰度图、彩色图以及8位图像,...

    测试员培训速成教材 软件测试书籍,可以下载来看看。

    根据提供的文件信息,我们可以归纳出以下相关知识点: ### 一、软件测试基础知识 ...以上知识点涵盖了软件测试的基础理论、重要概念以及实践技能等方面的内容,旨在帮助初学者快速掌握软件测试的核心要素。

    测试各类电子书下载

    除了上述的三大测试类型,电子书中可能还会涉及其他测试概念,如单元测试(验证代码的最小可测试单元)、集成测试(测试多个组件之间的交互)、系统测试(验证整个系统是否满足需求规格)以及验收测试(用户或客户对...

    软件测试报告

    它涵盖了从安装到功能测试、正确性测试、可靠性测试、效率测试、多用户测试以及其它特定测试的全面评估。通过详细的测试报告,项目团队可以快速定位问题,进行必要的修正,确保软件在发布前达到预定的质量标准。 ##...

    移动App测试中的最佳做法

    移动 App 测试是一个复杂的过程,涉及到多个方面,包括功能测试、性能测试、安全测试等。本文将从移动 App 测试的角度,讨论移动 App 测试中的最佳做法,并提供了一些建议和经验。 一、功能测试 功能测试是移动 ...

    iwebshop软件测试-100测试用例+PPT.zip

    在软件开发过程中,测试是至关重要的环节,它确保产品的稳定性和用户体验。本文将围绕“iWebShop”这款软件的测试进行详细讲解,涵盖UI测试、功能测试、接口测试以及性能测试等方面,旨在帮助读者深入理解软件测试的...

    测试用例 表单测试

    在 WEB 测试中,表单测试用例是非常重要的一部分。它可以帮助开发者和测试者检查表单的功能和外观是否正确。下面将详细介绍表单测试用例的设计和测试过程。 一、表单测试用例设计 在设计表单测试用例时,需要考虑...

    测试大纲,验收测试大纲模板。看看有用到的吗

    测试大纲是软件开发过程中的重要文档,主要用于指导测试团队进行系统或产品的验收测试。验收测试,也称为交付测试,是确保软件产品满足预定需求的最后一道防线。以下将详细阐述验收测试大纲的重要性和主要内容,以及...

    软件测试方法和技术(又名全程软件测试,电子版,朱少民著)

    此外,还着重讲解了测试管理的多个层面,包括测试策略、风险控制、缺陷跟踪、测试管理系统的应用,以及测试成熟度模型等内容。 在软件测试的项目启动阶段,作者指出理解软件的质量需求是至关重要的。质量需求包括...

Global site tag (gtag.js) - Google Analytics