【云驻共创】DTSE Tech Talk | 以测试为突破口的软件工程全流程质量建设
以测试为突破口的软件工程全流程质量建设
本文是DTSE的技术讨论,主题是【以测试为突破口的软件工程全流程质量建设】,主要探讨内容为【CodeArts TestPlan自主研发的一站式测试管理平台】。
对于企业来说,经常会遇到一下几个问题:
- 产品架构复杂,测试协同效率低?
- 产品测试设计粗放,现网事故时有发生?
- 测试人员流动率大,产品面临频繁重构……重重测试挑战,该如何应对?
接下来我们共同来探讨一下CodeArts TestPlan,如何一站式做好测试管理!
1、华为测试技术发展历程
最初【手工测试】:小作坊时代,手工测试为主;部分商用工具进行专项测试,用例在Excel中管理。
2000年【自动化测试】:功能、性能测试进入自动化时代,脚本开发,AW封装,测试用例管理工具、自动化执行器问世。
2008年【自动化工厂】:7x24测试自动化工厂模式建立,进入全面自动化时代,实现了管理工具、执行工具的集成拉通,测试桌面问世,执行效率大幅提升,产品验收周期从周到天。
2012年【敏捷测试】:大规模自动化并发执行,环境并发调度。测试与编译构建拉通,构建CD能力;验收周期从天到小时。
2018年【智能化测试】:大数据及机器学习驱动,人工智能支撑辅助测试,精准测试,安全测试。
2、看HUAWEI是怎样做新特性测试
华为质量文化的转变
基于敏捷的两大核心理念
1、聚焦价值,需求范围可调
传统软件项目:
- 通过计划集成来协调成本和进度。
- 当出现冲突时,首先保证需求范围,易导致成本超标,进度延期和质量隐患。
敏捷软件项目:
- 通过愿景、战略的沟通一致来协调高价值特性优先交付。
- 当出现冲突时,裁剪低价值需求,保证高优先级需求按固定节奏,快速交付。
2、固定节奏小批量迭代交付
通过小包的固定模式,以迭代的方式进行交付,风险小,全功能团队扁平化,自治。
通过需求的分层和分解,多角色协作,以确保价值驱动
Feature的定义:
- 从客户视角描述,对客户有价值
- 可销售的价值实体,客户可以按特性付费购买
- 市场和销售通常把特性称为“卖点”。
Story需要满足INVEST原则:
- Independent (解耦)
- Negotiable (易交流)
- Valuable (传递价值)
- Estimable (易估算)
- Small (足够小)
- Testable (可测)
备注: Epic (战略举措) /Feature/Story/Task/Bug 通常统称I作项(Working Item)。
按迭代持续交付,实现闭环反馈
从需求规划开始,创建工作项、迭代计划、自定义流程、验收、迭代回顾,反复迭代持续交付实现闭环反馈。
测试基本理念
- 代表客户,全面完整
- 最经济的投入
- 最快的速度
全面性测试(多):
100%覆盖客户需求和应用场景及其组合,缺陷无遗漏。
自动化测试(快):
尽可能的将测试的执行活动实现自动化,从重复的手工测试中解脱出来。
完整性测试(好):
隐形需求客户未提,但是必须满足的关键竞争力需求。
经济性测试(省):
在有限时间用最先进的测试策略和技术,保障产品质量和竞争力。
迭代测试活动
下图是bug发现时间与所需修正缺陷费用的图标,我们可以很清晰的看懂【越早测试越好】的这个逻辑。
整个测试阶段的划分,有基本的单元测试开始,经过CT测试,Story测试,单个、多个系统功能集成测试,最后会代表客户做一个验收测试。
制定测试计划及策略·5W1H法
什么是5W1H法:
- Why:为什么要进行测试,测试目的。
- What:测试的内容及范围,测哪些,确定测试重点。
- When:起止时间,考虑影响时间的因素。
- Where:相关文档的存放位置,缺陷的存放,环境地址。
- Who:测试人员安排。
- How:选用何种工具及方法进行测试。
示例:
第一轮:
- 冒烟测试
- 新功能测试(新增及修改功能进行全覆盖)
第二轮:
- 冒烟测试
- 第一轮不通过用例
- 补充的用例
- 可能影响的用例
第三轮:
- 全量验证
要点:
- 合理的测试节奏与周期
- 最好的测试,是全自动化的每天测试
测试设计(一) 功能测试
HUAWEI首创的测试工具:
移动App功能测试点示例
正确性
- 异常输入、事件
- 提示信息
美观性
- 布局
- 图片、文字
- 一致性(提示信息、界面风格及元素等)
启动停止
- 首次启动,反复启动
中断
- 锁屏、关机、断电
- 强行结束进程
权限
- 某些权限被限制
流量
- 在Wifi及移动网络模式下
- 双卡双待,网络切换
- 断网或者信号不佳
安装升级
- 数据不丢失
文件存储
- 存储卡
兼容性
- 不同手机、操作系统
- 不同分辨率、旋转
测试设计(二)性能测试
性能测试通过自动化的测试工具模拟多种正常、峰值以及异常负载条件来对系统的各项性能指标进行测试。
产品性能曲线模型
三条曲线
- 资源利用
- 吞吐量(每秒事务数)
- 响应时间
最佳并发用户数
- 重载区左侧虚线
最大并发用户数(性能上限)
- 重载区右侧虚线
测试设计(三)接口测试
接口测试四原则:同源(设计与测试),独立验证(Mock),全自动,快速反馈(获取覆盖)
管理接口
- 使用Swagger描述接口,按服务->微服务->接口的方式有序管理接口及其变更
单接口测试
- 制定接口测试覆盖策略,全部 or 部分覆盖
- 使用等价类划分、边界值分析等方法设计单个接口的测试用例
多接口组合场景测试
- 先后调用多个关联的接口,测试接口组合起来可以正确完成一个用户场景
Mock
- 模拟被依赖的接口,解耦测试依赖
契约测试
- Mock+接口测试,解耦接口提供者、消费者的开发依赖关系
难点
- 好的接口测试需要考虑正常场景、异常场景、单接口、多接口组合,输入参数边界值、组合,做穷尽测试有一定难度
- 接口参数多,手工编写用例工作量大
对策
- 接口测试工具基于接口定义,自动生成测试用例
- 通过录制,辅助生成多接口组合场景用例
一份合格的测试报告
- 产品版本说明
- 测试环境描述
- 测试结论
- 关键风险
- 不对外发布特性【可选】
- 受限发布特性【可选】
- 产品全量质量评价
- 产品技术指标评价
- 缺陷分析
- 覆盖率分析
- 测试策略回顾【可选】
- 测试过程评估【可选】
- 测试结果统计数据
- 遗留问题清单
- 其他
测试退出与质量评价
测试退出条件
- 当达到了必要的信心级别,风险可以接受时
- 当发现缺陷的代价 > 缺陷发生引起的代价时
- 当达到测试完成标准(退出/成功标准)时
测试退出评估客观度量指标
特性质量评价标准
基于特性的需求覆盖、测试充分性、DI值、 质量属性评价等级(可选)的质量评价标准。
A:Go
B:Go with risk
C:Redirect
特性质量【不可接受】的评价标准:
说明:如果特性达到【不可接受】标准,表示该特性质量不可接受,必须改进。
测试能力成熟度
初始级
测试混乱,缺乏成熟的测试目标,测试可有可无:
- 测试和调试不能分开
- 编码后才开始测试
- 测试目的表明程序没有错
- 缺乏相应的测试资源
入门级
测试的目标是验证软件符合需求,会采用基本测试技术和方法:
- 测试是有计划的活动
- 测试和调试分开
- 编码后才开始测试
- 有少量的自动化
集成级
测试贯穿整个软件的生命周期,建立在满足用户或客户的需求上:
- 有独立测试部门
- 根据需求写用例
- 有必要的测试工具,实现测试管理、执行类工具的集成拉通
- 测试活动较全面开展:功能、性能等集成测试活动有序开展
专业级
具备大规模自动化测试能力,有效开展质量过程控制与管理:
- 采用IT系统管理测试资产和相关文档,自动化程度高
- 具备大规模自动化集成测试能力,测试周期可控
- 有缺陷管理系统
- 缺乏对测试过程中产生的数据的收集和分析
大师级
测试大数据驱动测试流程与质量不断改进,具有缺陷自动分析、预防能力:
- 测试数据驱动测试完备性改进,用例等测试数据.辅助生成
- 测试活动非常全面:功能、性能、可靠性、安全测试全自动化
- 大数据使能测试结果、缺陷分析与高效预防
- 数据可视化作业平台,看板实时展示
应用全生命周期测试解决方案——大师级测试能力解析
测试作业平台:
CodeArts敏捷测试实践
构建CloudNative测试能力,实现测试活动解耦,在线业务测试与监控。
分层自动化:
- 通过个人级,服务级,产品级分层自动化流水线来分层确保质量
- 提升功能/安全/性能/可靠性自动化测试覆盖情况
- 利用自动化技术,提升用例执行效率与稳定性,监控反馈流水线各测试环节执行效率
门禁:
- 不合格的制品无法流入下一环节
- 让流水线来拦截问题,让自动化门禁代替人工管理
- 分层门禁,规则自定
在线测试:
- 在线业务测试,对生产环境业务主线与重点功能持续在线拨测,先于用户发现业务异常并告警
- 在线体验巡检,每日生产环境巡检E2E主线场景体验
- 在线7x24监控,错误事务和运行异常对比分析告警推送
可视化:
- 测试过程可视化,让质量暴露在阳光下
- 团队所有成员知道项目的质量,促进团队成功
CodeArts TestPlan测试管理平台
为企业提供了一站式端到端测试自动化智能化解决方案。
3、TestPlan最新版本功能
TestPlan在今年1月份的版本中发布了以下功能: 序号 |
功能名称 |
功能描述 |
阶段 |
---|---|---|---|
1 |
启发式测试策略与设计 |
多维度测试策略/设计模板,应用启发式测试策略/设计模型,提供“需求-场景-测试点-测试用例” 4层测试分解设计能力,一键批量生成测试用例。 |
商用 |
2 |
亿级测试用例分层分级管理 |
融入大规模、复杂场景的三层测试管理实践,满足基线库、分支、迭代版本间用例高效复用,测试用例亿级容量管理。 |
商用 |
3 |
全面高效的质量度量与评估 |
通过需求覆盖率、需求通过率、用例执行率、遗留缺陷指数等10+质量指标的自动化度量,实现软件质量可视化、可评估。 |
商用 |
4 |
内置IPD测试流程与实践 |
内置IPD测试验证流程的要求与规范,从测试策略、测试设计、测试管理、测试执行,到测试评估全流程融入IPD高质量实践精髓。 |
商用 |
5 |
测试验证双向可追溯 |
建立需求、测试计划、测试方案、测试用例、测试脚本、缺陷等双向关联,形成质量追溯证据链。 |
商用 |
TestPlan新特性一:启发式测试策略与设计
多维度测试策略/设计模板,应用启发式测试策略/设计模型,提供【需求场景-测试点测试用例】设计能力,一键批量生成测试用例:
TestPlan可以在华为云官网直接搜索,查找很方便,并且提供了基础5人免费的活动。
使用基础版本进行测试很方便。
提供了多种模板可供企业选择:
很低的学习成本就可以根据对应的思维导图进行分析,非常方便。
TestPlan新特性二:亿级测试用例分层分级管理
23年1月的版本更新中,融入大规模、复杂场景的三层测试管理实践,满足基线库、分支、迭代版本间用例高效复用,测试用例亿级容量管理。
如何管理好大规模测试资产,如何协同大规模测试团队,如何保证客户的价值特性不丢失、体验不下降,都是企业产品测试面临的关键挑战。
华为云CodeArts TestPlan提供了测试用例基线化管理能力,持续积累和沉淀测试用例,帮助企业实现产品价值特性的看护。同时,TestPlan提供了“产品基线库、版本分支、测试计划”三层用例管理和评估能力,支撑团队间作业的高效协同,实现亿级测试资产的管理与跨版本复用,满足复杂产品多版本并行研发交付的场景,测试资产复用率提升60%。
TestPlan新特性三:全面高效的质量度量与评估
通过需求覆盖率、需求通过率、用例执行率、遗留缺陷指数等10+质量指标的自动化度量,实现软件质量可视化、可评估。
管理学大师彼得·德鲁克说过,没有度量,就没有管理。所有的商业产品质量管理都不例外。基于成熟的测试质量评估模型和规范,对产品质量的科学、客观评估,可以让产品质量可视化、可度量,让产品发布前的质量评估不再“盲人摸象”,更利于产品持续改进,“让质量暴露在阳光下”,达成高质量的目标。
华为云CodeArts TestPlan提供需求覆盖率、需求通过率、用例执行率、遗留缺陷指数等10多个质量度量指标,支持功能、性能、可靠性等维度的质量评估,测试评估周期从天级缩短到小时级。
TestPlan新特性四:内置IPD测试流程与实践
1月份的版本中还增加了内置IPD测试验证流程的要求与规范,从测试策略、测试设计、测试管理、测试执行,到测试评估全流程融入IPD高质量实践精髓。
随着产品的规模和复杂度增加,测试活动的开展也需要有章可循,形成科学的流程和规范。以华为公司为例,为保障产品测试活动有序开展,华为在IPD流程中定义了从需求分析阶段到版本发布阶段之间的详细测试活动和流程,并通过标准化的规范,持续保障测试验证的高质量。
华为云CodeArts TestPlan内置IPD测试流程与规范,从测试策略、测试设计、测试管理、测试执行到测试评估,全流程融入IPD高质量实践精髓,伴随着华为产品发展而持续优化演进,广泛应用于华为各业务线的产品测试中。
TestPlan新特性五:测试验证双向可追溯
建立需求、测试计划、测试方案、测试用例、测试脚本、缺陷等双向关联,形成质量追溯证据链。
ISO15288测试规范定义了通用系统生命周期过程,其中,验证过程与确认过程中提出了对需求、测试设计方案、用例、缺陷等双向可追溯的要求。在华为内部,测试过程端到端可追溯也成为了明文要求的标准。
华为云CodeArts TestPlan支持建立需求、测试方案、测试用例、缺陷等双向关联,实现测试过程可追溯,通过可信的测试过程,保障结果可信。
4、总结
本篇文章我们主要分了三个模块进行表述:华为开发者空间发布
让每位开发者拥有一台云主机
- 点赞
- 收藏
- 关注作者
评论(0)