敏捷项目下的传统测试转型之旅 | IDCF
DevOps
共 6591字,需浏览 14分钟
·
2020-09-23 14:57
来源:DevOps社区Meetup,本文曾发表于“《测试技术与质量管理》季刊第19期” 作者:陈晓鹏。测试、敏捷及DevOps专家。德勤管理咨询系统集成业务线测试负责人,中国商业联合会互联网委员会智库专家,ISO29119软件测试国际标准评审组专家。19年IT领域测试相关工作经验,超过13年在IBM、埃森哲、德勤等国际顶尖IT咨询及世界五百强公司工作。擅长测试咨询与落地、项目管理、测试自动化及敏捷测试、DevOps等相关领域。 编辑:墨香
一、传统测试在敏捷环境下面临的挑战
时间极短
文档极少
变更极频
资源极缺
二、敏捷环境下应采用敏捷测试
“敏捷测试是遵从敏捷软件开发原则的软件测试实践。敏捷测试包括跨功能敏捷团队的所有成员,以及测试人员提供的特殊专业知识,以确保可持续的速度频繁地交付客户所需的业务价值。”
敏捷测试遵从敏捷开发的原则,强调遵守。所以敏捷价值观和敏捷宣言遵循的12原则同样适用在敏捷测试中。 测试被包含在整体开发流程中,强调融合。在敏捷开发过程中不再像传统项目那样有开发阶段和测试阶段之分,而是把开发和测试作为一个整体过程来看待。 跨职能团队,强调协作。跨职能意味着团队需要具备不同专业技能的人才共同组成,彼此之间互相协作、互相帮助,发挥每个人在团队中的优势,从而使得团队绩效最大化。
三、往敏捷测试转型的四个要素
四、敏捷测试文化转变
小心变成质量警察
可持续的速度而不是在项目尾段快速激烈的测试
合作伙伴式的客户关系
每个团队都有能力做出决定
提倡免责文化
管理层需要具备敏捷知识
五、敏捷测试组织转变
在SAFe中是如此定义实践社区CoP的:
实践社区是一个由团队成员和其他专家组成的非正式团体,他们在一个项目群或企业环境中活动,并且拥有在一个或多个相关领域分享实践知识的使命。
由定义可知,虽然CoP不是一个正式的团体组织,无法承担测试人员管理的职责,但是至少可以让测试人员有一个“精神乐园”作为寄托,可以在里面学习与分享,减少测试人员的迷茫感。
六、敏捷测试流程转变
代码:在Sprint层级中,我们需要对代码进行质量扫描和单元测试,主要测试独立的代码单元是否正确。这个测试在单个Sprint内完成,不会跨Sprint。 故事:在Sprint层级中,我们主要的测试对象是用户故事。我们需要根据故事的验收标准进行测试,这个测试是在Sprint迭代过程中执行的,而且不会跨Sprint。 特性:在版本发布层级中,我们的测试对象是特性,主要是测试一些故事之间如何协同工作向用户交付更大的价值。这个测试有些可以在Sprint内完成,有些需要跨Sprint才能完成。 史诗:在版本发布层级中,我们测的对象是史诗,主要是跨多个特性的核心业务流程,通常是端到端的集成测试。这个测试通常都是要跨Sprint才能完成。
L1级别主要是针对单元组件模块级别进行的性能测试; L2级别主要是针对用户故事级别进行的性能测试; L3级别主要是针对整个版本端到端级别进行的性能测试。
七、敏捷测试实践转变
需求到配置库 代码到开发环境 代码到Sprint测试环境 代码到集成/发布测试环境 代码到生产环境
需求到配置库:这个环节是需求相关的环节,我们针对需求主要采用ATDD或者BDD的实践进行活动,同时也要考虑关于可用性的调研,可以通过低保真原型向最终用户收集反馈。该环节的赋能者是BDD的框架、ATDD的框架,比如Cucumber、Specflow等。 代码到开发环境:这个环节是单元测试环节,我们针对代码主要进行单元测试TDD、静态代码分析、代码覆盖率分析等活动。该环节的赋能者是XUnit框架、Jacoco代码覆盖率分析、SonarQube静态代码扫描等。 代码到Sprint测试环境:这个环节是Sprint内测试环节,我们针对代码的功能性和非功能性进行测试,主要的质量活动包括功能测试、性能测试、安全测试等。该环节的赋能者是服务虚拟化、API和UI的测试自动化、组件和故事级别的性能测试等。 代码到发布集成测试环境:这个环节主要是跨Sprint的UAT测试环节,主要包括端到端联调测试、探索式测试、性能测试、可用性/易用性测试、安全测试等活动。该环节的赋能者是自动化测试框架、CI/CD流水线、安全漏洞扫描、用户体验测试、系统级别的性能测试等。 代码到生产环境:这个环节主要是上线后环节,包括的质量活动如A/B测试、生产环境测试、混沌工程(Chaos Engineering)等。该环节的赋能者是自动化测试框架、生产监控工具包括APM等。
八、结语
通过敏捷测试流程使得测试过程与敏捷迭代一致,解决了测试时间短的问题; 通过合作伙伴式的客户关系文化转变,使得我们不再需要描写繁杂的需求文档,我们通过与客户频繁沟通了解客户的真正需要; 通过组织架构向跨职能团队调整,质量应由团队保障,解决了专职测试资源少的问题; 通过敏捷测试实践的自动化测试与持续集成,缩减反馈周期,使得在变更频繁的情况下也能很好的保证质量。
[1] SAFe4.0精粹 电子工业出版社 (美)理查德·克纳斯特,(美)迪恩·莱芬韦尔著 [2] Scrum精髓 清华大学出版社 (美)凯恩鲁本著 [3] 维基百科
评论