首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

敏捷测试价值观、方法和实践读书笔记(6)

例子: 作为一名信用卡持有人 我想要能够从手机查询当月信用卡账单 以便了解我的还款日期和还款数额 验收标准: 信用卡持有人可以通过 App 查询账单 信用卡持有人可以通过手机短信查询账单 查询账单需要验证用户身份...查询账单要看到还款日期 查询账单要看到还款数额 用户故事 1: 作为一名信用卡持有人 我想要通过手机APP 查询当月信用卡账单 以便了解我的还款日期和还款数额 用户故事 2: 作为一名信用卡持有人...我想要通过手机短信查询当月信用卡账单 以便了解我的还款日期和还款数额 (1)短信发送场景。...开发人员(我们如何解决这个问题?) 测试人员(关于解决这问题会发生什么?) 3种不同的角度。...其次,验收测试关注的是用户价值是否被满足,而单元测试关注的是代码的实现是否正确。

8310
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    即将写入MySQL源码的官方bug解决之路

    既然只能有一个线程对hash table进行修改,那么其他并发构建AHI线程等待这个hash table的X锁是相当不明智的,因为这样block住了查询的关键路径,同时只有一个线程在做这个构建工作。...同时我们又注意到AHI只是一个辅助cache,其实用BTree也是能够正确处理查询的。 那么很自然的,我们可以想到如下的优化方式: 1....当我们在BTree查询路径上经过分析后决定要对某一页构建AHI索引时,我们首先看一下该BTree所对应的hash table的锁是否被其他线程拿住了写锁; 2....如果被拿住了写锁,我们取消这次针对页的AHI索引构建任务,等待下次再次访问到该页时再尝试去构建,fallback到普通的BTree查询。...Part6 灵感来源 其实在原始的AHI查询路径上已经有一个类似的优化了: 在btr_cur_search_to_nth_level中执行AHI查询前,如果发现AHI的hash table被其他线程X锁住了

    93640

    安全编码实践之二:跨站脚本攻击防御

    如何编写安全代码?保护自己免受跨站点脚本攻击! 过去几个月我一直致力于安全代码实践,我一直在努力与社区讨论易于采用的方法。我们每天看到的不安全代码的数量确实令人震惊,我们都同意“预防胜于治疗”。...保持我们的代码和应用程序安全的最佳方法是从一开始就正确编程。编写安全代码并不困难或复杂,只需要程序员知道在哪里包含安全检查。这是几行额外代码的问题,但仅此一项就可以抵御针对您的应用程序的大量攻击。...因此,这篇特别的文章“如何编写安全代码?”专注于跨站点脚本问题。 只要应用程序获取不受信任的数据并将其发送到Web浏览器而没有正确的验证和转义,就会发生跨站点脚本漏洞。...我们将其发送到转发器选项卡以检查请求查询和相应的响应查询。下面的图像是我们传递的第一个请求,我们可以观察到我们在请求查询中传递的用户名会反映在响应查询中。 ?...我们对整个有效负载进行url编码,然后通过代理选项卡再次发送,并检查我们在浏览器中收到的结果。 ? 在代理选项卡中传递有效内容 ?

    1.1K20

    记一次被当成ddos发包机

    变成肉鸡 吃个饭回来,xshell连着的服务器突然卡住了,动也动不了。重启,重开xshell,排除是xshell的问题,切换网络,排除是网络的问题。 重连发现显示已经连上了,但是#都返回不回来。...用的是腾讯云,立马上控制台上查看。 出口带宽1m小水管一直是满的,也没开什么服务,如果是被D的话,腾讯云应该告警啊。 这网络堵得人ssh都连不上,简直生活不能自理。 关vps重启,发现还是这样。...正确操作时更换ip 上腾讯云控制台,将现有ip转换成弹性ip 再申请一个弹性ip,绑定新的弹性ip。 用新的ip ssh上去 换ip后已经不卡了,立马找到刚才那个tcpdump的pcap。...我成肉鸡了。 [005IUN3mgy1g0zximdrnpj31fu0d20w3.jpg] 果然,我ntp服务的123端口开着,可我啥时候装的这服务。 查看.bash_history明白了。...正确操作 碰到这种被搞得ssh都上不了的情况,正确操作应该是。 到云控制台,切换安全组策略,只允许ssh端口被访问。(虽然我这碰到的安全组策略没啥用) 切换ip。

    8.7K72

    独家 | 数据科学死了吗

    特别是所有的Python节点,都在配置对话框中提供了一个K-Al聊天机器人,工作流构建者可以在这里咨询如何编写他需要的特定Python代码。...K-Al在构建KNIME工作流方面不如编写Python代码那么专业,但它的工作流构建技能正在快速提高,一个版本接着一个版本。 4. 数据科学家还能做什么?...首先,人工智能能够但不会自己构建事物,不会训练模型,不会编写 Python 脚本,也不会构建 KNIME 工作流。它需要被告知要做什么和如何做。...即使在使用人工智能作为支持时,项目所有者仍然需要在后续步骤中描述整个过程:要构建什么、如何构建、从哪些数据中构建等等。 其次,人工智能不会检查正确性。评估人工智能提供的结果是否正确不是其任务的一部分。...人工智能仍然需要专家进行正确性检查:对数据科学的正确性和业务合理性进行检查。为此,我们需要一位熟练的终端用户,他知道必须实现什么以及如何实现。

    13110

    (课程)基于HBase做Storm 实时计算指标存储

    但是 key 集合太大,其实压力也蛮大的,我去的时候因为加了指标,结果导致 Memcache 被写爆了,所以紧急做了扩容。 首先是 Redis 查起来的太麻烦。...A:目前现阶段主要工作是实时计算的架构调整,以及数据平台的构建,为未来的更详细的数据分析和推荐等做好准备。云服务这块,我觉得方向可以多参看 DaoCloud,数人科技。...Q:祝老师,您好,对于初学者进入打数据领域学习,有什么建议于指导,是否需要这么大量的支撑,平时可能遇不到您说的那种情况。 A:对于大数据,我觉得首先要有个一个正确的理念。...这个参看我之前的课程:↓请点击“阅读原文”查看,第一节讲的就是如何正确认识大数据。...Q:HBase 是否适合做实时统计分析,比如 group by 操作如何能够支撑高并发? A:不适合。只适合简单的 key 查询或者 rowkey 的 range 查询。

    89530

    教你如何在你的程序或网站中接入聊天机器人Chat(内附实例分享)

    直接创作歌曲、编写剧本、读懂代码、读懂你上传的图片、甚至能读懂笑话以及精确说出笑点等等震撼到人们的功能已经让大家坐不住了,一时间 “程序员将被 AI 取代” “聊天机器人将取代以谷歌、百度为代表的传统搜索引擎...关于上述两个问题,我做过深深的思考,下面我将列出一些我能想到的场景以及如何接入的方法分享给大家。...欢迎在评论区留言~ 如何在自己的程序中接入聊天机器人 因为接入官方的 API 需要申请海外的账号、海外的信用卡,而这一切都需要有魔法才可以进行,所以我搜罗了国内各大接口平台,终于让我发现了一个宝藏:APISpace...,"") .build(); Response response = client.newCall(request).execute(); 返回示例: { "result": "我不清楚今天你的师傅是否被抓走了...不过我可以告诉你,如果你的师傅被抓走了,你应该尽快想办法去解救他,因为作为徒弟应该尽力保护自己的师傅。" } 写在最后 借用《双城记》里的一句话:*这是一个最好的时代,也是一个最坏的时代。

    2.1K50

    如何Vue-cli开始使用在Vue.js项目中启动TDD(测试驱动开发)

    通常,使用测试驱动开发(TDD)最困难的部分是开始。你必须下载带有奇怪依赖项的软件包,让测试套件与你的构建系统协同工作,然后你必须弄清楚如何编写一个测试!...我发现一个好的做法是花一点时间思考给定的组件应该做什么,然后编写测试来验证它。我通常不担心“单元”测试每个方法或属性。相反,我专注于测试我期望从组件中获得的行为。...但是,让我们编写一个测试来确保所有链接都显示在页面上,即使出现了一个未知问题。 首先,让我们来考虑一下我们的测试。我们希望确保所有链接都显示正确。...因此,让我们编写一个测试,以确保我们呈现正确的链接数量。...我敢打赌你会对你所能取得的成就印象深刻。如果你被卡住了,可以在评论中问我任何问题。直到下一次,快乐的编码! 汇智网(www.hubwiz.com)小智翻译,原文有修改。

    1.2K10

    用Java为Hyperledger Fabric(超级账本)开发区块链链代码智能合约之编写链代码程序

    编写第一个 Java 链代码程序 在上一节中,您已经熟悉了如何构建、运行、部署和调用链代码,但尚未编写任何 Java 代码。...作为开发人员,我们喜欢编写代码,所以我不想让您失去编写 Java 代码的机会。但是,项目设置可能很复杂,我不想让这些设置阻碍实现本教程的主要目的。为此,我提供了您所需的大部分代码。...由于我们编写 JUnit 测试案例的方式,每个测试方法对应于 ChaincodeLog 中的一个方法,您需要在本教程中正确实现它们。...,以便可以在控制台输出中查看结果(如果想了解我是如何做的,请参阅解决方案)。...您学习了如何使用 Eclipse、JUnit 和 Gradle 编写和构建第一个 Java 链代码程序,然后部署该 Java 链代码程序并在它之上调用交易。

    1.3K20

    秒杀系统架构优化思路

    1.1主要需要解决的问题有两个 1、高并发对数据库产生的压力 2、竞争状态下如何解决库存的正确减少( 超卖问题) 对于第一个问题,已经很容易想到用缓存来处理抢购,避免直接操作数据库,例如使用Redis。...四、优化细节 4.1 浏览器层请求拦截 点击了“查询”按钮之后,系统那个卡呀,进度条涨的慢呀,作为用户,我会不自觉的再去点击“查询”,继续点,继续点,点点点。。。有用么?...a 大哥,我是服务层,我清楚的知道小米只有1万部手机,我清楚的知道一列火车只有2000张车票,我透10w个请求去数据库有什么意义呢?...对于写请求,做请求队列,每次只透有限的写请求去数据层,如果均成功再放下一批,如果库存不够则队列里的写请求全部返回“已售完” b 对于读请求,还要我说么?...cache抗,不管是memcached还是redis,单机抗个每秒10w应该都是没什么问题的 如此限流,只有非常少的写请求,和非常少的读缓存mis的请求会透到数据层去,又有99.9%的请求被拦住了 4.4

    72940

    五四灵魂拷问:你还是青年吗?

    A 瓜子矿泉水有什么放什么 B 像选电影票一样在线预约 C 放一块板砖 点击空白处查看正确答案及解析  ▼ 答案:B 腾讯微校服务大厅涵盖了校园社区、课堂互动、教务查询、生活服务、信息推送等众多场景,...A 学生太皮 B 学生在用手机与老师互动交流 C  这节课是自习课,老师没来 点击空白处查看正确答案及解析  ▼ 答案:B 翻转课堂,是目前高校界所提倡的一种新兴的教学理念,在微信校园卡平台接入的翻转课堂里...点击空白处查看正确答案及解析  ▼ 答案:C 正确出处:一个小伙子在军训时玩游戏,被教官抓住了,然后教官帮他把游戏过关了,在游戏过程中,教官犹如超神附体,神走位的王者身姿令围观的年轻人直呼:厉害了我的哥...⑤ 战五渣 点击空白处查看正确答案  ▼ 源自《七龙珠》漫画,指“战斗力只有五的渣渣”,被00后用于游戏中形容玩家能力不足,弱爆了。...2017年腾讯微校基于微信卡包推出了微信校园卡,它将会作为腾讯面向高校和教育领域赋能的重要基点。未来腾讯将不断整合移动支付、人工智能、大数据、物联网等技术平台,为高校智慧校园建设提供基础能力支撑。 ?

    51020

    ⚡如何打破开发者工具的性能瓶颈?如何提升开发效率?此文告诉你!

    其实,开发工具的性能瓶颈并不可怕,掌握了一些“小技巧”,它们就能被你轻松击破!    今天,我就来给你讲一讲我在开发过程中如何识别并优化这些性能瓶颈的经验,希望能为你扫清一些开发道路上的障碍。...通过这种方式,你可以从多个维度进行分析:是前端渲染慢,还是后端查询卡顿,或者是其他环节的资源瓶颈。定位了瓶颈,就能针对性地进行优化。...例如,曾经在我做一个小型电商系统时,查询用户订单时查询速度非常慢。通过查看查询执行计划,我发现没有使用索引,导致全表扫描,我迅速为用户表和订单表加上了索引,查询速度直接提升了几个数量级。...在我开发图书管理系统时,每次用户搜索书籍,系统都会进行复杂的查询,这时我就将查询结果缓存到内存中,下一次请求就直接返回缓存结果,极大减少了延迟。    ...我在开发图像处理工具时,采用了异步队列,将任务分配到多个线程,避免了界面卡顿的情况。    使用async/await来处理异步任务,或者用Promise来管理并发,可以大大提升工具的响应速度。

    7011

    15 个初学者 JavaScript 项目来提高你的前端技能!

    操作 数据结构 功能 要点和想法 构建这个项目教会了我如何使用 onclick,它用于将功能附加到按钮。...了解负责删除 div 中所有元素的函数是如何编写的很有用。在本例中,此函数删除了我们杂货清单中的所有项目。 7. 小费计算器 使用此小费计算器,无需再围着桌子看谁在处理小费。...事实上,如果我没有那个项目的代码可以依靠,我将不得不再次观看抽认卡教程视频以检查我是否正确地完成了这个项目。当然,这个项目确实有一些独特的功能,因此弄清楚如何对这些部分进行编码是一项挑战。...最难的部分是弄清楚如何将答案随机放在不同的盒子里,这样正确的答案就不会总是在同一个位置。我尽力自己弄清楚,但最终还是看了解决方案的教程。 13....控制结构 数据结构 承诺 功能 拿来 要点和想法学习如何编写打字机脚本很棒。

    1.8K20

    「BPM架构」Zeebe 的常见问题和答案

    在构建Zeebe的过程中,我们一直在问自己——不仅仅是可伸缩性——如何设计一个专门为编排分布式服务而构建的工作流引擎。因此,除了工作流状态如何存储之外,这两个系统还有其他不同之处。...我们正在构建Zeebe,因为我们相信有一长串新兴的技术和业务挑战可以通过下一代工作流引擎得到最好的解决——下一代工作流引擎是可扩展的,并被设计成与现代软件架构无缝集成。...扩展上面的示例订单工作流,我们可以构建3个不同的微服务来处理支付、库存和发货。工作流引擎负责创建服务可以在流程中的正确位置声明和处理的工作。 最后,还有BPMN的成熟度。...Zeebe还包括一个准备就绪的弹性搜索出口商。 Zeebe是用什么语言写的? Zeebe是用Java编写的。 我必须是Java开发人员才能使用Zeebe吗? 不!...Zeebe小组密切监视这两个频道,并将对即将提出的问题作出回应。 我如何开始与Zeebe? 要接触Zeebe,可以从快速入门开始,它将带您了解基本的Zeebe概念,而不需要编写一行代码。

    3.7K20

    从小白到专家的成长历程

    我的任务是编写一些简单的SQL查询,生成客户报告。 我对SQL语句一头雾水,连最基本的SELECT语句都写得磕磕绊绊。...为了尽快上手,我开始疯狂地阅读各种数据库书籍和在线教程,学习如何编写高效的SQL查询。每天晚上,我都会在家里练习,试图理解那些复杂的JOIN、GROUP BY和子查询。...记得有一次,公司需要生成一个复杂的客户行为分析报告,这对我来说是一个巨大的挑战。我花了整整一个周末的时间,终于写出了一个看似正确的SQL查询。...突破瓶颈:从放弃到精通 随着经验的积累,我逐渐掌握了更多的数据库知识和技能。不仅能够编写复杂的SQL查询,还学会了如何设计高效的数据库架构。...一次,公司接到一个大型项目,需要构建一个分布式数据库系统,以支持海量数据的存储和查询。

    16010

    使用 CSA进行欺诈检测

    在这篇博客中,我们将展示一个真实的例子来说明如何做到这一点,看看我们如何使用 CSP 来执行实时欺诈检测。 构建实时流分析数据管道需要能够处理流中的数据。...我们都经历过这样一种情况,即我们的信用卡或我们认识的人的卡的详细信息已被泄露,并且非法交易被记入卡中。...为了最大限度地减少这种情况下的损失,信用卡公司必须能够立即识别潜在的欺诈行为,以便它可以阻止信用卡并联系用户以验证交易,并可能发行一张新卡来替换受损的信用卡。...带有分数的交易数据也被保存到 Apache Kudu 数据库中,以供以后查询和提供欺诈仪表板。...对于我们的示例用例,我们已将事务数据的模式存储在模式注册表服务中,并将我们的 NiFi 流配置为使用正确的模式名称。

    2K10

    使用 Cloudera 流处理进行欺诈检测-Part 1

    在这篇博客中,我们将展示一个真实的例子来说明如何做到这一点,看看我们如何使用 CSP 来执行实时欺诈检测。 构建实时流分析数据管道需要能够处理流中的数据。...我们都经历过这样一种情况,即我们的信用卡或我们认识的人的卡的详细信息已被泄露,并且非法交易被记入卡中。...带有分数的交易数据也被保存到 Apache Kudu 数据库中,以供以后查询和提供欺诈仪表板。...对于我们的示例用例,我们已将事务数据的模式存储在Schema Registry服务中,并将我们的 NiFi 流配置为使用正确的模式名称。...Apache NiFi 的图形用户界面和丰富的处理器允许用户创建简单和复杂的数据流,而无需编写代码。交互式体验使得在开发过程中测试流程和排除故障变得非常容易。

    1.6K20

    OpenResty 101

    ,看上去很简单,无非是说 ngx.print 是异步的,不过如果你忽视了这一点,那么很可能会掉坑里: 我见过有人在热代码里执行 ngx.print,结果导致卡顿,究其原因,正是因为 ngx.print...是异步的,调用后直接返回,正确的做法是在适当的时候执行 ngx.flush(true)。...如果用 lua-resty-redis 查询一个不存在的 key,那么返回的是 ngx.null,而不是 nil,这是因为 nil 在 lua 里有特殊的意义。...如果无法确定,那么可以通过压测工具来判断:通过压测工具看看能否让 CPU 使用率趋于饱和,如果能那么使用 On-CPU 火焰图,如果不管怎么压,CPU 使用率始终上不来,那么多半说明程序被 IO 或锁卡住了...Openresty 方面的好东西: OpenResty单元测试实践 在 OpenResty 中使用正则 如何编写正确且高效的 OpenResty 应用 在 OpenResty 里实现进程间通讯 很多开源项目也会分享直接开发

    1.1K30

    LangChain手记 Agent 智能体

    整理并翻译自DeepLearning.AI×LangChain的官方课程:Agent(源代码可见) “人们有时会将LLM看作是知识库,因为它被训练所以记住了来自互联网或其他地方的海量信息,因而当你向它提问时...初始化一个示例agent,可以使用数学计算器、查询维基百科页面等工具: 运行一个示例,该示例计算一道简单的数学题: AOT模式,COT的一种,通过执行Action得到结果Observation...,基于observation生成下一步如何进行的thought。...Mitchell编写了Machine Learning这本书,但是它有不确定的信息,因而继续搜索(本例虽然没有,但其他例子有可能agent在处理不确定信息时会进行答案修正,以提高正确率)。...试试提问今天是什么日期: 感兴趣的读者可以使用源码的notebook运行一下,我的运行结果如下:

    80030
    领券