对于数据不稳定的讨论:
http://www.iteye.com/topic/221103
是不是一定要测试到具体数值才叫具体?在没有找到新方法之前,想保证测试具体到结果或者说是数值准确,那这个测试代码会表现的非常脆弱,而花费了很多心思去写出完美的测试最后这段测试代码也没有测出任何问题,有些得不偿失了。
为什么要写测试?
都是为了写出健壮的代码,正确的行为,获得重构的勇气等等。
好,如果说写出健壮代码需要写很细粒度的TestCase,而且数据库通常不支持我们这样做。导致测试很难写。
我想说,测试是分很多类型的,也可以认为是关注着不同的方向。
比如TestCase就要保证我的测试比较完善,包括对结果的验证,边界条件检查等等,这样的测试包括了我们业务代码的方方面面,包括在开发时想到的,没想到的。通过细粒度来提高我们程序的健壮性。也可以说是逼我们写出健壮的代码。
在比如TDD,其实TDD所关注的是需求,也就是代码的行为。他要保证业务代码被实现后确实做了我们预想的事情。很多时候我们不太关心TestCase的边界条件,毕竟,客户要件棉袄,这件棉袄可以过冬就行了,而我们花了很多时间做出了一个刀枪不入,甚至能穿着去外太空的棉袄,用户可能永远都不能用上这些花哨的功能。TDD需要小步快跑。不需要笨重的测试代码。
上面两个简单例子他们都能为我们提供重构的勇气。同时可以发现不同的测试方法对于测试的关注点是不一样的。
我们的测试应该更多的关注行为。而不是去扣活的数据。数据的准确性是应该在我们开发代码时,最晚也是发布之前一定要确保的。那么我们现在关注的就只有行为,行为是否正确,行为是否被执行。这样对于测试,我们完全可以写出覆盖度非常高而且对数据依赖非常小的测试代码。比如
Void TestGetSomeReport(){
List list = someDao.getSomeReport();
assertNotNull(list);
}
这样就行了,这样的测试关注的是我的Dao是否被执行,如果执行表结构是否支持(如果表结构更变会得到通知)。而且对数据的依赖非常小。我们根本不需要去验证他们。现阶段我们只要保证所有的流程都会在测试中执行,这样就可以了。
如果进行重构这些反映代码行为的测试会告知重构者,他们是做什么的,当时的那个程序员的思考过程。这已经足够了,如果你不能保证重构之后的结果依然正确,就暂时不要去触碰他,等你有足够能力去保证产出的代码可以有正确结果之后在考虑这些。
由于我们暂时还不能得到稳定的测试数据,所以准备采用测试行为的方式。而更少去关注细节。对于业务型代码,粒度会加细。
由于推广测试的路途坎坷,不能一下子全部搞好,所以,准备先以粗粒度进行,并且保证覆盖度。
分享到:
相关推荐
### 数据流和控制流测试比较 #### 一、概述 软件测试是软件开发过程中不可或缺的一环,它确保软件产品能够按预期工作,并符合用户的需求。软件测试分为多种类型,其中包括黑盒测试和白盒测试。黑盒测试侧重于功能...
- 重复性:同一样品多次测量结果的一致性,直接影响测试的可靠性。 - 真实性:考虑不同测试方法因等效方法差异导致的结果偏差,反映了测试方法的适用性。 【颗粒测试方法】 常见的颗粒测试方法包括激光衍射法...
粒度测试是材料科学中一项至关重要的实验技术,主要用于评估粉体材料的粒度特性,这一特性直接影响到粉体在各个领域的应用性能。新能源、汽车电子、化学元器件等行业都需要对粉体进行精确的粒度分析,以确保产品性能...
共包含6大类20个细粒度要素的情感倾向....层次二为细粒度的情感对象,例如“服务”属性中的“服务人员态度”、“排队等候时间”等细粒度要素。每个细粒度要素的情感倾向有四种状态:正向、中性、负向、未提及.
- **DWD(明细层)**:这一层对ODS层的数据进行进一步的清洗和转化,构建最细粒度的明细事实表,以业务过程作为建模驱动。 - **DWS(汇总层)**:基于DWD层的数据,构建更高级别的汇总事实表,通常是宽表形式,以...
实验操作的思考题,引导我们深入思考粒度测试的真实性问题。也就是说,如何确保测试结果能够真实反映材料的粒度分布,以及为何遮光率采用特定的表示方式而不是简单的百分比。这涉及到光强与浓度的复杂关系,以及仪器...
LISST-100激光粒度仪的电气部分包括数据记录器、32个I-to-V转换器和增益控制部件、其他支持的电气部件。数据记录器是TattleTale Model 4A,负责记录数据。 知识点4: LISST-100激光粒度仪的外围传感器 LISST-100激光...
在软件开发过程中,软件测试是不可或缺的一环,它关乎到产品的质量和用户体验。下面将详细讲解软件测试中的关键知识点,包括软件质量保证与软件质量控制、软件测试的不同方法、测试策略、常用的测试工具以及测试项目...
《人造水雾粒度测试及红外消光因子计算分析》这篇论文主要探讨了水雾颗粒在红外辐射中的散射、吸收和消光特性,对于理解水雾在特定环境下的光学效应有着重要的理论与实践意义。文章的核心内容可以分为以下几个方面:...
微程序控制器的核心思想是将机器指令分解为一系列更细粒度的微指令(Microinstructions),这些微指令在控制存储器(Control Memory)中以微程序的形式存储。微程序由一条或多条微指令组成,每条微指令包含若干微...
总的来说,JMeter是一个强大的性能测试工具,能够提供超细粒度的测试数据和报告。通过对JMeter的深入理解和使用,IT专业人员可以有效地评估系统的性能极限,定位潜在问题,并进行系统优化,以保证服务的稳定性和用户...
本文将详细探讨8种常见的纳米材料粒度测试方法,以帮助研发工程师们更准确地评估和控制纳米材料的质量。 1. **电子显微镜法**: - 扫描电子显微镜(SEM)和透射电子显微镜(TEM)是研究纳米颗粒尺寸和形态的主要...
共包含6大类20个细粒度要素的情感倾向....层次二为细粒度的情感对象,例如“服务”属性中的“服务人员态度”、“排队等候时间”等细粒度要素。每个细粒度要素的情感倾向有四种状态:正向、中性、负向、未提及
10. 框架的选择:选择合适的框架对于自动化测试平台的建立至关重要,需要考虑到测试的需求和资源的限制。 11. 自动化测试的挑战:自动化测试面临着许多挑战,包括测试框架的建立、测试用例的设计、测试数据的准备等...
标题中的“Node.js-在Postgres上实现快速即时的GraphQL API具有细粒度的访问控制”揭示了我们将在Node.js环境中构建一个GraphQL API,并利用PostgreSQL数据库作为后端存储,同时实现精细的权限管理功能。这涉及到多...
【支持细粒度权限控制且可搜索的PHR云服务系统】 个人健康记录(Personal Health Record,PHR)云服务系统是一种将用户的医疗健康信息存储于云端,方便用户随时随地访问和管理的重要应用。该系统的核心特性是实现了...
AI Challenger 2018 细粒度用户评论情感分析数据集 训练集: sentiment_analysis_trainingset.csv 为训练集数据文件,共105000条评论数据 sentiment_analysis_trainingset_annotations.docx 为数据标注说明文件 ...
29. 项目总的测试用例数量与项目规模和粒度有关,通常在500到2000条之间。 30. 高、中、低优先级的测试用例比例可能为3:4:3,以平衡资源分配和测试覆盖率。 31. 测试用例评审可能由测试团队内部进行,或者整个项目...
1、 目前SPN已经由方案研究进入到技术研发、测试阶段,5G传输技术取得了什么样的进展? A. 突破性 B. 小进度 C. 大进度 D. 迈步性 2、 5G组网模式是以什么划分的 A. 无线是否采用双连接的模式 B. 用户接入模式 C. ...