如果软件测试是门艺术,软件测试工程师就是艺术家 -- 浅析ZStack是如何做智能软件测试

为什么我们创造ZStack而不是选择OpenStack 我们站在巨人的肩膀上,所以能够看得更远 三年前,当我还在为另外一家IaaS软件公司工作的时候,一个朋友半开玩笑的对我说:“你们做的产品会让IT管理员下岗”, 虽然是句玩笑话,但我却非常认同这个观点。大家普遍的共识是IaaS以及各种软件定义数据中心的软件会解放各大公司的IT部门,对系统管理员的需求会大大减小。三年过去了,IaaS产业已经变得异常红火,可是没有一个IT管理员因此而失业。更戏剧的 阅读详情

前各个软件公司都很重视自动化软件测试。甚至会把软件测试自动化率(自动化测试用例占整个测试用例的比例)作为软件测试人员(也叫质量保证工程师)绩效考核的内容之一。追求自动化测试比例的初衷是很好的,但是不顾软件产品的实际情况和软件测试人员的情况,而过分追求高的测试自动化比例,会得到适得其反的效果。我们常常会听到某软件的自动化测试率高达70~80%,可是还是不得不聘请大量的测试人员来进行手动测试。这在无形之中把软件测试引入了误区。

ZStack的测试架构师认为,软件自动化测试的好坏可以用软件缺陷的发现的比率来衡量。换句话说如果整个系统的自动化测试比例达到80%,那么通过自动化测试发现软件缺陷的数量应该达到甚至超过全部软件缺陷数量的80%。举个例子,iSCSI主存储是即将发布的ZStack 0.7版本的重要功能。ZStack现有的自动化测试用例在没有修改一行代码的情况下,就可以用于测试iSCSI主存储的功能。之前开发人员手动测试没有发现的软件缺陷,但是用自动化测试用例发现了5个缺陷。这个就是非常有效的自动化测试用例。

ZStack对软件质量非常看重,因为我们深知人是最聪明也是最不可靠的(以后我们也许可以探讨一下人性与软件测试的相关话题),所以从整个软件设计的开始,ZStack就决定尽可能地依靠全自动的测试手段来探测各种可能出现的软件缺陷。

传统的自动化测试有一个优势就是每轮测试都会严格执行之前定义好的全部测试用例,无一遗漏。通过对前后测试结果的比较,就可以得出质量的变化情况。不过这个优势也是它的弱点。设计软件测试的人员都知道,由于无法穷举所有的测试可能,所以预先设计的测试用例也只能覆盖一部分最常见(或者说是测试人员最希望测试到)的领域。那么对于没有测试到的领域就无法确定其是否存在软件缺陷。这个问题该怎么破呢?为此,ZStack的自动化测试特别引入了一种特别的测试--基于模型的测试(Model-based Testing)。

基于模型的测试是一种人工智能的测试方法,可以用于自动的构造测试场景和测试用例。它要求测试人员首先基于软件功能构造出各种模型(或者叫做行为),然后制定行为和行为之间的关系以及行为和系统的关系(有限状态机),之后自动测试系统就可以智能的根据当前的被测系统的状态(场景)以及预设的规则,选择下一步要执行的行为。理论上这种测试方法可以尽可能的遍历被测试系统中各种可能经历的行为链,从而极大的提高了测试覆盖率。由于它每次执行的路径和以往不同,所以可以构造出完全不同的测试用例,我们也可以称之为智能的软件测试。

下面,我们来大致看看ZStack是怎么构造基于模型的测试的。不过首先我们要说明的是,整个基于模型测试的难点在于提取测试模型,以及编写测试模型验证代码,而非基于模型的测试框架本身和模型算法。所以以后遇到推销基于模型测试“框架”的人,千万不要觉得他们牛的一塌糊涂,真正牛的是实现具体测试的人,而非框架本身。实现测试系统的工程师才是真正的英雄。换句话说,虽然现实中有一些现成的基于模型的测试的框架,但是如果其他IaaS想要重现ZStack的智能测试也绝非易事。

