深聊测开领域之:测试策略模型有哪些?

简介: 深聊测开领域之:测试策略模型有哪些?

1 引言


记得小鱼在上一篇聊到三种高性价比的测试,有的测开的同学就反馈,写的还过得去,希望再多讲一些测开领域资深的内容。

好的, 安排~ ~

我们今天就来聊一聊,测试模型。

我们都知道,项目有项目的模型,

那么,测试策略,是否也有模型呢?


2 金字塔


2.1 金字塔模型 引入

金字塔模型,是一种非常重要也很常见的软件测试策略模型,在很多场合被奉为“金科玉律” 。

测试金字塔告诉我们,在单元测试,集成测试和端到端测试三个阶段的测试资源投入,应该满足接近7:2:1的关系。


在金字塔模型中,软件测试的重心是在开发阶段的单元测试。

通过测试左移和质量内建,从源头上保障软件质量,实现预防bug(而非发现bug)的目标。


单元测试还具有实现成本低和执行速度快的特点,因而可以很容易地与持续集成和敏捷开发相结合,共同实现软件的快速迭代。


这在《深聊测开领域之:三种高性价比测试方法》博文中,有介绍。


通过将大部分问题消灭在单元测试阶段,高成本,速度慢的端到端测试就可以更加聚焦。

通过将有限的资源投入到主干流程和核心业务的端到端测试上,我们可以保障在快速迭代的过程中,核心业务不受影响。


2.2 金字塔弊端

尽管其具有时代的先进性,但测试金字塔模型也是有短板的。

由于金字塔模型过分依赖单元测试,而单元测试的测试对象是代码,离最终的用户场景可能存在距离。因此,单元测试即使很充分,即使实现了100%的代码覆盖率,其有效性仍然存在不足,从而降低我们对软件质量的信心。


2.3 金字塔图形

image.png


不得不说,金字塔模型是一种进步的模型,尤其是与它的前任模型相比。


3 冰淇淋


3.1 冰淇淋模型 引入

金字塔模型的前任,是倒金字塔,俗称 “冰淇淋模型”,也是在很久之前,非常主流的一种测试策略模型。


冰淇淋模型与金字塔模型完全相反,它更强调端到端测试。


也就是说,我们主要依靠端到端测试来保障软件质量。


3.2 冰淇淋模型 优缺点

3.2.1 缺点

由于端到端测试投入大,速度慢,周期长,经常需要数周甚至数月完成测试,无法做到快速迭代,因而在敏捷时代被金字塔模型取代。


3.2.2 优点

相比单元测试,端到端测试无疑可以给我们更高的信心。

端到端测试模拟的是用户的实际行为,测试的是系统整体,更有能力发现全局的,对用户直接产生影响的问题,因而测试有效性更高。


对于一些对质量要求极其苛刻,发布周期较长的系统级软件,例如电信软件,操作系统等,仍然十分依赖端到端测试。因此,冰淇淋模型在这些场景中仍然是实用的。


3.2 冰淇淋图形


image.png

4 冠军杯


4.1 冠军杯模型 引入

由于金字塔模型的缺点,导致,我们需要一个更加均衡的模型,需要同时具备金字塔模型与冰淇淋模型优点,随着不断的发展,这种新的模型就诞生了,即"冠军杯模型"。


4.2 冠军杯模型厉害之处

与金字塔模型和冰淇淋模型不同的是,冠军杯模型强调集成测试的重要性。

这种模型的出发点在于:


相比端到端测试,集成测试的执行速度更快;

相比单元测试,集成测试的有效性更高;

在单元测试,集成测试和端到端测试中,最能够兼顾执行速度,实现成本和测试有效性的,就数集成测试了。


4.3 应用场景


当然,于金字塔模型和冰淇淋模型相比,冠军杯模型是一种比较理想化的模型。

冠军杯模型能不能成功,取决于集成测试是否真的成本低且有效性高。

实际上,冠军杯模型只在特定的场合使用,它的典型应用场景是Web应用测试。


对于Web应用,集成测试对应服务端测试或接口测试。在基于Restful的接口测试中,用例执行速度非常快,通常在毫秒级。并且,大量的业务逻辑位于服务端,大多数软件问题也源自服务端,因此接口测试只要用例设计合理,其有效性可以期待。


事实上,评价测试还有另外一个维度。那就是在重构代码和修复bug(它们是比新特性开发更高频的代码活动)时,测试用例是否经常需要适配。


单元测试与代码的耦合性一般较高,因此我们在重构代码或修复bug时,经常不得不对单元测试用例进行修改。而接口测试测试的是软件对外的接口,不易发生变化,因而用例不需频繁更新,维护成本也就更低。


鉴于在Web应用中,接口测试具有执行速度快,测试有效性高,维护成本低的优势,值得大力投入。

冠军杯因而是一种更适合的模型。


4.4 冠军杯图形


image.png

5 总结


最后,我用一张图表,来总结 冰淇淋,金字塔、冠军杯 三个模型的特点。

image.png


