分层测试

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

  针对第二点,其实对测试是有很大的误解的。对测试来说,会增加一些工作量,但增加的工作量并没有想象的那么多。因为在深层次要做的测试,如果当时没有做,那么在最上层页面测试的时候,相应的用例还是需要跑的;觉得直接从页面测试可以减少测试量的原因,更多的是因为,没有考虑到需求以外的隐藏case,把这些case遗漏掉了。

而相反的,采用分层测试,能够更早更精确的发现各层次上的bug,是可以极大的节约修复bug的返工时间的。

  我们先来看看测试金字塔:

  

从这个金字塔可以看到,最底层单元测试所做的测试时最多,而最上层UI的手工测试是做的最少的。

另外按这个金字塔的设计,除了一小部分的UI做的是手工测试,其他都是采用自动化的方式。从理想情况来说,可以进一步的节约测试时间。

上面是划分比较细致的一种分层测试,更多的时候我们做不到;当前做的比较多的是大头的UI测试,中间多的接口测试,再加上很少的单元测试。单元测试一般是有开发或者专门的测试开发团队来进行,涉及到测试驱动开发、事件驱动开发等。

针对当前比较流行的分层测试,有下面的分层结构:

这其实是一个MVC的结构,分成了数据层面的测试、逻辑层面的测试、还有UI层面的测试

对于现在流行的微服务SOA来说,V就是前端WEB或者APP, C就是中间密密麻麻的各种接口,M就是最下层的数据

我们在测试的时候,不仅要关注需求文档中的需求,还要考虑一些隐藏的需求,以及开发的实现;开发采用不同的实现方式,会产生不一样的测试点

我们要更多的站在用户的角度去考虑用户的使用场景,流程设计是否合理,交互是否顺畅,文字是否有歧义,提示是否明确而友好

开发采用了什么技术,什么框架,设计是否合理,是否高效,是否有扩展性,流程是否可控,是否考虑了异常情况,数据处理是否合理,是否存在性能问题,安全性有没有考虑等等

那么针对上面的分层结构,我们在设计测试用例的时候,需要考虑以下图所示的情况,这只是粗略的,更细致的,还需要根据需求和实现进一步的拓展

最后再来说说分层测试的优点:

1.易定位

  测的哪一层,出现问题,就是哪一层的问题,很明确;但是如果直接从最上层的页面测试,需要一层层的去推演,这个处理过线上问题的人会有比较深刻的体会

2.节约时间

  体现在两个方面。

  一方面,分层测试可以是一个迭代的过程,测试可以提前介入,无需等到最后页面完成后进行测试,缩短整体项目时长

另一方面,问题可以提前暴露,缩减修复bug时查找问题和解决问题的时间。

  举一个例子,假设一个房子,最后验收的时候,发现房子有一点点倾斜,那要查是屋顶的问题,还是墙壁的问题,还是地基没有搭好,最后查出是地基的问题,要修复,极端的例子,可能需要把房子整个拆掉重建;但如果我在搭地基的时候就发现了问题,只要重新搭地基就好了

3.有针对性

  分层测试在用例设计和执行测试的时候,更具有针对性,思维更加清晰,不容易遗漏

4.加强测试对代码实现的理解;可以更好的进行测试技能拓展

原文地址:https://www.cnblogs.com/qixiafeng/p/10718053.html

时间: 2024-10-10 10:32:13

分层测试的相关文章

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

关于前后端分层测试,也就是常说的是否需要对于前段和后端分开测试,专门的测试人员负责前段页面测试,专门的测试人员负责后端接口和工具测试 谈到这个问题,首先要说目前的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测试分享-问题和挑

分层测试_有赞项目实践

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

分层测试_基本思想

按照V模型进行划分层次: 单元测试 模块测试又称组建测试,集成测试 系统测试 unit层的测试对象是函数或方法: service层的测试对象是模块和接口: UI层的主要测试对象是展示和交互 unit层的测试策略: 1.代码走查:开发人员自己检查自己的代码 2.代码评审code review:开发团队组织评审会,应避免走马观花,应注重效率 3.单元测试:自动化单元测试,编写测试代码或使用测试工具,缺点:入门门槛高,没有好的实践方法(覆盖率和编写标准),则可能无法推行,最终沦为鸡肋或是诟病.优点能今

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

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

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

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

使用分层的Selenium框架进行复杂 Web 应用的自动测试

Selenium概述 Selenium是一种Web应用的自动测试工具,通过模拟用户对Web页面的各种操作,可以精确重现软件测试人员编写的Test Cases步骤.Selenium包含三个工具:Selenium-IDE,Selenium-RC以及Selenium-Core.其中,Selenium-Core是驱动Selenium工作的核心部分,作为一个用JavaScript编写的测试引擎,它可以操作Web页面上的各种元素,诸如:点击按钮.输入文本框,以及断言Web页面上存在某些文本与Web元素等.

有赞分层自动化测试实践

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

测试架构师修炼之道:4 如何才能制定好测试策略

测试架构师修炼之道:4 如何才能制定好测试策略 2016-08-18 目录 1 理解测试策略  1.1 什么是测试策略?  1.2 测试策略等于测试方针?  1.3 测试策略等于测试计划?  1.4 测试策略等于测试方案?2 四步测试策略制定法  2.1 明确“产品质量目标”  2.2 进行“风险分析”  2.3 适配“产品研发流程”  2.4 进行“测试分层”  2.5 “四步测试策略制定法”中的测试技术3 产品质量评估模型  3.1 优秀的产品质量评估模型的特征  3.2 软件产品质量评估模