ZStack基于模型的测试首先就是要把各种IaaS操作定义成模型。这里我们拿虚拟机实例的各种操作举例。虚拟机实例通常只有4个状态,状态和状态之间可以定义标准的操作。把状态和操作画出来后,我们就得到了虚拟机实例的状态迁移图(有限状态机)。可以看到上图中Running和Stopped的状态之间可以通过stop和start操作做成状态环。那么智能测试就可以根据预先设定的规则,可能会让虚拟机在这个环里做有限的测试。这一个看起来好像很简单,但是要知道IaaS里面还有很多其他资源的状态迁移图。而且很多资源之间是有相互依赖关系的,例如在某些系统中只有虚拟机处于Stopped的状态才可以做磁盘快照。而且用户在操作IaaS的时候,也不会只做虚拟机状态的改变,通常会和其他资源的actions混合操作。所有当把所有资源的迁移图画完,就会发现整个IaaS的场景和可选的行为之间的关系还是非常非常复杂的。ZStack的测试工程师可是花费了不少的时间来完成这项艰巨的工作。

当创造完场景和行为关系图后,智能测试就可以开始最初的测试工作。一开始的时候,它的智力水平并不高,只能从当前可执行的所有操作中随机的选择一个操作。极端情况,这可能会导致它一直在虚拟机实例的操作中绕圈子,而有些操作从来就没有执行过。慢慢的ZStack工程师就开始给他添加了两个更高的智慧:公平调度算法和基于历史测试路径的调度算法。

公平调度算法会让智能测试系统尽量选择最少执行的行为作为下一个操作。

而基于历史测试路径的算法可以让智能系统选择曾经没有测试过的路径。有了这两种更加智能的调度算法,智能测试系统也就可以更好的发挥它的能力,未来ZStack的测试工程师们还会设计出一些更高级的复合测试算法,来增加智能测试系统的智商。除了发现一些常规的问题外,通过基于模型的测试还发现了不少我们称之为Corner Case的缺陷,它们可能是90%的ZStack用户永远也不会触发的问题。虽说是corner case,但是一旦在开发的阶段没有发现,等到用户遇到的时候,就会花费很大的力气来修复,有一些可能还是致命的。所以这种基于模型的智能测试给ZStack带来了很大的好处。

基于模型的测试和ZStack的另外两大自动化测试系统:集成测试和系统测试构成了ZStack质量控制的三驾马车。在当今DevOps当道的今天,我们希望ZStack的测试和研发投入比力求做到1:1(以后我们也许可以和大家交流为什么纯粹的靠开发人员来做测试是有问题的) ,我们希望把软件质量永远放在ZStack的第一位。

希望今天浅析的ZStack智能测试方法能给广大软件质量保证师从实践角度带来一些好的想法。最后我们想要感谢全世界的软件测试工程师,感谢你们在每一件软件产品后面付出的辛苦努力!


ZStack实践汇 | 虚拟化软件漏洞和解决方案 ​ 概况 本文主要比较了主流虚拟机虚拟层(KVM,ESX,Hyper-V和Xen)中的安全功能和常见漏洞,并分析了安全趋势。然后,对虚拟化软件的常见威胁进行了分类,并讨论其影响。最后,对于解决虚拟化软件漏洞和安全问题,本文也提出一些解决方案。 1、虚拟化软件的常见漏洞及安全趋势 首先,表1展示了上述主流虚拟层的一些标准功能和安全功能: 表1 虚拟机监控程序比较 如表所示,这些虚拟机虚拟层之间在安全功能方面的主要区别在于:只有KVM能通过SELinux为应用程序提供强制访问控制。其他区别在于安全证书,其中X 阅读详情

相关推荐

一、Zstack基础知识(ZCCT云计算认证)

1.什么是云? 按照美国国家标准与技术研究院(NIST)定义:是一种按需交付的资源模式,通过便捷、按需的网络被快速访问 ,客户只需投入很少的管理工作。 2.公有云、私有云、混合云有什么特点? 公有云:由云服务商统一建设,面向任何网络用户提供。 特点 :初期投入低,弹性灵活。 私有云: 构建在企业自身数据中心内,面向企业内部用户,提供服务。 特点:数据安全性高,IT基础架构可控制能力强。 缺点 :投入比较大(物力,人力),要求运维人员有较高的水平。 混合云 既在数据中心内部建设了私有云,又使用了公有云服务。

hzcm1984的博客 7741

9、ZStack云平台后端存储对接

文章目录前言一:ZStack云平台后端存储对接1.1:本地存储1.2:ceph存储1.3:san存储1.4:NFS1.5:ZStack云平台后端存储对接总结谢谢赏阅,如有疑问可以评论区交流! 前言 一:ZStack云平台后端存储对接 1.1:本地存储 优点:物理机raid卡保障数据可靠性、并发性能好、低成本、低延迟、高性能(随机IOPS、带宽) 缺点:物理容量受限,扩展不变,云盘上限,受限于单物理机的容量,存在单点故障,云主机在线迁移受限,云主机无高可用,高可用需业务层保障 规划 对

