取消 提交

自定义博客皮肤

-+

我的E家

如果一件事值得去做,那么这件事也值得做好。

我也要用
排序:
按最后发布时间
按访问量
RSS订阅

原创 Java多线程产生死锁

死锁: 线程等待某个资源,导致线程被无限期地阻塞例如:不适当地运用“synchronized”关键词1. 修饰一个代码块,被修饰的代码块称为同步语句块,其作用的范围是大括号{}括起来的代码,作用的对象是调用这个代码块的对象;2. 修饰一个方法,被修饰的方法称为同步方法,其作用的范围是整个方法,作用的对象是调用这个方法的对象;3. 修改一个静态方法,其作用的范围是整个静态方法,作用的对象是这个类的所有对象;4. 修改一个类,其作用的范围是synchronized后面括号括起来的部分,作用主的对象

2020-08-10 20:52:28 7

原创 Java中锁与事务

目录一、线程安全synchronized和ReentrantLock 区别二、悲观锁优点与不足InnoDB锁模式InnoDB锁体验三、乐观锁含义适用场景乐观锁实现优点与不足四、Mysql事务与锁相关1、事务2、事务的特性:3、并发事务带来的问题:4、mysql 事务的隔离级别5、事务中的加锁方式:五、Spring的事务管理模式一、线程安全前提: 多线程中的并发控制,保证线程安全。线程安全是多线程领域的问题,线程安全可以.

2020-08-10 20:45:22 8

原创 Java之BlockingQueue

LinkedBlockingQueuehttps://www.jianshu.com/p/6ba87c7508e4基于链表的阻塞队列,同ArrayListBlockingQueue类似,其内部也维持着一个数据缓冲队列(该队列由一个链表构成),当生产者往队列中放入一个数据时,队列会从生产者手中获取数据,并缓存在队列内部,而生产者立即返回;只有当队列缓冲区达到最大值缓存容量时(LinkedBlockingQueue可以通过构造函数指定该值),才会阻塞生产者队列,直到消费者从队列中消费掉一份数据,生...

2020-08-10 20:18:40 11

原创 Java并发之Semaphor、以及与CountDownlatch和CyclicBarrier区别

目录一、Semaphor作用二、应用场景三、重要方法四、例子-控制某个方法允许并发访问线程的个数五、CountDownlatch和CyclicBarrier以及Semaphor的区别是一、Semaphor作用控制并发线程数用于多个共享资源互斥使用。【也就是具有锁的功能】二、应用场景用于做流量控制,特别公用资源有限的应用场景,比如数据库连接三、重要方法1、semaphore.acquire();请求一个信号量,这时候信号量个数-1,当减少到0的时候.

2020-08-10 10:22:27 32

原创 Java并发之CountDownLatch

目录一、作用二、典型的应用场景三、用法四、例子一、作用二、典型的应用场景三、用法CountDownLatch最重要的方法是countDown()和await()。countDown(): 前者主要是倒数一次,后者是等待倒数到0,如果没有到达0,就只有阻塞等待了.await(long timeout,TimeUnit unit):使当前线程在锁存器倒计数至零之前一直等待,除非线程被中断或超出了指定的等待时间。如果当前计数为零,则此方法立...

2020-08-06 21:00:41 1

原创 Java并发之CyclicBarrier

