当前位置: 首页 > 科技观察

敏捷推动QA变革

时间:2023-03-20 21:31:08 科技观察

敏捷的概念由来已久。如果从敏捷软件开发宣言的发布算起,今年已经是20周年了。在这漫长的岁月里,越来越多的团队在“四优”价值观的指引下,在十二条原则的指导下,愿意探索和不断进化,在实践中探索更好的软件开发方式。虽然敏捷本身在不断变化,不同的团队对敏捷实践的实现也不同,但人们对敏捷核心的理解往往是一致的。“追求更短的反馈循环”——是大家广泛认可的核心目标之一。如果我们从头到尾来看,那么:Inception的采用拉近了项目团队和产品团队/用户之间的距离,在获得需求的有效澄清的同时,为软件设计提供了快速的反馈和更新。Pipeline的采用加快了软件集成的效率和频率,挂载流水线的分层自动化测试缩短了代码测试的反馈回路,这也是快速交付的基础之一。快速交付的实现,完成了产品/用户-项目团队-外部市场的闭环,步步为营,缩短了市场验证的反馈回路。然而,以“追求更短的反馈循环”为目标的敏捷,不仅在以上几个方面改变了敏捷团队的开发流程和技术实现的软件工具,更真正改变了团队成员的角色认知、工作内容和思维方式.在这篇文章中,我们来梳理一下QA的角色是如何从传统的Tester(或许在不久的将来会更名为QE)在敏捷的驱动下演变而来的。角色认知曾几何时,CMMI还很流行。研发中心人员按职能维度分为PM组、开发组、BA组和测试组(这可能是角色墙或部门墙形成的条件)。当时,测试团队在国内的质量控制角色称为:手工测试工程师、自动化测试工程师、专项测试工程师(如:安全测试、性能测试、无障碍测试)、测试经理。在项目敏捷转型的过程中,上面各个团队的经理,当然也包括测试经理,他有意无意地从自己的团队中抽出一部分人力资源,组成特性团队。这个团队在敏捷深化的过程中也经历了一个类似于塔克曼团队开发模式的过程。我们从质量的角度来分析一下。(1)组建期间,人工测试和自动化测试人员可能会分开,即使是专门的测试人员也只是兼职参与。团队成员按照原有瀑布式开发模式固有的阶段性方式,像一场4x100米接力赛一样相互配合。任务在角色之间一个接一个地进行。虽然团队交付周期缩短到2~3周,但敏捷发挥到了小瀑布里,不同角色扫门前雪,整体速度不高。你会发现,由于手动测试和自动化测试的目标不同(一个是发现缺陷总数,一个是自动化测试覆盖率),配合起来也看似不连贯,无法达到1+1>2的效果.在这种情况下,急需将质量控制统一为一个角色,这就是质量保证的作用。(2)震荡期这一时期,随着CI/CD流水线等基础设施的优化和团队成员的磨合,整个团队的研发效率出现了波动和提升。敏捷团队有了QA的角色,对项目的质量负责,测试工作的范围比以前有了很大的增加。角色统一后,QA不一定能为所欲为。一直担心ReadyforQA卡不测试,四手难打(更何况有些团队的开发测试比例超过8比1)。如何在测试过程中更准确地实施测试,如何让开发者从已有缺陷的规律中学习提高Build的稳定性,如何主动预防问题的发生?对这些问题的思考逐渐使QA演变为QualityAnalysis的角色。(3)规范期间,敏捷追求持续改进。如何在敏捷铁三角中更好地实现对品质的追求?如何进一步缩短项目反馈周期?我觉得形成规范的过程不仅仅是研发过程的规范,还有软件工具的规范。通信的标准化也是一个化繁为简的过程。人们常说积少成多,合力成城。在项目质量方面,更多依靠团队的力量对每个过程的结果进行快速反馈是必由之路,也是更成熟的QA-QualityAdvocate手中高举的大旗。此图引用自《数字化转型背景下的测试转型》WorkContent可能有人会认为无论是哪种QA都只是对这个英文缩写的解释。如果你愿意,QA也可以理解为Question&Answer。我同意问答幽默的说法。尝试回忆在项目中提出更多问题并寻求答案的人。不是QA吗?不过,为了大家更好的理解,我们在这里把QA的三种解释称为三顶帽子,工作内容划分如下:(1)QualityAssurance是传统Tester工作的延伸和统一四个传统的测试角色。将角色的思考范围从具体测试执行的“点”提升到测试设计+执行的“面”。质量保证工作内容(二)质量分析质量分析,在质量保证的基础上,加入思辨性的元素,如何从业务价值的交付上更有效地提高质量,将工作方向从质量检验推进到质量改进。这样,QA的角色就逐渐走出了独立角色的范围,上升到了团队影响力的层面。质量分析工作内容(三)QualityAdvocate在质量倡导方面,QA对团队的影响更为突出,更像是质量的布道者,让所有角色在所有活动和阶段都思考质量,所以团队能够不断提升质量管理的量化展示,致力于将内在质量转化为团队基因,适时孵化新的质量实践。QualityAdvocationWorkContent从上面的描述,你可能会认为QA的三顶帽子有某种渐进的关系,其实不然。由于有三种不同的帽子(如鸭舌帽、大礼帽和头盔),敏捷中的QA会选择合适的帽子在不同的场合佩戴。只有以自动化测试为效率基石,拓宽质量保障覆盖面,精准优化质量分析,质量倡导沉淀文化,协调配合,才能打造成熟的敏捷QA。测试工程师与QA关系图思维模式在Agile项目中QA工作内容转变背后的驱动力是什么?我认为这个驱动力,一方面来自于敏捷实践带来的研发效率提升后的下游角色,另一方面也来自于质量人员对敏捷理念的坚持和演进。这些工作内容变化的同时,也促成了思维方式的变化,比如一个目标,一个依据,以及下文将要提到的三大法宝。(1)以缺陷预防为目标。随着缺陷被发现的时间越来越晚,缺陷修复的成本将变得更加昂贵。及早发现缺陷可以有效降低软件开发成本。尽管发现的缺陷数量被转换为测试人员性能组件,但直到现在,这种现象在一些组织中仍然存在。这种对缺陷修复成本趋势的不屑,更多的是人员冗长的结果。测试的目标是预防缺陷而不是发现缺陷,在敏捷组织中广受推崇。本图引用自《敏捷测试的核心》(2)基于测试宣言敏捷宣言是敏捷组织的圣经。AgileManifesto演变而来的AgileTestManifesto强调持续测试、精准分层自动化、认同团队共享质量、尊重内在质量,为QA的实践探索提供了理论依据。(3)法宝一:沟通集中化QA实践探索过程中,为了检验宣言中的理论,对QA在决策沟通和过程影响方面的作用提出了极大的挑战。QA从一个持枪的技术岗位,要成为与文科、安邦、吴氏一起称霸江山的大才子,还要有上堂下厨的自由。(4)法宝二:内在质量作为预防缺陷最重要的措施,QA参与了敏捷过程中的各种活动。在每一项产生过程结果的活动中,QA都会提出问题来启发其他成员思考质量和影响,从而使团队始终牢记质量。(5)法宝三:分层自动化为了缩短代码修改和验证的反馈回路,自动化测试作为Pipeline配置的硬性条件显得更为重要。自动化脚本设计分层设计,系统架构从低到高分为单元测试自动化、组件/服务测试自动化和系统测试自动化。这样,自动化测试的角度更加多样,覆盖范围更加精准。QA职业路线的敏捷演进促进了角色的演进,角色的演进又反过来推动了敏捷的演进。很多事情都是这样,因果流动,相互促进。说了这么多,总会有关注的人发现,上面说的敏捷QA的影响范围从来没有跨越过团队层面。我们知道,随着企业数字化转型的深入,敏捷已经从最初的团队敏捷扩展到业务敏捷,在加入EDGE之后演化为组织敏捷。那么,QA的角色是否在敏捷演进中形成了相应的职业路径呢?答案当然是肯定的,现在是时候呈现TW21年最新QA职业路径原型图了。接下来,我们来了解一下Global对QA职业路径中各个节点/职位输出(Outcome)的定义。(1)QualityPractitioner,在敏捷团队中实施:强大、可扩展的自动化套件,支持持续交付将高质量软件交付生产以满足业务目标通过持续测试快速反馈(2)QualityAnchor质量专家,在敏捷团队或客户中线(Account),从质量治理的角度与业务、设计师、架构师等各种角色进行沟通,独立推进:促进业务和开发团队在质量战略、风险和应对措施、团队培养、稳健、可扩展的自动化suitesalignedtoenablecontinuousdeliveryDeliverhigh-qualitysoftwaretoproductiontomeetbusinessgoals通过持续测试实现快速反馈从上面的分类输出可以看出,Tester和QualityAssurance可以映射到QualityPractitioner,而QualityAnalysisQualityAdvocate可以映射到QualityAnchor。随着质量专家对客户的质量影响力的提升,将达到更高的层次,QA的发展将进入更广阔的平台。这也是国内最值得探索的地方。(3)QualityEnabler质量教练,在更大的复杂交付项目或数字化组织转型过程中:实施跨职能/区域/团队定制以实施质量原则和良好实践,采用最佳敏捷QA实践嵌入团队(4)ProgramQualityLeaderProjectQualityManager的质量基础、原则和理念,在多团队的大型复杂交付项目中实施:跨组织监督协调多个项目、产品和其他战略计划在跨职能部门之间实施teams高效沟通,顺畅快速的大规模持续交付,带领紧密合作的QA团队(5)QualityStrategist质量策划师,深入研究复杂项目或敏捷转型组织并提出对症质量策略和实施方案:制定交叉-团队和项目策略质量计划和测试策略egyplanning清晰的目标、行动计划和资源分配,以促进实施并创造新的机会,为客户创造独特的商业价值(6)QualityPartner优质合作伙伴,作为客户高级管理团队(CxO级别)中值得信赖的成员,促进客户组织层面QA纪律的建立和实施:在持续质量交付中遵循组织愿景,完成组织层面的过程实践和战略转型,实现质量文化和质量理念在客户组织的建立和内化