CN_TangZheng的博客 1149

ZStack实践汇 | ZStack平台的使用心得

作者:ZStack 社区 王彬 Iaas云服务的普及,让我们在使用服务器的时候享受了飞一般的感觉,新兴企业在构建自己的系统时,往往都会选择购买云厂商的云服务器(虚拟机)进行使用,使用这样的虚拟机企业不需要购置任何硬件,不需要考虑机房、网络、服务器维护相关的工作便可以获取到一个低成本、安全免维护、伸缩性强、可灵活迁移的云服务器。在这个云服务器上我们可以快速的构建企业的业务系统。 随着企业的不断发展,...

zstack_org的博客 2685

软件测试具有哪些优势

虽然软件测试学习门槛不高涌入更多的零基础小白学员,而且学习周期是IT技术学科中最短,但平均薪资可一点都低。

m0_73722540的博客 1981

成功作为一名软件测试工程师是一门艺术

本书介绍如何成为一个好的软件测试工程师和作为一个好的软件测试工程师应该具备哪些条件。

两路半桥LLC谐振变换器软开关Simulink仿真(模拟谐振参数不同、分裂电容)

内容概要:本文介绍了“两路半桥LLC谐振变换器软开关Simulink仿真”资源包,重点在于基于Simulink平台对两路半桥LLC谐振变换器进行高精度建模与动态仿真,特别考虑了谐振参数不一致及分裂电容等非理想工况对系统性能的影响。该仿真模型不仅涵盖了主电路拓扑、软开关实现机制与谐振网络设计,还深入分析了不同参数配置下系统的启动特性、稳态效率、动态响应及软开关条件的满足情况。通过参数扫描与对比仿真,帮助用户掌握LLC变换器的关键设计要素与优化方法,具备较强的工程指导价值和科研教学意义。; 适合人群:电力电子、电气工程及其自动化等相关专业的高校师生,以及从事高频开关电源、新能源变换器、车载充电机等领域的研发工程师和技术人员。; 使用场景及目标:① 掌握两路并联半桥LLC谐振变换器的建模与仿真方法;② 理解软开关技术在提升变换器效率与降低EMI方面的关键作用;③ 分析谐振参数偏差与分裂电容结构对系统均流特性、增益曲线及软开关范围的影响;④ 支持科研项目中的拓扑验证、控制策略开发与故障工况分析; 阅读建议:建议结合Simulink仿真模型与配套说明文档进行学习,重点关注谐振腔参数设置、驱动时序设计及软开关波形观测;可通过调整谐振电感、电容值或引入参数失配,观察系统行为变化,深入理解LLC变换器的稳定边界与优化设计原则。

处理ZStack云平台常见问题及故障

文章目录Zstack维护升级基本维护平台升级云主机简单运维变更操作云主机/磁盘扩容获取帮助方式常见问题查询工单/售后/QQ群自主学习通道 Zstack维护升级 基本维护 查看管理服务状态:zstack-ctl status 变更管理服务状态:zstack-ctl start/stop 备份管理节点数据库:zstack-ctl dump_mysql 收集管理节点日志:zsta...

崔崇鑫的博客,你linux/云运维工作中的百科全书。 4797

迷茫之后:Java研发转型售前——选择大于努力!

写下这段文字的时候,小弟已经从Java开发岗位转型软件售前近20天了........ 2011年9月毕业于某培训机构,学的是java语言。之后来到深圳,进入华为外包开始了我的程序猿生涯....刚入职场,第一份工作总是兴奋情绪占主导地位,加入文思创新在华为的人力外包项目组,然后跟着老员工学习、修复小bug,一步一坑的去熟悉那老掉牙的框架...ejb+struts1.2.........项目组老

xuweiwei0415的专栏 1万+

测试既是一门科学,也是一门艺术

《测试之美》讲述的正是漂亮的测试工具、完美的测试流程、颇具审美情趣的测试诀窍以及凸显创造力之美的测试理念。本书的原作者是27位国际顶尖测试精英,他们将智慧和经验汇集在《测试之美》中,向读者呈现了“美”的融会贯通:1)思维流程之美。测试专家们是如何思考测试命题的。2)探索发现之美。书中每个人大都讲述自己探索最佳测试方案中经历的酸甜苦辣。3)结构和谐之美。测试也是一项系统工程。既有测试工程的总体架构,又有经过仔细挑选的测试手段以保证测试工作得以可持续改进和完善。4)卓越功能之美。专家们介绍的多种自动化、快捷化的

