测试自动化:关注服务层测试

测试发展至今已十年有余,测试的工作也越来越受到各方面的重视,对于测试人员的要求也越来越高,据不完全统计,目前测试项目自动化要求已经接近5成,自动化测试已经在测试行业中占据了相当的地位,而开展自动化测试的要求也越来越高,那么就更加需要测试人员能力的提升,所以今天就为大家分享部分关于自动化的内容

众所皆知,测试应该自动化。敏捷强调要实现测试自动化,但是我们往往都做的不够多、不够快、甚至可能根本没有做。我认为,测试自动化不足的主要原因之一是因为我们关注错了自动化的层次。大多数团队都把精力集中在单元测试和UI测试上,却忽略了服务层测试。

为了说明为何服务层测试如此有价值,让我们仔细观察下测试自动化金字塔的每一层。

单元测试

单元测试构成了测试自动化金字塔的基础。因此,它应该是可靠的测试自动化策略中的最大部分。自动化的单元测试是非常棒的,因为它能够向程序员提供具体的错误数据

例如,自动化的单元测试报告说“在第56行有一个BUG”,那么程序员可能就真的会在62行附近找到这个BUG,相对而言测试人员只能告诉“在你从数据库中检索成员记录的过程中出现了BUG”,这意味着你可能需要在1000行以上的代码中查找这个BUG,自动化的单元测试的优越性就在于它能够大大缩小对缺陷存在范围的定位。此外,由于通常采用与系统开发相同的语言编写,所以程序员更适合编写单元测试。

UI测试

相比之下,我们想尽可能少的做UI自动化测试。为什么?因为UI自动化测试更加脆弱、昂贵和花时间。例如,假设我们希望测试一个非常简单的计算器,这个计算器允许用户输入两个整数,点击一个乘或者除按钮,就能够看到运算结果。

如果要通过UI进行测试,我们需要编写一系列的测试脚本来驱动UI,例如往各字段中输入适当的数据,按动乘或除按钮,然后比较期望数值和实际数值。这种测试有用,但是并不理想。

此外,用这种方式测试一个应用是部分冗余的——思考一下这样一套测试需要对UI进行多少次测试。每个测试用例都调用了乘除按钮相关的代码和进行函数运算的代码,每个测试用例还会测试显示结果的代码,等等。像这样通过用户接口进行测试,是非常昂贵的,应该尽量少。

服务层测试

然而这并不意味着我们不需要对特性进行测试。我们需要是找出一种合适的方法来避开UI执行测试,这就是测试自动化金字塔中服务层测试的由来。在我们采用的这种测试方法中,“服务”是指应用程序对某个输入或者某一套输入做出的响应。

在我们的计算器例子中涉及到两个服务:乘法和除法。服务层测试就是独立于用户界面外对应用程序服务进行的测试。因此如果要测试十几个乘法测试用例,我们不通过计算器的用户界面而是通过服务层来执行这些测试用例。与在用户层执行同样的测试用例相比较,这样做更加有效而不繁琐。

自动化的单元测试是非常棒的,但它只能覆盖应用程序的部分测试需求。UI测试通常是必须的,但是应当少量使用。服务层测试弥补了单元测试和UI测试间的空白;以更小的工作量和成本满足了团队的自动化测试需求。

虽然很想说希望本篇文章能对大家有所帮助,但是单一浏览一篇文章能获取的知识毕竟是有限的,还请大家理性看待,可能我总结的知识存在片面性,大家有什么好的方式方法也请在评论区中留言大家交流,最后希望大家能在测试的路上畅通无阻

好了,你们看完了文章,我也给你们分享一下资料。

接口测试相关资料

链接:https://pan.baidu.com/s/1ojpoWnpxxReR1sO2Gxy_YQ 密码:dgfa

性能测试相关资料

链接:https://pan.baidu.com/s/1_oZhvOIRvcz0JGcCWUGT-g 密码:d82b

软件测试入门提升电子书

链接:https://pan.baidu.com/s/1Fp8CFE0D2p0uAZk6xcexhQ 密码:exna

自动化测试相关资料

链接:https://pan.baidu.com/s/1yeD1EMg-HalNuRBDODGx7g 密码:ofdg

原文地址:http://blog.51cto.com/13848818/2335449

时间: 2024-10-09 17:23:55

测试自动化:关注服务层测试的相关文章

如何在敏捷世界中实现高效的测试自动化

敏捷中的自动化是非常关键的. 想想在每个Sprint中添加和交付的许多特性.必须有一种方法来确保新添加的特性不会影响现有功能. 由于短跑持续时间较短,因此几乎不可能在每次产品在Sprint末端增加时执行整个套装.拥有一套自动测试服肯定会在这里扮演更重要的角色. 然而,引入自动化并使其成熟肯定需要一段时间.从长远来看,在规划和设计自动化活动方面进行初步投资肯定会有回报. 在敏捷中自动化什么?每当我们计划在我们的项目中引入自动化时,我们中的大多数人都会立即投票选择"烟雾测试服"或"

