`
sun113
  • 浏览: 51330 次
  • 来自: NeverNeverlaNd
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

健壮先还是易测先

阅读更多
正在做的项目中有非常多的对字符串的操作,比如从数据库中取得数据,取得某个字段后将这个字符串的3-5位截取出来,放到一个bean里面。

显然的,如果数据库中某个字段为空,可能会抛出空指针的错误;如果字符串的长度不够会抛出越界的错误。

现在有这样的问题:
如果我在程序中避免这样的异常,就会掩盖错误的数据。ps没有正规的测试数据。
如果我不进行处理的话,就会有很多的异常。数据表很多,测试的时候很困难。

请问大家,这样的情况怎么处理?
分享到:
评论
14 楼 sun113 2007-09-02  
引用
最起码遇到不符合预期条件的调用(比如参数的格式不对)

我还是以为有点问题,如果每个模块都进行了认真的测试的话,怎么可能会出现上面的问题呢?
难道调用的模块就不进行测试了?
13 楼 movingboy 2007-08-30  
个人感觉健壮性跟易测试性是不矛盾的,怎么就弄矛盾了呢?

引用
因为我的程序进行测试的时候,不会先去测试别人的调用程序,我们只需要保证在自己模块里的数据都正确的得到处理就可以了,如果别人传递过来的参数有错误,那只能说是他的程序里面有问题,和我的模块没有关系的!

象这样的代码是健壮的吗?是易测试的吗?我看都不是
既然你的程序是要给其它程序调用的,怎么可以不考虑出错的可能呢?最起码遇到不符合预期条件的调用(比如参数的格式不对),要给出有意义的异常信息,方便查找错误。你不考虑这些,到时有问题还是得找你去分析、解决(因为别人可能根本不知道为什么出错),这实际上就是给自己留了陷阱,早晚自己会踩进去......
健壮的代码才是易测试的,而改进易测试性通常也能提高健壮性。两者不应该偏废
12 楼 sun113 2007-08-30  
引用
如果你寫的是大家共通的 要有很多人用的方法的話 就不應該這麽考慮 這就很明顯是方法本身的問題

我想这句话是关键,我们处理的这些方法是非共同的,不但如此,这些处理应该是偏重于模型的(这里表达可能有误),一环扣一环的。
另外,因为数据库使用了DB2,因此只要数据库中有数据,长度不足的问题是不会出现的,除非数据库字段的长度设置有误。

我想是这样吧
11 楼 ddandyy 2007-08-29  
一般來說 try catch確實是不應該多寫的  因為會隱藏很多問題 還在一點點程度的影響性能
不過寫這種方法的時候  比如說 截取字符 的方法  不管從哪方面來說 也不應該考慮傳來的數據肯定是正確的數據  我不用做check  因為寫這個方法的人不會知道這個方法有多少人調用 而調用的人知道不知道這個規則 他會不會在調用這個方法之前確認他傳過來的數據
所以做有可能扔出異常的操作的時候  必要的check肯定是要有的  不是說用try把他包起來 是在做之前做比如說 長度check 或者非空check
沒有check的src在我這肯定是不過關的  前幾天剛發回去幾個 讓他們確認傳過來的數據

引用
因为我的程序进行测试的时候,不会先去测试别人的调用程序,我们只需要保证在自己模块里的数据都正确的得到处理就可以了,如果别人传递过来的参数有错误,那只能说是他的程序里面有问题,和我的模块没有关系的!


這種想法是最要不得的 如果說你寫這個方法的時候衹是寫在自己的action或者server裏 而你們的框架是不會調用別人的action或server裏的方法的話  那沒問題
而如果你寫的是大家共通的 要有很多人用的方法的話 就不應該這麽考慮 這就很明顯是方法本身的問題
你見過JDK裏面方法的DOC裏寫了 參數肯定要非空 或者說 長度在10以內 麽
10 楼 sun113 2007-08-29  
引用
代碼能跑起來就得
怎麽改方便就怎麽改吧

这句能再解释一下吗?什么意思?
我不怎么理解。

我在开始的时候,程序中还使用了很多的异常捕捉的代码,
比如在截取字符串的时候,结果也被指出不规范,理由是:如果这里有可能出现异常的情况下,应该提交申请,然后专门的人对此设计进行修改,否则就不应加入异常捕捉代码。

后来,直接将传递过来的参数作为正确的数据就可以,我认为这样不会有什么问题!并非异常捕捉做的越多越好!
9 楼 ddandyy 2007-08-28  
維護項目?
這種代碼都能交貨 說明也不是什麽太註意的公司  代碼能跑起來就得
怎麽改方便就怎麽改吧  如果客戶沒有要求的話
8 楼 sun113 2007-08-28  
我这里还有个问题:
设计中出现了一个字符串和BLANK比较的情况,请问如果字符串为null时,应该归到那边呢?大于?小于?等于?
现在的处理是这样的:
将null排除在外,null值不再比较的范围内。
不知道这样对不对?
7 楼 sun113 2007-08-28  
引用
yz_beijing     1 星期前
为什么认为传过来的参数都是正确无误的?

因为我的程序进行测试的时候,不会先去测试别人的调用程序,我们只需要保证在自己模块里的数据都正确的得到处理就可以了,如果别人传递过来的参数有错误,那只能说是他的程序里面有问题,和我的模块没有关系的!

另外数据库采用了DB2,所以只需要避免NULL值的出现就可以了,只要不是null值,位数就一定是够的!
6 楼 过儿oO 2007-08-22  
健壮性优先,你应该考虑到这些,空指针和位数不够的情况我感觉是你刚用到截串的时候就该想到了
5 楼 yz_beijing 2007-08-22  
sun113 写道
做完了,总结一下:
能控制的都进行控制,但是不对传过来的参数进行检查,认为传过来的参数都是正确无误的。


为什么认为传过来的参数都是正确无误的?
4 楼 sun113 2007-08-17  
做完了,总结一下:
能控制的都进行控制,但是不对传过来的参数进行检查,认为传过来的参数都是正确无误的。
3 楼 sun113 2007-06-11  
引用
健壮性优先
应该是要进行异常处理。要是出现nullpointerexception多可怕!

我也比较倾向于先保证健壮性,先保证系统能够正常的运行。因为就目前的情形来看,正规的数据不能及时地得到是肯定的了,如果自己填写的话会出现大量的异常。

引用
能否考虑捕获异常,写到日志里?
因为如果是数据本身有错误,良好的错误提示信息是非常必要的

这是个很好的辅助措施,至少能让我快速找到不规范数据。

引用
况且验证数据的准确性 是需要另外测试的自动or人工 并不是简简单单抛掉异常不管

请问,除了人工测试,数据的正确性还能如何测试?有什么方法?
2 楼 bluepopopo 2007-06-10  
健壮性优先
应该是要进行异常处理。要是出现nullpointerexception多可怕!
况且验证数据的准确性 是需要另外测试的自动or人工 并不是简简单单抛掉异常不管
1 楼 daniel.wuz 2007-06-09  
能否考虑捕获异常,写到日志里?
因为如果是数据本身有错误,良好的错误提示信息是非常必要的

相关推荐

    高可用MySql(构建健壮的数据中心) PDF

    《高可用MySQL:构建健壮的数据中心》是一本深度探讨MySQL数据库系统在高可用性方面的专著。...无论是数据库管理员、开发人员还是运维工程师,都能从中获得宝贵的实践经验和理论知识,以构建更加健壮和可靠的数据中心。

    soapUI测试介绍

    此外,soapUI也支持测试数据的参数化,这允许测试人员使用不同的输入值来重复执行同一测试用例,以此来验证Web服务的健壮性。 总之,soapUI作为一个强大的接口测试工具,对于软件开发和测试人员来说,掌握其使用...

    RSepc rails 测试框架介绍

    配置 RSpec 以改变默认输出格式,可以在 `config/application.rb` 文件中设置 `config.generators do |g| g.test_framework :rspec, format: :documentation end`,这样会将输出格式改为更易读的文档格式。...

    webUI自动化测试框架(Python+selenium)

    5. **异常处理**:为了使测试更加健壮,我们需要捕获和处理可能遇到的异常,如元素未找到、网络错误等。 6. **报告生成**:测试结束后,生成详细的测试报告有助于分析测试结果。可以使用第三方库如Allure或...

    静态软件缺陷预测方法研究2

    通过这些度量,可以量化地评估代码的健壮性和易出错性。例如,圈复杂度(Cyclomatic Complexity)能反映代码结构的复杂程度,较高的圈复杂度往往意味着更高的出错概率。此外,代码的长度、分支数量、异常处理等也是...

    Java测试新技术TestNG和高级概念 (英文版 清晰pdf 可下载)

    10. **注解丰富**:TestNG提供了丰富的注解,如@Test、@BeforeMethod、@AfterMethod等,使测试代码更加清晰易读。 这份PDF文档很可能是针对这些概念进行深入解析,并可能包含实战示例和最佳实践。对于任何希望提升...

    自动化测试下载

    然而,构建高质量、可维护性强的自动化测试脚本并非易事。本文将探讨在开发自动化测试脚本过程中的一些关键技巧和心得,旨在帮助测试工程师们提升自动化测试的效果。 #### 二、调试测试脚本:分段调试的重要性 1. ...

    Go-Open-SourcingTester:轻量级测试工具类用于Go的测试包

    总的来说,Go-Open-SourcingTester 是Go语言开发者的得力助手,它通过提供强大的测试工具和方法,帮助编写出更健壮、更易维护的测试代码,从而提升整个项目的质量和稳定性。在实际开发过程中,合理利用这个工具包,...

    易安卓支付宝服务端

    6. **异常处理**:在实际开发中,可能会遇到网络问题、服务器错误等各种异常情况,开发者需要编写健壮的代码来捕获并处理这些异常,保证用户体验。 7. **测试与调试**:支付宝提供了沙箱环境供开发者进行测试,...

    OpenHarmony覆盖率测试,gcov及lcov的原理和使用简介

    lcov可以收集gcov生成的信息,进一步处理并生成HTML格式的报告,使得覆盖率结果更加直观易读。 【覆盖率类型】 1. 代码覆盖率:主要包括行覆盖率、条件覆盖率、跳转覆盖率和分支覆盖率。 - 行覆盖率:统计程序中...

    目前市场唯一一款测试工具傻猴app

    【傻猴app】是一款专为安卓应用设计的压力测试工具,其独特之处在于它的傻瓜式操作,使得测试过程简单易行,尤其适合测试新手和非专业测试人员使用。这款工具能够在手机上直接运行,测试完成后立即生成报告,帮助...

    开发自动化测试脚本的技巧和心得

    作者在本文中描述了一些构建更易维护的和健壮的自动化测试脚本的技巧。作者给那些使用自动化测试工具并且为将来测试工作而建立自动化测试脚本库的测试人员提供了有价值的远见  作者在本文中描述了一些构建更易维护...

    单元测试andriod

    Mockito则是一个模拟库,它允许我们模拟复杂的依赖关系,以便在测试中专注于被测代码的行为。 在编写单元测试时,遵循一些最佳实践是非常重要的: 1. **隔离测试**:确保每个测试都是独立的,不依赖于其他测试的...

    Nunit测试调试工具

    NUnit提供了一套接口和类,使得创建这些单元测试变得简单易行。 2. 测试 fixture:在NUnit中,测试fixture是用来组织一组相关测试的方法和类。通常,一个fixture类对应于被测试的类,fixture方法则对应于针对该类的...

    NUnit单元测试工具,测试框架Moq.rar

    NUnit支持多种.NET平台,包括.NET Framework、.NET Core以及.NET Standard,这意味着它可以用于各种项目类型,无论是传统的桌面应用还是现代的云服务。NUnit提供了一个直观且强大的API,允许开发者创建各种类型的...

    net测试工具介绍1111

    总的来说,了解和熟练使用.NET测试工具对于开发者来说至关重要,它们能够确保软件的质量,提升开发效率,同时也有助于构建更加健壮和可靠的.NET应用程序。通过不断的测试和优化,我们可以确保.NET应用在各种环境和...

    selenium2 python自动化测试 实用!

    Python是一种广泛使用的高级编程语言,它简洁易读、开发效率高,非常适合用于自动化测试的脚本编写。因此,Selenium2与Python结合使用,能够为Web自动化测试提供一个高效和灵活的解决方案。 在序言中提到的作者虫师...

    博客_测试程序

    在IT行业中,编程和软件开发是一项至关重要的任务,而Python作为一种高级编程语言,因其简洁、易读的语法和丰富的库支持而备受青睐。本篇博客将深入探讨“博客_测试程序”的主题,主要关注如何使用Python进行有效的...

Global site tag (gtag.js) - Google Analytics