软件的自动测试有两个主要方法。第一个是通过可重现的recorded macros。Mercury Interactive (http://www.mercuryinteractive.com/products/winrunner/) 的WinRunner等就是用的这种方法。尽管很容易建立,但宏是很不稳定的,需要经常修改,因为它们通常依赖于按钮和组件的物理位置,而不是在parsed document中的结构位置。对开发人员来说,测试框架不管是产生不正确的错误信息,还是需要大量的工作才能保持和代码同步,都是非常痛苦的事情,
第二个进行web应用自动测试的主要方法就是通过编程API。这样你就有了测试框架,软件库可以检查条件是否满足,报告错误的数量和类型,你可以在测试代码中调用这个框架。你的测试代码就是继承自测试框架的一套类,它们从应用代码中初始化对象,调用方法来验证给定输入会得到预期的结果。采用编程API方案的包括JUnit、HttpUnit、各种单元测试和黑盒web测试的工具等等。这种方案非常灵活,大多数情况下它大大减少了测试代码的维护时间,并且使应用中的复杂功能测试成为可能,尤其是服务器端应用。这种测试可交替的调用programmatic testing,API-driven testing,或者programmatic API-driven testing。
相对于recorded macros模式来说,基于API的自动测试方法的第一个弱点是它的需要更长创建时间。当你的问题是鼠标移动和点击时很难减少设置时间。第二个问题是绝大多数客户不会写测试程序的。客户了解的是业务过程,而不是技术,客户可能觉得移动鼠标和点击鼠标容易得多,这一点非常重要,如果你想让客户在开发过程中就参与进来的话,客户参与是极限编程的鼓吹者推荐的方法。
文章来源于领测软件测试网 https://www.ltesting.net/