测试驱动的编程是XP困扰程序员的一个方面。
对于测试驱动的编程意味着什么以及如何去做,大多数人都做出了不正确的假设。
这个月,XP方面的讲师兼Java开发人员RoyMiller谈论了测试驱动的编程是什么,它为什么可以使程序员的生产力和质量发生巨大变化,以及编写测试的原理。
请在与本文相随的论坛中提出您就本文的想法,以飨笔者和其他读者。
(您也可以单击本文顶部或底部的“讨论”来访问该论坛。
)最近50年来,测试一直被视为项目结束时要做的事。
当然,可以在项目进行之中结合测试,测试通常并不是在所有编码工作结束后才开始,而是一般在稍后阶段进行测试。
然而,XP的提倡者建议完全逆转这个模型。
作为一名程序员,应该在编写代码之前编写测试,然后只编写足以让测试通过的代码即可。
这样做将有助于使您的系统尽可能的简单。
先编写测试XP涉及两种测试:程序员测试和客户测试。
测试驱动的编程(也称为测试为先编程)最常指第一种测试,至少我使用这个术语时是这样。
测试驱动的编程是让程序员测试(即单元测试―重申一下,只是换用一个术语)决定您所编写的代码。
这意味着您必须在编写代码之前进行测试。
测试指出您需要编写的代码,从而也决定了您要编写的代码。
您只需编写足够通过测试的代码即可―不用多,也不用少。
XP规则很简单:如果不进行程序员测试,则您不知道要编写什么代码,所以您不会去编写任何代码。
测试驱动开发(TDD)是极限编程的重要特点,它以不断的测试推动代码的开发,既简化了代码,又保证了软件质量。
本文从开发人员使用的角度,介绍了TDD优势、原理、过程、原则、测试技术、Tips等方面。
背景一个高效的软件开发过程对软件开发人员来说是至关重要的,决定着开发是痛苦的挣扎,还是不断进步的喜悦。
国人对软件蓝领的不屑,对繁琐冗长的传统开发过程的不耐,使大多数开发人员无所适从。
最近兴起的一些软件开发过程相关的技术,提供一些比较高效、实用的软件过程开发方法。
其中比较基础、关键的一个技术就是测试驱动开发(Test-DrivenDevelopment)。
虽然TDD光大于极限编程,但测试驱动开发完全可以单独应用。
下面就从开发人员使用的角度进行介绍,使开发人员用最少的代价尽快理解、掌握、应用这种技术。
下面分优势,原理,过程,原则,测试技术,Tips等方面进行讨论。
1.优势TDD的基本思路就是通过测试来推动整个开发的进行。
而测试驱动开发技术并不只是单纯的测试工作。
2023/9/24 18:44:46 360KB 测试驱动开发 TDD
1
文压缩包里面是红外测温仪的全部硬件电路,包含了原件的bom和pcb电路图,下载可以直接使用,这个原理图我已经打板验证过完全没问题
2023/9/24 6:39:32 17.08MB STM32 红外测温
1
yshop意象商城系统3.2版本已经正式发布啦!:1、新增商城装修模块2、新增商户订单通知3、提现接入企业付款接口4、新增app端后台版本控制5、新增商家端退款申请通知6、新增商品积分兑换模块(同步主商品sku)7、升级wxjava版本4.0.08、升级springboot最新版本2.4.29、新增docker一键部署方案10、后台商城首页优化11、新增快递鸟查询顺丰轨迹12、关键bug修复:移除roketmq依赖及相关逻辑修改退款扣库存去除素材分组分页,防止素材过多显示不完全修改订单金额为0时,支付不成功直接报错项目简介yshop基于当前流行技术组合的前后端分离商城系统:SpringBoot2+MybatisPlus+SpringSecurity+jwt+redis+Vue的前后端分离的商城系统,包含商城、小程序直播、拼团、砍价、商户管理、秒杀、优惠券、积分、分销、会员、充值、多门店等功能,更适合企业或个人二次开发;
2023/9/23 9:57:27 3.48MB java 开发平台
1
自己做的一款物业管理系统,可能功能不完全,但是做为参考那是绝对的没问题的,数据库建表的代码已经包含在里面。
希望此文件能帮助到你。
2023/9/23 9:48:46 3.02MB vs2008 SQL Server
1
本人测试过,这个驱动完全用于SERVER2008R2版64位系统上,惠普官网都下载不到,这个绝对好用。
2023/9/22 22:07:30 1.66MB HP ProLiant DL388p Gen8
1
保留原有所有功能,新增直接从mapinfo图层输出googleearthkml文件的工具。
Mapinfo2Googleearth将ADA_CDMATool基础上生成的CDMA_Cell_Map_NB图层直接转为googleearth的kml文件。
kml保留扇区的三叶草图形,全向站用六边形标识。
///////原有功能/////////ADACDMAToolHelp扇区信息表格式 扇区信息表:CdmaCellInfo.xls。
“Bearing”列为方位角,“radius”列为半径,“FREQ”列为不同频率,“H_BeamWidth”为扇区水平瓣宽,“Longitude”经度,“Latitude”纬度。
“扇区类型”列用“射频拉远”标识是否RRU站。
“基站名”列标识站名或者射频拉远站的施主站名。
“物理地址”列标识实际站点站名。
“NeighborNumber”列保存对应扇区的邻小区数。
“N01”记录第一个邻小区的小区号,必须放在第24列。
MakeCell用来生成扇区结构的mapinfo图层,用不同的方位角和半径来区分同一物理地址不同频点的扇区。
扇区信息表:CdmaCellInfo.xls,放在和本插件同一目录下。
并在同一目录下生成图层CDMA_Cell_Map_NB。
下图即为生成的基站扇区图,圆形为全向站(包括室分系统)注:以下所有的工具均需要在生成的CDMA_Cell_Map_NB图层上工作!RRULine 用来生成RRU站和施主站之间的连线。
用箭头工具点击扇区,如果扇区是RRU站则画出其与施主站之间的连线。
用RECT工具进行区域选择,程序会将区域范围内的RRU站与施主站之间连线。
DrawRRULineall 一次性生成CDMA_Cell_Map_NB图层中所有RRU站与其施主站间的连线。
注:生成全网的RRU联线,所需时间较长。
FindPN 用来查找CDMA_Cell_Map_NB图层中所有指定PN的扇区,填充颜色并标注PN。
可以用此来检查PN复用距离。
下图为findPN274的结果,标注PN274并红色填充对应扇区。
NBCheck 显示所选择扇区的所有邻小区并用颜色填充。
可以用此来查看是否有明显的PN漏配。
如果点击选择的位置有多个扇区时,会弹出选择对话框供用户确定扇区。
PNOneWayCheck点击图层,输出所点击扇区的邻小区重复PN信息,或者多余邻小区信息(多余邻小区为小区号已经不在现网中)。
注:PNOneWay和Twoway与某一地点的覆盖有很大关系,并不仅仅是邻小区设置的问题,程序中只是检查了基站邻小区的PN是否有重复PNTwoWayCheck 检查所点击扇区的邻小区、所有二次邻小区(邻小区的邻小区)之间的PN是否有重复。
如果二次邻小区PN重复,则可能存在PNTwoway的风险print出PNTwoway点位的Cell信息,在map上连线,显示造成Twoway的邻小区路径。
注:此程序运行时间视邻小区个数与PN重复数有关,在2min~10min左右注:PNOneWay和Twoway与某一地点的覆盖有很大关系,并不仅仅是邻小区设置的问题,程序中检查了基站邻小区、所有二次邻小区的PN是否有重复PNTwoWayCheck2 检查所点击扇区的邻小区与二次邻小区之间的PN复用关系,不检查二次邻小区之间的复用关系。
用不同的颜色填充和连线显示出可能存在的PNTwoWay,此工具检查出来的PNTwoWay结果比PNTwoWayCheck检查出来的结果更有风险。
话统数据分析 选择需要分析的数据列,或者输入需要分析的数据列(输入的列名要与CdmaCellInfo.xls中的列名完全一致),输入分析数据的最大值和5类层级的填充颜色和范围。
用不同的颜色标识属于不同范围的扇区,并用图示标识出来。
2023/9/22 19:34:05 4.37MB CDMA 网络优化 插件 googleearth
1
黄梯云的《管理信息系统》第四版教材完全相同,不是PPT,而是网页格式
2023/9/22 16:54:51 37.89MB 管理信息系统
1
具备完全的21点纸牌游戏规制和玩家管理系统
2023/9/21 23:54:11 620KB 21点 C语言 源代码
1
flowplay插件完全版附带例子,用于前端播放器插件相关的技术
2023/9/21 21:04:47 169KB flowplayer js
1
虽然本视频是专门为小白量身打造从基础到精通以及内容丰富,但是课程在每一个知识点上进行了很大的延伸,深度完全完胜三年工作经验的程序员。
为您以后的发展奠定坚实的基础。
2023/9/21 16:26:06 408KB java map
1
在日常工作中,钉钉打卡成了我生活中不可或缺的一部分。然而,有时候这个看似简单的任务却给我带来了不少烦恼。 每天早晚,我总是得牢记打开钉钉应用,点击"工作台",再找到"考勤打卡"进行签到。有时候因为工作忙碌,会忘记打卡,导致考勤异常,影响当月的工作评价。而且,由于我使用的是苹果手机,有时候系统更新后,钉钉的某些功能会出现异常,使得打卡变得更加麻烦。 另外,我的家人使用的是安卓手机,他们也经常抱怨钉钉打卡的繁琐。尤其是对于那些不太熟悉手机操作的长辈来说,每次打卡都是一次挑战。他们总是担心自己会操作失误,导致打卡失败。 为了解决这些烦恼,我开始思考是否可以通过编写一个全自动化脚本来实现钉钉打卡。经过一段时间的摸索和学习,我终于成功编写出了一个适用于苹果和安卓系统的钉钉打卡脚本。
2024-04-09 15:03 15KB 钉钉 钉钉打卡