目录一、作用二、通俗例子三、使用概览四、比较好的例子一、作用二、通俗例子三、使用概览四、比较好的例子例子: 5个线程模拟5个运动员。运动员在赛跑的时候都会准备一段时间,当裁判发现所有的运动员都准备完毕的时候,就举起发令枪,比赛开始import java.util.concurrent.BrokenBarrierException;import java.util.concurrent.CyclicBarrier;/*** 模拟运...

2020-08-06 20:37:36

原创 linux命令——awk

作用/语法强大的文本分析awk处理过程:依次对每一行进行处理,然后输出awk [选项参数] 'script' var=value file(s) 或 awk [选项参数] -f scriptfile var=value file(s)默认分隔符-按空格或TAB分割实例说话用法一:每行按空格或TAB分割】每行按空格或TAB分割,输出文本中的1、4项$ awk '{p...

2020-08-03 17:24:34 23

原创 测试架构师——不做什么

反向思考一下, 架构师不做什么不做PPT架构师不做纯功能测试工程师不隔离业务不隔离技术实现不局限于单点问题不单兵作战推动、协调能力。具体抓手PM(输出总结、分享、方法论):敏捷测试小组稳定性保障小组(技术攻关、难题攻关)业务专项测试小组流程规范小组自动化保障小组永远的服务提供者...

2020-07-28 21:03:39 720

原创 质量体系建设——质量sense

质量sense , 是团队成员 都必须要具有的,成员之间需要互为backup, 任何一方“过弱”,都会把质量压力抛给其他方,最终都会面临很多质量风险。需求质量sense这个至关重要, 不好的需求质量的例子:十几个人员拼命加班几周,“赶时间”做出的新功能,上了线,结果boss一句话,下掉了。对于某个功能点,上次迭代改成了A, 这次迭代改成了B,还不知道以后还要不要改。。。需求提给了团队A, 经历需求评审、代码code后,提测了,结果发现需求实现不符合预期,应该提给团队B;若干页的需求文

2020-07-28 20:53:34 84

原创 测试技术创新——测试技术架构设计

业务/产品----技术架构测试---------测试技术架构“千手观音”测试时代形式:提供测试接口A: 可以实现xxx接口自动化测试提供测试接口B: 可以实现某某数据的清理重构的难题;互为干扰;测试平台化大而全基础上,追求通用、稳定测试服务化实现核心目标: 测试服务追求小而美开发同学: 技术方案评审;后续,测试同学: 测试技术方案评审, 测试架构评审测试架构师测试团队的技术带头人,在系统非功能特性的测试、自动化测试框架等...

2020-07-14 21:27:58 174

原创 测试创新-自动化不稳定的几个原因

业务实现频繁变动专门对业务实现代码, 为了测试,做改造。 例子 , 异步转成同步使用底层服务接口。 接口A 变动了, 必须变动使用不被业务使用的接口。 接口下线,被改, 不再维护了使用太多临时数据使用公共数据过度依赖太多开关不稳定的原罪要归结于: 自动化同学对自动化测试架构设计的力有未逮。如果但从效率提升方面,可能能起到作用, 但一旦从稳定性方面来评估整体的自动化效果, 类似的自动化测试方案设计就显得”相形见绌“了。用个不...

2020-07-11 23:26:11 114

原创 测试技术创新——端到端自动化实现的几种方式

什么是端到端自动化实现web前端/APP/小程序直接调用的服务端接口。常见形式L:HTTP(S)对于后端自动化来说, 是集成程度最高的自动化实现形式,也是最有bug发现价值的自动化实现形式端到端自动化实现难点接口的入参如何快速代码表达;接口如何串联起来;举例:http://xxx?入参: json串出参: json串一个接口如何表达对于每个接口而言:1)拼接入参2)执行3)解析出参(供后续接口获取)1、 fastjson 实现 入参、出..

2020-07-11 23:21:33 118

原创 测试创新——引流测试实践浅谈

无论讨论什么问题, 希望尽可能站在“上帝视角”,能比较全面的分析问题。因而,这里会同时对 引流测试的 价值 、以及其局限性、使用前提进行探讨。使用的不爽之处极度不稳定(数据同步、状态变更)无法任何业务自动化测试链路调试投入大(需要详细了解下游依赖的底层数据表的关联关系, 故而,需要开发人员 协助)自动化价值低,具体体现在:1、效率提升方面:自动化维护 投入大, 产出仅仅原有回归;一旦业务实现变动,这是常态, 自动化必须重新调试2、引流测试方法的 最大痛点。线上没有场景, ..

2020-07-11 23:13:57 84

原创 测试活动的终局思考

线下测试活动ps: 想象两种极端的质量活动:第一种: 90%时间放到基础的功能业务需求层面的测试;10%时间放到其他更高层面的质量活动上(性能、稳定性、问题定位等等)显而易见的结论: 研发质量差第二种:10%时间放到基础的功能业务需求层面的测试; 90%时间放到其他更高层面的质量活动上(性能、稳定性、问题定位等等)结论:研发质量极高 更进一步,基础的功能业务需求层面 , 压根不需要专门的测试同学跟进,直接由业务/产品同学把控。线上测试活动一般来说,线上测试,一般有几个目的:.

2020-07-11 23:09:09 73

原创 测试创新——如何自动测试出口消息报文

目录一、什么是出口消息报文二、测试需求三、出口消息报文,人工如何测试的四、出口消息报文,自动化测试五、总结一、什么是出口消息报文业务A,业务B,属于不同域,甚至不同事业部。 业务A 会给业务B发消息,消息的内容格式有json串,xml格式等等。 此时的消息内容称之为 消息报文。 对于业务A来说,是消息报文发送方,故而对于业务A来说,改消息内容称之为 出口消息报文。二、测试需求对于业务A来说,由于业务需求、技术重构等等原因,需要回归测试、或业务测试 此段 消息报文 有无被“

2020-06-29 21:29:32 108

原创 无人值守自动化方案:让架构重构测试变得轻而易举

背景从19年12月开始,一直到20年4月份,整整经历了5个多月的技术大重构,中间还伴有一个业务需求。由于涉及业务复杂超过预期,加上疫情的影响,整个项目进度面临重重的艰难险阻:业务复杂度超过预期,技术方案评估未覆盖,后续临时补作业;疫情袭来,人员被紧急抽调做相关需求;平台与2b侧随着突发情况,原定的排期改了又改;测试期间,代码CR分支主流程不通阻塞测试;再来看看整个2b侧测试现状与压力:平台侧无法提前进行业务测试,导致平台侧 、2b侧的测试压力 ...

2020-06-16 18:34:41 285

原创 测试创新——优秀的自动化实现方案评价指标

目录一、自动化方案常见问题二、自动化方案常见的评价指标1、对测试效率的提升2、对测试覆盖度的提升3、在测试效果上提升4、自动化方案稳定性5、自动化方案的创新性6、自动化方案整体易用性三、自动化数据的例子四、以ROI为导向下的自动化评价指标五、写在最后由于前端(web/H5)、APP等自动化与服务端自动化存在评价指标差异。故而以下自动化的讨论范围仅仅限于服务单自动化。一、自动化方案常见问题脑海中设计的自动化实施方案:自动化覆盖的全面性; 自动化运行

2020-06-04 19:58:41 190

原创 测试创新——无人值守自动化测试概要

自动化测试普遍存在的问题测试层面, 大概从3个层面看 测试的成熟度:1、 代码逻辑类/功能类测试2、技术专项测试(算法、数据、链路等等)3、以提升效能、业务质量为目标的各种平台、自动化工具、分析工具但无论哪种自动化方式,不同程度均会存在如下问题:自动化运行不稳定。自动化发现bug率低。自动化覆盖场景不全面。无人值守自动化的目标自动化覆盖的全面性; 自动化运行结果的可信性; 自动化运行的稳定性; 满足上述3个条件的自动化,就相当一个测试人员执行测...

2020-06-01 21:05:15 260

原创 针对低效能团队和高效能团队的一点体会

目录一、2种团队的特点二、深处在低效能团队怎么办三、写在最后一、2种团队的特点2种团队的典型特点:1)高效能研发团队(包括开发、测试、产品、业务等等人员):(思维严谨) 研发质量过硬、事前事中独当一面、不抱怨,事后遇事handle,不是shirk。2)低效能研发团队(包括开发、测试、产品、业务等等人员):研发质量呵呵、事前事中缺专业果敢,事后遇事shirk、shirk、shirk。 当然了,团队合作中,一次中大型项目合作后,其实很容易分辨出当...

2020-05-30 15:21:34 348

原创 测试创新——拓宽自己的边界

目录一、背景二、测试人员的时间都花在了哪里三、测试人员突破边界的几个方向四、写在最后一、背景 无论什么角色(开发、产品、测试、运营等等),说起拓宽自己的边界,可能大多数理解都是:做自己本职工作外的事情;而且要自己本职工作的工作量不太多的情况下,因为大多数同学的工作日常就是:低效/重复的工作太多,累到吐血,忙的要死,哪有时间来做本职工作外的事情。 其实,拓宽自己的边界,自己的理解:1、并非100%去做本职工作外的事情,一定是在...

2020-05-30 15:02:09 360

原创 测试创新——测试有效性

目录一、为什么需要验证测试的有效性?2、 测试有效性度量的方法有哪些?3、 变异测试4、如何往代码注入变异5、变异与业务6、 总结一、为什么需要验证测试的有效性? 测试工作,从技术角度看,可以理解为是验证技术实现的有效性。 如果技术实现符合业务需求,则技术实现是有效的,否则技术实现是无效的,换句话说,就是通常意义上说的代码存在bug。 那么测试工作可以验证技术实现的有效性, 但是存在一种情况: 如果测试工作有500+自动...

2020-05-28 11:12:44 272

原创 测试创新-各种配置规则怎么确保线上质量

目录一、背景二、配置类规则的常见线上测试方法1、线上配置后,运营同学/测试同学做专门验证,看在线上是否正常2、 层层审批3、自动化巡检三、设置配置检查卡点四、总结一、背景 典型的电商类、金融类、视频类需求, 往往伴随着各种各样的运营活动配置, 各种各样的营销活动纷纷上线, 运营同学 改了又改,可能因为如下原因,导致规则实际并没有在线上生效:1. 运营人员手抖配置错了,完全不自知2、 体验问题,比如活动过期,还在线上3. 系统配置被误用,实际并...

2020-05-26 20:06:02 174

原创 异步场景中的自动化测试方法

背景项目测试过程中,不同的测试深度、测试广度,会面临不同程度的“不便”。例如:复杂的技术架构、技术实现,导致某些场景不可测或不容易测试。无法满足自动化/质量运营要求。例如,技术实现中,异步流程过于复杂,导致自动化不易开展某些场景/实现严重影响了测试效率,或给测试增加了不少困难。同步的自动化测试过程:目前大部分的自动化测试用例的过程: 创建业务场景---产生待测数据-》检查待...

2020-04-27 00:45:12 598

原创 成为测试大牛——测试领域的变与不变

测试领域的叫法测试,QA, 质量保障团队,质量团队等等避免歧义与争议,叫法不同,但做的事情,属于不同的深度和广度:很多是别人玩剩下的;还有就是,统一的一件事,不同玩家效果会产生很大不同。 拿自动化来说,现在随便拎出来一个测试同学,哪怕是纯功能测试的,都不会说没做自动化。 但拿做的比较好的来说,拿自动化效果来说,恐怕很多团队都会啪啪打脸。 根本原因: 没有真正理解自动化测试的本质,不...

2020-03-27 12:43:14 381

翻译 100%的单元测试覆盖率是不够的

目录摘要译文内容缺少测试用例缺少功能测试错误或不正确异常处理后续测试步骤摘要许多人将100%的单元测试覆盖率等同于高代码质量,但这还不够。 代码覆盖率工具仅衡量测试是否执行代码; 他们对测试的有效性没有判断力。 测试人员应审查单元测试,即使它们具有较高的覆盖率,也可以帮助改进测试或在必要时补充额外的测试。译文内容当开发人员进行的单元测试中100%覆盖我们...

2020-02-23 18:28:30 687

翻译 测试保证官和测试教练的新角色

目录个人理解摘要译文内容案例1案例2现代测试中不断发展的角色个人理解测试领域,测试的执行者或多或少发生了变化,这其中涉及了整体测试计划的设计摘要在过去的十年中,测试发生了很大的变化。 尽管某些传统技术仍然有用,但是开发人员,用户和其他非专业测试人员正在完成许多测试活动。 因此,测试经理的角色已经变成了更多的测试保证官和教练。 新角色的实施方式因情况而异。 这...

2020-02-23 18:15:09 434

翻译 可以帮助您成为更好的测试人员的7种监控方法

目录个人看法摘要译文内容了解您的用户可视化KPI指标将测试优先级化观察回归设置警报使用模板调查问题量化bug的重要性对团队实施监控个人看法要想交付高可用的产品,最重要的是了解产品,从而制定整体的测试方案/测试策略。比如,什么是对用户最重要需要。更加贴近用户:量化你的用户如何使用产品。摘要监视使您的测试工作更加轻松,帮助您管理可能存在的...

2020-02-23 18:01:53 480

翻译 快速测试:我们如何将测试周期缩短一半

目录个人理解摘要译文内容减少系统测试中的bug缩短错误处理时间提高测试效率减少测试用例寻找更多人选择你的战斗个人理解将测试周期缩短,不同团队应该根据实际情况,侧重不同的落脚点。 比如,一个处于疯狂迭代期的初级产品,和一个处于成熟期的维护性产品,测试人员的落脚点显然不同。又比如,合作的,一个是提测质量相对较差的团队,另一个是提测质量相对好的团队,测试人员的...

2020-02-23 17:45:29 892

翻译 处理测试经理最烦人的问题

个人理解测试经理大多数不实实在在执行测试,主要精力放在沟通、协调、团队建设等方面,而其目标则需要建立一支强大的测试团队译文内容摘要测试经理必须每天使用各种专业和人际交往能力,在多个方面进行测试。 面对所有这些职业方面,可能存在很多不同的领域。 这是测试经理通常会定期听到的最常见(也是最烦人)的事情,以及一些如何处理它们的策略。正文测试经理必须在多个方面执行工作,每天使用不同...

2020-02-23 17:28:21 416

翻译 软件测试中的信息丢失

目录个人理解译文内容信息丢失信息控制更好的信息交流个人理解测试人员通常被认为是项目的最后一把控制屏障,发现bug(这里bug是从宏观层面来说得,是指影响用户体验、易用性方面的问题,以交付高可用产品为目标下,发现的种种问题或潜在风险)后,大多数情况下,开发人员会修复其中的绝大多数问题;在于业务人员、产品人员沟通中,往往会将一些问题,定为延期修复,或由于不存在某些业务场景,...

2020-02-23 17:00:39 224

翻译 要获得高质量的软件,允许失败

摘要作为质量的倡导者,您需要仔细研究产品,并考虑时间,预算和其他业务限制,并提出修复建议,以提供最高质量的产品。 ...而且生产中的利益人不想修复它。 您如何向不想听的人传达错误和风险? 您需要以有意义的方式来解决问题,而不是感到沮丧,并且,如果必须的话,可以让人们失败。内容您的职务并不重要。开发人员,分析师,经理,测试人员-在某个时候,您决定倡导质量。您查看产品时,要考虑时间,预算和...

2020-02-22 18:39:48 299

原创 《涛声依旧》填词改编《测试依旧》

背景根据经典老歌《涛声依旧》填词改编,借以调侃一下日常的测试工作填词:写下一段代码可能带来巨大的灾难运行一次测试让它玩命全面校验可怜的我身心早已疲惫不堪抬头一看却梦醒测试还没做不完熊猫的眼圈还在折磨我的睡眠混沌的脑袋始终不放过一个缺陷旁边的开发代码深处不见笑颜项目结束后能不能一起愉快的共餐做了alpha总是没时...

2020-02-22 12:14:50 212

翻译 与测试自动化争分夺秒

目录摘要内容使用自动化测试来克服交付挑战自动化测试如何使我们的项目受益实施自动化测试的步骤测试自动化的关键价值主张个人感悟摘要如果您在时间上奔波,但仍无法承受测试时的捷径,那么自动化是一个很好的解决方案。 您可以在短时间内发布高质量的软件,检测更多的错误和错误,并使测试与敏捷开发保持一致。 您可以按照以下方法来建立自动测试计划,以克服交付难题并改善测试结果。...

2020-02-13 00:18:42 279

翻译 “如何测试?”给测试提供证据

摘要许多测试人员倾向于将测试时记录的信息最小化。 当以后发现问题时(可能是在软件投入生产后),挑战就来了。 我们如何记起自己的所作所为,何时? 我们必须参考哪些记录? 作为测试人员,我们如何回答“如何测试?”的问题内容许多测试人员,特别是在制定详细的测试说明时,往往会尽量减少他们在测试时记录的信息。 从记录变量或值的起始值和结束值到简单地指出测试“通过”,这可能会有所不同。当以后发现问...

2020-02-12 00:11:58 504

翻译 将自动化工具与自动化策略分开

摘要当人们没有做好自动化的时候,这几乎不是因为所使用的工具,而是几乎总是因为错误的自动化策略,错误的期望以及错误的自动化采用。 自动化工具只能回答自动化的“方式”,而拥有自动化策略则可以回答谁,何时何地,什么以及为什么。 这就是为什么拥有测试自动化策略如此重要的原因。个人感悟: 自动化工具是皮,自动化策略才是真正的灵魂内容自动化测试与软件编程本身一样古老,但是许多公司和团队在其工作...

2020-02-11 23:42:38 234

翻译 改善测试数据的收集和管理

目录摘要内容数据类型数据质量数据收集数据存取维护摘要关于我们生成的用于评估产品质量的数据,已有很多出版物发表。 很少有关于数据测试人员为自己使用而生成的讨论可以帮助我们改善工作的讨论,而关于数据收集的推荐做法的讨论则更少。 测试数据收集,管理并使用所有功能进行前期计划和持续维护。 测试人员可以通过以下方式改进这些做法。内容可以肯定地说,所有测试人员有时都...

2020-02-11 23:40:43 456

翻译 将测试自动化维护的噩梦转化为成功实践

目录摘要内容摘要测试自动化的最佳实践强调可靠性,可移植性,可重用性,可读性,可维护性等。 但是您现有的自动化测试套件如何实现这些特征的? 您应该使用当前的测试解决这些问题,还是创建一套全新的测试? 以下是一些问题,可以帮助您确定测试自动化维护程序是否按预期方式运行。内容“自动化”在业界并不是一个新的流行语。 随着电子商务的发展和对移动技术的快速访问,一段时间以来,尽快交付软...

2020-02-10 23:32:26 365

原创 一生必看的电影

ps:超越国家、种族,给人以精神力量《肖申克的救赎》忙着生,还是忙着死,这是一个深刻的话题。除了电影主人公在面临恶劣残酷的生存条件外,当下的我们,不妨也静下来反思一下自己的行为,属于哪一种呢《当幸福来敲门》在篮球场上,男主人公跟儿子说:别让人告诉你,你成不了才,即使是我也不行。男主人公的乐观、坚持、积极争取的心态,是每个人在面临不同层面的“困境”时,都需要学习的。不禁想起《自卑与超...

2020-01-06 23:30:33 5633 13

原创 《谁动了我的奶酪》感悟

目录一、简介奶酪是什么二、假定变化三、拥抱变化一、简介两只小老鼠“嗅嗅”、“匆匆”和两个小矮人“哼哼”、“唧唧”,他们生活在一个迷宫里,奶酪是他们要追寻的东西。有一天,他们同时发现了一个储量丰富的奶酪仓库,便在其周围构筑起自己的幸福生活。很久之后的某天,奶酪突然不见了。这个突如其来的变化使他们的心态暴露无疑:嗅嗅,匆匆随变化而动,立刻穿上始终挂在脖子上的鞋子,开始...

2019-12-30 13:23:53 1624 1

原创 有没有可以干一辈子的工作?

目录背景大多数人眼中的”铁饭碗“打工者与老板拓展能力范围重于一切背景不同行业有不同行业的焦虑:裁员、公司倒闭、被优化、还贷、生孩子... 各种各样的问题,带来的就是工作中越来越大的压力了。大约从大学开始,就在有意无意的焦虑为了要干什么工作,自己可以干什么工作等等(ps:高中都在拼命学习,没时间想工作)。回想起来,从大学到现在10余年的时间,对于自己喜欢什么、有什么兴趣,还是...

2019-12-17 00:08:53 1720 3

提示
确定要删除当前文章?
取消 删除