分类 技术志 下的文章

都是病毒惹得祸

上周日下午,接到同事的一个寻求支持的电话,原来是部门以前给中国联通做的一个运行在PC服务器上的程序在每天凌晨出现'挂死'情况,导致程序运行中断,问题连续几天复现。程序是老程序,在不下十多个省运行,一直都很稳定。通过联通的人发过来的截图,很难定位问题所在,所以只能打车到了联通机房现场查看了。

还是那句话,维护别人的又是自己不熟悉的程序那真是痛苦的,好久都不在Windows上写程序、调程序了,API都需要现到网上查。由于程序一直在现网运行,即使到了现场也依然只能从外围来看,把配置信息和一些现网数据拿到自己的Windows环境下进行模拟测试,看是否能够重现问题,可无论如何模拟都不能重现问题。

问题出在源代码中一处调用DeleteFile的地方,在凌晨那个时刻,DeleteFile总返回失败。微软的帮助文档给出了DeleteFile失败的一些原因,比如文件是只读的、文件是受保护的系统文件或者用户没有删除这个文件的权限等等。我们重点检查了那个出问题的文件夹中是否有特殊文件,将Windows设置成显示所有文件,包括隐藏文件后,依然没有发现。由于是现网主机,不便过多操作。

程序有个缺点就是没有后台日志输出,也许当初开发这个程序的同事也许开发惯了GUI的程序,没有意识到这应该是一个服务器端程序,居然在出错的时候弹出对话框,试想这个24 x 7小时运行的程序谁会眼睛一直盯着它和它交互呢,呵呵。这也是在出错的时候导致挂起的直接原因。

但是导致DeleteFile失败的深层原因还需要继续查找。经过和联通工作人员商量,决定做一次升级,增加后台日志,以便查到'幕后真凶'。

像联通这种效率不高的公司,做一个小小的升级走的流程都要耽误几天。这不昨晚才把升级程序替上去。上午我们技术支持人员将后台日志发给了我,打开一看居然是一个叫'autorun.inf'的文件导致的删除失败,通过FormatMessage和GetLastError配合得到的原因是"拒绝访问",显然是这个文件的权限很高,即使用管理员权限也无法删除,甚至我们在屏幕上根本看不到这个文件的存在,只是通过Win32 API才能找到这个文件。这时我们的技术支持发来信息说:在网上查了一下,autorun.inf可能是病毒或者是木马;一句话点醒梦中人啊,我也在网上搜索了一下,的确这个autorun.inf是病毒的产物。这时我的同事又发过来一条信息说:联通人员确认过了他们的这台PC服务器居然一直在'裸奔',就是没有安装任何防毒软件。我晕!

对这些运营商我就不再做太多评价了,地球人都知道。

通过这次事件我们也可以看到:实际软件运行时产生的问题真是多种多样,防不胜防啊。其实不考虑其他原因,我们的软件本身如果做的更好些的话,也是可以避免上述问题的发生的,细节我就不说了。

QA人员一定要有实际项目经验

最近一段时间正处于项目策划阶段,这个阶段势必要和部门QA打交道,咨询问题并获取支持。按照我们公司的软件开发流程,策划阶段要输出一系列文档的。这些文档都是有公司模板或者是经部门裁剪后模板作为基础的,所以现在项目前期策划基本上就是按照自己的思路填写文档,估计很多公司也都是这么做的。

好不容易花了一个星期的时间把这些文档'填全'了。提交给QA,让之帮忙审审。QA的一封邮件回来,问题多多。

当我看到这些QA提出的问题时,我的第一个念头就是"QA人员一定要有实际项目经验"或者说这些体系文档QA自己按照流程一个一个的实践一下,自己填一遍。这样就能体谅这些问题是为什么发生的了。比如说:QA建议每个项目阶段前都要有一个任务叫"策划xx阶段",用过MS Project的人都会了解,如果分配给一个人的任务散布在整个Project甘特图的各个部分,十分不利于人员的任务分配,你要考虑到任务间的依赖关系,还要考虑到'资源工作表'中每个资源不能'变红(过载了)'。这些阶段性策划在实际项目过程中都是在一个集中的时间段完成的,大可集中放到一处。还有,对于多人参与的任务也是很难分配的,也是要考虑依赖关系和资源过载的。

