《高级软件测试管理》学习笔记——人员技能 & 团队构成

  1. 人员技能
    测试人员的技能,可以概括为三个大的方面:
    (1)测试技能
    主要是测试人员掌握的测试理论知识、实际操作能力、测试经验等。如测试计划和控制、测试分析和设计、测试实施执行、审查评审等方面的技能。这些都是测试人员必备的基础能力。
    (2)业务领域和开发知识
    业务领域的知识包括:被测试对象或产品所在行业领域相关的背景知识,被测对象系统的使用场景和方法,业务领域相关的法律法规、标准规范和专业知识等。这些是测试人员开展具体测试活动的基础。
    开发知识包括,软件开发过程(需求分析、设计、编码等)相关知识,软件开发操作系统、编程语言、协议相关知识,以及个人的开发经验、编程能力、程序设计能力等。
    (3)软技能
    除专业知识技能外,怀疑精神、好奇心、创新能力、分析能力、耐心、沟通技巧、团队精神以及工作热情等个人品质素质,对于测试工作也是非常重要的。好的软技能可以促进测试工作更高效、有效的开展。
    测试管理人员需要对测试人员的技能进行评估,可以从上述三个维度入手。针对每个维度,设定一些子技能分类,对每项子技能进行评分,比如设为4个等级:
    1)0 分,表示完全不具备该项技能
    2) 1 分,表示有一定的了解,工作中很少用到
    3) 2 分,表示基本掌握,工作中能够应用
    4) 3 分,完全掌握,工作中灵活运用,并能够持续改进
    然后建立要评估的员工能力矩阵,通过打分,能够比较直观的看出人员技能状况。以下表格为简单的示意:
    测试人员技能评估表示意
    实际执行评估操作时,可采用测试人员自评和他人评价相结合的方式进行。其他人应该是对被评人相对比较熟悉的,如直接主管、下属、同小组的同事等,这样可以使评估结果更加真实可信。

  2. 角色和职责
    测试团队的构成和它的规模关系不大,即使只有一个人,也需要扮演不同的角色。一般来说完整的测试团队应该具有以下角色。
    (1)测试经理:主要负责测试计划、控制和总结等,需具备软件测试、质量管理、项目管理、人员管理等多方面的知识和技能。
    (2)测试设计人员:像测试分析师、技术测试分析师等,具备测试分析、测试设计及软件工程等领域的知识和经验。
    (3)测试自动化人员:具备测试基础知识,编程能力和丰富的测试工具、脚本语言相关知识。使用测试工具按需实施测试自动化。
    (4)测试环境管理员:建立、部署和维护测试环境。
    (5)测试执行人员:执行测试,报告缺陷,记录结果 ;具备测试基础知识,熟悉测试对象,应用各种测试工具。
    各角色的职责定义如下。
    测试经理:
    (1)制定或评审组织内部的测试方针
    (2)选择合适的测试策略和方法,并引入或改善与测试相关的过程(缺陷管理、风险 管理、配置管理等),以便能够管理和控制变更,以及重现缺陷和测试活动;
    (3)作为整个项目的测试方面的代表(代言)
    (4)与项目经理以及其他相关人员共同制订测试计划
    (5)获取测试资源;
    (6)发起和监视测试工作,包括各个测试级别相关的测试设计、实现和执行;
    (7)根据测试结果和测试进度(例如:状态报告中的记录)及时调整测试计划
    (8)对测试件进行配置管理,保证测试件的可追溯性;
    (9)利用合适的度量标准估算测试进度,评估测试和产品的质量;
    (10)选择和引入合适的测试工具,并为测试人员组织必要的培训;
    (11)确定测试环境和测试自动化的类型和范围
    (12)根据测试过程中收集的信息编写测试报告。
    测试设计人员(测试分析师/技术测试分析师):
    (1)分析、评审和评估用户需求、规格说明、设计和模型等内容的可测试性,并设计测试用例;
    (2)选择自动化测试用例;
    (3)准备和获取测试数据。
    自动化测试人员:
    (1)负责自动化测试框架的设计和搭建
    (2)负责搭建自动化测试环境;
    (3)自动化测试需求分析,制订自动化测试计划;
    (4)开发自动化测试用例;
    (5)对自动化测试执行情况进行分析,完善自动化测试框架
    测试环境管理员 :
    (1)负责测试环境所需的网络规划和建设,维护网络的正常运行
    (2)建立、设置和维护测试环境所需的应用服务器或软件平台;
    (3)对实验室的硬件、软件资源进行登记、分配和管理
    (4)申请所需要的硬件和软件资源,协助有关部门进行采购和验收;
    (5)对使用实验室的硬件、软件资源的使用权限进行设计、设置,保证其安全保密性;
    (6)安装新的测试平台和被测试系统; 化测试环境,提高测试环境中网络、服务器和其他设备运行的性能。
    测试执行人员 :
    (1)评审测试规格说明
    (2)建立测试环境(通常需要与测试环境管理员相互配合,共同完成)
    (3)执行各个级别的测试,记录测试日志,评估测试结果,记录实际结果和期望结果 之间的偏差
    (4)根据要求使用测试管理工具和测试监控工具
    (5)执行自动化测试(可能需要开发人员和测试自动化人员的支持)
    通过个人的所见所闻,实际工作中,很少有组织会针对每个测试角色,安排固定专职的岗位,通常是某个测试人员承担多个角色和相应的工作内容,这样可以降低人力成本,使人员工作内容相对饱和。但是这对测试人员的要求也比较高,需要掌握更多领域的知识。每个人的精力有限,不可能每个角色的职责都能很好地执行,所以在测试团队中,需要根据每个人的特点和业务需要,给测试人员安排合适地一个或多个角色,并在成本和效果之间做出合理地协调。

  3. 测试团队优化
    测试经理需要选择和招聘员工来组建团队,除了角色和职责要求的一些特定技能外,还有很多因素要考虑。团队成员的技能和性格多样性,对于团队测试能力的提升是很重要的。为了实现团队和个人双赢的局面,需要将团队成员的个人性格和团队角色进行匹配,同时在考虑个人天赋的基础上提高其技能。
    常见的测试团队管理挑战以及相应的解决思路和方法建议如下。
    (1)专业技能:测试团队成员可能缺少相关的知识技能。
    针对这个问题,一方面需要测试人员自身主动去学习需要的知识和技能;另一方面,测试团队中每个人都具备各自的经验和技能,通过彼此交流共享,可使整个团队的能力得到提高。以下是几种共享知识经验的方式。
    1)团队内部定期或者不定期的交流和讨论会;
    2)经验丰富或者技术好的成员进行专题讲座或者培训等
    3)鼓励团队在confluence、redmine之类的平台上建立wiki知识库,多将知识、技巧、总结等以书面形式共享;
    另外,有条件的话,可以组织参加外部的专业培训,或者聘请外部资源给团队进行培训,参加正式的测试技术研讨会等。
    (2)过程:测试团队成员对开发过程和测试过程不清楚。
    测试人员除了需要了解和掌握产品相关的技术和技能识以外,还需要了解组织和项目层面的具体过程,包括组织质量方针、开发模型、测试过程等。团队成员主要通过内部培训的方式了解相关过程,最好是组织内部有成文的流程体系文件供测试人员学习和理解。测试人员也可以参加一些测试认证(如 ISTQB提供的认证培训),通过测试认证培训,这样可以对整个测知识体系有一个全面和深入的了解。
    (3)角色和职责:测试团队成员分工不明确,职责不清楚。
    角色和职责不明确,会导致测试工作的混乱无序,同时也会挫伤测试人员的工作积极 性。角色和职责包含两个方面的内容,首先是定义明确的测试团队的组织架构,其次是定 义完整的测试角色和相关的职责。其详细内容可参照上文第2节。
    (4)对外合作:测试团队成员和其他团队之间合作困难。
    对外合作包括测试团队和开发团队、系统人员、售后人员,以及客户等之间的交流和沟通。
    对外合作的重点是团队之间的沟通和理解。每个人对技术和知识的理解不同,导致对工作产品的认识也各不相同。另外,每个团队在项目中担当的角色不同,项目中担当不同 角色的团队在沟通时也会有障碍。
    项目的利益干系人应该在共同的平台上进行交流,例如 单个项目应该尽量采用统一的项目开发过程、缺陷跟踪过程、需求变更过程等。只有大家在这些过程上达成一致,才能在面临这些问题的时候进行更好的沟通。

  4. 独立测试 — 使测试适合组织
    测试活动的开展必须贯穿于整个软件开发生命周期,因此测试活动应该与相关的开发活动进行协调和统一规划。不同的组织会议不同方式组织测试团队,以达到组织和项目层面的测试目标。
    采用独立的测试团队,可以提高发现缺陷的效率,但独立测试的方式不是完全代替开发人员进行的测试,因为开发人员也可以高效地在其工作产品中找出很多缺陷。根据组织和项目的特点,可以选择不同的独立测试策略,详情如下。
    (1)非独立的测试人员(开发人员测试自己的代码)
    (2)测试由不同的开发人员执行,而不是代码的编写者本人
    (3)测试由开发团队中专门的测试人员完成
    (4)测试由独立于开发团队的测试团队完成
    (5)外部测试专家基于特定的测试目标执行测试
    (6)测试由组织外的团队执行(例如外包)。
    对于庞大、复杂的系统或安全关键系统,最好让独立的测试人员进行多个级别的测试。 开发人员也可以参与其中(特别是在测试级别比低的时候),但是开发人员缺少测试目 的性和测试相关技能会限制他们的测试效率和有效性。独立测试人员有权要求定义测试过 程及规则,但是只有在明确授权的情况下才能充当这种过程相关的角色。在实际的项目中,可以考虑采用多种独立测试策略相结合的形式。
    测试独立性的优点如下:
    (1)对软件测试和软件中的错误抱着客观的态,这种客观的态度可以解决测试中的 心理学问题,既能够以揭露软件中的缺陷为目的进行工作,也能不受发现的缺陷的影响
    (2)经济上的独立性使其工作有更充分的条件按测试要求去完成。
    (3)独立测试作为一种专业工作,在长期的工作程中势必能够积累大量的实践经验形成自己的专业优势
    (4)软件测试是技术含量很高的工作,需要有专业队伍加以研究,并进行工程实践 专业化分工是提高测试水平、保证测试质量、充分发挥测试效用的必然途径
    (5)由于专业优势,独立测试工作形成的测试结果更具服力,而测试结果常常和对软件的质量评价联系在一起。因此,由专业化独立测试机构进行评价的权威性更强
    (6)独立测试机构的主要任务是进行独立测试工作,这使得测试工作在经费、人力和时间方面更有保证,不会因为开发的压力而减少对测试的投入,降低测试的有效性,从而可以避免开发组织侧重软件开发而对测试工作产生不利的影响。
    测试的独立性并不是越高越好。独立性的提高,也会带来以下一些问题:
    (1)整个组织的复杂度越来越高,管理成本增加例如,当测试团队属外包测试时 对于测试团队的测试质量无法及时监控
    (2)沟通效率降低,原来只是需要打个招呼的问题现在需要通过复杂的配置管理 缺陷管理和文档管理系统来解决。
    (3)测试人员和开发人员的距离越来越远,项目团队之间的工作氛围会下降,某些极 端情况下甚至出现开发人员和测试人员的对立现象。
    (4)测试人员重点关注测试相关技能,对开发技能的掌握比较差,不利于发现系统需求和设计方面的缺陷。
    (5)独立测试团队可能会降低开发地责任感,开发人员可能会认为产品质量是测试团队的事情,而不是整个项目团队的事情。
    一个组织的测试活动可以在不同级别采取多种测试独立性策略,以充分利用各种资源。

  5. 测试人员的激励
    这方面的内容,参考郑文强的一篇文章:ISTQB AL-TM连载系列20:除了加薪还能拿什么激励测试人员

  6. 沟通
    测试人员的沟通主要体现在三个层次:
    (1)测试产品的文档化:测试计划、测试用例、测试报告等
    (2)评审和审查的反馈:需求规格说明,设计文档等
    (3)信息收集和传播:向开发人员、其他测试人员、管理者等。
    所有的沟通必须是专业、客观和有效的。下面从正确对待缺陷和与开发人员的合作两方面说明进行有效沟通的意义。
    当测试人员提交一份缺陷报告时,项目的利益干系人不能将其视为对产品质量的威胁,而应当将其看成是保证产品质量的有效手段,测试阶段每现和修复一个缺陷,产品质量就多一份保证。所以应当正确对待测试人员发现和提交的每一个缺陷。
    测试人员应当尽量准确、有效地定义和描述测试过程中发现的缺陷,以便事半功倍地帮助缺陷进行修复。
    关于测试和开发的合作,首先要明确:两者作为一个整体,都是服务于产品的,都要为产品的质量负责,从这点来讲,开发和测试的最终目的是一致的,通过发现和修复缺陷来提高产品质量或服务。实际项目过程中,开发人员和测试人员有时无法有效地协同工作,可能有两点原因:一方面是两者工作性质不同,开发往往可以看作是“创造性的”构建,而测试在一定程度带有破坏性;零一仿麦呢,也可能是因为管理层面的原因造成两者某周程度的对立。
    下面给出一些和开发人员合作时处理可能发生的矛盾的建议:
    (1)一开始就采取合作而非斗争的方式,统一认识,明确提高产品质量是整个项目团队共同的目标。
    (2)对发现的缺陷就事论事,以客观平和的方式进行沟通,了解他人对于问题的态度。
    (3)帮助开发人员分析和定位问题,以便快速修复缺陷,降低项目成本。
    (4)解释自己和自己的工作,以便在遇到疑惑的时候获得开发人员的帮助。
    (5)尽量真实、准确和公正地提交缺陷报告。
    以上是对《高级软件测试管理》一书中,对应章节内容的一个整理和总结。欢迎大家指正和交流。

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值