全方位测试质量守护体系,保障交付质量 | 学习笔记

简介: 快速学习全方位测试质量守护体系,保障交付质量

开发者学堂课程【ALPD 云架构师系列:云原生 DevOps 36计-阿里云云效出品:全方位测试质量守护体系,保障交付质量】学习笔记,与课程紧密连接,让用户快速学习知识。

课程地址https://developer.aliyun.com/learning/course/772/detail/13517


全方位测试质量守护体系,保障交付质量


全方位测试质量守护体系,保障交付质量

image.png

这有一个简单的象限图,就是把日常生活当中和工作当中遇到的这些测试做了一个简单的一个分类,分类是怎么来看呢?

靠下的基本都是靠记,以技术实现为导向,而网上的都是从业务结果为导向,就是偏问题,另外一个靠右的是站在整个产品的角度来去看,有什么样的质量,靠左是站在整个团队在功能实现的过程当中涉及到的一些视角,看一下第一个标准的这一块象限。

基本上是单元测试和组件测试都放在这里,因为是偏技术实现的,而且是团队内部要搞定,像功能测试、工作流和场景性的测试包括用户体验测试和结对测试,是偏业务层的片功能级别的,但是也是属于团队,要去再做,实现的过程当中需要去做一些。

测试这里把它放在第二层,那第三里头来去看,就是站在整个产品的角度讲,偏业务的文件,所以有可用性测试,探索测试和客户绝对测试和用户验收测试。另外一块就是通过也是偏技术实现的角度来说,但是站在整个产品的完整性的角度来说验证下非功能性的测试项,押车性能测试,安全测试,数据迁移测试,扩展性和复合的这种,这里也给出了一些,具体是哪一部分应该是手工的,哪一部分应该是自动化的去完成。

有了这么多测试,要是把这些东西都做好,其实是投入的成本特别高,列出这么多,说明整个就是有分类的是有整个的包含的流程,在整个研发中的阶段也不一样,这些测试并不是都需要一股脑地拥上去,放到一个地方去做,所以基于这一个,有了一些完整的一些测试分类,看一下在整个软件交付的整个生命周期是如何来去合理安排他们的?

每一个测试应该放在哪些阶段,其实是有一个质量保障体系来去定义的,这是一个企业里比较常见的一个质量保障体系,让我们来去看:

image.png

image.png

从左往右来看一下整个交付过程,看有哪些质量。比如从上面需求,因为从最开始软件交付的一开始是拿到了需求,开始做需求评审,开始做架构设计,这时其实需求的质量和价格的质量就是非常重要的。如果这时候的质量出问题之后,后面做的所有的事情可能都是有问题的。

然后需求和架构明确下来之后,开始做编码,做开发,所以这时代码质量,安全的质量就是就上来了,因为安全在地方,就是在一开始的时候,就需要做的事情做一个安全的考量,接下来就到了整个编码的测试验证阶段,所以整个的测试质量,数据质量,稳定性质量,然后当测试告一段落之后,就需要上系统去压测了,所以就开始考虑性能,考虑用户体验,所以就有了性能质量,用户质量。

发布之后还要考虑发布之后的运维的一个情况,线上用户的反馈是什么样子,所以整个会有一个非常全面的一个质量评估到底,系统是什么样子的,往下看,就是看到中间有很多很多的实践,比如自动化测试的各种实践,稳定性测试的实践,用性能测试的实践和安全测试的实践,每个里面都有很多,现在可能已经在用,或者将要用的一些实践方式,然后再往下是整个基础平台和流程支撑,就是要承载上面这么多的测试,需要很多的基础的,比如环境这些,然后还有整个事情做得如何,做得好不好,有没有什么问题,需要一双眼睛来看,所以这是我们最后小项,是一个相对来说比较完整的一个保障体系,当然层次比较高,比如可能对于一线的工程师来讲,比较关注的是怎么来去做这种图片对比的测试,或怎么来去做这种演练,在过程当中,后面可以再简单的给大家做一些相应一些介绍,有了一个完整质量保障体系,接下来已经知道,要去做质量保障,要有相应的一些措施,由谁来去做这件事情呢?

中间其实从需求到开发到测试。都在这条生命周期上。觉得应该做质量保证的事情,所以从这角度来讲如果需求质量的话,很容易想到应该是产品,应该来去把需求质量,代码质量应该开发了,那比如像素试质量和发布质量,这时是应该测试或者运维同学来去保证,所以这时候在整个过程当中,涉及到的角色是方方面面的,而且每一个角色都应该是为这些质量负责。

