在如今的大环境下你是否选择测试岗?——打造敏捷测试团队

简介: 在如今的大环境下你是否选择测试岗?——打造敏捷测试团队

摘要:敏捷转型大潮汹涌而来,各大技术公司均被卷入其中,在管理层的重视下,效能提升成为测试团队日常工作的口头禅。但是我们也看到,敏捷转型的效果参差不齐,真正深入理解敏捷要义的骨干员工数量很少,对敏捷概念的误解随处可见,转型打法上经常发生冲突,团队成员也频频感到受挫。


身处其中的测试团队往往陷入更加困惑的状态,一方面交付要快,另一方面质量兜底的挑战并未减少,使得测试人员身心俱疲,甚至成为转型中的消极角色。事实上,我认为在转型成功的敏捷研发团队之中,测试人员应该会得到足够多的收益,在工作时应该会更加愉悦舒心。为什么会身心俱疲,问题究竟出在哪里?


本文从“什么是敏捷测试”以及“敏捷为什么会失败”开始剖析,并分享对测试团队的敏捷现状做出自我诊断的过程。


更多详细内容请参考《无测试组织:测试团队的敏捷转型》一书。


从测试角度理解敏捷理念

首先,我们用极简的语言提出一个灵魂拷问,并尝试从测试的角度给出见解。

什么是敏捷?测试人员应该怎样理解敏捷理念?


敏捷知识体系本质上是一棵大树。从下到上,树根是敏捷宣言和价值观(道);树干是敏捷原则(法);树枝和树叶是各种层出不穷的实践方法框架(术)。如图所示。

敏捷知识之树——道、法、术

敏捷宣言

对于敏捷宣言,大家对此应该耳熟能详了,它是敏捷实践先驱们推出的共识:我们一直在实践中探寻更好的软件开发方法,身体力行,同时也帮助他人。由此我们建立了如下的价值观。


  • 个体与交互 胜过 过程与工具
  • 可用的软件 胜过 详细的文档
  • 客户协作 胜过 合同谈判
  • l响应变化 胜过 遵循计划
    尽管右侧有其价值,但我们更重视左侧的价值。

对于测试活动的启发与思考总结如下。


测试活动不能忽视人和人的交流,我们不能指望所有测试依赖的信息都列在需求和设计文档里,这在研发过程中是不现实的。测试管理者是否创建了各种激励手段,推动测试人员加大交流的有效性,而不是“逼迫”产品和开发人员升级更完善的文档?


从软件的使用中获得测试知识,而不是依赖死板的文档提供测试知识。如何尽早地使用软件,并尽可能多的获得测试需要的启发?


合同中约定的质量标准就是一成不变的铁律吗?为了让客户更及时地刷新质量交付要求,能否邀请他尽早参与测试活动,并从客户这里获得有益的测试信息?


被测需求的变更率越低越好吗?并非如此,优秀产品一定是快速响应需求的。测试团队不应该期待用户需求尽可能保持不变,而是应该建立能根据变更需求及时调整策略和用例的机制。


注意,不要走向另一个极端!

过程、工具、文档、合同和计划,对于研发团队和测试活动依然很重要,如果完全去掉它们,会带来什么后果呢?大概率是欲速而不达,甚至欲哭无泪。一旦重要成员变动,项目时间拉长,很多工作可能要从头再来。


我们的目标就是通过实践,在这些产物的投入度和使用价值上取得平衡。

敏捷原则12条

敏捷原则12条的具体内容如下。


通过尽早和持续地交付有价值的软件来满足客户。


欣然面对需求变化。


不断交付可用的软件,周期越短越好。


在项目过程中,业务人员和开发人员必须在一起工作。


激发个体的斗志。给他们所需要的环境和支持,并相信他们能够完成任务。


不论团队内外,最有效的沟通方法是面对面的交谈。


可用的软件是衡量进度的主要指标。


敏捷过程提倡可持续的开发。项目方、开发人员和用户应该能够保持长期稳定的开发步伐。


对技术的精益求精和对设计的不断完善将提升敏捷性。


