在测试的工作中,提BUG是日常工作. 以前自己为了省事,省时,仅仅是截图,在图片上注明一下问题,就放到BUG库中了. 现在发现这样会造成开发的时间的浪费,增加了沟通成本. 对于BUG,当发现了异常时,首先自己重现一下刚才的步骤,判断是偶现还是可以重现,另外,也可以请同事,帮忙检查一下,按照步骤操作一次. 如果还是有疑问,可以请产品同事来帮忙确认,这样就可以避免与开发同事的争论. 当发现了BUG后,提到BUG管理工具中时,注意一下提BUG的格式. 提BUG格式: 标题(简单描述一下问题) 1,测试…
linux kernel 内存管理是个很大的话题,这里记录一点个人关于slab模块的一点思考总结. 有些书把slab介绍成高速缓存,这会让人和cache,特别是cpu cache混淆,造成误解.slab最开始的目的是解决频繁内存分配的效率问题,所以把频繁分配回收的对象,预先分配并初始化好,后面的对象分配回收主要就是对象管理数据的维护工作.linux kernel 通过把整个物理内存划分成以一个个page进行管理,管理器就是伙伴系统,它的最小分配单元就是page.但是对于小于page的内存分配,如…
大多数公司都是用bugzilla来管理bug,也有的公司使用内部开发的bug管理平台.这里以bugzilla为例,我最不爽的是提bug的时候既要选择severity(严重级别)又要选择priority(优先级别),实际工作中severity很少用得上,因为大多数开发人员都是根据priority来进行修复的,比如经过N步操作+N种牛角尖式使用找到一个崩溃bug,它严重程度很高,但是因为在实际用户那里根本不会遇到这种情景,则它的优先级就很低,而开发和产品的意见往往就是“根据用户反馈再做修改”,这种b…
程序猿嘛,难免会被BUG缠身,我相信,没有一个程序猿在被BUG缠身时是感觉轻松的,消灭BUG一定是你最大的愿望.本周,我们团队的项目进入调试阶段,各种BUG层出不穷,眼看下个周就要进行项目答辩会,所以每个成员都绷紧了神经,与时间赛跑,一路过关斩将,解除一个一个的BUG.今天,我们就来简单谈一下,我们应该如何对待这位特殊的“朋友”——BUG: BUG,一种传说中的昆虫类爬行动物.形状多变,往往根据生存环境随意变换其外形特征.常常和一类叫做“程序猿”的灵长类动物共存.程序猿在工作之余,常以捕杀BUG…
c#Winform程序调用app.config文件配置数据库连接字符串 你新建winform项目的时候,会有一个app.config的配置文件,写在里面的<connectionStrings name="  " connectionString="  "></connectionStrings >, connectionString代表数据库链接字符串,name代表你想要引用的时候查找的名称.(其实asp里的web.config配置方式也跟这…
前言 本周一(2019.07.22),给某知名手机“大厂”提了个安全BUG,默默修复了后,周五回复我“已忽略”,此处省略上千字的心理活动..... 做安全的朋友说这都小事,国内氛围本来就不太好,hackone就不会这样. 今天周六写些文时,既然安全问题已修复,那直接发文也不存在什么问题,但是, 写文过程中抓包补图,发现安全问题修复只是表象,文章写了一半,发也不是不发也不是... 斟酌再三,做事哪有做一半的道理,于是写完了本文,图片全部打码处理,交流为主提高大家的安全意识. 如有此文有不妥之处,请…
基于CAS分析对ABA问题的一点思考 什么是CAS? 背景 synchronized加锁消耗太大 volatile只保证可见性,不保证原子性 基础 用CPU提供的特殊指令,可以: 自动更新共享数据; 能检测到是否有其他线程的干扰; CAS(Compare and Swap) 不加锁而是尝试去完成替换(写)操作,如果失败就重试,直到成功; 分析 // AtomicInteger public class AtomicInteger extends Number implements java.io…
作者:Dimple 公众号:奔跑吧攻城狮 简介:专属于Java和Android开发,和你聊聊职场话题,一同展望未来 作为小小号主的我表示很无力啊,这几天,天天都是热点.前有网易员工勇敢发声维护自己的利益,紧接着网易所谓的道歉:接下来又是2017-2019的对比,勾起了一个个满满的回忆:再来就是全球IPv4用尽,这个在学生时代就说快要用尽的东西,终于等来了他耗尽的消息:然后然后,其实还有浙江卫视录节目,高以翔猝死的事情. 天天追着热点走,怎么也跑不过新闻,哈哈.但是呢,该有的分析还得有,该有的分享…
某个周四早上,沏好一杯茶,刚要坐到座位上,就听开发说,你们测试怎么提的Bug,给个截图能说明啥?截图上面显示的奔溃,如果是必现还好,如果不是必现,那么我们怎么去定位?至少给个日志吧?当时我的内心活动是,昨晚你们下班走了,留下我们测试,5分钟找出两个奔溃,这两处奔溃是用户必须去操作的两个按钮,你们打完包居然连点都没点就直接发布了,说好的自测,说好的版本质量呢?但是嘴上却说,你们要日志,你们早说呀,那不能我们随便给个日志给你吧?日志是什么类型?总得有约束吧...... 我叫皮皮,是一名软件测试工程师…
互联网人罪状系列 1.上班第一天,前端把后端告上县衙,还列了 5 宗罪 2. 程序员状告产品经理八大罪状 (上) 3.程序员状告产品经理八大罪状(下) 开发人员与测试人员的关系,就如同程序员与产品经理的关系一样,开发没了测试,项目没有办法保质上线,产品经理离了程序员,再牛的产品,也只是纸上谈兵. 所以两者之间,就像鱼跟水,谁能离不开谁,却又相互看对方不爽,这不,公司的开发与测试人员,又吵起来了,这次玩的还有点大,直接对簿公堂了- 本期漫画情节纯属虚构,切勿对号入座 如有雷同,纯属巧合. 这是苏南…
已经找好工作近两周了,入职基本上还算顺利,自己两年来的挑灯夜战也算是有了收获,于是这两周基本上是按部就班的工作,没有学习什么新技术.在上个公司的时候,同事在项目中使用angularJs,之前他也没有接触过angularJs,一边学习一边做项目,结果给项目团队造成了很大的困扰.angularJS他研究的不透彻,在使用的过程中造成了很大的弊端,比如标签闪烁,暴露出未解析的源代码等.在商业的项目上尝试使用新技术是十分危险的,轻则项目留坑,给维护留下巨大的安全隐患,重则项目流产,商业计划因此而毁于一旦,…
其实IT是一个很严谨的行业,不管是从代码角度还是从日常的工作分配都是按计划来的. 从今年年初到现在,在我的工作中出现了两次“Delay”,第一次不以为然,虽然上司也找过我谈话,但没意识到问题的严重性. 第二次我又犯了,这次我皱紧了眉头,进行了一次深入反省,杜绝错误不再发生. 一丶为什么会出现Delay 1.任务真的很多 2.时间很宽裕,工作上的懒惰导致了Delay 3.不可预知性的事情很多,比如今天同事找我帮忙,今天开会,又或者遇到了技术难题,导致了规定时间内的任务没有完成等等 二丶怎么杜绝De…
关于异常的一点思考 异常生命周期 异常的来源 所有的异常都是抛出来的 有底层api抛出的 有自定义抛出的 异常的处理 1, 运行时异常 不做任何处理仍可编译通过 不建议捕获(不建议用异常来做流程控制,异常是程序中的非正常情况) 2, 受检查异常 必须处理,否则编译通过 处理方式:捕获处理 或者抛出处理 异常的终态 1, 对于捕获处理的异常 虚拟机不再做额外处理 2, 对于抛出的异常 受检查异常:在编译通过的情况下,会一直抛出直到main 层,如果在main仍然没有 捕获处理 则 虚拟机会调用 e…
Title:MSSQL显错注入爆数字型数据的一点思考 --2011-02-22 15:23 MSSQL+ASP 最近在弄个站点,密码是纯数字的,convert(int,())转换出来不报错,也不知道其他人用的什么函数或者类型来爆密码像"11111111"的这样的数据的,就自己想了下弄了个暂时可以用的方法. 数据库查询如图: 图一: 图二: 图三: 图四: 图五: 下面是实验 表Member 字段Password 语句 ' or 1=convert(int,(select top 1 p…
对dump脱壳的一点思考 偶然翻了一下手机日历,原来今天是夏至啊,时间过的真快.ISCC的比赛已经持续了2个多月了,我也跟着比赛的那些题目学了2个月.......虽然过程很辛苦,但感觉还是很幸运的,能在大三的时候遇到ISCC,不管怎样,对我来说都会是一个很好的锻炼机会. 在做综合关的逆向破解的题目,遇到了很多蛋疼的问题,磕磕碰碰把<加密与解密>看完了.还是老习惯,把这1个多星期以后学到的,想到的做一个总结,希望能有一个思想上的提高,也希望能对其他人有一个借鉴的效果吧.这里想起lenus大神的一…
工作中遇到的这个问题还是很有意思的.其中嵌套了很多奇葩性的问题. (转载请指明出于breaksoftware的csdn博客) 我们来看下故事的发生过程,QA同学发现我们存在如下的bug 看到如此多的串,可以认为这个是典型的溢出问题.后来我咨询解决该问题的同学,他说这个bug在debug模式下不会出现,只有在release下才会出现(这个意味着,该问题很有可能是内存问题引起的,因为debug和release的一个很大的区别就是内存初始化和布局).解决方案就是在筛选器后面加个\0. OPENFILE…
BUG管理工具的主要功能是对软件开发测试过程中出现的BUG进行跟踪管理,提高开发者的工作效率与工作质量. 在实际工作中,如果没有bug管理工具的帮助,就可能会出现如下一系列的影响: 1.软件测试人员将Bug已经提交给了开发人员,但是开发人员可能没有一个很清晰的界面来接收到测试人员提交的Bug信息. 2.有一些Bug可能是测试人员进行回归测试中测试出的问题,但是不能和第一次测试出此类型的情况进行关联,所引起的结果为不能进行有效的回归测试. 3.测试样例的版本控制难以做到,不能很清晰地看出Bug所处…
工作中我们会遇到形形色色的bug,但是很多bug都可以调试很明显的看出来,这种bug解决起来我们不会那么头疼但是有些却让人头疼而捉急,特别是本地运行一切正常,上传服务器就会出现bug.现在我总结几个我工作遇到的问题以及解决办法 1:有一次我为别的部门写一个服务接口,本地运行一切正常,但是到服务器就是报一个异常. 解决过程1:在本地先发布然后配置IIS,一切正常.然后把生成的bin文件替换服务器上的bin文件,依然异常 解决过程2:然后在代码中加入日志,但是日志竟然什么都没有.真实见鬼,最后没办法…
http://blog.csdn.net/wojiushiwo987/article/details/8851204为什么我没有拔出钥匙                             ——开锁引发的程序bug解决方案的思考 今天中午回宿舍的时候,舍友S开完锁以后,钥匙在锁槽里拔不出来了.以前只是锁不怎么好用,左旋右旋活几下1分钟之内就能打开了.这次,的确可能卡的比较紧吧,室友S旋转了好久没有打开.然后,我接过来弄了好久(几乎同样的方法)也没有打开.此时室友S告诉我,他上午给老师屋开门,…
这几天在看招聘公告前端工程师的要求基本都附带了html语义化的要求,所以稍微关注了下这方面的知识.对于其中的一点就是要求页面元素在去除css样式之后还能有良好的布局引发了我一点思考.作为前端刚入门的我,现在所采用的页面是非常流行的div+css样式,在去除css样式之后,页面布局散乱不堪.所以最近在看html5的页面常用元素.同时,今天看到了前些日子写的一段代码,关于元素遮罩层的,对于我这种js菜鸟而言,我一般是把遮罩层直接写在页面上的,我想这点应该也是不符合html语义化的规范吧,我稍微想了下…
关于KMP的一点思考 KMP的\(next\)数组的性质很精妙,有必要开一个坑学习一下 Part 1 啥是next \(next[i]\)表示对于\(pre_i\)这个字符串,这个抠出来的字符串本身后缀和前缀相等的最长长度.是一个自变量只和这个子串有关的函数.这点很重要 由于保证了是最长长度,这个数有一些优良的性质,常常在关于一个串的循环表示或者周期表示中发挥作用. 注意到这个\(next[i]\)虽然代表是这个最长长度,但是值得注意的是,由于字符串从1开始编号,所以这个值也是那个前缀的下标.…
记录工作中发现的相对而言经典的问题 [数据库时区问题] 我个人数据库配置为CST 如下 我们测试环境的数据库配置为UTC 如下 倘若我修改了测试环境数据库时区为CST.由此造成的问题是 系统读取到数据库的时间和在数据库中直接查询出来的时间不一致,一开始开发偷偷修改了数据库的时区以解决这个BUG. 这个是不对的.如果客户是在香港,欧洲呢,客户自己公司配置的数据库就是这个时区.后来开发修改了连接数据库配置的代码以兼容这个BUG [mysql中tinyint(1)类型的字段] 我新建了1个表,定义了s…
提bug注意(此为公司开发提出的建议): 开发如果改bug影响导致另一个问题,原bug没有问题,尽量重新提bug,不要直接激活,因为可能不是同一个问题导致的:   不要一个bug里提多个问题,因为不同问题可能负责的人不一样,需要一直转bug,比较麻烦:此外,由禅道可知,有时一个bug提多个问题,开发容易忽略问题,导致没有改全:   举例说明时,尽量用文字输入,不要只有截图,方便开发操作:   提bug时,描述清楚步骤,能给动图尽量给动图,能给数据给出数据,以免出现开发与测试理解不一致情况,以及减…
一.相关工具链简介 HAML HAML是专门面向Ruby on Rails模版语法设计的一门标记语言,其结合RoR的views部分模版语法的特点,对原来的*.html.erb(嵌入Ruby代码的HTML页面)进行了简化和封装,使得在编写前端页面时能够更加简洁方便. 例如,下面是一份嵌入式Ruby的HTML页面的代码: <div id='content'> <div class='left column'> <h2>Welcome to our site!</h2&…
头次写博客,想说的东西不难,关于泛型的疑问,是前一阵在学习jackson中遇到的. 下面就把我所想到的.遇到的,分享出来. 泛型是JDK1.5后的一个特性,是一个参数类型的应用,可以将这个参数声明在类.接口.方法中,就像我们方法中定义的局部变量一样:在工作中,我们常在List,Map,Set等集合对象中使用,或者我们自己声明的类中使用. 说到泛型,就不得说起“擦除”这个概念,相比于c#来说,java的泛型只存在于程序的源码中,在编译后的class文件中不存在,这个过程就是--泛型"擦除"…
以前读<黑客与画家>,其中对Lisp语言的赞美和推崇,让我燃起学习Lisp语言的强烈冲动,但很快发现在实际工作中应用的场景很少,出于功利心最终放弃了.直到上周未在家里读完了<大教堂与集市>,此书再次建议学习Lisp.我不能再视若无睹了.打算放下功利心,将Lisp视为营养丰富的土壤,从中汲取宝贵的思想(虽然很多年前就存在了)来充实自已.就像我以前学习erlang一样,给我受益良多.   写一个Lisp的Hello word, 作为纪念.       为什么Lisp语言如此先进? ht…
突然想到要整理这么一篇平时工作中相当常见但是我们又很忽视的布局的多种处理方法.临时就在我经常浏览的网站上抓的相对应的截图.(以后看到其他类型的我再补充) 既然截了图,咱们就直接看人家使用的布局方式,毕竟站在前辈肩膀上学习,我整理起来更轻松[哈哈].(然后我再说一些我能想到的处理方式,帮助我们在工作中应对不同的布局结构时,选择性的去找最适合自己页面布局的方法) 说在前面:为了更好的看出来两列结构,截图我都做了蓝线和红线的框选.颜色较深的换成了黄线.总之就是为了让你一眼看出来,哪块和哪块.适合布局萌…
工作中的开发过程(Javaweb路线,写给刚刚实习或者马上就要工作的朋友) 当我还没开始工作的时候,我是对实际项目开发流程充满未知和向往的,当时很希望能够有一个过来人,给我介绍一下实际工作起来是什么样子的. 如今这篇博客就是写给那些刚刚实习或者马上工作还未工作的朋友们.希望能够对开发工作流程有一个初步的认知和了解. 工作中的开发流程: 1.领任务 2.开发,自测,提交代码 3.测试人员测试,反Bug修改   首先,第一步: 领任务: 我们使用的是钉钉的 石墨文档 进来是这样的 , 上面的是开发人…
这篇文章主要记录下工作中常用的git操作.主要是对之前文章记录的问题做个总结,这个其实在idea中操作更加简单 别名配置 在敲git 命令时,其实可以使用别名,比如 commit可以配置为ci 下面是我现在配置常用的别名 $ git config --global alias.st status $ git config --global alias.co checkout $ git config --global alias.ci commit $ git config --global a…
题目一 MyISAM和InnoDB的区别,什么时候选择MyISAM 参考回答 InnoDB是目前MySQL主流版本(5.6.5.7.8.0)默认的存储引擎,支持事务.外键.行级锁,对于并发条件下要求数据的一致性,适用于对数据准确性要求高的场景. MyISAM只支持表级锁.数据排列是按照插入顺序,没有做规则排序.适合应用以查询和插入为主,只有很少量的更新和删除操作,对事务的完整性和并发性要求不是很高的场景. 实际运用 看到很多人在选择存储引擎的时候会无脑的选择InnoDB,这个选择合理的一点是如果…