对于程序员来说,bug很讨厌.每天重复着写代码.找bug.修改bug的动作.按理说互联网巨头的产品,bug应该比较少.但是实际上,无论是用百度.天猫.谷歌等产品,经常都会出现这些低级的bug,让人很火大.这不,有个网友就在网上吐槽: 这个网友称,腾讯QQ空间好友的动态里,经常没办法显示好友的备注名称.安卓客户端的同个页面,可以打卡很多次,这样导致的后果就是,返回的时候要按很多次的返回键.不仅如此,天猫登录界面在firefox下的兼容性很差.例如说,明明没有显示出来验证码,却要求登录用户输入验证码…
1.自己先写一个 Demo 演示一下利用bugly测试崩溃的具体情况. 在ViewController里面实现崩溃代码如下:  运行后 毫无疑问程序报错了! 2.使用到第三方的框架Bugly,官方下载bugly 3.进入后利用qq注册一下,完整一下相应的个人信息. 4.进入后注册一下你要测试的app,我创建的app demo叫CocoaPodText如下. 5.利用CocoaPods集成 Bugly框架,详情见本人博客关于CocoaPods的配置使用,只需要pod Bugly如图.  6.接下来…
摘要: 除了吃瓜,还是得吸取教训啊同学们! 这次,我从纯技术角度分析腾讯云与前沿数控的磁盘数据丢失事件,不站队. 硬盘门 这里说的硬盘门不是10年前陈老师的那一次,而聊的是最近"腾讯云"用户"前沿数控"的磁盘数据丢失. 关于这次事件,腾讯云是这样说的: 近日,腾讯云用户北京清博数控科技有限公司所属"前沿数控"平台一块操作系统云盘,因受所在物理硬盘固件版本bug导致的静默错误(写入数据和读取出来的不一致)影响,文件系统元数据损坏. 腾讯云多少有点打…
2021S软件工程--结对项目第三阶段 2021春季软件工程(罗杰 任健) 项目地址 1020 1169 1 实践反思 1.1 问题分析 两人习惯不一致 没有具体制定时间节点 写完代码才开始"应付"测试 代码架构不清晰 ​ 以上的这些问题导致我们这次项目(尤其是第二阶段)实现得并不算太好,在后期出现了赶工.代码一团乱麻的情况,也导致了一些BUG的出现. 1.2 需求分析实践体会 ​ 在此次项目的需求分析中,我认为我们做得还算不错,对指导书基本没有错误理解.有模糊的地方,也立刻沟通交流.…
一.扯淡部分 回想当年,在摆脱写页面时js全靠从各种DEMO中copy出来然后东拼西凑的幽暗岁月之后,毅然决然地打算放弃这种处处“拿来主义”的不正之风,然后开启通往高大上的“前端攻城狮”的飞升之旅.想想都有些小激动呢~然而人生不如意者十之八九,刚踏上征程就经常会被各种Error虐到体无完肤,有时候甚至会被在现在看来很低级的bug折磨得生不如死.但没有一种成长是不需要付出代价的,也就是那段刚跳入泥潭的日子开启了让自己成为一名真正的JSer的大门,也使自己在奔向高大上的路上让“见招拆招.兵来将挡”成…
一听到初级Bug这个名字,很多开发工程师都会觉得很头痛,还有那个“初级Bug率”,让人随时受不了. 初级Bug这个概念,在多数缺陷跟踪工具中,是不存在的,可以说是淘宝研发部的特色.初级Bug对应Bug的一个属性:“Bug深度”,这个属性有三个选项:1很容易发现.2正常发现.3很难发现,其中“很容易发现”的Bug就是初级Bug.深度代表了发现Bug需要的成本和技术含量,初级Bug就是那些非常明显,通过简单的操作就能发现的Bug. 从初级Bug这个概念被提出,到现在大约有2年时间.最初的时候,在一次…
作业三: 代码规范.代码复审.PSP 代码规范 代码规范的重要性 一.规范的代码可以促进团队合作  一个项目大多都是由一个团队来完成,如果没有统一的代码规范,那么每个人的代码必定会风格迥异.且不说会存在多个人同时开发同一模块的情况,即使是分工十分明晰的,等到要整合代码的时候也有够头疼的了.大多数情况下,并非程序中有复杂的算法或是复杂的逻辑,而是去读别人的代码实在是一件痛苦的事情.统一的风格使得代码可读性大大提高了,人们看到任何一段代码都会觉得异常熟悉.显然的,规范的代码在团队的合作开发中是非常有…
使用python生成或者解析xml的方法用的最多的可能就数python标准库xml.etree.ElementTree和lxml了,在某些环境下使用xml.etree.ElementTree更方便一些,毕竟是python2.5以后的标准库.没想到的是python标准库中竟然存在这么一个低级的bug,简单来说就是某种情况下使用ElementTree序列化的xml数据竟然无法正常解析.仔细分析之后发现是因为charset的原因,但为何不在序列化的时候就做一些检测,进行相应提醒呢?也不至于出现自己序列…
最近研究Java并发,无意中在JDK8的System.console()方法的源码中翻到了下面的一段代码: private static volatile Console cons = null; /** * Returns the unique {@link java.io.Console Console} object associated * with the current Java virtual machine, if any. * * @return The system cons…
在实际工作中,需要对shell脚本进行正确性测试. 如何用最快最有效的方式进行测试? 很多开发的习惯是,二话不说,写完/拿到,就跑一把,看看输入,输出,想要的操作是否完成,也就过了. 其实这是十分不严谨的,若是未经过QA,风险还是相当大的. 以下即shell脚本测试流程,仅供参考 1.代码走读: 写完,或者拿到一个shell脚本,不必急于运行,虽然实践是检验整理的唯一标准,但是,在读代码这个过程中,可以规避很多低级的bug. 读什么? A.代码逻辑,这个脚本用来做什么,主要分为多少步,分别做了什…
1.eclipse mat插件的安装 Help->Install new software,如下图,一直下一步即可 2.AndroidStudio dump heap 3.AndroidStudio 点captures查看dump 文件 4.导出为标准的dump文件 5.eclipse 打开mat,并导入4导出的文件 file->open file 选择即可 6.OQL查找Activity内存泄露 select * from instanceof android.app.Activity 再右…
什么是vs 程序的manifest文件 manifest 是VS程序用来标明所依赖的side-by-side组建,如ATL, CRT等的清单. 为什么要有manifest文件 一台pc上,用一组建往往会有不止一个版本(c:/windows/winsxs或系统目录下),程序在加载的时候,不知加载哪个,于是manifest文件来指明. manifest在哪儿,如何创建. 如果用VS开发,可以Set通过porperty->configuration properties->linker->ma…
[Python之旅]第六篇(七):开发简易主机批量管理工具 python 软件开发 Paramiko模块 批量主机管理 摘要: 通过前面对Paramiko模块的学习与使用,以及Python中多线程与多进程的了解,依此,就可以开发简易的主机批量管理工具了.     显然批量管理主机时,程序如果能并发执行功能是最好的,因为这样可以最大程度地利用CPU的性能,因此这就需要使用Python多线程或者多进程,基于学习的需要,这里主要... 通过前面对Paramiko模块的学习与使用,以及Python中多线…
什么是vs 程序的manifest文件 manifest 是VS程序用来标明所依赖的side-by-side组建,如ATL, CRT等的清单. 为什么要有manifest文件 一台pc上,用一组建往往会有不止一个版本号(c:/windows/winsxs或系统文件夹下),程序在载入的时候,不知载入哪个,于是manifest文件来指明. manifest在哪儿,怎样创建. 假设用VS开发,能够Set通过porperty->configuration properties->linker->…
近期发现了一个非常诡异的NullPointerException,在以下这种方法抛出,一開始怎么都没想明确,dSrc即使为null,那直接赋值给distinct也没问题啊. private Doubledistinct; private void setParam(Double dSrc, boolean flag) { this.distinct = (flag) ? dSrc : 0d; } 最后才发现是Java自己主动拆箱的潜规则,以下我们来看看其所以然. 自己主动装箱/拆箱 在JDK1.…
内容 第15章:测试开发与调试 任何实际项目的开发,除了功能性代码的完成,规范的开发流程和严谨的测试都是不可或缺的.合理使用工具将事半功倍. 1.ESLint ESLint是Lint语法检查工具,避免的低级的bug和不统一的代码风格.它比JSLint好的地方是可配置.细粒度的,每一条规则都是一个插件.4 ESLint的项目配置有两种基本方法: 第一种,JS注解的方式将配置信息直接加到文件里. 第二种,package.json { "env":{ "browser":…
背景 由于最近公司要做微信小程序聊天,所以.NetFramwork版本的SignalR版本的不能用了.因为小程序里没有windows对象,导致JQuery无法使用.而Signalr的 js客户端是依赖JQuery的. 所以看下了Core版本的SignarlR,经过测试,发现可以在微信中运行,不过要将JS客户端中的webscoekt 改为微信自家的.如有需要改后的版本,可以楼下评论. 目的 本文的主要目的是为了介绍下使用.NetCore版本SignalR的一些坑,并提供了解决方式.主要是以前的大部…
  此篇文章流传甚广, 其实里面没啥干货, 而且里面很多观点是有问题的. 这个文章在 golang-china 很早就讨论过了. 最近因为 Rust 1.0 和 1.1 的发布, 导致这个文章又出来毒害读者. 所以写了这篇反驳文章, 指出其中的问题. 原文链接:http://blog.csdn.net/liigo/article/details/23699459 有好几次,当我想起来的时候,总是会问自己:我为什么要放弃Go语言?这个决定是正确的吗?是明智和理性的吗?其实我一直在认真思考这个问题.…
  GTID(global transaction identifier)是对于一个已提交事务的全局唯一编号,前一部分是server_uuid,后面一部分是执行事务的唯一标志,通常是自增的. 下表整理了GTID常用的查看命令,以及变量的描述及原理,供大家参考(以下基于MySQL5.7,对于MySQL5.6的GTID由于存在性能问题,不推荐使用) 角色 常用查看GTID的相关命令 变量示例 描述 变量的更新时机 master show global variables like '%gtid%';…
今天遇到一个郁闷的事儿: 在一个JFrame上放了一个JList元件,这个JList元件添加了鼠标事件: mouseReleased.mousePressed ... 其中,在mouseReleased中,主要显示一个弹出式菜单.在mousePressed 中输入用户按下的是左键还是右键. 但我发现一个奇怪的事情, 当我把当前界面设置为:UIManager.setLookAndFeel("com.sun.java.swing.plaf.windows.WindowsLookAndFeel&quo…
软件测试中Bug的生命周期以及Bug的严重等级 我猜你们都会,但能说专业且全面不? 1.首先当测试人员接到一个项目或产品准备测试的时候,测试人员会根据测试用例一步步的来执行用例进行简单的功能测试.当测出一个Bug的时候,就是这个Bug被开始创建的状态(也就是被新建New): 2.当一个Bug出现,测试人员会将这个Bug递交给开发人员,让开发人员进行修复,这个时候Bug的生命周期就进入到了被指派的状态(Assigned): 3.当开发人员将这个Bug接到手之后会认证它到底是不是一个Bug,此时Bu…
在3.10的内核版本下,有一个运行稳定的内核模块,移植到suse11的时候,编译正常,运行则直接出现crash: <>[ <>[ 503.347300] Modules linked in: caq_sendmsg(EN) mysendmsg(EN) witdriver(EN) datalink(EN) w83627dhg(EN) tipc(EX) ossmod(EN) pagecachelimit(EN) xfs ip6table_filter ip6_tables iptabl…
[MySQL 5.6] GTID实现.运维变化及存在的bug http://www.tuicool.com/articles/NjqQju 由于之前没太多深入关注gtid,这里给自己补补课,本文是我看文档和代码的整理记录. 本文的主要目的是记下跟gtid相关的backtrace,用于以后的问题排查.另外也会讨论目前在MySQL5.6.11版本中存在的bug. 前言:什么是GTID   什么是GTID呢, 简而言之,就是全局事务ID(global transaction identifier ),…
Google 的眼光 你知道吗,Google(Alphabet)要卖掉 Boston Dynamics,一个它收购才没多久的机器人公司.这也意味着,Google 准备完全退出机器人的领域.新闻传言说,是因为 Google 觉得这些机器人太吓人了,把它踢倒在地,居然能像终结者一样爬起来!还有舆论说 Google 研究机器人,是想抢走人类的饭碗,所以现在 Google 为了人类的幸福,放弃了这个计划.呵呵,这借口多么美妙呀!你们真以为 Google 有这么好心,会为你们的生存着想吗? Boston…
分享一个最近做项目遇到的奇葩经历: 很奇怪的,我在弄一个表单提交的时候,后台验证就报了非post提交错误 我就郁闷了,我form明明写的method为post,不可能是非post错误啊 经历反应测试,发现选择一张图片提交就可以,当选择两张图片提交的时候,就报非post提交错误 查看浏览器的控制台(Network),看的请求提交头也是post,没问题.那就确定是提交图片的问题咯 再反应测试,发现,当提交两张一样的图片的时候不行,提交两张不一样的图片的,他又可以了!!!?? 难道浏览器还有“不可以f…
http://altd.embarcadero.com/download/radstudio/10.2/delphicbuilder10_2_3__93231.iso,注册机在这里 注册号要自己去申请,免费一年,过期再去申请,集成自10.2.3发布来的所有补丁.发布说明在这里,很简单. http://docwiki.embarcadero.com/RADStudio/Tokyo/en/10.2_Tokyo_-_Release_3 要我看,就是10.2.4,官方没这个计划,如果lsuper大侠做成…
实现 Client 端代码 HBase 提供了客户端 Java 包 org.apache.hadoop.hbase.client.coprocessor.它提供以下三种方法来调用协处理器提供的服务: Table.coprocessorService(byte[]) Table.coprocessorService(Class, byte[], byte[],Batch.Call), Table.coprocessorService(Class, byte[], byte[], Batch.Cal…
从刚开始工作时到现在,已经写了7年的代码,大部分代码都被人review过,自己也review了很多人的代码.在上一家公司的时候,我负责的一轮面试是专门进行Code Review的练习和经验谈. 通过在工作/面试中做Code Review的过程,有一些自己任务错误的实践分享出来,也欢迎大家来一起讨论. 什么时候都一定要做Code Review Code Review是否一定有必要呢?我的答案是不一定. 我觉的需要分时间,分项目. 在公司创业之始,1,2两个人吭哧吭哧的把整个产品从0到1的搭建出来,…
这篇文章,不是讨论怎么提升程序员的能力避免BUG,因为程序员的能力不足造成的BUG,短期是无法避免的.这里主要探讨的是因为程序员疏忽大意和不良的开发习惯,产生的低级BUG,对项目成本影响. 首先了解下软件测试流程,mantis是跟踪BUG的一种工具,具体流程如下图: 根据流程图可以发现,测试组发现的BUG和程序员自己发现并修改BUG(绿色),会多出6个节点(紫色).每个节点对工作量的影响有多少呢?或许有人会说,这些紫色部分消耗时间很少,1到2分钟最多5分钟能完成,理论上是这样.在从事高脑力劳动的…
MSF-微软解决方案框架,是一套大型系统开发指南,它描述了如何用组队模型.过程模型和应用模型来开发Client/Server结构的应用程序,是在微软的工具和技术的基础上建立并开发分布式企业系统应用的参考.在现在的软件开发项目中每一个软件开发项目都要经过 一个生命周期.MSF过程模型是从传统的软件开发瀑布模型和螺旋模型发展而来的,它瀑布模型中基于里程碑的规划与螺旋模型中的增量迭代的长处结合起来.MSF作为现在流行的软件开发思路,其有自己的基本原则. MSF基本原则: 1:推动信息共享和沟通 2:为…