`
kong_bai
  • 浏览: 136620 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论
阅读更多

第17回 测试项目的管理原则

<script type="text/javascript"></script><script class="blogstory"></script>


件开发项目的成败,取决于 “过程、人、技术” 这三方面的水平和协调,过程是基础、人是核心,而技术是保证,


三方面相互制约,又相互促进。哪一方面没能跟上,形成薄弱环节,项目成功的可能性就会变小。测试项目也不例外,需要从这三方面一起抓。特别是软件测试,流程定义的科学性与规范性、流程执行的严格性、人员的高度责任感等都是至关重要的。


其次,对如今测试项目的管理,要对软件开发有一个全局的、正确的认识,按照 V模型可以更好地理解需求和确认、设计实现和验证等之间的关系,详见 -->    第1回 V模型,我的完整诠释

 

再者,项目管理有三个要素——成本、进度和质量。对于软件测试项目的管理,成本和进度不应忽视,重视测试的策略以提高效率,随时跟踪项目尽量确保项目按计划执行。但更重要的是 “质量”,软件测试经理对产品质量负有更多的责任。


最后,软件测试项目的过程管理能否成功,还受到三个核心层面的影响,即项目组内环境、项目所处的组织环境、整个开发流程所控制的全局环境。这三个环境要素直接关系到软件项目的可控性。项目组管理与项目过程模型、组织支撑环境和项目管理接口是上述三个环境中各自的核心要素。


软件测试项目管理是软件工程的保护性活动。它先于任何测试活动之前而开始,且持续贯穿于整个测试项目的定义、计划和测试之中。为了保证测试项目过程的成功管理,在上述4点基本认识的基础上,坚持下列的测试项目管理原则是非常必要的:


  1. 始终能够把质量放在第一位,测试工作的根本在于保证产品的质量,应该在测试小组中建立起“质量是企业生存之本”的观念,建立一套相适应的质量责任制度。
  2. 可靠的需求。应当有一个经各方一致同意的、清楚的、完整的、详细的和切实可行的需求定义。 能够制定好测试策略、有计划地安排工作、系统的解决方案、制定合理的时间表。为测试计划、测试用例设计、测试执行(特别是系统测试)以及它们的评审等留出足够的时间,不应使用突击的办法来完成项目。
  3. 足够重视测试计划,在测试计划里清楚地描述测试目标、测试范围、测试风险、测试手段和测试环境等。
  4. 测试用例是测试执行的基础,测试用例设计前,要充分和开发人员、产品经理等讨论清楚,要进行集体审查,确保其高覆盖率。并注意其不断完善。
  5. 要适当地引入测试自动化或测试工具,前期准备工作要充分,不能盲目。
  6. 对测试环境不能掉以轻心,要和有关人员审查环境的软、硬件的配置。
  7. 充分测试并尽早测试。每次改错或变更后,都应重新测试。项目计划中要为改错、再测试、变更留出足够时间。
  8. 遇到问题,能准确地判断是技术问题还是流程问题,更关注流程上的问题,从而在根本上解决问题,而不是治标不治本。
  9. 全程跟踪缺陷状态,及时对缺陷状态进行分析、清理。
  10. 通用项目管理原则,如流畅的有效沟通、文档的一致性和及时性、项目的风险管理等。测试的风险更大,细心对待,需要有更及时地应对措施。
 第18回 测试计划的有效性和全面性

      论做什么工作,都是计划先行,然后按照所制定的计划去执行、跟踪和控制。软件测试也一样,先要制定测试计划,是做好整个测试工作的前提。所以在进行实际测试之前,应制定良好的、切实可行的、有效的测试计划。软件测试计划的目标是提供一个测试框架,不断收集产品特性信息,对测试的不确定性(测试范围、测试风险等)进行分析,将不确定性的内容慢慢转化为确定性的内容,该过程最终使得我们对测试的范围、用例数量、工作量、资源和时间等进行合理的估算,从而对测试策略、方法、人力、日程等做出决定或安排。

1.测试计划的要点
       测试规划与软件开发活动同步进行,在需求分析时,就开始测试策划,确定测试需求、目标、资源等。测试计划可以按不同的测试阶段(集成测试、系统测试等)来组织,也可以为每个测试任务或目标(安全性、性能、可靠性等测试) 进行考虑。
测试计划主要集中在测试目标、质量标准、测试策略、测试范围、测试用例设计方法、所需资源和日程安排等,其关键是制定有效的测试策略,界定清楚地测试范围,识别出测试中所存在的各种风险并找出风险回避、监控和管理的方法,针对不同的测试目标或阶段确定测试方法,对测试工作量及所需的资源、时间进行合理的估算。所有这些,都是为了两个根本目的:测试的质量和效率。

2.制定测试策略
       制定测试策略主要分析测试的目标和质量指标、确定测试的对象和依据,测试的重点和所采用的方法,包括在规定的时间内哪些测试内容要完成,软件产品的特性或质量在哪些方面得到确认。测试策略可以分为:
  • 基于测试技术的测试策略,根据软件系统的技术构成和层次结构,着重考虑如何分层测试、选择哪些测试工具、如何将白盒测试和黑盒测试有机地结合起来等。
  • 基于测试方案的综合测试策略,根据测试的目标和范围,着重考虑如何更好地满足测试需求、如何让功能测试、适用性测试和兼容性测试等进行有机结合、如何充分利用测试资源、如何更有效地完成回归测试等。
为了更好地制定好测试策略,要做到:
  • 全面细致地了解产品的项目信息:应用领域、测试范围、市场需求、产品特点、主要功能和技术架构;
  • 基于模块、功能、系统、版本、性能、配置和安装等各个因素对产品质量的影响,客观地、全面地展开测试计划;
  • 根据软件单元在系统结构的重要性差异和一旦发生故障将给客户造成的损失大小,来确定软件测试的等级、重点和先后次序;
  • 需要在测试用例数和测试覆盖率上进行权衡而获得一个平衡点,以便能使用尽可能少的有效测试用例去发现尽可能多的程序错误。测试不足意味着让用户承担隐藏错误带来的危险;同时反过来看,过度测试则又会浪费许多宝贵的资源或耽误软件产品的发布时间。

3.确定测试范围
       测试主要依据 “产品设计规格说明书”、代码所发生的变化及其影响的区域,来确定哪些功能和特性要测试,哪些功能和特性不需要测试。在确定测试范围时,主要考虑的因素有:
  • 优先级最高的需求功能
  • 新增加的功能和编码改动较大的已有功能
  • 容易出现问题的部分功能
  • 过去测试不够充分的地方
  • 经常被用户使用的功能和配置(占20%)

4.所需资源和日程安排
        为了合理、准确地安排日程,对测试工作量要进行正确的估计。除了对工作量的估计之外,还要正确评估参与该项目人员的培训时间、适应过程和工作能力等。由于涉及到不同的项目、不同的测试人员、不同的前期介入方式,要对每人每天能够完成的平均测试用例数目做出一个准确的估计确实很困难,但是可以根据以前一些项目测试的经验或历史积累下来的数据进行判断推理,并适当增加10%-20%的余量,估算结果就比较准确了。
      
        在估算的基础上,进行有效的、合理的资源安排。在不同的测试阶段人力资源的需求是不一样的,所以人力资源的计划要有一定的灵活性和动态性,形成有机的动态平衡,保证测试的进度和资源的使用的效率。

5.编制测试计划的技巧
       要做好测试计划,测试设计人员要仔细阅读有关资料,包括用户需求规格说明书、设计文档等,全面熟悉系统,并建议注意以下方面:
  • 让所有合适的相关人员参与测试项目的计划制定,特别是在测试计划早期;
  • 测试所需的时间、人力及其它资源的预估,尽量做到客观、准确、留有余地;
  • 测试项目的输入、输出和质量标准,应与各方达成一致;
  • 建立变化处理的流程规则,识别出在整个测试阶段中哪些是内在的、不可避免的变化因素,加以控制。

6.测试项目计划的评审
       测试项目的计划不可能一气呵成,而是要经过计划初期、起草、讨论、审查等不同阶段,才能将测试计划制定好。测试计划的评审是完成测试计划关键的一个环节,包括测试组织内部的自我评审、讨论和修改,然后交到评审会进行正式的评审,直至测试计划得到审批。

       测试计划的正式评审,项目中的每个人(产品经理、项目经理、开发工程师等)都应当参与。计划的审查是必不可少的,每一个参与者都可能根据其经验及专长提出问题或建议,弥补在测试范围、工作量、风险等各方面的不足,进一步完善测试计划。
 第19回 测试资源的合理分配
<script type="text/javascript"></script><script class="blogstory"></script> 
       试资源的分配,不仅要考虑测试团队的构成,而且要考虑不同的所需要的人数和对人员的要求是不同的。其次,软件测试项目所需的人员和要求在各个阶段是不同的:

  1. 在初期需要项目经理或测试组长介入进去,为测试项目提供总体方向、制定测试策略、测试计划,申请系统资源;
  2. 在测试前期,需要一些比较资深的测试设计、开发人员,对被测软件的详细了解、测试评估、测试需求的分解,设计测试用例、开发测试脚本;
  3. 在测试中期,主要是测试执行,要看测试自动化实现的程度,如果测试自动化程度高,人力的投入没有明显的增加;如果测试自动化程度低,测试执行的人员要求多,需要比较早的计划,保证足够的资源。
  4. 在测试后期,资深的测试人员可以抽出部分时间去做新项目的准备工作。
        一个有效的软件测试项目管理者(测试组长,QA经理或测试经理),在测试资源的分配上尽量做到合理,既不过于保守,浪费资源,也不过于激进,使资源的使用总是处于紧张状态,随时有“崩盘”的危险。所以,在资源分配和管理中,要做到:

  • 注意合理分配任务,明确规定每一个人在测试工作中的具体任务、职责和权限,每个组员都明确自己该做什么、怎么做、负什么责任、做好的标准是什么。做到人人心中有数,为保证和提高产品质量(或服务质量)提供基本的保证。
  • 在安排任务时,尽量考虑每个人不同的技术特长、能力、性格、工作风格等,因为资源需求的估计依赖于工作量的估计和每个工程师的能力评估。
  • 在不同的测试阶段,可以进行人员的相互调换,起到相互补充、相互督促/控制的作用。
  • 人员的安排应该有一个提前量和余量(buffer,10%左右),因为一个合格的测试人员可能需要一个较长的培训、熟悉产品特性和适应测试流程的过程。
  • 在做出最后安排决定之前,最好和每一个测试人员做一次沟通,达成共识。有良好的意识去关心组员,关注项目组员的情绪,以鼓励为主,不断激励员工,鼓舞士气,发挥每一位员工的潜力,注重团队的工作效率。
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics