ui自动化测试的意义与理解

分层测试的思想

分层测试(有的也叫测试金字塔)是最近几年慢慢流行、火热起来的,也逐渐得到了大家的认可,大家应该已经比较熟悉分层测试的思想了,不太了解的可以自行找一些相应的渠道去补充一下上下文的知识。

总的来说测试需要有层次感,不同层面的测试需要不同形态的测试方法来保证其质量。

分层测试的思想把测试分为3层:

* unit test层:可以简单的理解为白盒测试层。测试的对象是代码,测试工具一般为相应语言对应的单元测试框架,通过各种断言来判断代码的逻辑是否符合预期。

单元测试用例一般是从代码中演化出来,先写代码,再对代码进行测试。单元测试一般是由开发来做的,测试同学可以做,但很有挑战。

* service test层:可以简单理解为接口测试,注意这个接口可以是代码级的接口和服务间通信的接口,但是针对代码的接口做的测试一般可以理解成是白盒测试,

可以放在unit test层,测试同学所做的接口测试一般指的是服务间接口的黑盒测试,从目前趋势发展来看,这一层基本上需要自动化去实现。

* 功能测试层:如果被测对象有ui的话,手工测试就是点来点去,自动化测试就是代替人工点来点去,然后进行断言。这一层测试的自动化成本最高,挑战最大。

自动化测试如何保证质量

ui自动化测试的难度是最高的,实现和维护成本都很高,哪怕是用selenium来实现。

   那么自动化测试能不能保证项目的质量呢,答案是肯定的。

   自动化测试可以反复迅速的执行一些测试用例,从而降低执行的成本,提升了回归的速度,可以让团队把回归的精力放在另一些不合适用自动化测试去实现的

测试用例上。好搞定的问题让机器去搞定,难搞定的问题用人去搞定。

如何选择自动化测试用例  

自动化测试用例就是功能测试用例,建议简单的功能测试用例尽量用自动化去实现。因为简单的测试用例往往都有回归的必要,如果测试同学总是机械的回归

这些手工测试用例的话,那么工作注定是痛苦的。

所以建议核心功能,也就是用户经常用的功能尽量覆盖。

简单的功能尽量覆盖。

正常的情形尽量都覆盖,异常场景有选择性的覆盖,时间不够可以不用覆盖。

如何衡量自动化测试的效果

自动化测试的效果如何来衡量呢?在这里给出两个建议的方案:

* 回归速度的对比:以前全量回归要x天,是否有提升;

* 核心及常规功能的线上bug遗留数:以前核心功能和常规功能的线上bug数是xx,现在是xx,是否有提升;(这里多叨叨一句,自动化执行回归测试不一

定能多发现bug,但可以节约时间让我们测试同学有更加充足的时间去进行新功能的测试,从而减少线上bug数)

另外有些团队喜欢计算自动化测试的投入和产出比,比如投入2个人花了1个月时间写了300个测试用例,而bug数没有明显的降低。这是有可能的,因为自动

化测试用例并不能发现新bug。所以在计算投入产出比的时候,一定要加上运行次数的计算。300个测试用例如果能运行20次就是3000个,而手工测试人员需

要花2个人1个月的时间去执行6000个测试用例,这样一算投入的成本其实就不高了,加上自动化测试带来的人员增值,实际上产出是大于投入的。

#--------------------------------------------------------------------------------华丽的分割线----------------------------------------------------------------------

嘻嘻,篇后语,希望每个测试团队都能正视并合理运用自动化测试技术,提高效率,提升产能!!!

    

时间: 2024-10-12 00:00:52

ui自动化测试的意义与理解的相关文章

Android Espresso(UI自动化测试)的搭建

Espresso是Google官方提供的Android UI自动化测试的框架. 为什么叫Espresso(浓咖啡),好像是想让Android码农们轻松的写完自动化用例后能享受着咖啡,看着自动化测试"飞". 这是Espresso官方的地址.另外,也推荐大家看这个YouTube上关于Espresso环境搭建的短视频. Espresso环境搭建 下面将基于Android Studio,介绍如何搭建Espresso. 1. 在Android Studio中新建一个Project; 2. 修改P

[转]Android UI 自动化测试

介绍 Android测试支持库包含UI自动化模块,它可以对Android应用进行自动黑盒测试.在API Level 18中引入了自动化模块,它允许开发者在组成应用UI的控件上模仿用户行为. 在这个教程中,我将展示如何使用此模块来创建和执行一个基本的UI测试,选择默认的计算器模块进行测试. 先决条件 在使用前,需要具备以下条件: 最新版本的Android Studio 运行Android 4.3或者更高版本的设备或者虚拟器 理解JUnit 1. 安装依赖库 工程中使用UI自动化模块,需要编辑你的工