要做到简洁,即尽最大可能减少不必要的工作。这是一门艺术。


最佳的架构、需求和设计出自于自组织的团队。


团队定期地反省如何提高成效,并相应地调整团队的行为。


这些敏捷原则是基于敏捷宣言进一步展开。对于测试活动的启发与思考总结如下。


由交付软件的周期越短越好推导出测试活动独占的时间越短越好,这应该是核心的度量指标。


我们的测试人员是否和开发、产品、业务人员坐在一起,紧密工作?如果并非如此,管理者如何减少异地工作的负面效应。


测试人员为了达成交付目标,是否获得了敏捷团队以及测试主管的支持,是否获得了足够的信任?


测试工作投入时间是否稳定,加班情况严重吗?可持续的测试工作,首先是避免长期的加班和没有规律的工作量安排。从敏捷观点来看,长期的加班模式不但不会提高迭代速率,反而会降低速率,有规律的作息是高效工作的基础保障。


是否有合理的人力持续投入测试技术的打磨优化上?


日常的测试工作中哪些是没有必要,可以被精简的?


测试策略和方案实施,多大程度上能由敏捷团队内部人员完全掌控,而不依赖外部专业人士协助?


定期的团队反省改进措施中,是否经常有测试改进的内容?改进效果如何?

把上述原则投射到测试活动管理中,并一一做好了,测试敏捷实践的成效就不会差。可惜,能有意识地遵守大部分敏捷原则的团队少之又少。

敏捷实践框架


即使有了敏捷宣言和原则,二者还是无法在研发过程中具体指引团队完成敏捷转型。通过多年的研究和探索,各类敏捷实践框架应运而生,各具优势,能满足通用或特定团队情况。著名的敏捷实践框架有Scrum、看板、TDD/ATDD、DDD、BDD、CI/CD、PAIR、SAFe, 等等。


为什么要做敏捷


在日新月异的技术高速发展的背景下,软件架构和跨软件交互的复杂度被提升到前所未有的高度。大量的行业数据告诉我们,传统研发模式遇到巨大的挑战,三分之二的功能很少甚至从来没有被客户使用,后期需求变更持续不断,但质量修复成本却不断攀升。


引入敏捷的本质,就是把传统项目管理铁三角——范围、时间和成本,进化为敏捷铁三角——价值、质量和约束条件。在现有的约束条件(可能是时间、成本或范围)下,我们会以高质量优先完成高价值的事情。


+


小结


本文从敏捷理念的知识开始介绍,阐述了敏捷宣言和原则对于测试活动的启发,引出敏捷测试的定义。为什么敏捷转型会失败,为什么敏捷测试会失败?本章也给出了观察到的主要现象和原因。接下来,引导测试团队对最突出的阻碍和风险进行自我诊断,通过集体脑暴对团队愿景、敏捷测试原则和关键举措达成共识,并持续付诸行动。更多内容请参考《无测试组织:测试团队的敏捷转型》。


