关于软件测试的几点反思 - 关于测试团队的组织

简介:

 这一篇是系列文章的第三篇,前面两篇分别谈了测试的必需性《关于软件测试的几点反思 - 测试是必需的吗?》,以及测试工作的一些内容《关于软件测试的几点反思 - 测试工作的三个阶段》,接下来想聊一下测试团队的组织。
  要讨论这个话题,首先要讨论下测试人员本身的归属,因为通常是人多了才有组织的必要,很多东西都是一点点长出来的。
  我在读研期间实习的一家公司,根本没有专职的测试人员,回头想想当时还是挺大胆的,因为做的是比较核心的系统,而且当时像我这种实习生都写了很多核心的涉及金额计算的代码,然后大家自测下就上线了。这种情况也持续了好久,也验证了不一定必需,在特定的情况下。
  个人的工作经历,没有一开始去很小的研发组织。后面工作后的面试中,也接触过很多规模较小的公司的测试人员,这种情况下大部分是直接归属到项目,汇报给开发经理。人数少,大部分是比较基础的黑盒测试,相对也比较弱势。没有任何贬低的意思,但是客观来说,这个阶段的测试很难有一些比较深入的测试技术上的实践,时间不允许,也处于没有人带的情况,大家基本上都专注在项目的功能测试上面。一直觉得环境对人的影响是比较大的。有些比较有上进心的同学会自己学一些技术,但是因为没有指导,也没有实际应用的场景,通常比较浅。
  后面等到整个研发体系发展大了之后,可能测试人员也慢慢多了起来,同时服务于多个开发小组,于是就出现了测试团队的二级组织。比如对口每个开发小组的有几个人,或者更多,然后有一个lead或者first line manager,然后这些人汇总到一个second line的manager。这个时候随着测试团队规模的壮大,当然也是随着整个研发组织的壮大,以及业务和开发方面提出了更多更高的质量要求,测试团队在客观上有了进一步提升的需求。主观上因为second line的出现,会不再满足于完成基本的测试工作,也有提升的动力。一些测试的规范,用例设计,缺陷管理,数据的分析,工具平台的引入,自动化的开展等慢慢开始引入。
  接下来,可能到研发部门层面有一个完整的测试团队,进而可能是整个公司,或者事业部(BG,BU)层面有一个完整的测试部门,或者中心。
  目前看到的腾讯和阿里的几个大的业务导向的事业部都是这样的情况,比如腾讯的互联网,互动娱乐,电商(曾经);阿里的淘宝,天猫和支付宝,都是在事业部层面有一个完整的测试团队。
  进一步,如果这类很大型的公司,把全集团的测试集中到一起的还没看到,主要是因为组织架构的顶层还是按业务来划分的,比如事业部制。
  基于上面的讨论,我们可以从测试的集中这种角度来看看测试团队的情况,这样划分就有两种,集中还是不集中。
  集中的例子就是上面说的情况,所有专职测试人员都在一个小组,一个大的二级组,进而一个中心,一个部门,数据结构上是一颗树。非集中的情况就是测试人员散落在不同的开发中心,或者开发组,是一个森林。每一块的测试人员组成一个小组,汇报给开发中心的总监,或者开发经理。 目前了解到不少公司是这样来组织的。
  每一种组织方式都是结合了公司的实际情况和要求,但是如果单纯从测试团队的价值和效率方面,目前来看,会觉得集中到一起是个更好的方式,主要的理由是下面几点。
  1. 集中到一起之后,因为资源的整合,可以减少各个团队的重复建设,集中来做一些平台建设,技术研究,或者横行的技术共享,有利于提升团队的技术深度。
  2. 从业务的角度,集中后测试可以横向的对齐,来看各个项目的质量情况,研发流程的过程执行和效率的情况。从整个组织的角度,对研发的质量和效率有促进的作用。
  3. 从测试人员个人发展的角度,因为整个测试组织有了更好的深度,个人发展的空间也会更大,无论技术还是管理方面。
  4. 测试人员的归属感,有自己的部门和自己的职业发展通道。
  谈到和项目的对应,目前采用测试集中方面的团队也基本上是矩阵式管理,特别是针对负责业务测试的小组。一方面,从组织架构上是归属于质量部或者质量中心,但是从日常工作上,是归属到项目或者产品,和对应的产品、开发团队密切配合,包括座位可能都在一起。
  就目前观察的情况来看,这种组织架构相对是比较成熟,也比较普遍被采用的,运作起来也还比较顺畅。

 第二个方面,想讨论一下测试人员的内部细分。IT行业早已经是内部就开始隔行如隔山,分得非常细了。考虑对口的产品和技术形态,测试人员也有很大的差异了,比如测试通信设备的,测试Web网站的,以及测试app的,其背景知识,工作流程也有很大的差异。即使不考虑这方面,从专注的测试工作内容上看,也有进一步的细分。我接触到的会分为四个方面:
  1. 业务测试
  这一部分的测试人员就是上面提到的矩阵式管理的那一类,负责具体的产品的测试和质量提升。所以这一类的人就数量上来说通常是最多的。
  2. 专项测试
  如果测试组织稍大,对测试的深度有更高的要求,而有些测试类型又需要比较长时间的积累,且技能有横向的共用性,那么就可能有专人来做,俗称专项。比如安全测试,性能测试等。就实际运作的情况来看,像安全测试这种看起来确实比较有必要,因为没有长时间专注的积累难以有效果。这样的专项测试通常人数不是很多。
  3. 质量管理
  有些地方叫QA或者SQA,就是第二篇里面提到的专注在质量数据的收集,研发流程的管理和推动等事项上面的一些人。通常放在测试部门,但是也可能放在研发管理等团队。
  4. 测试开发
  当整个测试的团队比较大,需要很多共性的基础的平台和工具建设,就可能会抽出一个团队专门来做这方面的事情,称之为测试开发。
  实际中,关于业务测试和测试开发,其实有时候界限是没有那么清楚的,取决于多个方面的因素:
  1. 老大观念
  没办法,这个很重要。接触到几位部门级测试团队的负责人,观念不完全一样,有些认为独立的测试开发团队很重要,且愿意大的投入,有些觉得没必要有专门的测试开发团队,业务测试团队应该有能力来做测试技术方面的事情。
  2. 业务测试团队的能力
  这个要看实际的情况,业务测试如果要做得比较好,业务测试的团队本身也需要比较好的技术能力,所以很多测试开发意义上的事情业务测试团队也可以做,实际也在做。但是也有些情况,业务测试团队本身的技术能力不够,或者时间非常的局限。从业务测试团队本身的意愿上,肯定也希望能做一些技术方面的事情。
  3. 测试开发团队和业务测试团队的双向互动的情况
  一方面是看测试开发团队做的东西能否在业务测试团队落地,涉及方案本身,是否贴合项目时间,以及和业务测试团队的配合的情况。这个实际情况应该还是比较复杂的,各个团队面临的实际情况都不太一样。
  最后想讨论下关于测试人员外包。这里不讨论整个项目的测试外包,那是另一个范畴,也曾经和一个资深的测试leader深入聊过,不过最终也只是些理论推导,没有实际的应用,很多问题也不好说。
  自己关于外包的观念也一直在变,因为看到身边不同的实际的例子,目前的想法大致如下:
  1. 觉得外包非常的有帮助,能帮助完成很多的测试工作,在招聘速度上也很有优势,所以是个不错的选择。
  2. 就实际运作来看,觉得外包的比例不能太高,一个正式配1-2个外包应该效果还不错,太多了对项目,对外包同学的成长觉得都不太好。
  在我们团队的应用中,还有几个小的实例的体会
  1. 像面试正式员工一样面试外包
  如果我们觉得外包只是过来做黑盒的手工测试,随便找几个人就好了,可能效果不会太好,因为最终还是取决于人。我们目前的几位外包同学都是我们非常认真的面试过,从很多位中挑选出来的,在团队里面发挥的作用其实已经超出了我们的预期。
  2. 更放手让他去做
  就目前项目的情况,我们的外包同学除了做好基本的黑盒手工测试,他们也可以牵头一个项目的测试跟进发周报,自动化的用例制作和问题定位,crash问题的跟进分析等,而且工作的态度和主动性非常好。因为我们没有给他们设明确的界限,只要他愿意尝试,也具备基本的能力,那就可以去做。这个和上面的1也有关系。
  3. 关注外包同学的发展
  这两年接触了很多外包同学,团队里有好几位正式同学也是之前做过外包,所以对外包的看法有些不同了,在职业发展上尽量和正式同学一样看待,并关注他们个人的发展。
  在这个充斥着企业文化,价值观的年代,测试如果作为一个独立的部门,也一定会被问这样的问题:作为一个独立的测试部门,我们的核心价值是什么?
  这个问题好像一直都会在,值得去想想看。
