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

测试的粒度如何界定?

阅读更多
对于测试驱动来说,如何确定要测试的主体,是个似是而非的问题。
在OO中对象是最基本的组织结构,那么测试的主体是否可以以对象为基本单位呢?
所以我们可以看见很多“对象”和“对象测试”对,比如有一个CustomerOrder对象,就会有一个CustomerOrderTest对象。虽然后者并不是总是存在。
另外一个常见的做法是只在服务层有测试,也就是说同时测试了Service,DomainModel,DAO。

前者的问题在于对象都是普遍联系的,紧紧测试某个对象,会产生一些意义模糊的测试。这好比流水线作业,某个局部动作如果不放到整个流水线来考察,就没有意义。另外,需要很多的mock或stub也确实恼人。

后者则目的明确,但问题在于运行成本昂贵,因为依赖的东西太多,以至于运行一次测试需要分钟级别的时间。同时,代码会存在相互干扰的情况。

我认为测试应当有明确的目的,否则完全不能思考,同时也需要作合理的划分,要不成本太高。

要到达上述要求,透过方面的视角也许是一个可以考虑的方法。

实际上,寻找测试的粒度,就是在寻找彼此分离的关注点。

针对关注点来进行测试,果真不蒙人?
分享到:
评论
1 楼 rrtrip 2006-12-21  
引用
透过方面的视角也许是一个可以考虑的方法。


这样测试会不会覆盖不全?

相关推荐

    软件项目招投标用技术部分.doc

    - 界定系统架构范围,明确内外部系统边界及交互方式。 - 定义微服务职责,微服务间交互协议和过程。 - 规划开发、部署和运维平台的标准。 - 设计原则和基础为后续编码、测试和维护提供指导。 1.1.1 **关键质量属性*...

    支付场景微服务实战

    它强调的是服务的粗粒度和松耦合特性。 - **微服务架构**: 相比于传统的 SOA 架构,微服务更加关注于构建高度可维护性和可扩展性的应用程序。其核心特点包括: - **组件化与多服务**: 微服务将应用分解为一组小的...

    电信领域—敏捷软件开发思想

    再者,电信软件的需求往往难以准确界定,且对外部环境的依赖度较高,导致需求变化频繁,对外可见度较低。此外,电信系统的稳定性与可靠性要求极高,任何故障都可能导致服务中断,给用户带来严重影响。 #### 二、...

    藏经阁-云时代网络边界管理实践及安全体系建设.pdf

    安全域的划分是构建安全体系的基础,通过VLAN划分和管理,可以清晰界定网络边界,统一集中管理,未使用的VLAN应做好标记。云端边界的开放端口和服务应定期扫描,以确保只开放必要的服务。此外,根据业务需求划分隔离...

    面向组件对象的软件需求分析

    通过明确界定各组件对象的职责范围,不仅有助于提高软件开发的效率和质量,还能促进软件系统的长期维护和发展。此外,这种方法还鼓励开发团队采用组件化的思维方式,有利于提升项目的整体协作水平和技术复用率。

    大规模软件开发策略.pptx

    - **拆分粒度和服务边界**:明确界定每个微服务的职责范围,降低服务间的耦合度。 - **微服务通信和治理**:采用REST、消息队列等方式进行服务间通信;通过服务注册与发现机制实现服务治理。 - **微服务监控和调试**...

    第三章数据仓库开发应用过程.pptx

    在开发过程中,需要根据用户反馈的信息不断调整数据内容、结构、数据粒度等方面,以适应用户的决策分析需求,并提高系统的效率和性能。 DW的规划是整个开发过程的基石,包括选择实现策略、确定开发目标和实现范围、...

    软件需求规格说明书-范例.doc

    - **需求跟踪粒度**:定义需求跟踪的具体粒度,例如按功能模块、子系统等进行跟踪。 - **需求级别定义**:定义需求的重要性等级(如关键需求、重要需求、一般需求等),有助于优先级排序。 - **功能描述方法**:...

    基于网格索引结构的TNN查询算法 (2008年)

    这个距离值用于界定接下来的有效查询区域。 2. **缩小查询范围**:利用探查距离来缩小搜索空间,即只在可能包含TNN路径的网格内进行进一步的查询操作。 3. **动态更新探查距离**:随着查询的深入,根据新发现的信息...

    CAN总线协议中文版_CAN总线解析_can解析_can协议_

    1. **报文结构**:CAN报文由起始位、仲裁段、RTR段(远程传输请求)、IDE段(标识符扩展)、SOF段(起始帧界定符)、DLC段(数据长度代码)、数据段、CRC段、ACK段和EOF段(结束帧界定符)组成。 2. **解析流程**:...

    DDD分层架构参考代码目录结构

    其分层架构模型是DDD的核心设计模式,它将系统分为用户接口层、应用层、领域层和基础层,旨在清晰界定各层职责,促进模块化和可维护性。本文将深入探讨这四个层次的职责与功能,并结合微服务代码模型,展示如何在...

    XX中小软件公司绩效考核制度.doc

    2. **适用范围**:适用于中小软件公司内的所有正式员工,包括但不限于开发人员、测试人员、项目经理、销售团队成员等。 3. **考评内容**:主要评估员工的工作完成情况、质量水平、团队协作能力等多个方面,具体可...

    北京金融科技产业联盟发布《金融行业云原生安全体系研究报告》

    2. **自动化测试**:采用自动化工具进行安全测试,提高检测效率。 3. **安全配置管理**:对运行环境的配置进行严格控制,减少因配置不当带来的风险。 4. **持续监控**:实时监控应用和服务的状态,及时发现异常行为...

    【SpringCloud】最全最细!微服务框架-springcloud微服务架构

    Nacos支持多环境配置共享,可以在开发、测试和生产环境中使用相同的配置模板,仅需修改少量参数即可适应不同的环境。 **Nacos集群搭建** 为了提高系统的可用性和可靠性,通常会搭建Nacos集群。集群模式下,Nacos...

    SOA in the real world

    通过对服务的明确界定和标准化交互,SOA 能够简化系统的复杂度,提高业务敏捷性,并促进组织内部及跨组织的合作。 #### 参考资料 本章节中的观点和实践借鉴了业界专家的见解以及相关的研究文献。 #### 第二章:...

Global site tag (gtag.js) - Google Analytics