分层测试_基本思想

按照V模型进行划分层次:

单元测试

模块测试又称组建测试,集成测试

系统测试

unit层的测试对象是函数或方法;

service层的测试对象是模块和接口;

UI层的主要测试对象是展示和交互

unit层的测试策略:

1、代码走查:开发人员自己检查自己的代码

2、代码评审code review:开发团队组织评审会,应避免走马观花,应注重效率

3、单元测试:自动化单元测试,编写测试代码或使用测试工具,缺点:入门门槛高,没有好的实践方法(覆盖率和编写标准),则可能无法推行,最终沦为鸡肋或是诟病。优点能今早的执行,降低测试成本,复用性好,可反复执行

service层的测试策略:

自动化的组件测试,

自动化的集成测试

自动化的API测试

与单元测试比较:运行速度慢,测试环境搭建困难,case数量较少,

UI层的测试策略:

手工测试:纯手工测试执行速度慢,无法重复使用

自动化测试:稳定模块

与其它层面的测试比较:自动化开发难度大,运行速度慢,测试环境搭建困难

对应自动化测试形式:

Automated Unit Tests代表的是unit层

Automated Component Tests(自动化组件测试)/Automated Integration Tests(自动集成测试)Automated API Test(自动化API测试)代表的是service层

Automated GUI Tests代表的是UI层

分层测试的优势:

单元测试尽量多做,UI级的测试可以少做一点;

UI测试难度相对较大;

UI测试更接近于真实用户;

手工UI测试只占据了塔顶一点点的位置,而大部分的测试工作是手工测试人员所难以介入的,这让只会手工测试的同学有一定的危机感;

开发人员是质量保障的最关键因素,因为测试金字塔的大部分测试工作都需要开发或者是具备开发技能的同学去完成;

正三角是稳固的,如果按照测试金字塔的模型去组织测试工作的话,在一切相对正常的情况下,产品/项目/系统的质量是处在可控的状态下的。

现实生活中能做到正三角的团队往往是少数,大部分测试同学接触到的团队应该是倒三角的,也就是没有或只有少量的单元测试,随心所欲的做一些接口测试,把大量的人力集中在UI测试。这样的产品质量往往难以控制或者需要花费大量的时间和人力成本才能控制。

前文也提到过伟大的产品刚横空出世的时候往往是没有单元测试和UI自动化测试的,但这些产品刚发布时的质量却是可以接受的或者甚至是优秀的,这是为什么呢?这是因为伟大的产品往往由天才的开发者创建或实现,天才的代码在不做单元测试的情况下也是质量可期的,这就等于是测试金字塔的最底层相当牢固,整个产品质量就自然由保障了;另外这些产品发布的初期规模也相对较小,也比较难出现一些在频繁协作过程中会出现的问题(比如修改了不是自己写的代码而造成了缺陷),规模小质量控制起来也相对容易些。

总而言之,如果你的产品/项目/系统的开发团队大部分人都不是天才而且需要进行频繁协作的话,按照测试金字塔模型去做可能是一个比较好的方式。另外很多伟大产品刚发布的时候也是没有测试人员的,这是不是说明没有专业的测试人员参与的情况下,产品的质量也是可以很好的控制的呢?我相信各位读者都有自己的答案。

原文地址:https://www.cnblogs.com/TomBombadil/p/11122368.html

时间: 2024-10-10 10:32:14

分层测试_基本思想的相关文章

分层测试_有赞项目实践

1. 背景 先理一下自动化测试的概念,从广义上来说,一切通过工具(程序)的方式来代替或者辅助手工测试的行为都可以成为自动化.从狭义上来说,通过编写脚本的方式,模拟手工测试的过程,从而替代人工对系统的功能进行验证. 有赞是一家互联网行业的创业公司,测试起步较晚,发布非常频繁,就算每次只回归核心功能,对人数极少的几个测试人员来说工作量巨大,且基本是重复劳动,极其枯燥,持续时间长了也容易出错. 所以初期我们测试自动化切入的思路非常简单:从实际用户的角度出发,模拟真实的操作,替代现有的手工测试用例的执行

关于前后端分层测试的思考

