我完全Torbjorn的答案同意,但想补充几点:
开始小
页面对象图案是很好的方法来简化你的测试,但是你会发现获得抽象是需要很长时间的。首先抽取你需要的东西,然后慢慢加入。
增加价值
不要走极端,并尝试写终端到终端的回归测试。相反,专注于编写增值的测试。例如,一个演示应用程序启动没有错误的单个测试非常有用,可以为您的构建过程提供早期反馈。从那里出来。
平衡“深”与“浅”
有用于测试用户界面的几个不同的理念。建立它们之间的混合。
显而易见的方法是使用类似生产的设置来测试应用程序,以证明应用程序“从前到后”工作。这些是“深层次”的集成测试,可以锻炼代码的所有部分并且很有用。由于它们通常依赖于外部服务等,它们也可能会非常缓慢。通常,为了保证可靠性,应用程序必须在测试运行之间重新启动以确保有效的环境。
该方法稍作修改就是测试应用程序与残缺服务(假冒产品目录,假身份验证提供程序等)。这些是“浅”测试,它们表明用户界面在集成在一起时起作用。他们通常运行更快一点,因为他们不会有相同的物理约束,如网络延迟考虑。您可以更多地关注演示文稿细节和其他边缘案例。
进一步的修改是隔离部分用户界面并在测试工具中运行它们。这些测试的运行速度比以前的方法快得多,因为它们不会具有启动整个应用程序的相同开销。使用这些测试来确定颜色和高度专业化的演示问题。
迭代时稳定
如果您打算编写功能测试,以取代手工回归测试你可能会发现,最好等到发展为它编写自动化之前稳定该功能。如果您在开发过程中开始编写自动化程序,您将不断重新编写测试。如果您想在开发过程中自动化,请记住:从小处着手。
获取早期反馈
的UI(也称为功能测试)的自动化测试是有用的,但它可以是非常,非常缓慢。 (我已经看到运行需要几个小时才能完成。)如果你每天运行一次整个测试套件,你会发现反馈循环太长,导致误报和维护问题等。
尽可能将功能测试集成到构建过程中。如果测试套件花费太长时间,请找到一种方法来集成的一些测试,以便您的构建管道可以验证重要测试作为构建的一部分。
对于UI测试,您可以使用Microsoft Test Manager来指定您的测试用例并记录UI测试。 – 2012-07-13 09:41:32
您可以使用MS Coded UI测试。 – HiperiX 2012-07-13 13:34:14