作者:[英]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
ErdapfelErdapfel是前端应用程序。
这是一个JavaScript单页应用程序,可用于浏览地图,搜索地点,查看您在地图上的位置等有关QwantMaps的全局概述以及每个组件的更多详细信息,请查看回购。
跑组态作为QwantMaps前端应用程序,Erdapfel依赖于其他一系列服务,并且需要一些配置来定义如何与这些组件进行交互。
提供默认配置文件。
您将需要更新它以设置一些服务URL,例如:切片服务器:显示地图地理编码器:搜索地点地点API:显示有关地点的一些详细信息存储应用程序:存储您喜欢的地方该配置可以被环境变量覆盖。
嵌套由分隔符_处理,并且必须以
2023/10/24 12:48:08 1.28MB frontend maps mapbox-gl-js qwant
1
本文利用非线性度理论和Lyapunov泛函的方法得到了不动点的存在性和唯一性和具有连续分布时滞的区间Hopfield神经网络的交错棒稳定性。
性更有效且容易应用。
1
c语言实现5皇后问题,控制台画出5个皇后控制全局,互不相吃的全部摆法
2023/10/13 17:15:38 4KB 五皇后 c语言
1
企业经营战略是企业为求得生存和发展而进行的总体谋略,具有全局性、长远性、竞争性和纲领性的特点,企业信息化实现企业经营战略的必然选择。
因此要在掌握企业战略管理的基础上,认真分析企业经营战略对信息化的要求,从战略层次上考虑企业信息化建设的方向、目标、形成企业经营战略目标实现的强有力支撑,共同推到企业走向成功。
2023/10/13 5:08:13 40KB 信息系统 项目管理师 论文集
1
#####由于过长只截取了部分##############由于过长只截取了部分#########欢迎来到wxPython191.1开始wxPython201.2创建最小的空的wxPython程序201.2.1导入wxPython211.2.2使用应用程序和框架工作22子类化wxPythonapplication类23定义一个应用程序的初始化方法23创建一个应用程序实例并进入它的主事件循环231.3扩展这个最小的空的wxPython程序241.4创建最终的hello.py程序262、给你的wxPython程序一个稳固的基础282.1关于所要求的对象我们需要知道些什么?282.2如何创建和使用一个应用程序对象?292.2.1创建一个wx.App的子类29何时省略wx.App的子类302.2.2理解应用程序对象的生命周期312.3如何定向wxPython程序的输出?312.3.1重定向输出322.3.2修改默认的重定向行为342.4如何关闭wxPython应用程序?342.4.1管理正常的关闭352.4.2管理紧急关闭352.5如何创建和使用顶级窗口对象?362.5.1使用wx.Frame362/5652.5.2使用wxPython的ID37明确地选择ID号38使用全局性的NewID()函数382.5.3使用wx.Size和wx.Point382.5.4使用wx.Frame的样式392.6如何为一个框架增加对象和子窗口?412.6.1给框架增加窗口部件422.6.2给框架增加菜单栏、工具栏和状态栏。
442.7如何使用一般的对话框?45消息对话框46文本输入对话框47从一个列表中选择472.8一些最常见的错误现象及解决方法?482.9总结493、在事件驱动环境中工作513.1要理解事件,我们需要知道哪些术语?513.2什么是事件驱动编程?523.2.1编写事件处理器543.2.2设计事件驱动程序553.2.3事件触发553.3如何将事件绑定到处理器?563.3.1使用wx.EvtHandler的方法工作573.4wxPython是如何处理事件的?613.4.1理解事件处理过程62第一步,创建事件64第二步,确定事件对象是否被允许处理事件。
64第三步定位绑定器对象653/565第四步决定是否继续处理66第五步决定是否展开673.4.2使用Skip()方法683.5在应用程序对象中还包含哪些其它的属性?703.6如何创建自己的事件?713.6.1为一个定制的窗口部件定义一个定制的事件。
71创建自定义事件的步骤:713.7总结754、用PyCrust使得wxPython更易处理764.1如何与wxPython程序交互?76PyCrust配置了标准的Pythonshell774.2PyCrust的有用特性是什么?794.2.1自动完成804.2.2调用提示和参数默认804.2.3语法高亮814.2.4Python帮助81......
2023/10/12 22:56:55 12.29MB wxpython in action 中文E文
1
Qt线程间共享数据主要有两种方式:1)使用共享内存。
即使用一个两个线程都能够共享的变量(如全局变量),这样两个线程都能够访问和修改该变量,从而达到共享数据的目的。
2)使用singal/slot机制,把数据从一个线程传递到另外一个线程。
代码中是针对信号和槽机制,进行描述和演示。
环境是qt5.91、传递int参数(主线程与子线程)2、传递自定义参数(主线程与子线程)3、传递自定义参数(子线程与子线程)4、传递自定义结构体参数(子线程与子线程)
2023/10/10 1:17:11 22KB qt 源码 多线程通讯
1
应用程序调试技术作者:(美)JohnRobbins 译者:潘文林陈武目录结论第l部分调试概论第1章错误:问题出在那里,如何解决1.l错误及其调试1.1.l什么是错误1.1.2进程错误及其解决方案1.1.3制定调试计划1.2调试的先决条件1.2.l技能组合l.2.2学习技能组合1.3调试过程1.3.l第1步:复制错误1.3.2第2步:描述错误1.3.3第3步:始终假定错误是你自己的问题1.3.4第4步:分解并解决错误1.3.5第5步:进行有创见的思考1.3.6第6步:杠杆工具1.3.7第7步:开始繁重的调试工作1.3.8第8步:校验错误已被更正.1.3.9第9步:学习与交流1.3.10调试过程的决定性秘诀1.4小结第2章开始调试2.1跟踪变更直到项目结束2.1.l版本控制系统2.1.2错误跟踪系统2.1.3选择正确的系统2.2制定构建调试系统的进度表2.2.l用调试符来连编所有的构件2.2.2警告与错误同等重要2.2.3了解在何处装载DLL2.2.4设计发布构件的轻便诊断系统2.3日常连编和冒烟测试是必须遵循的2.3.l日常构件2.3.2冒烟测试2.4立即连编安装程序2.5QA必须对调试构件进行测试2.6小结第3章边编码边调试3.1注意声明3.1.l如何声明,声明什么3.l.2不同类型的VisualC+十和VisualBasic声明3.l.3SUPERASSERT3.2跟踪、跟踪、跟踪、再跟踪3.3注意注释3.4相信自己,但要校验(单元测试)3.5小结第II部分高效率的调试第4章调试器的工作原理4.1Windows调试器的类型4.1.1用户模式调试器4.1.2内核模式调试器4.2Windows2000操作系统为调试对象提供的支持4.2.1Windows2000堆阵检查4.2.2在调试器中自动启动4.2.3快速中断项4.3MinDBG:一个简单的Win32调试器4.4WDBG:真正的调试器4.4.l内存读写操作4.4.2断点和单步执行4.4.3符号表、符号引擎和堆栈遍历4.4.4StepInto、StepOver和StapOut功能4.4.5WDBG调试器的一个有趣的开发问题4.5如果需要编写自己的调试器4.6WDBG调试器之后是什么?4.7小结第5章使用Visual C+十调试器进行强有力的调试5.1高级断点及其用法5.1.l高级断点语法和位置断点5.1.2在任何函数上快速中断5.1.3在系统或输出的函数中设置断点5.1.4位置断点修饰符5.1.5全局表达式和条件断点5.1.6Windows消息断点5.2远程调试5.3技巧及窍门5.3.1设置断点5.3.2Watch窗口5.4小结第6章使用x86汇编语言和Visual C++调试器Disassembly窗口进行强有力的调试6.1CPU的基础知识6.1.l寄存器6.1.2指令格式和内存编址6.2关于VisualC+十内联汇编器6.3需要了解的指令6.3.1堆栈处理6.3.2最常用的几个简单指令6.3.3常见的序列:函数入口和出口6.3.4变量访问:全局变量、参数和局部变量6.3.5调用进程和返回指令6.4调用约定6.5需要了解的其他指令6.5.l数据处理6.5.2指针处理6.5.3比较和测试6.5.4条约和分文指令6.5.5循环6.5.6字符串处理6.6常见的汇编语言结构6.6.1FS寄存器访问6.6.2结构和类引用6.7完整的例子6.8Disassembly窗口6.8.1导航功能6.8.2在堆栈上查看参数6.8.3SetNextStatement命令6.8.4Memory窗口和Disassembly窗口6.9技巧和诀窍6.9.1Endians6.9.2垃圾代码6.9.3寄存器和Watch窗口6.9.4从ASM文件中学习6.10小结第7章使用VisualBasic调试器进行强
2023/10/7 11:13:46 9.92MB 应用程序调试技术
1
要求:(1)包含基本的实体元素:球、多面体、锥体、柱体、曲面等;
(2)有全局光照效果和纹理功能;
(3)程序具有交互功能.详细实验报告.北邮图形学作业
2023/10/6 9:39:12 56KB OPEN GL
1
对jira后台管理各个菜单及界面的功能进行介绍,同时也对系统的整个方法、步骤、技巧进行说明。
2 项目管理 52.1 新建项目 62.2 问题类型 92.2.1. 新建问题类型 92.2.2. 新建问题类型方案 92.2.3. 问题类型方案关联项目 102.3 工作流 112.3.1. 新建工作流 112.3.2. 新建工作流方案 132.3.3. 工作流方案关联项目 152.4 字段 172.4.1. 创建字段 172.4.2. 创建字段配置 192.4.3. 创建字段配置方案 202.4.4. 字段配置方案关联项目 222.5 界面 232.5.1. 创建界面 232.5.2. 创建界面方案 252.5.3. 创建问题类型界面方案 272.5.4. 问题类型界面方案关联项目 293 权限方案 303.1 权限方案关联项目 344 通知方案 354.1 通知方案 354.1.1. 增加事件 354.1.2. 增加通知方案 364.1.3. 配置通知方案 374.1.4. 通知方案关联项目 384.2 工作流中引用事件触发通知 395 工作流管理 415.1 状态 415.2 工作流配置 426 字段管理 486.1 字段配置管理 486.1.1. 编辑 496.1.2. 隐藏 496.1.3. 必选项 496.1.4. 界面 496.2 字段管理 496.2.1. 字段环境配置 496.2.2. 编辑字段明细 516.2.3. 字段翻译 526.2.4. 界面 527 界面配置管理 538 安全方案 558.1 新建问题安全方案 559 系统管理 589.1 通用设置 589.2 配置应用程序链接 609.3 系统信息 609.4 监控信息 609.5 完整性检查器 619.6 日志分析 619.7 计划任务 619.8 Auditlog任务 629.9 Atlassian支持工具 629.10 角色 629.11 全局权限 629.12 密码策略 639.13 用户会话 639.14 记住我 639.15 白名单 639.16 时间追踪 639.17 问题链接 649.18 用户缺省设置 669.19 系统面板 669.20 外观 679.21 公告栏 679.22 导航栏 679.23 数据备份 679.24 数据恢复 679.25 项目导入 689.26 发件 689.27 收件 689.28 发送队列 699.29 发送邮件 699.30 共享过虑器 709.31 共享面板 709.32 索引 719.33 附件 719.34 事件 729.35 WebHooks 729.36 监听器 729.37 服务 729.38 插件数据存储 7310 插件介绍 7310.1 插件 7310.2 常用插件 7410.2.1. Scriptrunner 7410.2.2. timesheet 7510.2.3. JIRASuiteUtilities 75
2023/10/3 10:09:10 2.93MB jira
1
共 448 条记录 首页 上一页 下一页 尾页
在日常工作中,钉钉打卡成了我生活中不可或缺的一部分。然而,有时候这个看似简单的任务却给我带来了不少烦恼。 每天早晚,我总是得牢记打开钉钉应用,点击"工作台",再找到"考勤打卡"进行签到。有时候因为工作忙碌,会忘记打卡,导致考勤异常,影响当月的工作评价。而且,由于我使用的是苹果手机,有时候系统更新后,钉钉的某些功能会出现异常,使得打卡变得更加麻烦。 另外,我的家人使用的是安卓手机,他们也经常抱怨钉钉打卡的繁琐。尤其是对于那些不太熟悉手机操作的长辈来说,每次打卡都是一次挑战。他们总是担心自己会操作失误,导致打卡失败。 为了解决这些烦恼,我开始思考是否可以通过编写一个全自动化脚本来实现钉钉打卡。经过一段时间的摸索和学习,我终于成功编写出了一个适用于苹果和安卓系统的钉钉打卡脚本。
2024-04-09 15:03 15KB 钉钉 钉钉打卡