一些自动化测试基本的概念

自动化软件测试定义

自动化软件测试是把以人为驱动的测试行为转化为机器执行的一种过程。通常,在设计了测试用例并通过评审之后,由测试人员根据测试用例中描述的规程一步步执行测试,得到实际结果与期望结果的比较。在此过程中,为了节省人力、时间或硬件资源,提高测试效率,便引入了自动化测试的概念。

为什么用自动化的软件测试

减少软件测试时间与成本改进软件质量
通过扩大测试覆盖率加强手动测试工作
进行手动测试难以完成的、需要更高的成本、更长的计划、更高的质量的任务

软件测试自动化的主要应用

Smoke Test
回归测试
多平台兼容性测试和配置测试改善日常测试的执行
完成手动测试无法完成的工作下班后无人值守测试
性能测试

软件测试自动化的前提条件

实施自动化测试之前需要对软件开发过程进行分析,以观察其是否适使用自动化测试。通常需要同时满足以下条件:

软件需求变动不频繁项目周期足够长
自动化测试脚本可重复使用

软件测试自动化的前期调研

降低什么类型的软件缺陷最重要?
哪套测试活动、测试技术已经被证明对于发现这类测试最重要? 有哪些关键测试需要不断地重复或频繁运行?
哪个测试阶段的成本最高?
哪些测试的附加值最高并且绝对要执行?
是那些投入最多的测试在创造最多的价值么?

软件测试自动化的成本

固定成本
–自动化的可行性分析成本
–工具的选择和收购成本
–雇用熟练的人力资源或培训现有的团队成员
–学习应用/业务流程成本
–试点项目的确定及概念验证

可变成本
–测试脚本和文档维护成本
–自动化测试的基础设施的维修及维护成本
–执行成本

自动化测试工具选择原则

选择尽可能少的自动化产品覆盖尽可能多的平台,以降低产品投资和团队的学习成本。测试流程管理自动化通常应该优先考虑,以满足为企业测试团队提供流程管理支持的需求。
在投资有限的情况下,性能测试自动化产品将优先于功能测试自动化被考虑。在考虑产品性价比的同时,应充分关注产品的支持服务和售后服务的完善性。
尽量选择趋于主流的产品,以便通过行业间交流甚至网络等方式获得更为广泛的经验和支持。
应对测试自动化方案的可扩展性提出要求,以满足企业不断发展的技术和业务需求。
任何一种产品化的测试自动化工具,都可能存在与某具体项目不甚贴切的地方。再加上,在企业内部通常存在许多不同种类的应用平台,应用开发技术也不尽相同, 甚至在一个应用中可能就跨越了多种平台;或同一应用的不同版本之间存在技术差异。所以选择软件测试自动化方案必须深刻理解这一选择可能带来的变动、来自诸 多方面的风险和成本开销。

软件测试自动化的过程

需求收集
测计用例设计与开发
开发自动化测试软件框架和测试脚本
自动化测试脚本的执行和结果报告
程序审查与评估

自动化测试与软件开发过程从本质上来讲是一样的,无非是利用自动化测试工具(相当于软件开发工具),经过对测试需求的分析(软件过程中的需求分析),设计出自动化测试用例(软件过程中的需求规格),从而搭建自动化测试的框架(软件过程中的概要设计),设计与编写自动化脚本(详细设计与编码),测试脚本的正确性,从而完成测试脚本

扫描二维码关注公众号,回复: 2697582 查看本文章

软件测试自动化Framework

什么是框架framework ?

整个或部分系统的可重用设计,表现为一组抽象构件以及构件实例间交互的方法;可被开发者定制的应用骨架。

什么是测试framework?

测试框架是一组自动化测试的规范、测试脚本的基础代码,以及测试思想、惯例的集合。
前者是从应用方面、而后者是从目的方面给出的定义。测试框架也是如此,测试框架出现的最终目的是花少量的资源来完成尽可能多的测试任务,所以测试框架的建立以及框架的重用性方面是最值得测试人员深入探究的地方。
a.公用的对象
不同的测试用例会有一些相同的对象被重复使用,比如窗口、按钮、页面等。这些公用的对象可被抽取出来,在编写脚本时随时调用。当这些对象的属性因为需求的变更而改变时,只需要修改该对象属性即可,而无需修改所有相关的测试脚本。
b.公用的环境
各测试用例也会用到相同的测试环境,将该测试环境独立封装,在各个测试用例中灵活调用,也能增强脚本的可维护性。
c.公用的方法
当测试工具没有需要的方法时,而该方法又会被经常使用,我们便需要自己编写该方法,以方便脚本的调用。
d.测试数据
也许一个测试用例需要执行很多个测试数据,我们便可将测试数据放在一个独立的文件中, 由测试脚本执行到该用例时读取数据文件,从而达到数据覆盖的目的。

