Windows Mobile - 非UI应用程序的自动化测试工具

时间:2011-01-28 05:49:54

标签: testing windows-mobile compact-framework automated-tests

我需要自动测试我的Windows移动应用程序。我的应用程序没有任何UI。因此,使用随机击键和鼠标点击的常规测试工具在这里不起作用。是否有可用于Windows Mobile的工具仅测试后台处理?

1 个答案:

答案 0 :(得分:0)

根据您想要的测试级别,您有几个选项。

  • 综合测试

综合测试旨在测试现实世界中的应用程序。因此,您将创建所有“真实”的东西并编写代码以专门测试以查看您的条件是否得到满足。但我相信,如果你试图测试GPS,那么这将是不切实际的。因为有人实际上必须移动设备。

  • 通过嘲笑进行单元测试

我之前已经完成了GPS测试。这个想法是你SANDBOX被测试的对象。您确保所有外部引用(例如,不是对象的任何内容)都是接口。然后,您可以使用“仅测试”实现来锁定这些接口。

例如,我参与了GPS测试,我们使用了一个名为:INmeaInterpreter的接口来触发某些事件,这些事件将由名为PositioningService的类拾取。
默认实现是第三方组件。 但是,由于INmeaInterpreter是一个接口,我们可以创建一个实现,而不是使用REAL数据使用(例如)NMEA文件来读取。这使我们能够测试PositioningService在某些(有时甚至是奇怪的)场景中的工作方式。

然后我建议嘲笑其他外部参考。对数据库的调用可以只是一个虚拟对象,带有一个数据库调用计数器,如果调用它则递增。然后,您可以使用NMEA文件编写测试,该文件应该导致数据库调用,然后在单元测试结束时检查该虚拟对象以查看是否发生了该调用。

我们用可怕的MSTest做了以上所有,但你可以使用任何测试框架(我推荐NUnit)。我不确定是否有专门测试设备的选项。我们在桌面上运行了所有测试,因为我们很好地分割了代码,因此特定于设备的代码被隔离,并且很容易被桌面等效代码替换。

显然,单元测试的唯一问题是他们不测试硬件


我建议(根据项目和团队的规模)进行两种类型的测试,但要更加重视单元测试(因为它们更容易运行/管理)。