开发测试

范围

开发人员-dev的对代码质量的保证方式,进行的代码级别验证或者方法论驱动写出质量能达到要求的代码,非测试人员范围内的测试。

概念区分

  1. 单元测试 单元测试只测试程序单元自身的功能

  2. 集成测试 将所有模块按照概要设计要求组装成为子系统或系统,验证组装后功能以及模块间接口是否正确的测试工作

  3. tdd:方法论:写代码只为修复失败了的测试,基于单元测试

  4. atdd:ATDD是一种团队行为及过程,基于集成测试

例如:如果需要启动spring容器来进行,已经属于集成测试范围,参考springdoc,spring-test包本身定义为集成测试,单元测试需要mock注入;

mock东西太多,所以我们会启动spring容器来注入;但如果是tdd这种运行速度肯定不是我们能接受的。
方法

现状与问题

有鄙视没有单元测试的代码,有觉得没有测试就没法写代码的,但项目里面很多处于中断使用或者干脆没有。原因各种各样,最后结果是没有做或者中途停止。

常见如下:

  1. 没有流程上统一约束,全靠开发自身决定

  2. 没有可度量的方式,无法衡量

  3. 进度原因放弃,意味着价值比例总体还是体现占比较小

  4. 简单业务crud,很明显,没几行业务代码,是否值得测试,大量依赖其他系统的测试又需要很多mock

  5. 集成测试调用外部系统无法反复进行,对其他系统造成的脏数据问题

尝试改进

通过测试增加代码质量,这件事本身可能会遇到很多难点,不是搭建一个demo的测试框架就可以解决。测试可能会促进你代码的改变,比如mock太多

提供统一框架,仅可能解决一些常见点,但具体问题还是一个个解决。ATDD要求整体流程配合,先做单元测试与集成测试的交集点。

简单crud通过测成准备数据解决,复杂逻辑需要单元测试覆盖,再集成测试仅可能覆盖。集成测试一些点可以mock,比如外部调用

准备结合我们项目选用测试集成如下:支持动态语言groovy并支持javaspock spring-test H2 junit jersey-test Mockito

相关文章

适配器模式将一个类的接口转换成客户期望的另一个接口,使得原本接口不兼容的类可以相互合作。
策略模式定义了一系列算法族,并封装在类中,它们之间可以互相替换,此模式让算法的变化独立于使用算法...
设计模式讲的是如何编写可扩展、可维护、可读的高质量代码,它是针对软件开发中经常遇到的一些设计问题...
模板方法模式在一个方法中定义一个算法的骨架,而将一些步骤延迟到子类中,使得子类可以在不改变算法结...
迭代器模式提供了一种方法,用于遍历集合对象中的元素,而又不暴露其内部的细节。
外观模式又叫门面模式,它提供了一个统一的(高层)接口,用来访问子系统中的一群接口,使得子系统更容...