软件测试自动化Framework发展

简单的录制/回放:
数据驱动(Data Driven)的自动化测试
关键字驱动(Keyword Driven)的自动化测试组合(Hybird)的自动化测试

录制/回放
由工具录制并记录操作的过程和数据形成脚本,通过回放来重复人工操作的过程。在这种模式下数据和脚本混在一起,几乎一个测试用例对应一个脚本,维护成本很高。而且即使界面的简单变化也需要重新录制,脚本可重复使用的效率低。
优点:学习快,测试人员不需要有太多的编程经验
缺点:应用程序必须达到一定的稳定性.才能开始录制测试脚本;录制的测试脚本与测试数据耦合得太紧 ;密维护自动化测试脚本的成本非常高
数据驱动
从数据文件读取输入数据,通过变量的参数化,将测试数据传入测试脚本,不同的数据文件对应不同的测试用例。在这种模式下数据和脚本分离,脚本的利用率、可维护性大大提高, 但受界面变化的影响仍然很大。
优点:在应用程序开发的同时就可以同步建立测试脚本 ,而且当应用功能变动时 只需要修改业务功能部分;利用模型化的设计,避免重复的脚本,减少建立或维护脚本的成本;测试输入数据 验证数据和预期的测试结果与脚本分开 存放在另外的数据文件里 利于测试人员修改和维护。
缺点:对自动化测试工具里的脚本语言必须非常精通;每个脚本都会对应多个数据文件,这些数据文件需要根据脚本的功能类别存放在各自的目录中,增加了使用的复杂性;在编辑数据文件时 必须注意测试脚本所要求的传输格式,否则会在处理脚本时产生错误
关键字驱动
关键字驱动的自动化测试(也称为表驱动测试自动化),是数据驱动自动化测试的变种,可支持由不同序列或多个不同路径组成的测试。它是一种独立干应用程序的自动化框架,在处理自动化测试的同时也要适合手工测试。
它将测试逻辑按照关键字进行分解,形成数据文件,关键字对应封装的业务逻辑。 主要关键字包括三类:被操作对象(Item)、操作(Operation)和值(value),用面向对象形式可将其表现为Item.Operation(Value)。
关键字驱动的主要思想是:脚本与数据分离、界面元素名与测试内部对象名分离、测试描述与具体实现细节分离。
优点:与手动测试过程非常相似,编写和执行测试脚本只需要很少的编程知识,在大多数情况下,投资回报率可以达到比其他方法更快,在一段时间内,重用性大大增加了;在功能还没有完成的情况下,测试脚本的开发是可能的
缺点:初始设计阶段的成本比较高;测试人员需要学习关键词等,这需要花费一定的时间;前期的培训比较耗时。

Hybird

Hybird这个框架是最常用的实施框架。这是一个所有上述技术相结合,试图发挥他们各自的长处,同时减轻他们各自弱点的框架。比如,以数据驱动的脚本作为输入.通过关键宇驱动框架的处理得到测试结果 完成自动化测试过程。这样可以使数据驱动的脚本利用关键字驱动框架通常所提供的库和工具。这些框架工具可以使数据驱动的脚本更为紧凑.而且也不容易失败。

软件测试自动化Framework—比较

这里写图片描述

FrameWork程序设计原则
•对前提条件进行验证
•能处理各种可能的意外,并对有关设置进行彻 底清除,以不影响后续测试用例的运行
•各测试用例有相对独立性,不相互依赖,便于 进行各种运行组合
•有好的日志
•设计简洁,代码可读性高
•易于运行
•稳定性重于性能
•具有一定的灵活性,能快速适应产品功能设计

Framework–好处

减少冗余代码、提高代码生产率、提高代码重用性和可维护性。
提高开发速度,提升测试代码的执行效率;
提高软件代码质量,同时引入重构概念,让代码更干净和富有弹性;
提升系统的可信赖度,作为回归测试的一种实现方法支持修复后“再测试”,确保代码的正确性。

猜你喜欢

转载自blog.csdn.net/weixin_39757068/article/details/81503814