目录
相关文章
|
27天前
|
人工智能 搜索推荐 数据管理
探索软件测试中的自动化测试框架选择与优化策略
本文深入探讨了在现代软件开发流程中,如何根据项目特性、团队技能和长期维护需求,精准选择合适的自动化测试框架。
83 8
|
2月前
|
测试技术 持续交付 UED
软件测试的艺术:确保质量的实战策略
在软件开发的舞台上,测试是那把确保每个功能如交响乐般和谐奏响的指挥棒。本文将深入探讨软件测试的重要性、基本类型以及如何设计高效的测试策略。我们将通过一个实际的代码示例,展示如何运用这些策略来提升软件质量和用户体验。
|
1月前
|
Java 测试技术 数据安全/隐私保护
软件测试中的自动化策略与工具应用
在软件开发的快速迭代中,自动化测试以其高效、稳定的特点成为了质量保证的重要手段。本文将深入探讨自动化测试的核心概念、常见工具的应用,以及如何设计有效的自动化测试策略,旨在为读者提供一套完整的自动化测试解决方案,帮助团队提升测试效率和软件质量。
|
1月前
|
测试技术 持续交付
探索软件测试中的自动化测试策略
随着软件开发周期的加速和市场需求的不断增长,传统的手动软件测试方法已难以满足现代软件开发的高效性和准确性要求。本文旨在探讨自动化测试在软件测试中的重要性、实施策略及其对提高软件质量的影响。通过分析自动化测试的优势与挑战,以及提供实用的自动化测试工具和框架选择指南,旨在帮助读者理解并应用自动化测试以提升软件开发效率和产品质量。
|
1月前
|
机器学习/深度学习 人工智能 监控
软件测试中的自动化测试策略与最佳实践##
在当今快速发展的软件行业中,自动化测试已成为确保软件质量和加速产品上市的关键工具。本文将探讨自动化测试的重要性,分析不同类型的自动化测试工具和框架,并深入讨论实施自动化测试的最佳实践。通过案例研究和数据分析,我们将揭示如何有效整合自动化测试到软件开发生命周期中,以及它如何帮助团队提高测试效率和覆盖率。 ##
60 1
|
2月前
|
敏捷开发 人工智能 Devops
探索自动化测试的高效策略与实践###
当今软件开发生命周期中,自动化测试已成为提升效率、保障质量的关键工具。本文深入剖析了自动化测试的核心价值,探讨了一系列高效策略,包括选择合适的自动化框架、设计可维护的测试脚本、集成持续集成/持续部署(CI/CD)流程,以及有效管理和维护测试用例库。通过具体案例分析,揭示了这些策略在实际应用中的成效,为软件测试人员提供了宝贵的经验分享和实践指导。 ###
|
2月前
|
人工智能 前端开发 测试技术
探索软件测试中的自动化框架选择与优化策略####
本文深入剖析了当前主流的自动化测试框架,通过对比分析各自的优势、局限性及适用场景,为读者提供了一套系统性的选择与优化指南。文章首先概述了自动化测试的重要性及其在软件开发生命周期中的位置,接着逐一探讨了Selenium、Appium、Cypress等热门框架的特点,并通过实际案例展示了如何根据项目需求灵活选用与配置框架,以提升测试效率和质量。最后,文章还分享了若干最佳实践和未来趋势预测,旨在帮助测试工程师更好地应对复杂多变的测试环境。 ####
54 4
|
2月前
|
机器学习/深度学习 前端开发 测试技术
探索软件测试中的自动化测试框架选择与优化策略####
本文深入探讨了在当前软件开发生命周期中,自动化测试框架的选择对于提升测试效率、保障产品质量的重要性。通过分析市场上主流的自动化测试工具,如Selenium、Appium、Jest等,结合具体项目需求,提出了一套系统化的选型与优化策略。文章首先概述了自动化测试的基本原理及其在现代软件开发中的角色变迁,随后详细对比了各主流框架的功能特点、适用场景及优缺点,最后基于实际案例,阐述了如何根据项目特性量身定制自动化测试解决方案,并给出了持续集成/持续部署(CI/CD)环境下的最佳实践建议。 --- ####
|
2月前
|
人工智能 监控 测试技术
探索软件测试中的自动化框架选择与优化策略####
【10月更文挑战第21天】 本文深入剖析了软件测试领域面临的挑战,聚焦于自动化测试框架的选择与优化这一核心议题。不同于传统摘要的概述方式,本文将以一个虚拟案例“X项目”为线索,通过该项目从手动测试困境到自动化转型的成功历程,生动展现如何根据项目特性精准匹配自动化工具(如Selenium、Appium等),并结合CI/CD流程进行深度集成与持续优化,最终实现测试效率与质量的双重飞跃。读者将跟随“X项目”团队的视角,直观感受自动化框架选型的策略性思考及实践中的优化技巧,获得可借鉴的实战经验。 ####
39 0
|
2天前
|
机器学习/深度学习 人工智能 自然语言处理
MarS:微软开源金融市场模拟预测引擎,支持策略测试、风险管理和市场分析
MarS 是微软亚洲研究院推出的金融市场模拟预测引擎,基于生成型基础模型 LMM,支持无风险环境下的交易策略测试、风险管理和市场分析。
26 8
MarS:微软开源金融市场模拟预测引擎,支持策略测试、风险管理和市场分析