关于前后端分层测试,也就是常说的是否需要对于前段和后端分开测试,专门的测试人员负责前段页面测试,专门的测试人员负责后端接口和工具测试 谈到这个问题,首先要说目前的web(app)端展现形式基本都是前段负责展现数据和少量的逻辑,数据来源是接口和工具,但是该种方式并不是说前后端分开比不分开要好 个人认为,前后端集成测试与分开测试占比应该7:3的关系,即我们在测试过程中,可以按照以下方式: 1.正向(反向)和可以从前端发起的逻辑(与后端接口有关系)可直接从页面集成测试,检查点是页面展现,数据逻辑,数据

转:google测试分享-分层测试

原文: http://blog.sina.com.cn/s/blog_6cf812be0102vctg.html 上一次分享了google测试分享-SET和TE,有一些自动化测试的细节没有说清楚,那这次会把google的分层自动化测试描述的更详细. 为了让这些blog分享更有逻辑性,我打算分几个专题来分享google测试相关的测试理念. google测试分享-SET和TE google测试分享-分层测试 google测试分享-GTA google测试分享-测试经理 google测试分享-问题和挑

软件测试_Loadrunner_APP测试_性能测试_脚本优化_脚本回放

本文主要写一下在使用Loadrunner录制完毕APP脚本之后如何对脚本进行回放,如有不足,欢迎评论补充. 如没有安装Loadrunner软件,请查看链接:软件测试_测试工具_LoadRunner: 如不清楚如何使用Loadrunner录制APP脚本,请查看链接:软件测试_APP测试_性能测试_脚本录制_基本操作流程: 先决条件:已录制完毕APP操作脚本.(我这里是录制了上传图片并查询的操作) 一.录制完毕脚本之后,点击保存.就能进入脚本优化界面,如下图: 二.然后点击上部菜单栏中的Script

分层测试

最近在工作过程中遇到产品.测试对分层测试有些疑惑,这还只是因为我想在过程中增加接口层面的测试.有这些疑问很正常,以前也经常遇到.疑惑具体到当时情况,我理解有两点,一个是开发不想迭代提交,如果要增加分层测试,对开发有额外的要求,比如方法说明,比如概要设计.详细设计.接口规范等,是有额外的工作量的:还有一点是说,既然可以直接从页面上进行测试,那不是更简单吗,何必要在深层次上做更多的测试呢,这不是增加了工作量? 针对第二点,其实对测试是有很大的误解的.对测试来说,会增加一些工作量,但增加的工作量并没有

随心测试_软测基础_009<测试对象&方法>

目标:认识不同的测试级别(阶段) :被测对象   与  测试方法 之间的关系 核心内容如下: 不同的测试阶段,被测对象的不同,选取的测试方法不同(综合选取) 不同的测试阶段,测试主体也不同 同一款软件,在不同的阶段,表现形式侧重点不同 随心测试_软测基础_009<测试对象&方法> 原文地址:https://www.cnblogs.com/xqsxtest/p/11158282.html

经典书籍_编程思想篇

java编程思想3 http://download.csdn.net/detail/shenzhq1980/9076081 Java编程思想第4版http://download.csdn.net/detail/shenzhq1980/9076083 重构_改善既有代码的设计 http://download.csdn.net/detail/shenzhq1980/9076111 CodeComplete1(代码大全)中文版 http://download.csdn.net/detail/shenz

(十)扩展库之 SeleniumLibrary 分层测试

发布时间 2017年9月28日 虫师 这一节来介绍分层的概念,在编写自动化测试时经常会遇到重复的操作,分层的概念就是把重复的操作封装成 "用户关键字",这样就可以减少冗余. 百度搜索实例 同样以百度搜索为例,当我们多个用例都是使用百度搜索,只是每次输入的关键字不一样,那么就可以对百度的搜索操作进行封装. *** Settings *** Documentation Simple example using SeleniumLibrary. Library SeleniumLibrary

如何利用分层测试概念设计针对性测试用例

一 除了纯后台测试或者纯接口测试外,我想大部分人都会接触业务测试,至少我们目前的客户端产品测试就是这样. 之前和我们组客户端测试同学沟通,总是会发现大家用例的关注点大部分都集中在业务逻辑的覆盖上,对具体逻辑的实现,以及底层实现原理的关注偏少. 这样做其实并没有错,用例不就是覆盖需求的么?而需求就是我们说的业务逻辑呀. 但是仔细想一下双 V 模型就会发现,我们缺少了概要设计(集成测试)和详细设计(单元测试)的阶段,直接进入了系统测试,而要求大家在系统测试阶段考虑单元测试和集成测试的点,确实不是每个