• 15
  • 15
分享
  • 测试管理之项目软件测试风险管理实践——软件测试圈
  • 曼倩诙谐 2021-09-22 10:16:08 字数 3312 阅读 1627 收藏 15

  在软件测试活动中,作为一名测试人员有没有遇到过这样的场景,在测试一个特性或者制定一份测试方案时,往往会想着进行简单测试、做简单设计,认为

  1、这个场景出现的概率太低,几乎不可能会存在,不测了

  2、实际应用时不可能会有这么大的用户量,不用考虑

  3、在这个时间段应该不可能会有这么大的业务量

  4、同一时刻不可能会存在多种业务并发上来

  但版本发布上线后,实际应用时之前认为的那些小概率事项,结果确往往就是会出现,这是为什么呢?管理学中有一个定律——墨菲定律;这个定律指出,当事情有变坏的可能,不管可能性有多小,他总是会发生;

  在具体的研发测试中,当测试过程、测试交付存在潜在风险导致出现不好的结果时,我们需要如何做好全方位的准备?积极的应对,避免不好事情造成的影响或把影响降到最低;结合当前项目运作,分享下当前项目过程中对于测试风险控制的实践过程。

  一、认识风险

  在项目活动中风险是指项目活动过程中的一种不确定的事件或条件,一旦发生会对具体的项目的单个或者多个目标产生影响,例如:

  ·研发过程中,特性需求临时变更,代码修改,但测试时间不足,存在质量风险

  ·版本交付,存在外部依赖不满足,交付受阻;

  ·版本测试,测试工作量估算不合理,测试不充分

  这些交付过程中存在的动态的、静态的、已知的、未知的不确定性因素影响测试交付目标,无法满足外部市场需要;那如何做呢?

  二、风险管理

  在项目的测试活动过程中,我们通过一系列风险控制活动对不确定因素进行及时识别、有效评估、积极应对,以保证项目测试活动的正常进行,从而达到价值交付;

  1.风险识别:

  在风险识别阶段通过树立团队整体的风险意识,大家一起讨论制定风险识别维度、在对应的研发阶段、利用一定的工具方法进行风险数据收集,从而进行有效识别。

  1)风险识别维度

  根据项目的实际运作团队讨论,通过收集如下四个维度的信息作为风险识别的输入,来进行识别

  项目:项目的维度主要考虑:

  ·项目规划需求的计划:在项目迭代开始初期,规划的需求内容、提交的计划点;如果在过程中发生需求加塞、提交计划变更和一开始的计划出现偏差,则作为风险进行及时上报;

  ·相关的制约因素:是否存在对外部依赖,比如对外围的软硬件版本存在依赖,需要提供后,集成完成才能满足交付条件;

  ·里程碑时间点:时间点要求也是一个识别依据,临近里程碑时间点,现状和目标存在较大偏差;

  ·工作量的估算;工作量估算的合理性,有些是项目强行压下的,存在较大的工作量偏差;

  ·以及隐形因素项目内各团队之间的合作协作关系

  资源:资源的维度主要考虑人力资源是否充分,设备环境资源是否能满足相应的测试活动;比如组网场景、容量上对资源的要求,是否具备;

  技术:技术的维度主要考虑当前是否存在新领域不熟悉、所需的技能存在盲区。

  质量:质量维度主要是要了解确认对任务质量的要求,是仅满足预研穿刺基本测试,还是需要按交付标准的DOD严格执行,以达到交付要求;

  2)风险识别阶段

  风险识别活动贯穿在整个测试活动的始终,从测试SE参与需求分析开始、编写测试策略、跟踪特性实现过程、交付系统测试以及其他(维护)各阶段都需要识别;

  3)风险识别方法

  ·专家判断:了解项目和业务各领域的人员,考虑单个风险的方方面面,以及整体项目风险的各来源;

  ·头脑风暴:参考一定的风险识别维度,进行相关的脑暴;

  ·访谈:对领域专家、资深参与者访谈;

  ·会议讨论:团队成员对当前所承接的任务,观察了解到的信息进行专门的会议讨论,审查识别的风险;

  ·风险检查单:各阶段的风险点,用作提醒(坚持单及时审查,定期更新调整)

  风险识别经验小结:

  1、团队树立风险意识,鼓励所有人相关人员参与风险识别

  2、除了显性可见风险,同时也要注意隐性的团队协作,氛围的风险

  2.风险评估

  通过有效描述风险,明确风险类别后合理定义风险级别来评估风险,以确认风险影响以及为后续的风险应对措施提供依据;

  1)风险描述

  风险包含起因、时间、概率及影响四要素,在了解风险4要素后,使用结构化SQCA描述方法,把风险本身与风险愿意及风险影响区分开来,描述清楚;

  S(Situation):背景起因

  C(Complication):事件冲突

  Q(Question):问题影响

  A(Answer);答案

  描述结构化方式:在某个背景(起因)之下,遇到了复杂(事件)情况,产生了什么样的(问题)影响,然后我们如何去解决它(答案)

  其中风险描述中风险影响和解决方案是关键,建议描述要领:

  ·Q(问题影响):描述清楚波及的范围、问题的重要、紧迫程度

  ·A(解决方案):遵循3W原则,解决方案具体内容,包含所需要的资源等(What)、具体的责任主体(Who),由谁负责解决、期望解决的具体时间点(When)

  ·风险描述案例:

  ·技术风险描述举例:

  随着公司业务的快速发展(S),我们的IT系统无法满足现状产品的需求(C),这将导致我们无法满足我们的客户(Q),当务之急的应对措施是需要***立刻安排升级IT系统(A)

  ·质量风险描述举例:

  临近迭代交付(S),测试自动化无法稳定运行(C),导致守护不完善,存在质量风险影响发布(Q),当务之急***尽快在迭代交付前完成自动化执行守护修复(A)

  2)风险分类

  在有效的描述清楚风险后,进行风险分类,明确风险类别;这个过程主要是便于把注意力和精力集中到风险最大的领域,或者针对一组相关的风险制定通用的风险应对措施,从而更有效的开展应对;

  ·按风险来源分:技术风险、管理风险、外部风险、内部风险等

  ·或者按受影响的项目工作分:方案设计、编码实现、验收测试等

  目前我们项目运作过程中,风险分类主要还是以风险的来源来分,根据分类出的风险,发现外部依赖类风险占据比例较高,针对此类风险讨论通用的应对措施,比如通过一开始的协作规划项目计划来约束、过程中每日的日报、周报来跟踪外部依赖提供的进展等

  3)风险定级

  在描述清楚风险、做好分类后,团队根据具体的研发过程,对风险偏好和风险临界讨论制定风险影响和概率的定义,从而进行风险定级评估;

  比如通过风险出现的概率情况、对测试目标的影响程度来综合判断风险级别,具体定级示例:

