No Coding自动化测试框架
【Abstract】 Currently, for the software testing ,the manual testing is still the main approach in Power Grid Company. The usual automation testing tools are highly cost, low effectiveness of test case, different test scheme for different Web technology. To solve these problems above, we should supply a new automation testing framework which can cross the divide between “technology” and “customer”, to make coding and maintaining script easier and regression testing, stability testing, compatibility testing comprehensive and timely. Let our quality testing engineer focus on the work of test design, user experience test, load test, and security test.
【Keywords】Software automation testing, automation test case, automation test script. 1 引言
现在的软件项目中,对于测试工作,总是有更多的测试需要去做,功能需求改变后需要测试新的功能,测试不同的配置,或者是测试一个新的平台。但是随着项目时间的逼近,分配给每个测试周期的时间也就变少,而最后,我们发现,测试工程师的时间往往都集中在了验证修正的缺陷上面。
为了有效解决常见自动化测试工具普遍存在的使用成本高、测试用例有效性低,以及对不同Web技术测试方案不统一等问题。我们需要提供一
第 1 页
个测试框架,来跨越“技术”与“用户”之间的鸿沟,简化脚本及断言条件的编写和维护工作、提高对UI框架和业务编码规范的支持程度,从而降低成本、提升效率。
现有的自动化测试框架,大多数采用的是“录制/回访”机制。首先,使用录制功能,手动操作一遍需要测试的动作,自动化测试框架会将所有的动作,包括数据转换为脚本,这样一个完整的测试脚本就此生成。但是,这种方式,无法应对需求多变的软件项目,往往一个页面上的UI改变,随之而来的便是脚本的改动,这时需要测试人员需要打开测试脚本,定位修改。这样,测试脚本的维护往往占用了大量的时间,使得自动化测试工作效率低下。
再次,维护测试脚本,需要测试人员有着一定的编程知识,这对于不是专注于开发工作的测试人员,往往修改测试脚本便意味着需要掌握一门新的编程语言,了解编程思想,加大了测试人员的工作量,使其无法专注于测试的本质工作。因此,如何选择一个合适的测试自动化框架,是一个自动化测试小组开始启动前需要最优先考虑得一个问题。 2 自动化测试框架原理
在自动化测试中,测试用例设计的好坏是关于这个自动化测试是否成功的重要因素之一。一个好的测试用例,能够找到软件被测软件中更多的缺陷,使得软件质量能够得到更好的保障。在这个软件测试过程中,绝大部分时间都是花在测试用例的设计和测试用例的执行上,而其中公共测试用例在整个测试用例中占据了很大部分的比例。结果平时的工作实践,将公共测试用例部分的规则提取出来,形成公共测试用例生成规则库,根据
第 2 页
界面不同的组件,自动组合生成公共测试用例和测试脚本,可以大大减少测试工作人员的工作量,提高测试的工作效率。测试框架需要应对需求变化,根据界面快速编写测试用例。应对设计/开发的变化,隔离对技术实现((UI框架、页面样式/布局)的依赖)。应对环境的变化,支持跨浏览器稳定回放。
3 跨平台应用自动化测试框架
根据上面对自动化测试框架关键成功因素的分析,结合在软件测试方面的实践,提出一个跨平台应用的自动化测试框架。在这里首先阐述该自动化测试框架的体系结构。如图1。
图1中的Dorado开发框架,业务移动化平台,网站开发框架中,已经做到了高度组件化,使得NoCoding自动化测试框架能够容易定位页面元素,提取公共测试用例组成部分。NoCoding自动化测试框架使用Selenium进行元素交互,TestNG管理测试用例,DBunit进行数据库初始化工作。
3.1 自动生成测试用例和测试脚本
分析我们工作中的测试用例,可以看出,增、删、改、查这些公共测试用例占了很大一部分,这些公共测试用例与业务无关,只与组件功能相关(如:对于一个表单来说,一个常用的公共测试用例是:输入必填字段后提交),将测试用例中的公共部分提取出来,设置为一个公共测试用例生成的规则库。测试系统时,将待测系统的页面组件提取(字符输入框,提交按钮等),根据公共测试用例生成库规则,将测试用例自动生成,并自动转化为测试脚本。这样,当界面组件更改时,只需要更新一下,便可
第 3 页