联调之痛

proteus 与 keil 的安装及联调 proteus 安装 Win10 系统的下载链接可以参考这里:https://tieba.baidu.com/p/5644915130?traceid= 百度网盘地址 链接1: http://pan.baidu.com/s/1kVdtfnx 密码: vaib 链接2: http://pan.baidu.com/s/1kUOsToF keil 安装 还是在网上找个下载就行。可以参考这里:https:... 阅读详情

联调之痛

最近站会时,经常听见开发人员说某Story已经开发完了,等待联调,然后就没有然后了。对于联调时间点近的,开发人员会等一等,一天的时间很快就过去了;时间点远的,开发就领新story了,等另一端开发完,已经若干天过去了。我总觉得其中有什么问题,但是说不出来。上周去QCon听了韩老师的分享,突然发现这种联调在以前团队的也是有的。只不过我们的解决方式不一样,所以问题没有这么突出。

产生问题的原因很简单,现在的软件开发,因为系统复杂性提升,模块拆分也很普遍,很难形成一个团队做端到端交付,没有任何外部依赖。 典型场景是模块A由一个团队1开发,模块B由团队2开发。这时,团队A的功能开发完成后必须要和团队B开发的相应功能联调。目的是走一个端到端的流程,确认功能正确。

团队职能图

问题也来了,

  • 团队1和团队2的开发计划多是独立制定,很难做到同一功能在两个模块上同时开发完成,之间没有任何等待。开发快的要等开发慢的,一方的story虽然开发完了,但不能进入测试,延长了交付时间。
  • 等测试发现bug时,已经过去一两天甚至更久,开发在做其他功能。回来解决问题,又要上下文切换,再度浪费时间。
  • 同时联调发生问题时,定位问题还需要花一番功夫。

开发流程图

之前的项目中我们使用一种契约测试(Contract Testing)的方法来解决这个问题。

  • 首先,两个团队确定接口具体格式,这组格式就相当于一组契约,而后两个团队根据这个契约开发各自功能。
  • 同时,作为消费方的团队1为这个接口添加一组自动化测试,确保模块B的功能符合契约。每次模块B的代码改动都会触发这组测试,测试通过时意味着生产者为消费者提供了正确的功能,反之不能。这样模块B的改动肯定不会影响模块A,即便有影响,也可以通过测试在第一时间反映出来。

契约测试

这种方法,节省了开发人员的联调时间,QA直接测试端到端的功能。同时遇到问题时也很容易定位问题产生根源。

契约测试流程

这种测试与模块A自身的单元测试不同,着眼点在确保模块外部依赖的正确性。有了这层保障,模块A的单元测试就可以使用Test Double(Fake、Mock等),构造出更关注于自身逻辑的测试集,提高测试的运行速度和稳定性。

采用这种方法时有两个问题需要考虑,

  1. 谁来写测试 - 这个回答相对简单,一定要由消费者来写,这样才能确保测试代码和产品代码采用相同的调用方式。

  2. 如何组织测试 - 有两种方式可以选择,放在消费者端,每个消费者维护自己的一套测试;或放在生产者一端,每个模块维护一套针对本模块的测试。第一种方式更容易引起相关消费者团队的重视,针对性更强,但会引入一定的代码重复,第二种正相反。为了更快更有针对性的发现问题,我所在的团队使用了第一种方法。

测试放在消费者一端

测试放在生产者一端

在写这个的时候,顺便搜了一下,发现了老马的这篇文章IntegrationContractTest,基本思想类似,实现上稍有不同。最后总结一下,手工联调这种费时费力的工作,能少做就少做,能自动化就自动化,搞软件的生命短暂,浪费在这上不值。

接口联调测试工作总结 接口测试工作总结,一些思路和常见的问题,确保遇见问题有思路有办法,判断自己哪里不足,自己有重点的做一些训练,才能提升我们的工作能力,转化成我们的成果物,对我们的公司,在我们工作中才能发挥价值。 阅读详情

相关推荐

联调测试接口跟踪计划