测试自动化的误区--转自偶像(虫师)

自动化测试作为软件测试的一种技术手段,时常被大家讨论.本人在自动化技术方面有过略有小成,今天聊一聊关于自动化的一些误区,以帮助新手能正确的了解和认识自动化一些概念. 测试的行为本质是什么? 为什么先从这个概念开始谈起,因为对于新手来说,总是把自动化看得很高端和复杂. 先来看看功能测试如何进行的:编写测试用例,测试用例当中最主要的是测试步骤和预期结果:测试人员根据测试用例执行操作步骤,然后通过眼睛和思考判断实际结果与预期结果是否相等.如果相等,测试通过:如果不相等,测试失败. 自动化测试要做的事情

为了可持续的测试自动化,透过表面看本质(译)

当提到可接受的测试自动化,最重要的一步是在适当的位置有一个适当的测试自动化团队框架.这篇文章对一些不同的自动化测试适用场景有一些已证明的项目——由一个自动化或者回归团队主导,以敏捷的适应性——帮助组织享受长期的测试自动化的成功. 公司发起一项新的测试自动化倡议——任何销售人员设计销售相关的工具——倾向认为他们的成功取决于完美的上线.作为一个测试自动化顾问,我喜欢提供一个真实的基于我在领域里所见的检查.如果你没有准备好,最初的上线可能是坎坷崎岖的路,但是在长期中,那不是要制造而是破坏你的测试自动化

Android WebApp & NativeApp 适配测试自动化平台GoGo实现 东海陈光剑

Android WebApp & NativeApp 适配测试自动化平台GoGo实现 东海陈光剑 2014年3月6日 18:27:55 源代码: https://github.com/universsky/AndroidAutomationTestUniverssky.git GoGo平台架构: 运行结果: http://10.73.72.122:88/report.html?run_stamp=20140306052855&sec=336&min=5 http://10.125.

自动化测试之python----selenium测试环境搭建

自动化测试使用python灵活性很强,而且语言容易入手,对于测试工程师来讲非常适用的一种语言,目前主流的也是python来写脚本实现web.接口等测试自动化. 自己在自动化领域经过大量的摸索和实践,积累了一些经验,以后慢慢的在博客给大家分享. 下面先介绍测试环境的准备: 一.首先下载安装pyhon及setuptools(现在py基本都用3.0了,当然有一部人还在用2.7版本) 官网下载python地址:https://www.python.org/ftp/python/3.6.1/Python-

android客户端应用(native app)适配测试自动化 东海陈光剑 2014年5月5日 0:39:04

未命名 android客户端应用(native app)适配测试自动化 东海陈光剑 2014年5月5日 0:39:04 http://10.125.1.58:88/report.html?run_stamp=20140428054354&min=3&sec=214 <!doctype html><html><head>    <meta charset="UTF-8">    <title>适配测试报告<

安卓自动化业务层测试接口

安卓自动化业务层测试接口 阅读前需知的基本知识: 1. uiautomator 脚本的执行通过shell命令调起执行,向执行的方法传递参数也是通过shell命令 2  调起的执行方法所在类必须要继承UIATestCasel类 3.  调起方法内部,职能通过bundle获取外部传递的参数,而不是通过函数参数的方式传递 抛出问题: 在新的自动化测试框架中,业务层属于API层级,非继承于UIATestCasel类(com.android.uiautomator.testrunner.UiAutomat

Windows Phone 8 测试自动化初探 (利用Coded UI)

前言 Windows Phone是个相对新的的平台,目前应用的数量少,相同应用的功能实现度也不如iOS和Android. 那么在Windows Phone上面的自动化测试的解决方案有什么? 目前就msdn来看,SeeTest是微软推荐的测试方案. 大家知道微软在VS里面集成了自动化测试工具Coded UI,那么Coded UI除了能测Windows, Web应用,它能不能支持Windows Phone应用呢? 利用Coded UI做Win Phone自动化的过程 利用Coded UI是可以做Wi

一次曲折的竞品测试自动化之路

前两天接到一个活,对一款竞品的OCR识别结果进行分析统计,要对两万多张图片进行识别,然后统计各个字段的识别正确率,对于手动测试来讲,这基本上是不可能的. 接到这活后立刻想到以下思路:对竞品代码进行反编译,在关键节点插入自己代码,对竞品选择图片和识别结果进行记录,然后自动化驱动模拟手动测试就行了,这是最快的解决方案.下午搞定,晚上挂上手机第二天就坐等结果了,可反编译后修改完代码编译打包失败,即使反编译后不进行任何代码修改重新打包都失败,以前遇到过类似的包,也google过原因和解决方案,没有很好的