软件测试培训 UI 自动化测试详解

软件测试培训小编有好久都没有跟新软件测试,从今天开始,小编会逐渐把这部分知识给大家补上!今天这篇文章给大家介绍的是: UI 自动化测试 互联网产品的迭代速度远高于传统软件,尤其是移动APP不但更新频繁,还需要在不同硬件.系统版本的环境下进行大量兼容测试,这就给传统测试方法和测试工具带来了巨大挑战.为满足产品敏捷开发.快速迭代的需求,自动化测试逐渐流行起来.自动化测试是把以人为驱动的测试行为转化为机器执行的一种过程. 自动化测试的优点很多,简单罗列几条:避免重复工作.提高测试效率.保证每次测试地一

转:对UI自动化测试的一些感悟

不断发掘自动化测试对各个团队的附加价值,这样才能得到来自四面八方的支持,没有将自动化加入项目过程的自动化都达不到预期的效果. UI自动化框架 把UI自动化框架设计成一个拼图性质的架构.把每个特性都设计成一个独立的部分,然后组装成UI自动化框架: (appium/webdriver)底层操作封装特性 Page Object特性 测试用例管理特性 测试执行引擎特性 测试报告管理特性 测试数据管理特性 keyword特性 自动化原则: 1.选择重点业务 2.选择较稳定的版本业务 3.目标是保证主要功能

APP的UI自动化测试框架及平台化探索

顾铮,10年+测试及测试开发相关经验,2014年加入京东,曾主导设计开发UI测试框架,参与CI测试平台建设,现负责iOS侧的工具,框架建设.在UI自动化,性能测试,单元测试方面有较深入研究,在App,web端等有较丰富的测试开发和设计经验. >>>> 写在前面 关于UI测试的文章,多数是通过架构的演进,或是重构,或是推翻重做来讲述的.今天我想讲述我的"一步到位"的测试框架设计.当然,这个"一步到位"是加引号的,并不是说没有持续的优化或改进,而

浅谈UI自动化测试

1.about自动化测试 定义:把人为驱动的测试转化为机器执行的一种过程,重点在于持续集成这个概念: 优势:节约人力和时间成本: 测试金字塔: 如上图所示,敏捷大师Mike Cohn提出该概念,然后由Martin Fowler大师在此基础上提出了测试分层概念,以区别于传统的自动化测试. 2.自动化测试分层 单元自动化测试(数据处理层):指对软件中最小的可测试单元进行检查和验证,一般需要借助单元测试框架,如java的Junit.TestNG,python的unittest,常见的手段是code r

UI自动化测试

1.about自动化测试 定义:把人为驱动的测试转化为机器执行的一种过程,重点在于持续集成这个概念: 优势:节约人力和时间成本: 测试金字塔: 如上图所示,敏捷大师Mike Cohn提出该概念,然后由Martin Fowler大师在此基础上提出了测试分层概念,以区别于传统的自动化测试. 2.自动化测试分层 单元自动化测试(数据处理层):指对软件中最小的可测试单元进行检查和验证,一般需要借助单元测试框架,如java的Junit.TestNG,python的unittest,常见的手段是code r

如何提高UI自动化测试的质量

背景 项目是基于Ruby on Rails开发的web程序,应该说项目中的测试实践是很好的,具有高覆盖率的单元测试以及比较合理的集成测试.存在的问题是,所有的单元测试和集成测试都是针对后端代码的,前端的JavaSript代码没有单元测试(这个是有历史原因的,暂时没法改变).这也就意味着针对前端UI的修改是没有底层的单元测试来保障的,只能依靠高层级的UI自动化测试和手工测试来保障. 我们最近刚刚完成了一个story,是纯前端的开发工作,结果在上线后发现我们在修改页面模板文件时,忘记了其他地方也在使

Mac下的UI自动化测试 (上)

在我看来,实现UI自动化测试的过程一向都是令人快乐的事情,而维护它们就是跟噩梦一样了,尤其是对每次CI产生的build进行BVT测试,由于开发不会告诉你任何UI的变化,那么你拿到的测试结果就势必会一片红了.但是对于界面相对稳定的项目,有大量回归测试需要进行的项目,实现UI自动化的投资回报率还是很高的. 最近我实现了公司一个产品在Mac OSX上的UI自动化测试,下面就把具体的细节写出来. 首先,选用的是由 MIT 研究团队发布的图形化编程技术 Sikuli,它以图像检索为基础,提供了一套基于 J