最新内容请见作者的GitHub页:http://qaseven.github.io/

相关文章
|
1月前
|
人工智能 搜索推荐 数据管理
探索软件测试中的自动化测试框架选择与优化策略
本文深入探讨了在现代软件开发流程中,如何根据项目特性、团队技能和长期维护需求,精准选择合适的自动化测试框架。
98 8
|
1月前
|
测试技术 持续交付
探索软件测试中的自动化测试策略
随着软件开发周期的加速和市场需求的不断增长,传统的手动软件测试方法已难以满足现代软件开发的高效性和准确性要求。本文旨在探讨自动化测试在软件测试中的重要性、实施策略及其对提高软件质量的影响。通过分析自动化测试的优势与挑战,以及提供实用的自动化测试工具和框架选择指南,旨在帮助读者理解并应用自动化测试以提升软件开发效率和产品质量。
|
1月前
|
机器学习/深度学习 人工智能 监控
软件测试中的自动化测试策略与最佳实践##
在当今快速发展的软件行业中,自动化测试已成为确保软件质量和加速产品上市的关键工具。本文将探讨自动化测试的重要性,分析不同类型的自动化测试工具和框架,并深入讨论实施自动化测试的最佳实践。通过案例研究和数据分析,我们将揭示如何有效整合自动化测试到软件开发生命周期中,以及它如何帮助团队提高测试效率和覆盖率。 ##
62 1
|
18天前
|
数据采集 人工智能 自动驾驶
VSI-Bench:李飞飞谢赛宁团队推出视觉空间智能基准测试集,旨在评估多模态大语言模型在空间认知和理解方面的能力
VSI-Bench是由李飞飞和谢赛宁团队推出的视觉空间智能基准测试集,旨在评估多模态大型语言模型(MLLMs)在空间认知和理解方面的能力。该基准测试集包含超过5000个问题-答案对,覆盖近290个真实室内场景视频,涉及多种环境,能够系统地测试和提高MLLMs在视觉空间智能方面的表现。
59 16
VSI-Bench:李飞飞谢赛宁团队推出视觉空间智能基准测试集,旨在评估多模态大语言模型在空间认知和理解方面的能力
|
1月前
|
Java 测试技术 API
探索软件测试中的自动化测试框架
本文深入探讨了自动化测试在软件开发中的重要性,并详细介绍了几种流行的自动化测试框架。通过比较它们的优缺点和适用场景,旨在为读者提供选择合适自动化测试工具的参考依据。
|
1月前
|
数据管理 测试技术 持续交付
软件测试中的自动化测试策略与最佳实践
在当今快速迭代的软件开发环境中,自动化测试已成为确保软件质量和加速产品上市的关键手段。本文旨在探讨软件测试中的自动化测试策略,包括选择合适的自动化测试工具、构建有效的自动化测试框架以及实施持续集成和持续部署(CI/CD)。通过分析自动化测试的最佳实践,本文为软件开发团队提供了一系列实用的指南,以优化测试流程、提高测试效率并减少人为错误。
70 4
|
1月前
|
监控 测试技术 定位技术
探索软件测试中的自动化测试框架选择与实施###
本文不概述传统意义上的摘要内容,而是直接以一段对话形式引入,旨在激发读者兴趣。想象一下,你是一名勇敢的探险家,面前摆满了各式各样的自动化测试工具地图,每张地图都指向未知的宝藏——高效、精准的软件测试领域。我们将一起踏上这段旅程,探讨如何根据项目特性选择合适的自动化测试框架,并分享实施过程中的关键步骤与避坑指南。 ###
50 4
|
1月前
|
测试技术 持续交付 数据安全/隐私保护
软件测试的艺术与科学:探索自动化测试框架
在软件开发的世界中,测试是确保产品质量的关键环节。本文将深入探讨自动化测试框架的重要性和实现方法,旨在为读者揭示如何通过自动化测试提升软件测试效率和准确性。我们将从测试的基本概念出发,逐步引导读者了解自动化测试框架的设计和实施过程,以及如何选择合适的工具来支持测试活动。文章不仅提供理论知识,还将分享实用的代码示例,帮助读者将理论应用于实践。无论你是测试新手还是经验丰富的开发者,这篇文章都将为你打开一扇通往更高效、更可靠软件测试的大门。
38 1
|
24天前
|
监控 JavaScript 测试技术
postman接口测试工具详解
Postman是一个功能强大且易于使用的API测试工具。通过详细的介绍和实际示例,本文展示了Postman在API测试中的各种应用。无论是简单的请求发送,还是复杂的自动化测试和持续集成,Postman都提供了丰富的功能来满足用户的需求。希望本文能帮助您更好地理解和使用Postman,提高API测试的效率和质量。
85 11
|
2月前
|
JSON Java 测试技术
SpringCloud2023实战之接口服务测试工具SpringBootTest
SpringBootTest同时集成了JUnit Jupiter、AssertJ、Hamcrest测试辅助库,使得更容易编写但愿测试代码。
73 3