测试设计和测试金字塔

原创 2016年08月28日 23:35:39

由于移动app的市场竞争很激烈,所以app的迭代通常会很频繁,而且app的发布周期也不会很长。这就给测试人员在短时间内全面地测试app带来了很大的挑战。
面对这种情况,很显然,不断地增加手动测试人员和加班不是一个有效的解决办法,而自动化测试是一个不错的选择。
对于自动化测试,很多项目经理甚至测试人员都有误解,认为自动化测试越多越好。从某种程度上说这种理解是对的,但是我们不能只是一味地添加基于界面的自动化测试,而是需要对app的自动化测试进行设计
- 测试设计和测试金字塔
在测试设计时最主要依据的就是测试金字塔的测试结构。
这里写图片描述
大家都明白,如果在项目临近发布才开始测试并发现缺陷,这样修复缺陷的成本就会很高,项目的进度也会很不确定。所以,就开发阶段来说,如果测试分层,在不同的开发阶段都进行测试,能很大程度上缓解这些问题。
这里写图片描述
测试金字塔
测试分层的优势:
- 测试的成本
从经验不能看出,单元测试的开发成本要远低于用户界面的测试;如果在用户界面的测试中发现缺陷,修复缺陷的成本也是远远高于通过单元测试和的成本。这里说所的成本并不单纯只是开发人员修复缺陷所需的资源和时间,还包括了修复缺陷后测试人员进行回归测试所需要的资源和时间,以及项目延期等其他的项目成本。
- 测试的效率
用户界面测试需要准备数据和相关的系统,还需要在客户端/app中进行渲染,很可能还需要预先执行一些诸如登陆账户之类的操作,才能对测试用例进行验证,所以话费的时间比较长,得到的执行结果也比较慢,反馈周期长。
而单元测试能很快地验证很小的功能或者方法是否运行正确。而且单元测试运行时间段,反馈也及时。
- 缺陷定位的难易
显然,单元测试如果失败了,测试人员很容易知道被测试的特定功能或者方法不正确;而如果是用户界面的缺陷,测试人员就需要花费更多的时间来进行排查,确定出现问题的功能模块,最后再进一步地发现需要修复的功能和方法。
基于以上三条,或许会认为底层的测试,例如单元测试比用户界面测试要好,其实不然,单元测试固然有自己的优势,但是不代表只要有单元测试就可以了,因为其他层级的测试也有不同的用途。
- 反映真实的业务需求
通过单元测试如法从全局观的角度了解系统模块之间的交互,也无法通过方法的组合帮助用户完成业务目的;而由于用户界面的测试描述的是从用户角度出发的用户使用场景,因此可以更容易地阐述用户的行为和业务需求。
- 更加接近业务
由于用户界面测试描述测试的阶层更高,所以也就更接近业务;而单元测试描述测试你的层级更具体,也就更接近与实现。从测试金字塔的5层分布来看,不同层级的测试都很有必要,而我们也需要根据不同的测试所处的层级及其特点进行测试设计。

你需要了解的前端测试“金字塔”

(点击上方公众号,可快速关注) 作者:oschina www.oschina.net/translate/the-front-end-test-pyramid-rethin...

你需要了解的前端测试“金字塔”

如果您正在测试前端应用程序,则应该了解前端测试金字塔。 在本文中,我们将看到前端测试金字塔是什么,以及如何使用它来创建全面的测试套件。 前端测试金字塔 前端测试金字塔是一个前端测试套...
  • hj7jay
  • hj7jay
  • 2017年11月28日 09:59
  • 115

从1个中心到5个要素——金字塔与软件测试

埃及金字塔的神秘,不仅是因为它的规模宏伟、结构精密,而且它的兴起和演变至今只是一个传说,成为千古之谜。而软件测试,也感觉和金字塔有一种神秘的关系,为什么这样说呢? 金字塔中有神奇的黄金分割数Φ,...

关于对测试金字塔的理解收获共享

前段时间去了51testing听了2天课,讲课老师是从微软外聘的,中间提到一个测试金字塔的问题,把我原来的一些疑惑、观点进行了很好的解释和印证,赶紧把收获共享一下。...

OpenCV:金字塔Lucas-Kanade光流测试代码

#include #include #include #include const int MAX_CORNERS = 500; int main(int argc, char** argv...

软件测试的金字塔体系--从1个中心到5个要素

软件测试的金字塔体系--从1个中心到5个要素 很小的时候就对埃及的金字塔感兴趣,不仅是因为它的规模宏伟、结构精密,而且它的兴起和演变至今只是一个传说,成为千古之谜。这其中就有神奇的黄金分割数Φ,其值...

金字塔与软件测试

埃及金字塔的神秘,不仅是因为它的规模宏伟、结构精密,而且它的兴起和演变至今只是一个传说,成为千古之谜。而软件测试,也感觉和金字塔有一种神秘的关系,为什么这样说呢? 金字塔中有神奇的黄金分割数Φ,...

移动APP测试用例设计的关注点

1. 应用的启动和停止 1.1 首次启动 是否出现欢迎界面,欢迎界面的停留时间合理,欢迎界面后是否正常进入应用; 首次启动时间是否合理; 该拉取的信息是否正确; 桌面图标...

对缓存的理解,设计,与测试

为什么要有缓存? 我想这个词来自于缓冲,即可以让系统喘口气儿,别一下子把系统打垮。当然有时候也不至于打垮,而是为了提升,因为系统每1MS的提升, 都是用户体验的直接变现。 缓存概念其实很广,有磁...

程序设计之二:测试你活了多少天(C)

今天看到一个网页,其功能是计算一个人从出生到今天,共有多少天,然而多次尝试,均提示输入格式错误,便萌生了自己用C语言写这个程序的想法。本程序实现的基本思想:采用控制台方式输入生日,并将该数据赋给一个结...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:测试设计和测试金字塔
举报原因:
原因补充:

(最多只允许输入30个字)