对于数据不稳定的讨论:
http://www.iteye.com/topic/221103
是不是一定要测试到具体数值才叫具体?在没有找到新方法之前,想保证测试具体到结果或者说是数值准确,那这个测试代码会表现的非常脆弱,而花费了很多心思去写出完美的测试最后这段测试代码也没有测出任何问题,有些得不偿失了。
为什么要写测试?
都是为了写出健壮的代码,正确的行为,获得重构的勇气等等。
好,如果说写出健壮代码需要写很细粒度的TestCase,而且数据库通常不支持我们这样做。导致测试很难写。
我想说,测试是分很多类型的,也可以认为是关注着不同的方向。
比如TestCase就要保证我的测试比较完善,包括对结果的验证,边界条件检查等等,这样的测试包括了我们业务代码的方方面面,包括在开发时想到的,没想到的。通过细粒度来提高我们程序的健壮性。也可以说是逼我们写出健壮的代码。
在比如TDD,其实TDD所关注的是需求,也就是代码的行为。他要保证业务代码被实现后确实做了我们预想的事情。很多时候我们不太关心TestCase的边界条件,毕竟,客户要件棉袄,这件棉袄可以过冬就行了,而我们花了很多时间做出了一个刀枪不入,甚至能穿着去外太空的棉袄,用户可能永远都不能用上这些花哨的功能。TDD需要小步快跑。不需要笨重的测试代码。
上面两个简单例子他们都能为我们提供重构的勇气。同时可以发现不同的测试方法对于测试的关注点是不一样的。
我们的测试应该更多的关注行为。而不是去扣活的数据。数据的准确性是应该在我们开发代码时,最晚也是发布之前一定要确保的。那么我们现在关注的就只有行为,行为是否正确,行为是否被执行。这样对于测试,我们完全可以写出覆盖度非常高而且对数据依赖非常小的测试代码。比如
Void TestGetSomeReport(){
List list = someDao.getSomeReport();
assertNotNull(list);
}
这样就行了,这样的测试关注的是我的Dao是否被执行,如果执行表结构是否支持(如果表结构更变会得到通知)。而且对数据的依赖非常小。我们根本不需要去验证他们。现阶段我们只要保证所有的流程都会在测试中执行,这样就可以了。
如果进行重构这些反映代码行为的测试会告知重构者,他们是做什么的,当时的那个程序员的思考过程。这已经足够了,如果你不能保证重构之后的结果依然正确,就暂时不要去触碰他,等你有足够能力去保证产出的代码可以有正确结果之后在考虑这些。
由于我们暂时还不能得到稳定的测试数据,所以准备采用测试行为的方式。而更少去关注细节。对于业务型代码,粒度会加细。
由于推广测试的路途坎坷,不能一下子全部搞好,所以,准备先以粗粒度进行,并且保证覆盖度。
分享到:
相关推荐
共包含6大类20个细粒度要素的情感倾向....层次二为细粒度的情感对象,例如“服务”属性中的“服务人员态度”、“排队等候时间”等细粒度要素。每个细粒度要素的情感倾向有四种状态:正向、中性、负向、未提及
基于matlab迁移学习+深度学习来实现汽车细粒度识别模型的定制+安装到iphone上(搭建一个多功能汽车识别系统).zip基于matlab迁移学习+深度学习来实现汽车细粒度识别模型的定制+安装到iphone上(搭建一个多功能汽车...
共包含6大类20个细粒度要素的情感倾向....层次二为细粒度的情感对象,例如“服务”属性中的“服务人员态度”、“排队等候时间”等细粒度要素。每个细粒度要素的情感倾向有四种状态:正向、中性、负向、未提及.
Shiro,实现了RBAC权限以及更为细粒度的数据权限。 d.?框架中实现了基本项目骨架,具有用户管理、组织管理、角色管理、模块管理、数据权限、缓存管理、日志管理等。 e.?提供了常用的系统功能,内置1000多个小图标,...
AI Challenger 2018 细粒度用户评论情感分析数据集 训练集: sentiment_analysis_trainingset.csv 为训练集数据文件,共105000条评论数据 sentiment_analysis_trainingset_annotations.docx 为数据标注说明文件 ...
1、 目前SPN已经由方案研究进入到技术研发、测试阶段,5G传输技术取得了什么样的进展? A. 突破性 B. 小进度 C. 大进度 D. 迈步性 2、 5G组网模式是以什么划分的 A. 无线是否采用双连接的模式 B. 用户接入模式 C. ...
看项目Schedule:在项目时间紧张的情况下,往往留给测试人员的时间很有限,测试工作的重点就是多测试,早发现问题,这时候我认为测试用例的粒度是可以放粗一些的,但是“粗”不代表随意,虽然可以放“粗”一些,但是...
JUNIT软件测试软件测试技术JUnit和单元测试入门简介软件测试1、几个相关的概念白盒测试——把测试对象看作一个打开的盒子,程序内部的逻辑结构和其他信息对测试人员是公开的。回归测试——软件或环境的修复或更正后...
基于社区原理构建的织女星网格操作系统(VEGA GOS)是网格应用开发、运行和维护所依赖的...介绍了基于社区的多粒度授权与访问控制机制的设计和实现,并对由于使用安全机制引起的系统稳定性变化进行了测试和分析评价。
人工智能-项目实践-情感分析-基于LSTM网络与自注意力机制对中文评论进行细粒度情感分析 题目介绍 该题目为《细粒度用户评论情感分析》,来源于“全球AI挑战赛”。https://challenger.ai/competition/fsauor2018 ...
第二种和第一种的差别是,我们只需关注提供给用户使用的接口就可以了,不用关心接口调用其他函数情况,相对于第一种来说,测试的粒度要大一些,范围小一些。 第三种是http协议的接口,App客户端和后端服务
针对细粒度图像分类方法中存在模型复杂度较高、难以利用较深模型等问题,提出深度模型迁移( DMT)分类方法。首先,在粗粒度图像数据集上进行深度模型预训练;然后,使用细粒度图像数据集对预训练模型logits层进行不...
基于SpringBoot+shiro实现数据库的细粒度动态权限管理系统 项目经过严格测试,确保可以运行!源码无需做任何更改! 基于SpringBoot+shiro实现数据库的细粒度动态权限管理系统 项目经过严格测试,确保可以运行!...
利用显微图像采集软件,在计算机下进行粒度分析是一种新的尝试,可以改变传统的粒度分析在显微镜下工作易疲劳、操作繁杂等缺点,将薄片图像转移到计算机上,具有准确的标记已检测区域、明晰粒度数据、采集并保留测试图像...
在大型半密闲空闻内发生具有不同拉度分布的水雾体系,用喷 雾激光粒度仪测试粒度分布规律并采用Van Igor Hulst公式计算不同 大小水雾粒子对红外辐射的散射效率因子
基于图像算法的python项目(实现对车辆的粒度级别识别,分析车辆图像来准确识别车型,并归类到不同车辆类型中).zip基于图像算法的python项目(实现对车辆的粒度级别识别,分析车辆图像来准确识别车型,并归类到不同...
通过对不同粒度气煤瘦煤自黏结强度和成焦显微结构特征进一步比较,表明气煤参与配煤炼焦粒度不宜过大,也不宜过小,应控制合理范围,利于焦炭质量提高;瘦煤参与配煤炼焦,应通过适度地细粉碎,利于焦炭质量提高.
日常测试工作中,测试人员在编写TestCase时,经常会碰到这样一个问题:TestCase应该需写成什么样的粒度才好,个人觉得测试用例的粒度没有特定的标准,需依据项目实际情况而定,若时间充足,可以把测试用例写的细一些...
为增强HBase的安全访问...通过设计实验测试用例,验证了提出的细粒度访问控制方法能更全面地保护HBase数据,解决了原有方法带来的权限过粗的问题,降低了数据可能被恶意地执行修改、删除等操作所带来的巨大安全风险。
基于LSTM网络与自注意力机制对中文评论进行细粒度情感分析python源码.zip基于LSTM网络与自注意力机制对中文评论进行细粒度情感分析python源码.zip基于LSTM网络与自注意力机制对中文评论进行细粒度情感分析python源码...