联调测试接口跟踪计划

开发之联调

什么是联调呢? 现在的开发基本都是前后端分离的,当后端还没有提供接口的时候,前端需要的数据从哪里来呢,就只能自己造假数据写死了。当后端接口做好后,前端所需要的数据就需要替换成后端提供的数据了。这个时候就需要进行一个前后端的调试,我们会把这个过程叫做前后端接口联调。 为啥需要联调呢? 我们所用的数据都是需要通过数据库提供的数据的,而不是自己写死的。当你去调用后端接口的时候,你可能会发现,有时候后端提供的数据不是你所需要的,跟你写的假数据的格式不一样,那么这个时候就需要跟后端去做适配,来保证这个功能的可运行。

weixin_44931166的博客 1万+

电路设计学习一:DAC/ADC原理

文章目录参考文献DAC基本原理DAC分类倒T型电阻网络权电流转换器DAC的性能指标分辨率转换速度ADC基本原理ADC分类ADC的性能指标ADC的位数分辨率基准源转换速率量化误差 参考文献 DAC数模转换/ADC模数转换 单片机 AD/DA数模转换 模数转换(A/D)与数模转换(D/A) DAC基本原理 DAC将输入的数字量按权的大小,通过电阻网络转化为模拟量,再通过加法电路,转换为与数字量成比例的模拟量。 实际上就是二进制转换为十进制的过程。 基本组成包括锁存器、电子开关、基准源、权电阻网络和求和电路。 锁

coin的博客 3万+

敏捷项目操作手册(31)

晨会讲解模版供参考: ――――――――――――――――――――――――――――――――――――― Story名称( Story责任人) 开发的进展情况: 在 [设计 | 编码 | 联调] 阶段,完成该阶段XX%,预计XX时候完成该阶段。与计划差异, 关键路径在哪里? 测试的进展情况: 在[用例设计 | 用例编写| 用例执行] 阶段,完成该阶段XX%,预计XX时候完成该阶段。与计划差...

mykktian的博客 180

M2DGR数据集在主流SLAM框架中的实战配置指南:从ORB-SLAM到FAST-LIO的完整流程

本文提供了M2DGR多传感器数据集在主流SLAM框架中的实战配置指南。详细介绍了从ORB-SLAM、VINS-Mono等视觉/视觉惯性框架,到A-LOAM、FAST-LIO等激光/激光惯性框架的完整配置流程、参数调整要点及常见问题解决方案。通过实际测试对比,分析了各算法在M2DGR数据集上的表现,为机器人定位与建图研究提供了宝贵的实战经验。

k9l0m1的博客 481

【随机过程】Markov Chain的定义及发展历程与实际应用

本模块书写的初衷:由于在学习张波张景肖等学者所著的《应用随机过程》存在着不甚了解的知识点,经过个人查找资料并整理、分享,希望能够为有同样疑惑的读者贡献绵薄之力,同时如果个人编写内容有错误,恳请读者指正。本文为对《应用随机过程》第42页中Markov Chain基本概念的补充。1.Markov Chain的定义俄国数学家 Andrey Andreyevich Markov 研究并提出一个用数学方法就能解释自然变化的一般规律模型,被命名为马尔科夫链(Markov Chain)。

qq_49657150的博客 3743

软件联调测试

联调测试总计 一个大型项目都会涉及多个部门的多个系统,系统之间通过接口或中间件等形式交互。在项目开发时各系统的工作都是并行的,每个系统开发完成后先由内部测试工程师进行内部的功能模块测试。在这整个项目的层面上讲,每个模块的内部测试属于集成测试,待全部模块测试完成后还应进行整个项目的系统联调测试。联调测试相当于在一个大的项目平台下进行系统间接口或中间件的UAT测试。 1 联调测试的意义 在各模块进行自己系统的测试过程中,测试到模块间的交互时,测试工程师都是按照事先的约定(接口文档,消息示例等)通过Mock方式进

BryantKeBo的博客 1万+