部门的QA没有实际项目经验,隶属学院派的,工作很认真,并且有坚定的过程改善的信念,唯一缺乏的就是实际的项目经验。如果能到一线锻炼一下,相信她会发现更多待改善的问题,也就不用我们不断的提意见、沟通、反驳、再沟通、再达成一致了。谈到QA,我的理解是:QA一定要有坚定的信念,很好的执行力,丰富的项目经验,相信通过良好的不断改进的过程一定能让项目管理更加精确、准时。否则如果没有这份坚定,做起工作来那简直就毫无乐趣而言了。很多大公司的QA都是由一线开发人员、测试人员或者是项目管理人员转型后来做的,他们在项目里待过,知道改善的地方在哪里,同理心更强,知道开发人员为了达到某个项目管理的目标需要付出的代价。有项目经验的QA能大大减少纸上谈兵的概率,提高自己的说服力。

还有很多问题原因不在QA,而是模板的问题。填写模板时我们也希望要填写自己能控制、能想到的东西,如果在自己控制力之外的一些东西非要填,那就很头疼了。其实这也和部门角色定位有关系。部门的项目负责人与传统意义上的项目经理不甚相同,部门的项目负责人在一定意义上是偏技术类的。如果让偏技术类的负责人去填写什么"信息资产管理"、"共利益者管理"、"客户资产管理"、"项目采购计划"这类的表格显然是"门不当户不对"。

做项目也是做事,应该本着一个原则'简单'。把一些与项目目标不相关的事情也牵扯进来似乎费力费神,毫无意义。记得在上一个项目总结会上提到过一个成本目标的问题,项目初期策划时需要填写一个成本估计,然后结项时收集实际成本数据做比对,看目标是否达成。可是项目总结时根本无处获取这样一个成本数据,财务那面根本就不会给我们技术负责人出这种报表的,类似这样的'估计'估之作甚呢。

意见和建议已经提交给QA了,估计明天又会有一次激烈讨论。^_^

如发现本站页面被黑,比如:挂载广告、挖矿等恶意代码,请朋友们及时联系我。十分感谢! Go语言第一课 Go语言进阶课 Go语言精进之路1 Go语言精进之路2 Go语言第一课 Go语言编程指南
商务合作请联系bigwhite.cn AT aliyun.com

欢迎使用邮件订阅我的博客

输入邮箱订阅本站,只要有新文章发布,就会第一时间发送邮件通知你哦!

这里是 Tony Bai的个人Blog,欢迎访问、订阅和留言! 订阅Feed请点击上面图片

如果您觉得这里的文章对您有帮助,请扫描上方二维码进行捐赠 ,加油后的Tony Bai将会为您呈现更多精彩的文章,谢谢!

如果您希望通过微信捐赠,请用微信客户端扫描下方赞赏码:

如果您希望通过比特币或以太币捐赠,可以扫描下方二维码:

比特币:

以太币:

如果您喜欢通过微信浏览本站内容,可以扫描下方二维码,订阅本站官方微信订阅号“iamtonybai”;点击二维码,可直达本人官方微博主页^_^:
本站Powered by Digital Ocean VPS。
选择Digital Ocean VPS主机,即可获得10美元现金充值,可 免费使用两个月哟! 著名主机提供商Linode 10$优惠码:linode10,在 这里注册即可免费获 得。阿里云推荐码: 1WFZ0V立享9折!


View Tony Bai's profile on LinkedIn
DigitalOcean Referral Badge

文章

评论

  • 正在加载...

分类

标签

归档



View My Stats