如果是按整个生命交付周期的话,偏左这一侧,认为是上游下面偏右这一侧的,认为是下游,也就是整个软件完整的交付的周期当中,上下游所有的角色都应该参与,所以可以简单看一下,质量是团队所有人。左边看有一个很有意思的一个漫画。

image.png

胶水的都在内侧,也是很常见的,看需求质量不好快去改,去改好等着你,就是这种情况,其实我们很多人都遇到过,比如质量我是测试该负责的质量是需求,该负责的货质量或者用来打底的,都有这样的情况。但事实上,我们每个人都只是在船上,同一条船上,船要漏了,其实我们一起下去,这里有一个比较有意思的一个例子就是有的团队,他说要开发,要自测,之所以质量不好,是一种开发,自测的质量不好,站在开发的角度来说,有测试,之所以质量不好,是因为测试兜底不够,在整个过程当中其实如比如大家是站在所有明确的一个标准,作为一个需求,需要达到一个什么样的一个标准,作为代码需要达到一个什么样目标。每一个阶段有相应的一个标准的一个定义,这是需要明确的是这种药物。

还有另外一个,每一个上游永远要考虑下游,能很好的帮助下一个很好的把工作给做好,如果不去考虑,比如在做架构的过程当中,不测试,等到要测试的时候,是没有办法去做这件事情的。会非常非常麻烦去遇到问题,其实在可靠性这一点上,记得之前遇到过一个非常有意思的例子,因为当时架构升级事情做完的时候才看到是怎么做的,然后就发现一个非常严重的问题,单纯把应用假设要想部署起来是完全没法测,一定要跟生产环境,在一块才能测试,这就非常扯了,因为为了改一个东西,让他上生产环境,但是如果固在一起,发现没法测试,因为在整个架构设计里面把他写死。这样就带着客户就说大家发现为了测试,现在改代码,让代码能够在生产环境以外的地方测试,然后才做后续的事情。

另外一块一个点一般来讲测试,有的时候如果做测试自动化的话,会有相应的一些测试代码,测试代码可能会涉及到像有一些通用的一些部分,可能会涉及到几个团队都要去共用的,这时如果没有很好的去分配,不会没有一种ownership的叫collective Co ownership,就是代码集体所有制,没有建立好标准化,测试代码也容易成为一个工地危机,所以在这事情上来讲,质量还是团队的所有人的事情,而且刚才强调的一个质量,团队所有人的事情的时候,上游的人,应该配个更重大的一个角色,就是做的更好一点,下游可以省了很多很多事情,待会可以在质量和成本的里可以做更多的一个讨论,现在已经知道质量的负责应该是谁来负责。

具体在哪个阶段里应该由谁负责,这时取决于定义的一个标准是什么整个在要去做到持续的交付,或者易发的频繁要发的频繁,意味着要做持续的发布,因为既然是持续发布,那就意味着要持续的代发,要持续待发布,一定要有持续的测试来保证在发布,所以一定要有持续的测试,才能够有持续的质量守护。

image.png