相关文章
|
1月前
|
安全 测试技术
北大李戈团队提出大模型单测生成新方法,显著提升代码测试覆盖率
【10月更文挑战第1天】北京大学李戈教授团队提出了一种名为“统一生成测试”的创新方法,有效提升了大模型如GPT-2和GPT-3在单一测试中的代码生成覆盖率,分别从56%提升至72%和从61%提升至78%。这种方法结合了模糊测试、变异测试和生成对抗网络等多种技术,克服了传统测试方法的局限性,在大模型测试领域实现了重要突破,有助于提高系统的可靠性和安全性。然而,该方法的实现复杂度较高且实际应用效果仍需进一步验证。论文可从此链接下载:【https://drive.weixin.qq.com/s?k=ACAAewd0AA48Z2kXrJ】
61 1
|
2月前
|
人工智能 测试技术 开发者
北大李戈团队提出大模型单测生成新方法,显著提升代码测试覆盖率
【9月更文挑战第27天】北京大学李戈团队在人工智能领域取得重要突破,提出HITS新方法,通过将待测方法分解为多个切片并利用大型语言模型逐个生成测试用例,显著提升代码测试覆盖率,尤其在处理复杂方法时效果显著,为软件开发和测试领域带来新希望。尽管存在一定局限性,HITS仍展示了巨大潜力,未来有望克服限制,推动软件测试领域的创新发展。论文详情见【https://www.arxiv.org/pdf/2408.11324】。
87 6
|
8天前
|
机器学习/深度学习 自然语言处理 前端开发
前端神经网络入门:Brain.js - 详细介绍和对比不同的实现 - CNN、RNN、DNN、FFNN -无需准备环境打开浏览器即可测试运行-支持WebGPU加速
本文介绍了如何使用 JavaScript 神经网络库 **Brain.js** 实现不同类型的神经网络,包括前馈神经网络(FFNN)、深度神经网络(DNN)和循环神经网络(RNN)。通过简单的示例和代码,帮助前端开发者快速入门并理解神经网络的基本概念。文章还对比了各类神经网络的特点和适用场景,并简要介绍了卷积神经网络(CNN)的替代方案。
|
15天前
|
编解码 安全 Linux
网络空间安全之一个WH的超前沿全栈技术深入学习之路(10-2):保姆级别教会你如何搭建白帽黑客渗透测试系统环境Kali——Liinux-Debian:就怕你学成黑客啦!)作者——LJS
保姆级别教会你如何搭建白帽黑客渗透测试系统环境Kali以及常见的报错及对应解决方案、常用Kali功能简便化以及详解如何具体实现
|
2月前
|
JavaScript 测试技术 Windows
vue配置webpack生产环境.env.production、测试环境.env.development(配置不同环境的打包访问地址)
本文介绍了如何使用vue-cli和webpack为Vue项目配置不同的生产和测试环境,包括修改`package.json`脚本、使用`cross-env`处理环境变量、创建不同环境的`.env`文件,并在`webpack.prod.conf.js`中使用`DefinePlugin`来应用这些环境变量。
92 2
vue配置webpack生产环境.env.production、测试环境.env.development(配置不同环境的打包访问地址)
|
1月前
|
分布式计算 Hadoop 大数据
大数据体系知识学习(一):PySpark和Hadoop环境的搭建与测试
这篇文章是关于大数据体系知识学习的,主要介绍了Apache Spark的基本概念、特点、组件,以及如何安装配置Java、PySpark和Hadoop环境。文章还提供了详细的安装步骤和测试代码,帮助读者搭建和测试大数据环境。
53 1
|
1月前
|
前端开发 测试技术 程序员
在工作中会涉及到的几个环境(概念补充) 办公环境、开发环境、测试环境、线下环境、线上环境/生产环境都是什么,他们之间的关系?
本文解释了在职场中可能会接触到的不同环境,包括办公环境、开发环境、测试环境和生产环境(线上环境),以及它们之间的关系和重要性。
62 1
ACE
|
2月前
|
SQL 分布式计算 数据处理
如何创建2024云栖Openlake测试项目和配置环境
2024年云栖大会,MaxCompute 多项重磅产品新功能邀测发布,新特性包括 支持OpenLake的湖仓一体2.0、Object Table支持SQL或MaxFrame处理非结构化数据、Delta Table增量表格式、基于增量物化视图的增量计算、MCQA2.0 SQL引擎查询加速等。其相关特性将在中国区 公共云 北京、上海、杭州、深圳Region 上线开放试用。本文以最佳实践的方式,帮助您创建MaxCompute和周边产品 在Openlake解决方案demo中需要准备的实例、项目和开发环境,并完成配置。欢迎您玩转云栖邀测demo,体验新功能。
ACE
521 7
|
2月前
|
Web App开发 Linux Python
linux上安装selenium环境及测试
该文章提供了在Linux CentOS上安装Selenium环境、Chrome浏览器及Chromedriver的详细步骤,并演示了如何以无头模式进行测试。
171 0
|
2月前
|
存储 监控 安全
在自动化测试环境中,如何确保测试数据的安全性和隐私性
在自动化测试环境中,如何确保测试数据的安全性和隐私性