利用环形缓冲区日志分析错误

发表于:2009-4-30 15:37

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:译者:李容    来源:51Testing投稿

  引言

  本文包含了一系列相关的模型。所有的模型均涉及到的是,一个程序员,你怎样掌握你所需要的信息,理解并解决了软件错误。该方案围绕着使用环形缓冲区关键日志来记录一个系统的生命周期。

  所谓的环形缓冲区就是一个指定了大小的缓冲区,当他被使用完后,系统会增加另一个区块来覆盖第一个。上图显示一个环形缓冲区可容纳8个数据文件。当第九个已经增加后,按照顺序,产生的第九个会覆盖第一个,再增加一个时,依次类推,它将覆盖第二个……

  这些模型有两个特点:

  1、易用性;

  2、随着时间的推移,形成一个系统的日志文件,从而提高调试效率。

  一、环形缓冲区的日志

  客服给你转来一个客户。她很郁闷。她直接给你说,系统崩溃了。然后你问"在这个问题发生前,你还记得你曾做过什么样的操作?"但是她不记得了。

  作为答复,在产品中增加日志。关键事情和状态改变都被记录到一个硬盘文件中。然后告知客服,请他们告知用户,在反馈问题的时候,应当以电子邮件方式将日志文件一并反馈。

  随着时间的流逝。让你吃惊的是,从外地发回的错误报告往往不包含日志。你向客服询问原因,他们说,用户错误的认为关闭日志对系统的性能提升是一个很大的帮助。

  时间越长。该项目的系统维护小组会指导您从产品中删除日志文件。在一个关键的客户网站,您的日志填满硬盘。一夜之间,相对于产品,他们的费用下跌了大约6倍。

  问题

  在错误不能稳定重现的时候,如何使得你的用户在遇到错误后能够正确的描述错误信息?

  ……………………

  查看全文请点击下载:http://www.51testing.com/html/29/n-120029.html

  五、捷径

  背景

  在系统中已经存在了一些日志文件,但却不够详细并且存放在错误的地方。你明白你将有一天重新部署该系统或发布新的可执行文件,所以是值得花时间来改进日志存储。

  问题

  如何改进系统的存储日志?

  要点

  日志是帮助排除故障的。无用的日志信息将有朝一日放慢某一程序员人的调试。

  但是,增加一个无用的信息将仅仅意味着将增加更多的无用信息,它可能导致重要信息从环形缓冲区中消失。

  有句俗语讲,一个错误聚集的地方,意味着可以寻找更多的错误的最好地方,就是你已经发现了许多错误的地方。

  决定在日志消息中存放什么内容并不总是很容易。很难预测这将在以后的用处,特别是对别人也是有益的。

  因此

  不要对其以后的有用性报多么大的希望。想想过去你所解决的问题就可以了。是不是存在一系列事件导致问题难以重现?你在故障定位、查找可能的错误代码时有问题?如果是这样,增加日志状态,这样会使工作更容易一些。

  还要记录有价值的关键变量。这些变量是,那些不同的值可能会导致显示不同的执行路径。这将有助于后来的程序员理解为什么程序运行到这样一个点。

  让人厌恶的是,所增加的日志记录是针对特定的错误,而不是解决错误的途径。例如,如果关键的错误是错误的特定实例变量,而你现在所记录的是它在其他地方参与计算或使用的日志。这可能是对将来的错误并无用处,并有可能将有用的详细信息推出环形缓冲区。

  以此类推,你应该指出错误的普遍性性与关联性,而不是一个片面的结论,因为,没人知道将来错误究竟会怎么样呈现。

  当经过很长一段时间,当你修复了一个子系统中的错误,你可能会发现某些日志没有一点用处。考虑要取消他们。不过,这个时候要小心了,对你没有用处或许对其他人是有用的。

  例如

  像许多跟踪软件包,Trace.java具有多层次的记录(见两个记录点)。在客户的环形缓冲区中,"相近的"的信息可以被记录在一个较高层次上。在调试环境运行时,一个具体的细节问题可以进行相应的唯一记录。这些信息对不能重现的问题将无补于事,但它们也不会在日志中覆盖其他的信息。他们有助于调试可重现的问题,在这方面并无害处。

  结论

  系统变的更加容易理解。这种理解可能是千变万化的,即使是添加这个日志文件的人。这些日志文件可能对其他人也是没用的。可能对变化子系统(如极限编程[Beck99])之间的人们具有帮助。因此,可以和测试人员讨论日志信息,从另一个方面讲,他们可能会大量使用。

  六、两个记录点

  背景

  您将经常忘记的重要信息记录到环形缓冲区。

  问题

  开始是一个特殊的时刻。在系统或子系统启动时,关于系统的环境的重要信息会被自然的发现并记录。在环形缓冲区填满时你如何避免失去这一信息?

  更笼统地说,可能有些有价值的信息,你永远都不想放弃它。这怎么办呢?

  ……………………

查看全文请点击下载:http://www.51testing.com/html/29/n-120029.html

版权声明:51Testing软件测试网及相关内容提供者拥有51testing.com内容的全部版权,未经明确的书面许可,任何人或单位不得对本网站内容复制、转载或进行镜像,否则将追究法律责任。

《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号