1.png

  根据定级结果,高以上风险:立即行动 ;中风险:立即关注;低风险:定期关注

  3.风险应对:

  在风险评估定级完成后,进行对应的风险应对;在实际的项目运作过程中根据不同的场景,采用不同的应对措施;

  ·风险上报:当超出个人或团队处理的能力时,需要进行风险上报,一般风险级别为高以上类风险;比如涉及到外部依赖类风险,需要项目协调,否则版本无法正常集成制作;通过面对面、电话沟通、或者日报周报的方式上报反馈;

  ·风险规避:发生的概率较高,具有严重负面影响的高优先级风险;比如在临近版本发布时,某些特性由于测试不充分,波及不明确,合入后存在对现有商用版本存在未知隐患,通过裁剪、调整特性合入周期来规避版本发布质量风险;

  ·风险转移:应对风险,把责任外包给第三方;比如在研发过程中,对于新领域不熟悉,但第三方存在成熟的技术,可以通过购买服务、签约合同;和第三方达成合作,把风险转移第三方;

  ·风险减轻:降低风险出现的概率和影响;比如在临近版本发布时,合入了故障,但该故障的波及范围交广,测试又不充分;经过分析故障影响,回退合入故障,来规避影响;

  ·风险接受:对于低优先级的风险或者其他任何策略已无法加以应对;

  三、经验总结

  最后的话:

  1、测试过程中,当好测试“操盘手”,综合进行风险控制,做好全方位准备,积极应对,避免或降低坏事出现后造成的影响;

  2、加强团队风险意识,风险管理控制需要全员参与

  3、作为一名优秀的测试人员养成风险数据收集、整理、分析习惯;

  4、善于总结经验,练就一副识别风险的“火眼金睛”

  5、作为测试人员,要“未雨绸缪”,从源头控风险,不要当“救火队员”



