- 让客户满意。
- 不要以为它不是你的DLL,它可能是。即使“其他人使用相同的方式使用软件从未遇到过崩溃”,它可能是与不同的数据,它做不同的事情...
- 我建议你设置日志记录到文本文件一个“特殊”的诊断版本。
- 记录一切,您的参数,您的例外情况以及您正在经历的步骤。甚至可能是每个函数的开始和结束,以及其他每一行。
下面是它怎么会看...
Loaded DLL
Started MyFunction1 with parameters: 1,4,hello
1
2
...
500
Ended MyFunction1
,以使该,,,我最好设置的一些功能(在自己的单位):
// opens a text file (fixed name), and appends to it.
function InitializeLog;
// closes the file
function CloseLog;
//add a log line.
function Log(message:string='', startNewFunction:boolean:False);
你会这样称呼它:
function MyFunction1(Integer,Integer,String);
begin
try
Log('Loaded DLL');
//use inttostr and do some string concats to get the params
Log('Started MyFunction1 with parameters: 1,4,hello',true);
//Then every other line:
Log;
//this would increment a global variable FuncLine:Integer
//and write it to the file.
except
On E:Exception (Log('***'+E.Message));
end;
end;
像这样的东西应该有一个{$ DEFINE}启用这些日志记录功能,以启用/禁用诊断日志记录。
This could also be useful.
我非常同意。我以前曾经在这个地方工作过很多次,最快的解决方案一直是创建一个新的可重复测试程序,并将其提供给供应商提供完整的源代码。如果可能,记录与API的所有交互(正在传递哪些参数以及返回的内容)。 – skamradt 2009-06-25 16:16:41
供应商说Dave的DLL是错误的。供应商是谁应该制定测试计划,而不是戴夫,因为供应商是真正看到问题的人。如果不是测试程序,那么至少要列出一系列步骤来证明问题。 – 2009-06-25 17:39:25
我不认为供应商看到这个。我认为这是戴夫的顾客。无论如何,我同意供应商应该加强工作,至少帮助解决问题。不幸的是,他们似乎并不急切,所以落到戴夫身上可以帮助他们说服他们存在问题,或者找到解决办法。谁知道,重复这个问题,他可能会发现他毕竟犯了一个错误。底线;戴夫让他的顾客担心。 – 2009-06-25 19:14:48