美文网首页
软件质量思考(一)测试金字塔

软件质量思考(一)测试金字塔

作者: taocore | 来源:发表于2020-02-13 14:27 被阅读0次

软件的质量该如何定义呢?衡量软件的质量可能有很多维度,我们这里不想那么学术。但你可以想象,糟糕的软件质量体现在哪里?从开发者的角度看,基本体现在两方面:

  1. 不好读懂
  2. 不好维护

当然,读懂是维护的前提,代码都看不懂,该怎么改呢?即便是读懂了,你就敢改吗?你怎么确认自己改得没问题呢?有没有引入新的bug呢?对!测试!

说起测试,你头脑中浮现的是什么画面呢?点开界面,点几下鼠标,确认结果是否复合预期。嗯,这个是手工测试。然而手工测试成本太高了。如果,软件不需要频繁改动,几次测试可能就够了。可惜,需求在变,不频繁改动并不现实。但若每次改动都手动回归,工作量是巨大的。

这时,我们想到自动测试。但怎么做自动测试呢?通过写脚本,模拟人工点击?这样的测试跟手工测试的覆盖面一致,都关注软件外在的表现行为,同属端到端测试,也叫验收测试。这个技术上是可以实现的,可惜成本几乎比手工测试有过之而无不及。为什么?因为UI是软件架构的最外层,改动的可能性最高。即便不考虑UI变动可能行,如果测试框架不能做到分辨率无关,也很难兼容不同的UI环境。

此时,我们可以向内推一层。如果架构分层够清晰的话,我们可以直接对接口进行测试。接口比UI稳定多了。如果接口是团队间协作的协议,并且接口由客户方定义,甚至给出测试用例,则被称为消费契约测试。然而,这是集成测试的一种,需要开启被依赖的服务才能进行测试,测试效率较低,成本仍然偏高。集成测试还有一个问题,整个调用链的各环节都有出错的可能,不利于定位问题。

终于,我们发现单元测试是最低成本的自动化测试。测试效率高,每个测试单元作用范围小,利于快速定位问题。至此,我们得到了整个测试金字塔,如下图:

测试金字塔.JPG

成本上,验收测试最高,单元测试最低。单元测试更靠近开发者,也是开发者的责任。所以,我们一定要做单元测试,其他层面的测试依资源情况取舍。

相关文章

  • 001之软件测试金字塔模型

    首先,软件测试的出发点就是质量。软件测试的一切工作应该围绕质量而开展。质量是软件测试的中心,可以看做是金字塔的顶点...

  • 软件质量思考(一)测试金字塔

    软件的质量该如何定义呢?衡量软件的质量可能有很多维度,我们这里不想那么学术。但你可以想象,糟糕的软件质量体现在哪里...

  • 备考第一天

    软件测评师教程共3篇。分为20章。 第一篇 软件测试概论、软件测试基础、软件质量与评价(软件测试标准)、软件测试过...

  • 软件测试模型

    软件测试是软件质量保证的重要手段之一,软件测试模型则是软件测试的工作框架,用于指导软件测试过程。今天,我们就来介绍...

  • 测试-软件质量

    弹奏江南夜雨,唱了一首花语 1. 软件质量的定义 iso(国际标准化组织)关于质量的定义:一个实体的所有特性,基于...

  • 软件测试方法与技巧

    1、现代软件测试的定义 测试不单纯是发现错误的过程,而且将测试作为软件质量保证的主要职能,包含软件质量评价的内容。...

  • 小记:软件测试/质量汇总知识点

    软件测试目标是实现软件质量、进度、成本之间的最佳平衡 有效的测试管理需要企业管理层、软件开发团队、质量保证与测试团...

  • 软件质量特性及测试类别梳理-摘自正厚7期——杨秀梅

    一、软件测试质量 ISO9126质量模型:软件质量模型的6大特性和27个子特性。 ISO9126软件质量模型是评价...

  • 测试基础---如何编写测试用例

    测试用例---如何编写测试用例 1. 测试用例-本质是文档 2. 软件测试-手段,保证软件质量 3. 软件测试流程...

  • 软件测试工程师的三个入门问题

    1. 软件测试的定义是什么? 《系统的软件测试》中定义为:“测试是为了度量和提高被测软件的质量,对测试软件进行工程...

网友评论

      本文标题:软件质量思考(一)测试金字塔

      本文链接:https://www.haomeiwen.com/subject/imukfhtx.html