我是软件测试的新手。目前我需要测试一个中型Web应用程序。我们刚刚重构了代码库,并在现有代码中添加了许多事件记录逻辑。事件日志记录代码也将同时写入Windows Eventlog和SQL数据库表。
事件的数量大约是200.我应该采取什么方法来测试/验证此代码有效且高效地重构?
感谢。
答案 0 :(得分:0)
我很想为每个事件实施单元测试,以确保在事件发生时将正确的信息传递到事件记录逻辑中。
这意味着您可以在已部署的站点上触发一个事件,并验证数据是否已写入数据库和事件日志。您可以有一个可接受的置信水平,以便正确记录剩余事件。
如果单元测试不是一个选项,那么你需要手动验证每个事件,我会在检查数据库和事件日志之间交替,因为在这个区域失败的风险应该很小。这意味着你将进行200次测试,而不是400次测试。
您还可以将应用程序划分为合理的部分,并为每个部分触发一些事件,以便您在应用程序中获得合理的置信度。
您采取的方法实际上取决于您需要测试的时间,未记录事件的成本,以及日志逻辑的开发情况。
希望这有帮助
答案 1 :(得分:0)
我会在你进行重构之前添加测试。你不知道你已经打破了它的位置:)。
你说它登录到EventViewer和DB,我希望你将日志记录功能作为一个接口,以便你可以:
如果需要,将其扩展为记录到其他设备
也使得模拟更容易
如果您要测试200个事件,那就不容易了。我不认为你可以逃避为你的200个事件创建eq数量的测试。
我会这样做:
我将搜索使用我的日志记录界面的所有地方,并记下所有类和 首先从关键路径/一开始(这至少会覆盖关键路径)
或者您可以从最后开始,即记下您获得的所有可能的日志组合,可能指向陈旧数据,以便您知道输入是否相同,输出也应该相同。每次回归测试你的新二进制文件都会对这些数据产生影响,你应该获得相似的日志数量/级别。
答案 2 :(得分:0)
这应该不难。
选择一个免费的自动化网络测试工具,如Watir(java)或WatiN(.net),(如果你有的话,还是VS UI测试。)
创建涵盖您期望/需要触发事件的Web应用程序区域的测试。在每次测试后检查SQL Db以查看触发了哪些事件。
如果这些事件流对于测试是正确的,则在测试中添加一个步骤以验证在Db中确切地创建了该事件流。
这将为您提供一组测试,以可重复的方式验证来自您网站任何部分的事件。
高效的&这种方法的有效部分是它允许您只创建验证应用程序所需的测试数量。此外,您不需要为每个事件重新创建一个单元测试方法。
自动化测试将允许您重新执行它们而无需额外的努力,这将在很长时间内累积起来。
这种方法也可以通过手动测试来实现,但要获得一致性和安全性是很棘手的。可重复的结果。此外,只要测试发现需要修复的缺陷,重新测试就会花费很长时间。
注意:虽然这将是最有效的&有效的方式,它不会是详尽无遗的。很可能会遗漏边缘情况,但几乎所有的测试方法都可以说。只需添加测试用例,直到获得所需的覆盖范围。
希望这有帮助, 克里斯