`
partech
  • 浏览: 31613 次
  • 性别: 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 测试中的最佳做法,并提供了一些建议和经验。 一、功能测试 功能测试是移动 ...

    软件测试试题 可以看看

    ### 软件测试知识点解析 #### 一、软件测试目的及策略 - **软件测试的目的**:软件测试的核心目标是**发现软件中的错误**(选项B),而非...这对于理解软件测试的重要性以及如何有效地实施测试具有重要的指导意义。

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

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

    测试用例 表单测试

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

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

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

Global site tag (gtag.js) - Google Analytics