[转载]谈谈自动化测试框架之一:为什么要搭建测试框架
和一般的软件项目一样,自动化测试框架的开发是由自动化测试需求决定的,这个需求包括:一、自动化测试更便于实施,二、解决自动化测试脚本本身的存在的问题,如异常处理和场景恢复,三、弥补测试工具本身的不足或是特殊测试需求,四、测试易于维护。
自动化测试过程包括三个要素:输入、获取输出结果、预期结果与实际输出结果比较。
首先是输入,这包括测试数据和测试步骤两部分。测试数据可以直接与测试步骤一起直接写在脚本里,也可以独立与代码通过参数传递到测试中。测试步骤是自动化测试的主体,它完全依赖软件的行为。软件输入的随意性使软件行为难以确定,这大大提高了测试脚本的难度。而软件本身存在的缺陷或是系统响应时间等问题都可能导致测试脚本执行失败。我们测试中无法考虑到所有软件异常,且我们的测试脚本也不可能处理所有异常情况,因此我们需要针对脚本本身做异常处理。
获取输出结果,并将其与预期结果比较是自动话测试的另一个重点,相对与输入对软件的依赖,这个过程则是偏向于计算和比较,需要较高的编码能力。在测试项目中,测试结果经常的获取不像手工测试那么容易,而且验证规则比较复杂,有时一个校验点需要数十行甚至几百行代码才能完成。在自动化测试中,很多功能函数是通用的,且对于同一个项目,经常需要重复做这相同的事情。这样,设计一些公共函数对整个脚本的开发工作和维护工作是大有裨益的,不仅可以大大减少编码量,而且可以提高脚本的正确性和可维护性。
因此我们可以通过测试框架为我们:第一,处理脚本中一些异常和错误处理工作;第二,实现一些通用的功能,简化脚本开发的过程。
然而对于自动化测试,我们不能一个脚本一个脚本的去执行测试,而希望我们能够自如的实施测试,比如在测试需求文档中设定是否要实施自动化,以测试需求文档、测试用例为输入,自动化测试框架完成测试后就会给出测试结果。
这要求测试框架还要为我们:第三,根据需求驱动测试执行;第四,测试场景恢复;第五,测试结果输出。当然,我们的需求可能还不止这些,需要测试框架为我们做更多的事情。