如何自动执行Windows驱动程序和二进制文件的防病毒/ WSUS补丁测试?

时间:2011-06-01 22:14:58

标签: python testing automation functional-testing cots

我的(相当小的)公司开发了一个流行的Windows应用程序,但我们一直在努力的一件事就是测试 - 它经常仅由开发人员在类似于他们开发的系统上进行测试,并且当更新被推送给客户,我们的基础部分由于Windows补丁的一些奇怪的功能而遇到问题,或者在某些偏执的防病毒应用程序的情况下(我看着你,Comodo和卡巴斯基!),他们会对我们的应用程序产生误报。

我们对70%的用户使用手动测试,但这种测试既缓慢又痛苦,有时候并不完整。管理层坚持认为我们需要做得更好,但是在发布时他们会继续解决这个问题(测试会花费多长时间?只需推出它,我们就会向遇到问题的客户发布补丁!)。

我想设计一个更好的使用虚拟机进行自动化测试的系统,但是可以使用一些关于如何实现它的想法,或者如果有一个COTS产品,任何建议都会很棒。我正在一起攻击一个“运行”我们产品的每个功能的Python脚本,但我不确定如果我们遇到Windows崩溃(除了检查它是否仍在进程列表中)之后如何进行测试,或者更糟糕的是,如果Comodo因为一些愚蠢的原因而举报它。

为了最好地模拟测试环境,我试图让VM尽可能“纯粹”,并且不会在操作系统和防病毒软件以及一些常见应用程序(Acrobat Reader,Firefox)之外加载大量垃圾等)。

任何想法都会非常感激!

1 个答案:

答案 0 :(得分:1)

有趣的问题。要避免的一件事是使用防病毒API检查您的应用程序是否触发它们。您希望在预期的操作系统上实时部署应用程序,并使用真实的AV安装进行监控。这样你就可以触发启发式监控以及API与之协同工作的简单“这个代码匹配那个校验和”。

您还没有告诉我们您的应用程序是什么写的,但如果您的应用程序的测试套件实际上运行部分应用程序,而不是测试单个代码路径,那么这可能是一个良好的开端。理想情况下,您的集成测试套件与用于检查部署目标上的问题的测试套件相同。您的集成测试应验证实时环境中每个测试的输入和输出,这应该可以捕获崩溃等。另外,不要忘记检查比他们应该花费更长时间的事情,这是一个不幸的常见故障模式。最重要的是,您的测试套件必须足够容易编写,更改和改进,以实际与产品保持同步。不测试所有内容的测试是无用的,并且未运行的测试更糟糕。如果我们有关于您的程序如何工作的更多信息,我们可以提供有关如何自动执行该程序的更好建议。

您可能希望在各种补丁状态(和unpatch)中跨预期的部署目标使用一组VM映像。对于某些应用程序,您需要为IE的每个变体使用单独的VM,因为这会更改系统的其他方面。要非常小心每个VM中的哪些组合。不要一次测试多个AV。在运行测试之前更新快照中的AV。如果图像中有足够大的组合软件,则可能需要自动创建图像 - 获得基本系统构建,更新到最新的修补程序级别,然后编写AV和其他应用程序组合的安装脚本。

是的,维护这个VM场将是一件痛苦的事情,但如果您编写应用程序的部署脚本,并拥有良好的快照以及修补和更新快照的计划,那么实际的测试套件本身不应该采取所有这些措施。在适当的硬件下运行很长时间。您需要调查VM解决方案,但我可能会从VMWare开始。