SAR成像系列:【3】合成孔径雷达(SAR)的二维回波信号与简单距离多普勒(RD)算法 (附matlab代码)

二维回波信号分析

zr2006_7的专栏 2万+

集成测试和联调测试区别:

软件测试:集成测试和联调测试区别

yuanmei0924的博客 3230

实战指南:用Python实现ONVIF WS-Discovery设备发现(附完整代码)

本文提供了一份详细的实战指南,介绍如何使用Python实现基于ONVIF标准的WS-Discovery设备发现协议。文章深入解析了协议原理、网络通信模型,并提供了完整的代码实现,帮助开发者快速构建智能安防和物联网应用中的设备自动发现工具,有效提升网络设备集成与管理的效率。

chair的专栏 1113

【图像分类】卷积神经网络之VGGNet网络模型实现花卉图像识别(附代码和数据集,PyTorch框架)

卷积神经网络之VGGNet网络模型实现花卉图像识别(附代码和数据集,PyTorch框架)

学无止境、积少成多、厚积薄发 2430

Java开发中联调是啥意思_JNI开发中Java与C++联调

1、JNI介绍JNI是Java Native Interface的缩写,中文为JAVA本地调用。从Java1.1开始,Java Native Interface(JNI)标准成为java平台的一部分,它允许Java代码和其他语言写的代码进行交互。JNI一开始是为了本地已编译语言,尤其是C和C++而设计的,但是它并不妨碍你使用其他语言,只要调用约定受支持就可以了。2、JNI代码生成步骤JNI的使用核...

weixin_35949298的博客 1171

从数字后端角度谈谈occ电路(二)

从图中,我们可以清晰的看出,当scan_en为1时,test mode为1时,经过一系列逻辑单元后,得到clk_sel输出信号为1,同样可推算fast_clk_en = 0,slow_clk_en为1,此时clk_out输出为slow clk,符合我们预期。在该模式下,是使用slow clock进行scan shift,接着我们开始进行推导;从图中,我们根据逻辑运算可以看出,clk_sel输出信号为0,fast clk en为1,此时通过mux选择,clk out即为fast clk;

芯冰乐 358

前后端联调总结

@Tomato 由于之前后端都有涉猎, 所以对于前后端在接口对接时产生的许许多多的摩擦有一些自己的看法 在此整理一些问题排查的思路 这里后端已WebApi举例 , 前端以VUE+ElementUI举例 文章目录1、为什么需要联调2、如何有效的联调2.1、自测2.2、快速定位问题2.3、责任边界2.4、及时反馈3、真正的联调4、友情建议4.1、远离关键路径,合理调配时间4.2、把握全局进度,提高整体效率4.3、积极沟通交流,主动推进联调 1、为什么需要联调 联调就是 后端不好好写单元测试与集成测试

Tomato的博客 1万+

NSIS教程(6): 使用第三方插件

NSIS内置了很多指令,这些指令可以满足我们基本需求,但难免会遇到NSIS没有内置的功能,如进程操作,后台运行(即多线程),7z压缩等等,这个时候我们就需要借助第三方插件来满足我们所需要的功能了。 一、插件获取 NSIS官方收录插件的网址是:http://nsis.sourceforge.net/Category:Plugins,我们可以在这个网站上查找和下载我们需要的插件,该网站上针对每

while(1) { smile(); } 9万+

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

公司项目里如何进行前后端接口联调

最近我的朋友王小闰进入一家新的公司,正好公司项目采用的是前后端分离架构,技术栈是王小闰非常熟悉的vue全家桶,后端用的是Java语言。   在前后端开发人员碰面之后,协商确定好了前端需要的数据接口(扯那么多,其实也就是关于json数据的字段的定义),然后前后端程序猿就嗨皮地并线开发去了。     前后端联调前夕     我的朋友王小闰他们这家公司做本地旅游项目的,安排到他手上的活儿...

czboy 2万+

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

接口联调Postman测试