作者:梧桐苑落   

来源:51Testing软件测试网原创


  • 【留下美好印记】
    赞赏支持
登录 后发表评论
+ 关注

热门文章

    最新讲堂

      • 推荐阅读
      • 换一换
          •   想必金字塔测试原理大家已经很熟悉了,近年来的测试驱动开放在各个公司开始盛行,测试代码先写的倡议被反复提及。  鉴于此,许多中大型软件公司对单元测试的要求也逐渐提高。那么,编写单元测试有哪些小技巧可以借鉴和学习的呢?  测试代码文件路径与开发代码文件路径“相同”  这里的“相同”并不是完全意义的一摸一样,测试代码和开发代码处于同一目录,而是指的测试代码文件路径你与开发代码文件路径“大体相同”。  如下图1、2所示,开发代码路径和测试代码路径都包括/java/ru/yandex/clickhouse/。图1 开发代码路径图2 测试代码路径  测试代码文件名清晰  清晰的测试代码文件名可以帮助阅...
            3 3 1524
            分享
          • 一、文件和目录pwd查看当前位置[root@mb ~]# pwd /rootcd[root@mb ~]# cd /etc/ [root@mb etc]#ls常用命令选项– -l:以长格式显示,显示详细信息– -d:显示目录本身(而不是内容)的属性– -h:提供易读的容量单位(K、M等)– -A:显示所有内容包含隐藏数据– -R:递归显示内容[root@mb ~]# ls -ld /etc drwxr-xr-x. 75 root root 8192 ...
            14 16 3210
            分享
          •   在web安全领域,OWASP(开放式web应用程序安全项目)每年都会公布OWASP TOP 10,TOP 10总结了当年10种最常见、最危险的web应用程序安全漏洞。在TOP 10名单中,跨站脚本攻击(XSS)和跨站请求伪造(CSRF)是常客,攻击者发起XSS和CSRF攻击的重要前提是窃取到保存在浏览器客户端的cookie信息。那么,cookie信息是什么?为什么它在web攻击中有重要的作用?且听小编细细道来。  在http协议下,客户端发起http请求,服务器端处理请求后返回http响应,但是http是无状态的,因此对于需要进行身份辨别的web应用程序,客户端每次发起请求都需要带上用户的...
            0 0 1033
            分享
          •   Jmeter逻辑控制器  可以控制samplers(采样器)的执行顺序。控制器需和采样器一起使用,否则没有意义。在控制器下的所有采样器都会被当成一个整体,执行时也会一起被执行。Jmeter逻辑控制器可对元件的执行逻辑进行控制,除一次控制器外,还可以嵌套其他种类的逻辑控制器。  分类:  ·控制测试计划执行过程中节点的逻辑执行顺序,如Loop Controller(循环控制器)、If Controller(IF 控制器)  · 对测试计划中的脚本进行分组,如Simple Controller(简单控制器)、事务控制器  · 控制该控制器下元件的执行次数,如 Through...
            0 0 1230
            分享
          •   经常都有人问我软件测试前景怎么样,每年也都帮助很多朋友做职业分析和学习规划,也很欣慰能够通过自己的努力帮到一些人进入到大厂。  2024年软件测试行业的发展现状以及未来的前景趋势  最近很多测试人在找工作的时候,明显的会发现功能测试很难找到工作,即使有,也是外包,甚至外包都要求会性能或者自动化测试。所以对于纯手工测试,不好找工作的情况是真实存在的。  另外就是技术的发展,CI/CD/DevOps的项目管理迭代的方法论的流行加大了测试压力。你要是刚开始进入这个行业,可能认为测试就是找bug,但是测试工程师的核心是质量保证。短时间迭代越来越快的节奏下,其实已经没有办法再靠人力去支撑了,到时候必...
            0 0 470
            分享
      • 51testing软件测试圈微信