自动化测试框架

什么是自动化测试框架

        自动化测试框架是应用于自动化测试的程序框架,它提供了可重用的自动化测试模块,提供最基础的自动化测试功能,或提供自动化测试执行和管理功能的架构模块。它是由一个或多个自动化测试基础模块、自动化测试管理模块、自动化测试统计模块等组成的工具集合。

自动化测试框架的作用

        (1)、能够有效组织和管理测试脚本  
        (2)、进行数据驱动或者关键字驱动的测试。
        (3)、将基础的测试代码进行封装,降低测试脚本编写的复杂性和重复性。
        (4)、提高测试将奥本维护和修改的效率。
        (5)、自动执行测试脚本,并自动发布测试报告,为持续集成的开发方式提供脚本支持。
        (6)、让不具备编程能力的测试工程师开展自动化测试工作。

常见的几种测试框架

数据驱动测试框架

框架说明

       数据驱动测试是测试从数据文件(数据池,ODBC源,cvs文件,Excel文件,DAO对象等)中读取输入和输出数值并载入到捕获的或手工编码的脚本中变量里的一种框架。此框架可以将所有测试数据在自动化测试执行的过程中进行自动加载,动态判断测试结果是否符合预期结果,并自动输出测试报告。这个框架一般用于在一个测试流程中使用多组不同的测试数据,以此来验证被测试系统是否能正常工作。

        测试用例包含在数据文件里而不是在脚本里的方面上,这种框架和表格驱动测试有些相似;脚本只是一种“驱动器”(driver)或传送数据的机制。尽管导航的数据不包含在表结构中,但和表格驱动测试还是不同的。在数据驱动测试里,只有测试数据包含在数据文件中。

        这个框架趋向于减少你为了实现所有测试用例而需要的全部的脚本数量,并且在开发绕开错误的办法(Workaround)和维护方面提供了最好的灵活性。和表格驱动测试非常相似的是,表格驱动测试只需要非常少的代码就可以产生大量的测试用例。

框架优点

        测试数据单独维护,变更测试数据不需要修改程序,不懂编程语言的测试人员也可以修改用例数据进行测试。

框架缺点
        仅仅是将测试数据从测试脚本中独立出来,任何被测试程序的变更,都会导致测试程序需要进行修改,工作量是大部分架构里最大的,维护成本非常高。


关键字驱动测试框架

框架说明

       关键字驱动测试框架可以理解为高级的数据驱动测试框架。使用被操作的元素对象、操作的方法和操作的数据值作为测试过程中输入的自动化测试框架,简单表示为。item.operation(value)。被操作的元素对象、操作的方法和操作的数据值可以保存在数据数组、数据文件、数据库中作为关键字驱动测试框架的输入。

        关键字驱动测试框架属于更高级的自动化测试框架,可以兼容更多的自动化测试操作类型,大大提高了自动化测试框架的使用灵活性。

框架优点

        极大的减少了自动化开发工程师维护量,普通测试工程师,可以很好的维护自身负责的模块中涉及的测试case和测试数据。

框架缺点
        框架的抽象程度比较高,对自动化测试工程师的开发能力比较高


模块化测试框架

框架说明
        测试脚本模块化框架需要创建能够代表测试下应用程序(application-under-test)的模块,零件(Section)和函数的小的,独立的脚本。然后用一种分级的方式将这些小脚本组成更大的测试,实现一个特定的测试用例。这种框架最容易精通且掌握的。就在一个部件前面构建一个抽象层以掩藏应用程序其他的部件方面,它是一个很著名的编程策略。它把应用程序从在部件的修改中隔离开来并规定了在应用程序设计中的模块性。为了提高自动化测试套件(test suite)的可维护性和可测量性,测试脚本模块化框架应用了抽象或封装的原则。
框架优点

        模块化框架是最容易掌握和使用的。在一个组件上方建立一个抽象层使其在余下的应用中隐藏起来,这是众所周知的编程技巧。这样应用同组件中的修改隔离开来,提供了程序设计的模块化特性。模块化测试脚本框架使用这一抽象或者封装的原理来提高自动测试组合的可维护性和可升级性。

框架缺点

        几乎所有大的变更引起的工作量都由自动化测试开发工程师完成,控件识别和业务逻辑本身属于不同的领域,没有很好进行抽象封装。


函数库结构框架

框架说明

        测试库构架框架和测试脚本模块化框架非常相似,有着同样的优势,但是它把测试下的应用程序分成过程和函数,而不是脚本。这种框架要求创建代表测试下应用程序模块,零件和函数的库文件(SQABasic libraries, APIs, DLLs等等)。然后这些库文件被测试用例脚本直接调用。

框架优点

        被测试系统无论是哪层发生变化,只需要相应的人员进行变更维护即可,完成了控件识别操作和业务逻辑的抽象分离。

框架缺点

        变更引起的工作量还是附加在自动化测试开发工程师身上。

混合测试自动化框架

框架说明

        最常见的已实现的框架是上述技术的组合,抽取它们的优点,剔除其弱点。这种混合的测试自动化框架是发展时间较长且应用项目最多的框架。