在我们工作过程中,有时需要一些接口进行联调。接口联调测试,就是按照业务要求,把接口进行组合测试。接口组合起来才能实现完整的业务,体现更大的价值。

qq_20878673的博客 2847

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

联调

联调有3个目的: 1、将项目组的代码整合起来,这点在好的项目管理中编码阶段已经完成了大部分的集成工作。 2、保证系统的质量,避免后期的大改动,之后转集成阶段 3、进行质量评定以调整测试策略 按项目管理的五要素分解如下: 1、干系人期望-目标 编码阶段干系人的影响已经很小,先不讨论。 2、沙盘-思路 1)代码覆盖率 只有被跑过的代码才是安全的,之前的任何假设只有通过验证才能得到结果。代码覆盖率是保证质量的一个基本指标,通常...

weixin_39461846的博客 6257

前后端高效联调

对于新人,上面的步骤至关重要,尽量对着上面的步骤来,能节约不少的时间,避免返工的出现。但如果是一位老手,公司元老级别人物,本身就对系统了如指掌,那配合他来进行,效率说不定还更高。其实,还有一些隐藏的规范,和公司的规定有关比如说,接口统一用POST请求,加上body请求体的方式简单粗暴,这都是公司为了照顾新手所制定的一些规则。

半月的博客 1568

测试完整流程+多系统联调

测试完整流程(待修改) –用例设计 –开用例评审会议+和开发产品确认冒烟用例–发用例评审结果的邮件 –提测后进行冒烟测试–Dashboard发冒烟报告+VQP冒烟阶段审核 –功能测试–每日发功能测试进度及遇到的问题–结束后VQP功能测试审核 –代码版本合并,进行回归测试。 (如果没有安全评审,上线前一天要找安全负责人进行评审) 1、如何进行两个系统间的接口测试(小联调) 1、搞清楚两个系统如何交互: 接口标识: 数据流向:系统A(数据源,主动方) >> 系统B(接收数据,被动方) 接口协议:HT

QuietSnow_wuyaya的博客 8752

HBuilder真机联调教程:iPhone/Android联调失败?

HBuilder是HTML5+的集成开发工具,非常好用,如果遇到了技术难题,还可以

飞鱼 4万+

联调测试是什么意思_联调联试及运行试验

1.如何把好高速铁路工程质量关? 相互影响、相互制约,因此与传统铁路不同,高速铁路要取得最佳的整体效果,除了质量控制外,还要进行反复调试和运行试验。联调联试和运行试验已成为高速铁路建设中不可缺少的重要环节。高速铁路建设是一项超大规模的系统工程。为保证高速列车安全、高速、平稳运行,高速铁路工程竣工后,要进行严格的试验检测,并通过联调联试、运行试验对实车运行环境下的高速铁路设计施工质量进...

weixin_39568781的博客 5917

前后端联调

在现代Web开发中,前后端分离是一种常见的架构模式,这意味着前端和后端可以独立开发,从而提高开发效率。在这种模式下,前端开发主要负责用户界面(UI)和用户体验(UX),而后端则负责处理业务逻辑、数据库交互等服务器端的任务。为了模拟真实的数据交互,前端开发人员会使用mock数据来代替后端提供的真实数据,这样可以在没有后端支持的情况下继续开发前端功能。当前后端开发完成后,需要通过联调来测试整个应用的功能是否按预期工作。

2301_79965602的博客 2913

Keil和Proteus的联调

Keil5同Proteus的联调 1、下载好keil和proteus,我这里下好的是keil5和proteus8 keil用注册机破解,proteus也是需要破解,建议不要用汉化版 2、下载VDM51.dll文件,分别放到keil的C51的BIN目录下和proteus的MODELS目录下,例如: keil:D:\Keil\C51\BIN proteus:D:\Program Files (x86)\Labcenter Electronics\Proteus 8 Professional\MODELS 3、用

qq_45764141的博客 1万+
上一篇: Java 注解指导手册 – 终极向导
下一篇: 影响Java EE性能的十大问题
bamboolsu
博客等级 码龄22年 200粉丝 394原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值