华章IT官方博客 1476

解决ublox无法定位问题(一直输出$GxTXT)

最近开始研究有关RTK技术的项目,于是先购买了两块ublox公司的NEO-M8T-0型号芯片。(注意NEO-M8T还细分为NEO-M8T-0和NEO-M8T-2,前者不支持RTCM输出,后者支持RTCM输出) 首先都是按常规步骤,直接把芯片模块串口接电脑调试,这边推荐是用官网的u-center调试软件。GPS芯片大多数都是上电后串口自动发送定位等信息,这两块芯片有一块正常情...

众缈之门的博客 7359

智能座舱语音测试避坑指南:从唤醒率到方言识别,这些场景你测全了吗?

本文深入解析智能座舱语音测试的关键场景与避坑指南,涵盖唤醒率测试、方言识别、多音区交互等复杂场景。通过实战案例与自动化测试方案,帮助开发者全面提升语音系统的可靠性与用户体验,特别关注环境噪声干扰与方言覆盖策略。

weixin_42613501的博客 499

ZStack——自动化测试系统2:系统测试

   ZStack的系统测试系统在真实的硬件环境中运行测试用例;像集成测试一样,这个系统测试也是全自动的,而且覆盖的层面包括:功能性测试、压力测试、性能测试。    概述    虽然集成测试系统,如我们在ZStack—自动化测试系统1:集成测试中所介绍的,强大到可以暴露开发过程中大多数的缺陷,也是有着固有的弱点的。首先,由于测试用例使用模拟器,它们不能测试真实场景,比如在一个物理的KVM主机上创建...

bjczhl的博客 4217

BevFusion (1): 传感器介绍

激光雷达,也称光学雷达(LIght Detection And Ranging)是激光探测与测距系统的简称,它通过测定传感器发射器与目标物体之间的传播距离,分析目标物体表面的反射能量大小、反射波谱的幅度、频率和相位等信息,从而呈现出目标物精确的三维结构信息。激光雷达是自动驾驶车辆的关键传感器,如下图所示,车辆上方旋转的圆柱体对应就是激光雷达传感器。

@bangbang的博客 1475

软件测试原来是一本艺术

测试是一种艺术文化。测试有两种,第一是心理学,和经济学。   软件测试的心理学:在测试前,相关干系人都有自己的期望值,当然每个干系人的期望值,都是不一样的。那么作为测试环节的我们,该如何面对自己的期望值。由于有很多种不同的期望值,那么就会导致测试的结果会有很多种。至于为什么会这样的,首先我们来一同认识下,软件测试的心理学。 比如:开发人员的期望值,更期望自己的作品,完美无缺。 测试人员的期望值,...

温情亿度网络科技 353

【2026最新】3分钟Windows极速部署OpenClaw,完整可复制命令+全链路避坑指南

很多新手在Windows环境部署OpenClaw时,总会遇到各种玄学问题:WSL环境配置失败、Docker镜像拉取超时、容器启动后无法访问、权限报错、数据丢失……网上大量教程要么是Linux环境的,要么是早已过时的旧版本配置,照着操作不仅没法3分钟部署,反而要花几小时踩坑填坑。

2601_94871597的博客 494

【Bug已解决】Codex CLI 运行时出现 command not found: codex 解决方案

方案适用场景推荐指数修复 PATH 配置最常见的基础排查方向⭐⭐⭐⭐⭐检查原生二进制完整性PATH 正常但执行仍然异常⭐⭐⭐⭐统一包管理器混用多种包管理器导致混乱⭐⭐⭐⭐确认安装脚本未被跳过CI/CD 或企业策略环境⭐⭐⭐⭐排查网络下载渠道企业内网/受限网络环境⭐⭐⭐需要留意 warning 中是否涉及脚本执行失败、网络超时重试等信息,这类 warning 往往是后续问题的前兆,建议出现明显的下载/网络相关警告时就主动重新安装一次确认。Codex CLI 报。

一键难忘的博客 1万+