相关文章
|
27天前
|
机器学习/深度学习 人工智能 监控
提升软件质量的关键路径:高效测试策略与实践在软件开发的宇宙中,每一行代码都如同星辰般璀璨,而将这些星辰编织成星系的过程,则依赖于严谨而高效的测试策略。本文将引领读者探索软件测试的奥秘,揭示如何通过精心设计的测试方案,不仅提升软件的性能与稳定性,还能加速产品上市的步伐,最终实现质量与效率的双重飞跃。
在软件工程的浩瀚星海中,测试不仅是发现缺陷的放大镜,更是保障软件质量的坚固防线。本文旨在探讨一种高效且创新的软件测试策略框架,它融合了传统方法的精髓与现代技术的突破,旨在为软件开发团队提供一套系统化、可执行性强的测试指引。我们将从测试规划的起点出发,沿着测试设计、执行、反馈再到持续优化的轨迹,逐步展开论述。每一步都强调实用性与前瞻性相结合,确保测试活动能够紧跟软件开发的步伐,及时适应变化,有效应对各种挑战。
|
25天前
|
测试技术
自动化测试项目学习笔记(五):Pytest结合allure生成测试报告以及重构项目
本文介绍了如何使用Pytest和Allure生成自动化测试报告。通过安装allure-pytest和配置环境,可以生成包含用例描述、步骤、等级等详细信息的美观报告。文章还提供了代码示例和运行指南,以及重构项目时的注意事项。
117 1
自动化测试项目学习笔记(五):Pytest结合allure生成测试报告以及重构项目
|
13天前
|
敏捷开发 监控 jenkins
自动化测试之美:打造高效的软件质量保障体系
【10月更文挑战第20天】在软件开发的海洋中,自动化测试如同一艘精准的导航船,引领项目避开错误的礁石,驶向质量的彼岸。本文将扬帆起航,探索如何构建和实施一个高效的自动化测试体系,确保软件产品的稳定性和可靠性。我们将从测试策略的制定、工具的选择、脚本的编写,到持续集成的实施,一步步描绘出自动化测试的蓝图,让读者能够掌握这一技术的关键要素,并在自己的项目中加以应用。
25 5
|
13天前
|
Java 测试技术 持续交付
探索自动化测试的奥秘:提升软件质量的关键
【10月更文挑战第20天】 在当今快速发展的软件行业中,自动化测试已成为确保产品质量和加速开发周期的重要工具。本文将深入探讨自动化测试的核心概念、实施策略及其对软件开发生命周期的影响,旨在为读者提供一种全面理解自动化测试的视角,并展示如何有效地将其应用于实际项目中以提高软件质量和效率。
15 2
|
25天前
|
测试技术 Python
自动化测试项目学习笔记(四):Pytest介绍和使用
本文是关于自动化测试框架Pytest的介绍和使用。Pytest是一个功能丰富的Python测试工具,支持参数化、多种测试类型,并拥有众多第三方插件。文章讲解了Pytest的编写规则、命令行参数、执行测试、参数化处理以及如何使用fixture实现测试用例间的调用。此外,还提供了pytest.ini配置文件示例。
19 2
|
25天前
|
测试技术 Python
自动化测试项目学习笔记(二):学习各种setup、tearDown、断言方法
本文主要介绍了自动化测试中setup、teardown、断言方法的使用,以及unittest框架中setUp、tearDown、setUpClass和tearDownClass的区别和应用。
48 0
自动化测试项目学习笔记(二):学习各种setup、tearDown、断言方法
|
28天前
|
测试技术 UED
软件测试中的探索性测试:一种创新的质量保证方法
在软件开发的生命周期中,测试阶段扮演着至关重要的角色。传统的软件测试方法,如自动化测试和回归测试,虽然在一定程度上保证了软件质量,但它们往往依赖于预定义的测试用例和脚本,可能无法覆盖所有用户场景和边缘情况。为了克服这些限制,探索性测试作为一种创新的质量保证方法应运而生。本文将深入探讨探索性测试的概念、优势以及如何有效地实施它,以帮助读者更好地理解和应用这种测试技术。
|
25天前
|
JSON 算法 数据可视化
测试专项笔记(一): 通过算法能力接口返回的检测结果完成相关指标的计算(目标检测)
这篇文章是关于如何通过算法接口返回的目标检测结果来计算性能指标的笔记。它涵盖了任务描述、指标分析(包括TP、FP、FN、TN、精准率和召回率),接口处理,数据集处理,以及如何使用实用工具进行文件操作和数据可视化。文章还提供了一些Python代码示例,用于处理图像文件、转换数据格式以及计算目标检测的性能指标。
46 0
测试专项笔记(一): 通过算法能力接口返回的检测结果完成相关指标的计算(目标检测)
|
2月前
|
移动开发 JSON Java
Jmeter实现WebSocket协议的接口测试方法
WebSocket协议是HTML5的一种新协议,实现了浏览器与服务器之间的全双工通信。通过简单的握手动作,双方可直接传输数据。其优势包括极小的头部开销和服务器推送功能。使用JMeter进行WebSocket接口和性能测试时,需安装特定插件并配置相关参数,如服务器地址、端口号等,还可通过CSV文件实现参数化,以满足不同测试需求。
209 7
Jmeter实现WebSocket协议的接口测试方法
|
2月前
|
JSON 移动开发 监控
快速上手|HTTP 接口功能自动化测试
HTTP接口功能测试对于确保Web应用和H5应用的数据正确性至关重要。这类测试主要针对后台HTTP接口,通过构造不同参数输入值并获取JSON格式的输出结果来进行验证。HTTP协议基于TCP连接,包括请求与响应模式。请求由请求行、消息报头和请求正文组成,响应则包含状态行、消息报头及响应正文。常用的请求方法有GET、POST等,而响应状态码如2xx代表成功。测试过程使用Python语言和pycurl模块调用接口,并通过断言机制比对实际与预期结果,确保功能正确性。
223 3
快速上手|HTTP 接口功能自动化测试