作者:[英]MattWynne/[挪]AslakHellesy出版社:人民邮电出版社原作名:TheCucumberBook:Behaviour-DrivenDevelopmentforTestersandDevelopers译者:许晓斌/王江平这是一本半技术书籍,虽然是测试使用,但阅读它实在也需要一定的代码基础,所以可见,测试的技术含量越来越高了:D由于本人使用Java,所以忽略了12章以后的内容,由于它所使用到的那些框架都是基于Ruby。
本书分为3部分:1.基础2.进阶3.应用在第一部分,基础篇中,介绍了Gherkin语法,Cucumber的产生背景与适用范围,以及常见问题与解答。
Cucumber是一种系统行为的描述文件,它是活文档,应该时刻描述当前系统的正确行为,并且能够自动测试。
这一特性事实上也要求在写Cu..ber文件时,务必做到用户精准,不要重复场景,用书上的话来讲,就是同一句话,对且只对应系统中的唯一的一个行为。
Cu..ber主要用于在团队中进行沟通,语言必须能通用,要通用就要求隐藏技术细节,以自然语言去描述系统的行为,最经典的场景如:Given...When...Then...给定一定场景,当做什么操作时,会产生什么样的结果。
表格的使用,Backgroud关键字都是为了让特性文件能更简洁,也更易懂和富有表现力。
第二部分进阶篇中,介绍了一些高级的功能,比如:钩子和标签钩子是指@Before@After这种加上实现方法之前,在测试开始时和结束后执行一些特定的操作。
Cu...ber的步骤是全局的,同理,@Be..这类钩子也是全局的,Cu...ber的全局是大有深意的,因为它认为,特性中的所有有用步骤,只能对应一种系统的行为。
若需要让其支持单个场景,则需要对在钩子后面加上标签的方式。
标签同钩子形式相同,可以在场景和特性关键词上加标签。
对于特性(Feature)的标签,会加在每个场景上。
Cu...ber可以对一组标签进行测试。
Cu...ber测试中(可以推而广之到任何测试中),凡是有数据库参与,需要在测试之前保证数据库是干净的,并且当前测试不会遗留下数据影响到下一个测试。
可以使用事务和Truncate的方式来保证这点,实际上,只要测试环节所需要的数据都由Given中提供,则不会有问题。
第三部分讲应用,基本上都是基于Ruby的一些库,但11章的命令行使用方式还是很有意义的,Cu...ber本身就是一个命令行工具,通过命令行,可以对特性文件进行一些过滤,对输出格式进行定制,以及集成到持续集成中。
命令行命令可以使用帮助:--help一些重要的命令:--tags过滤标签--lines指定行执行xxx.feature:45指定行的另一种形式--format格式化输出如果真能把Cucumber用起来,用严肃的态度对待每一个步骤,以测试驱动开发,做出来的项目质量应该能大上一个台阶的,是个很好的工具。
2023/11/3 8:45:35 6.7MB 软件测试
1
kubernetescka考试培训lab的材料,包含所有章节的lab
2023/11/3 0:27:44 356KB CKA LFS258
1
《单片机原理及接口技术》一、单项选择题1、十进制数(79.43)10的二进制数为()。
A、1001111.0110B、1111001.0110C、1111001.1001D、1001111.10012、某存储器芯片有11根地址线,8根数据线,该芯片有()个存储单元。
A、1KBB、8KBC、2KBD、4KB3、单片机复位时,堆栈指针(SP)的值是()。
A、00HB、07HC、05HD、30H4、PC的值是()。
A、当前指令前一条指令的地址B、当前正在执行指令的地址C、下一条指令的地址D、控制器中指令寄存器的地址5、下列指令或指令序列中,能将外部数据存储器3355H单元的内容传送给A的是()。
A、MOVXA,3355HB、MOVDPTR,#3355HMOVXA,@DPTRC、MOVP0,#33HMOVR0,#55HMOVXA,@R0D、MOVP2,#33HMOVR2,#55HMOVXA,@R26、80C51单片机要用传送指令访问片内程序存储器,它的指令操作码助记符是以下()。
A、MOVB、MOVXC、MOVCD、MUL7、假定设置堆栈指针SP的值为37H,在进行子程序调用时把断点地址进栈保护后,SP的值为()。
A、36HB、37HC、38HD、39H8、在80C51中,可使用的堆栈最大深度为()。
A、80个单元B、32个单元C、128个单元D、8个单元9、下列条件中,不是中断响应必要条件的是()。
A、TCON或SCON寄存器中相关的中断标志位置1B、IE寄存器中相关的中断允许位置1C、IP寄存器中相关位置1D、中断请求发生在指令周期的最后一个机器周期10、执行中断返回指令,要从堆栈弹出断点地址,以便去执行被中断了的主程序。
从堆栈弹出的断点地址送给()。
A、AB、CYC、PCD、DPTR11、下列叙述中,不属于单片机存储器系统特点的是()。
A、程序和数据两种类型的存储器同时存在。
B、芯片内外存储器同时存在C、扩展数据存储器与片内数据存储器存储空间重叠D、扩展程序存储器与片内程序存储器存储空间重叠12、PSW=18H,当前的工作寄存器是()A、0组B、1组C、2组D、3组13、MCS-51的中断允许寄存器内容为8AH,CPU可以响应的中断请求是()。
A、T1B、T0,T1C、T1,串行接口D、T014、指令AJMP的跳转范围是()。
A、64KBB、2KBC、256BD、128B15、下列指令中正确的是()。
A、MOVP2.1,AB、JBCTF0,L1C、MOVXB,@DPTRD、MOVA,R3二、填空题。
1、一个机器周期包括个状态周期,一个状态周期包含个时钟周期。
2、执行如下指令序列:MOVC,P1.0ANLC,P1.1ANLC,/P1.2MOVP3.0,C后,所实现的逻辑运算式为P3.0=。
3、假定(A)=0C3H,R0=0AAH,CY=1。
执行指令:ADDCA,R0后,累加器A的内容为
2023/11/2 19:27:50 99KB 单片机 真题
1
超市管理系统计划书是一个完整的课程设计一共11页,写得很详细
1
截至2016.11.08最新版JDKForwindowsx64.exesha256:259caf1052673573096bb27b0ee10a8e97734461483856be1a81aa4130c3fe29md5:a9183da6df9ec38d196f0cd2b420a8aa大小:194.64MB
2023/11/1 2:19:20 194.64MB java jdk-8u111 windows x64
1
1.对于二叉排序树,下面的说法()是正确的。
A.二叉排序树是动态树表,查找不成功时插入新结点时,会引起树的重新分裂和组合B.对二叉排序树进行层序遍历可得到有序序列C.用逐点插入法构造二叉排序树时,若先后插入的关键字有序,二叉排序树的深度最大D.在二叉排序树中进行查找,关键字的比较次数不超过结点数的1/22.在有n个结点且为完全二叉树的二叉排序树中查找一个键值,其平均比较次数的数量级为()。
A.O(n)B.O(log2n)C.O(n*log2n)D.O(n2)3.静态查找与动态查找的根本区别在于()。
A.它们的逻辑结构不一样B.施加在其上的操作不同C.所包含的数据元素类型不一样D.存储实现不一样4.已知一个有序表为{12,18,24,35,47,50,62,83,90,115,134},当折半查找值为90的元素时,经过()次比较后查找成功。
A.2B.3C.4D.55.已知数据序列为(34,76,45,18,26,54,92,65),按照依次插入结点的方法生成一棵二叉排序树,则该树的深度为()。
A.4B.5C.6D.76.设散列表表长m=14,散列函数H(k)=kmod11。
表中已有15,38,61,84四个元素,如果用线性探测法处理冲突,则元素49的存储地址是()。
A.8B.3C.5D.97.平衡二叉树的查找效率呈()数量级。
A.常数阶B.线性阶C.对数阶D.平方阶8.设输入序列为{20,11,12,…},构造一棵平衡二叉树,当插入值为12的结点时发生了不平衡,则应该进行的平衡旋转是()。
A.LLB.LRC.RLD.RR二、填空题(每空3分,共24分)。
1.在有序表A[1..18]中,采用二分查找算法查找元素值等于A[7]的元素,所比较过的元素的下标依次为。
2.利用逐点插入法建立序列(61,75,44,99,77,30,36,45)对应的二叉排序树以后,查找元素36要进行次元素间的比较,查找序列为。
3.用顺序查找法在长度为n的线性表中进行查找,在等概率情况下,查找成功的平均比较次数是。
4.二分查找算法描述如下:intSearch_Bin(SSTST,KTkey){low=1;high=ST.length;while(low<=high){mid=(low+high)/2;if(key==ST.elem[mid].key)returnmid;elseif(key<ST.elem[mid].key);else;}return0;}5.链式二叉树的定义如下:typedefstructBtn{TElemTypedata;;}BTN,*BT;6.在有n个叶子结点的哈夫曼树中,总结点数是。
三、综合题(共52分)。
1.(共12分)假定关键字输入序列为19,21,47,32,8,23,41,45,40,画出建立二叉平衡树的过程。
2.(共15分)有关键字{13,28,31,15,49,36,22,50,35,18,48,20},Hash函数为H=keymod13,冲突解决策略为链地址法,请构造Hash表(12分),并计算平均查找长度(3分)。
ASL=3.(共10分)设关键字码序列{20,35,40,15,30,25},给出平衡二叉树的构造过程。
4.(共15分)设哈希表长为m=13,散列函数为H(k)=kmod11,关键字序列为5,7,16,12,11,21,31,51,17
2023/10/29 19:17:51 88KB 数据结构 第九章  查找 作业
1
企业人事管理系统源码功能介绍:(1)用户输入用户名、密码后,进入企业人事管理界面。
(2)单击“基础信息管理”菜单栏中的“数据基础”/“民族类别设置”命令,对民族类别信息进行添加、修改、删除及查看操作。
(3)单击“基础信息管理”菜单栏中的“数据基础”/“职工类别设置”命令,对职工类别信息进行添加、修改、删除及查看操作。
(4)单击“基础信息管理”菜单栏中的“数据基础”/“文化程度设置”命令,对文化水平信息进行添加、修改、删除及查看操作。
(5)单击“基础信息管理”菜单栏中的“数据基础”/“政治面貌设置”命令,对政治面貌信息进行添加、修改、删除及查看操作。
(6)单击“基础信息管理”菜单栏中的“数据基础”/“部门类别设置”命令,对部门类别信息进行添加、修改、删除及查看操作。
(7)单击“基础信息管理”菜单栏中的“数据基础”/“工资类别设置”命令,对工资类别信息进行添加、修改、删除及查看操作。
(8)单击“基础信息管理”菜单栏中的“数据基础”/“职称类别设置”命令,对职称类别信息进行添加、修改、删除及查看操作。
(9)单击“基础信息管理”菜单栏中的“数据基础”/“奖惩类别设置”命令,对奖惩类别信息进行添加、修改、删除及查看操作。
(10)单击“基础信息管理”菜单栏中的“数据基础”/“记事本类别设置”命令,对记事本类别信息进行添加、修改、删除及查看操作。
(11)单击“基础信息管理”菜单栏中的“员工提示信息”/“员工生日提示”命令,对员工生日提示时间进行设置。
(12)单击“基础信息管理”菜单栏中的“员工提示信息”/“员工合同提示”命令,对员工合同提示日期进行设置。
(13)单击“人事管理”菜单栏中的“人事档案浏览”命令,通过该窗体,可对职工基本信息、工作简历、家庭关系、培训记录、奖惩记录和个人简历等信息进行添加、修改、删除及查询操作。
(14)单击“人事管理”菜单栏中的“人事资料查询”命令,对人事资料信息进行查询操作。
(15)单击“人事管理”菜单栏中的“人事资料统计”命令,对人事资料信息进行统计操作。
(16)单击“备忘记录”菜单栏中的“日常记事”命令,对日常记事信息进行添加、修改、删除及查询操作。
(17)单击“备忘记录”菜单栏中的“通讯录”命令,对通讯信息进行添加、修改、删除及查询操作。
(18)通过“数据库”菜单栏,可对数据库进行备份、恢复及清空数据库操作。
注意:在进行对数据库操作时,请先备份数据库,以防造成不必要的损失。
(19)通过“工具管理”菜单栏,可直接调用计算器和记事本的快捷方式。
(20)通过“系统管理”菜单栏,可对本系统进行重新登录、用户设置、及系统退系统操作。
(21)通过“帮助”菜单栏,直接调用帮助文件。
2023/10/28 8:37:23 4.21MB 企业 人事 管理 系统
1
C语言算法速查手册目录第1章 绪论 11.1 程序设计语言概述 11.1.1 机器语言 11.1.2 汇编语言 21.1.3 高级语言 21.1.4 C语言 31.2 C语言的优点和缺点 41.2.1 C语言的优点 41.2.2 C语言的缺点 61.3 算法概述 71.3.1 算法的基本特征 71.3.2 算法的复杂度 81.3.3 算法的准确性 101.3.4 算法的稳定性 14第2章 复数运算 182.1 复数的四则运算 182.1.1 [算法1] 复数乘法 182.1.2 [算法2] 复数除法 202.1.3 【实例5】复数的四则运算 222.2 复数的常用函数运算 232.2.1 [算法3] 复数的乘幂 232.2.2 [算法4] 复数的n次方根 252.2.3 [算法5] 复数指数 272.2.4 [算法6] 复数对数 292.2.5 [算法7] 复数正弦 302.2.6 [算法8] 复数余弦 322.2.7 【实例6】复数的函数运算 34第3章 多项式计算 373.1 多项式的表示方法 373.1.1 系数表示法 373.1.2 点表示法 383.1.3 [算法9] 系数表示转化为点表示 383.1.4 [算法10] 点表示转化为系数表示 423.1.5 【实例7】 系数表示法与点表示法的转化 463.2 多项式运算 473.2.1 [算法11] 复系数多项式相乘 473.2.2 [算法12] 实系数多项式相乘 503.2.3 [算法13] 复系数多项式相除 523.2.4 [算法14] 实系数多项式相除 543.2.5 【实例8】 复系数多项式的乘除法 563.2.6 【实例9】 实系数多项式的乘除法 573.3 多项式的求值 593.3.1 [算法15] 一元多项式求值 593.3.2 [算法16] 一元多项式多组求值 603.3.3 [算法17] 二元多项式求值 633.3.4 【实例10】 一元多项式求值 653.3.5 【实例11】 二元多项式求值 66第4章 矩阵计算 684.1 矩阵相乘 684.1.1 [算法18] 实矩阵相乘 684.1.2 [算法19] 复矩阵相乘 704.1.3 【实例12】实矩阵与复矩阵的乘法 724.2 矩阵的秩与行列式值 734.2.1 [算法20] 求矩阵的秩 734.2.2 [算法21] 求一般矩阵的行列式值 764.2.3 [算法22] 求对称正定矩阵的行列式值 804.2.4 【实例13】求矩阵的秩和行列式值 824.3 矩阵求逆 844.3.1 [算法23] 求一般复矩阵的逆 844.3.2 [算法24] 求对称正定矩阵的逆 904.3.3 [算法25] 求托伯利兹矩阵逆的Trench方法 924.3.4 【实例14】验证矩阵求逆算法 974.3.5 【实例15】验证T矩阵求逆算法 994.4 矩阵分解与相似变换 1024.4.1 [算法26] 实对称矩阵的LDL分解 1024.4.2 [算法27] 对称正定实矩阵的Cholesky分解 1044.4.3 [算法28] 一般实矩阵的全选主元LU分解 1074.4.4 [算法29] 一般实矩阵的QR分解 1124.4.5 [算法30] 对称实矩阵相似变换为对称三对角阵 1164.4.6 [算法31] 一般实矩阵相似变换为上Hessen-Burg矩阵 1214.4.7 【实例16】对一般实矩阵进行QR分解 1264.4.8 【实例17】对称矩阵的相似变换 1274.4.9 【实例18】一般实矩阵相似变换 1294.5 矩阵特征值的计算 1304.5.1 [算法32] 求上Hessen-Burg矩阵全部特征值的QR方法 1304.5.2 [算法33] 求对称三对角阵的全部特征值 1374.5.3 [算法34] 求对称矩阵特征值的雅可比法 1434.5.4 [算法35] 求对称矩阵特征值的雅可比过关法 1474.5.5 【实例19】求上Hessen-Burg矩阵特征值 1514.5.6 【实例20】分别用两种雅克比法求对称矩阵特征值 152第5章 线性代数方程组的求解 1545.1 高斯消去法 1545.1.1 [算法36] 求解复系数方程组的全选主元高斯消去法 1555.1.2 [算法37] 求解实系数方程组的全选主元高斯消去法 1605.1.3 [算法38] 求解复系数方程组的全选主元高斯-约当消去法 1635.1.4 [算法39] 求解实系数方程组的全选主元高斯-约当消去法 1685.1.5 [算法40] 求解大型
2023/10/26 14:13:36 218KB 算法速查
1
给定n座建筑物B[1,2,...,n],每个建筑物B[i]表示为一个矩形,用三元组B[i]=(ai,bi,hi)表示,其中ai表示建筑左下顶点,bi表示建筑的右下顶点,hi表示建筑的高,请设计一个O(nlogn)的算法求出这n座建筑物的天际轮廓。
例如,左下图所示中8座建筑的表示分别为(1,5,11),(2,7,6),(3,9,13),(12,16,7),(14,25,3),(19,22,18),(23,29,13)和(24,28,4),其中天际轮廓如右下图所示可用9个高度的变化(1,11),(3,13),(9,0),(12,7),(16,3),(19,18),(22,3),(23,13)和(29,0)表示。
另举一个例子,假定只有一个建筑物(1,5,11),其天际轮廓输出为2个高度的变化(1,11),(5,0)。
2023/10/26 14:05:22 3KB 分治 天际线 算法基础
1
本资料面向LIN总线初学者,对什么是LIN,LIN的特征,物理层、协议层及应用层相关规定进行说明。
本资料主要是针对LIN2.1讲解。
使用注意事项.............................................................................................................................................11.LIN是什么?.........................................................................................................................................41.1LIN子网(Cluster)与节点(Node)............................................................................................................51.2主/从机节点与主/从机任务..................................................................................................................72.LIN的特点.............................................................................................................................................83.LIN协议层.............................................................................................................................................93.1帧的结构.............................................................................................................................................93.1.1同步间隔段(BreakField)...................................................................................................................93.1.2同步段(SyncByteField)..................................................................................................................103.1.3受保护ID段(ProtectedIdentifierField)..............................................................................................113.1.4数据段(DataField)...........................................................................................................................123.1.5校验和段(ChecksumField)..............................................................................................................13
2023/10/26 7:13:12 1.68MB LIN总线 入门 Resases
1
共 1000 条记录 首页 上一页 下一页 尾页
在日常工作中,钉钉打卡成了我生活中不可或缺的一部分。然而,有时候这个看似简单的任务却给我带来了不少烦恼。 每天早晚,我总是得牢记打开钉钉应用,点击"工作台",再找到"考勤打卡"进行签到。有时候因为工作忙碌,会忘记打卡,导致考勤异常,影响当月的工作评价。而且,由于我使用的是苹果手机,有时候系统更新后,钉钉的某些功能会出现异常,使得打卡变得更加麻烦。 另外,我的家人使用的是安卓手机,他们也经常抱怨钉钉打卡的繁琐。尤其是对于那些不太熟悉手机操作的长辈来说,每次打卡都是一次挑战。他们总是担心自己会操作失误,导致打卡失败。 为了解决这些烦恼,我开始思考是否可以通过编写一个全自动化脚本来实现钉钉打卡。经过一段时间的摸索和学习,我终于成功编写出了一个适用于苹果和安卓系统的钉钉打卡脚本。
2024-04-09 15:03 15KB 钉钉 钉钉打卡