ZStack——自动化测试系统1:集成测试

   测试,对于一个IaaS软件的可靠性、成熟度和可维护性而言,是一个重要的因素.测试在ZStack中是全自动的。这个自动化测试系统包括了三个部分:集成测试,系统测试,基于模块的测试。其中集成测试构建于Junit之上,使用了模拟器。通过这个集成测试系统提供的各种各样的功能,开发人员可以快速的写出测试用例,用于验证一个新特性或者一个缺陷修复。    概述    这个关键因素,在构建一个可靠的、成熟的...

V_WOD123的博客 3860

大模型产品Deepseek(七)、可视化本地知识库搭建详细教程(Cherry Studio)

Cherry Studio 为智能体的开发提供了一个强大的可视化平台,结合大模型和嵌入式知识库,它可以在多个应用场景中提供智能化的支持。如果你有进一步的需求或问题,可以继续在 Cherry Studio 中进行更多自定义配置,或者通过 API 调用集成到你的应用中。现在,知识库已经搭建并与 DeepSeek 模型连接好,接下来,我们将使用 Cherry Studio 提供的可视化界面进行智能提问。为了让智能体能够通过大模型查询到知识库中的信息,你需要为知识库配置索引和匹配模型。

xiaoqi270620903的专栏 1336

技术测评:ZStack网络性能测试

测试工具以及目的       IxChariot 是 NetIQ 公司推出的一款网络测试软件, 可以针对各种网络环境、各种操作系统进行测试,通过模仿各种应用程序所发出的网络数据交换,IxChariot 可以帮助网络设计或者网络管理人员对各种网络进行评估。通过IxChariot 附带的各种测试脚本,用户可以测试网络的数据流量、响应时间以及数据吞吐量,也可以根据网络中所采用的应用程序的需要,选择相...

bjczhl的博客 3594

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

在ZStack工作是一种什么样的体验?

在ZStack工作是一种什么样的体验?#校园招聘##计算机专业#

zstack_org的博客 921

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

(Beta)Let's-版本测试报告

测试中发现的Bug Version 2.0 Bug List 在无活动的活动列表下拉加载会崩溃 不能更改个人头像 用户和活动不显示头像 百度地图无法打开 在某些机型上软件装不上 图片加载有时不加载,有时会有残缺。 未知错误,偶尔点击活动会崩。 连击两次活动卡片会打开两次该活动的界面。 场景测试 典型用户阿王和阿强...

bantiehe8048的博客 366

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

zstack中按键复用的三种方式(纯应用层面)上

应用平台:stack-2007 版本:ZStack-CC2530-2.3.0-1.4.0 我们都知道cc2530中的可用I/O资源比较少,尤其在实际应用中,如果添加lcd显示等占用I/O 较多的外设时,I/O资源更是稀少;另一种情况是将ZigBee开发成一个小配件时不会添加太多外设,此时可能会用到按键的复用。 话不多说,本文结合自己的开发实例,仅在应用层面介绍三种按键复用方式: (1)传统的...

m0_37978258的博客 1698

如何使用ZStack——获取RSSI和LQI

CC2430内置接收信号强度指示器(RSSI),其数字值为8位有符号二进制补码,可以从寄存器RSSIL.RSSI_VAL读出。RSSI寄存器值RSSI.RSSI_VAL在RF上涉及的电能P为:P=(RSSI_VAL+RSSI_OFFSET) dBm,式中:RSSI_OFFSET是一个系统开发期间得到的来自前端增益的经验值,RSSI_OFFSET近似值为-45。 ZStack中获得P的语句为:

yeshuming的专栏 3175

公有云、私有云和混合云的区别及优缺点,云南企业上云必须先了解清楚

随着云计算的逐渐兴起,云计算最基础的产品云主机非常受欢迎,其中云主机分为公有云、私有云和公有云,许多企业准备把数据往云上迁移,不知道选择那类云主机,接下来谈谈什么是公有云、什么是私有云,希望对你有帮助。 云计算到底是何方神圣? 首先我们来看云计算的百科词条:云计算是一种按使用量付费的模式,这种模式提供可用的、便捷的、按需的网络访问,进入可配置的计算资源共享池(资源包括网络,服务器,存储,应用软件,服务),这些资源能够被快速提供,只需投入很少的管理工作,或与服务供应商进行很少的交互。(选自百度百科) .

云南IDC、阿里云、华为云服务 4131
上一篇: 为什么我们创造ZStack而不是选择OpenStack
下一篇: 私有云之殇:公有云这座大山(上)
普通网友
博客等级 码龄10年 769粉丝 269原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值