测试设计和测试金字塔

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

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

版权声明:

相关文章推荐

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

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

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

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

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

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

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

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

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

原文链接:http://www.programmer.com.cn/11712/       埃及金字塔的神秘,不仅是因为它的规模宏伟、结构精密,而且它的兴起和演变至今只是一个传说,成为千古之...

金字塔与软件测试

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

15款最佳的响应式 Web 设计测试工具

响应式网页设计是根据设备的屏幕尺寸,平台和方向来开发的网页,是一种对最终用户的行为和环境作出反应的方法。响应式设计使用灵活的网格和布局,图像和智能使用 CSS 媒体查询的组合。当从它们在不同设备使用的...

软件安全性测试设计的基本原则

2015年3月2日 百度了下网上已有的同类话题,讲的有些笼统。这里将我日常工作中涉及到的细化一下,以备忘。 1. 最小授权 只授予每个用户/程序在执行操作时所必须的最小特权。这样可以限制事故、错误、攻...

线程池的设计与测试

编写了一个最基本的线程池类,处理用c_work表示的工作任务。C++还很不熟练,欢迎会C++的提出宝贵的修改意见。 程序有注释,所以应该很好读懂。测试程序在下面。 [cpp] ...

我来设计(二):测试数据生成工具

我来设计(二):测试数据生成工具 生成测试数据的方法有很多种,在这里除了介绍测试数据的生成方法, 还会介绍不要机械理解测试数据仅仅就是随机就可以了,所谓的随机策略也可能会影响到你的业务程序。 地...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

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