以测试为核心的软件开发过程

以测试为核心的软件开发过程

  摘要:软件项目规模越来越大,开发团队人员越来越多,人员增加带来管理成本上升,于是引入ISO9000、CMM,但最后发现它们实施难度相当大。于是我们介绍一套行之有效的 测试控制方法,它能够有效对软件项目开发进行控制。

  关键词:软件测试软件开发;软件项目管理

  1、引言

  TC(测试控制方法)是指以测试为核心控制软件项目开发过程的方法,它包括完整的规范TC 系统及其相关管理理论TC 理论。主要完成软件开发中开发流程的管控、软件测试、开发绩效评价、持续改进管控质量等功能。

  ● 我们先来看一看软件项目开发中经常遇到的问题。

  ● 各模块一拖再拖,整个项目无休止延期,开发进度无法得到控制;

  ● 改正了旧问题,又冒出更多新问题,问题层出不穷;

  ● 模块难度、工期质量考核无法量化,更无法与个人收入挂钩;

  ● 技术攻关、需求、分析与设计阶段任务难以进行验收;

  ● 项目负责人需要时刻关注各开发人员的开发过程,没有时间进行项目整体规划;

  ● 项目负责人经常感到失控,开发人员开发出的结果往往与预期效果差异很大;

  ● 项目负责人在模块严重拖期时,不知是应该换人重做,还是再让其开发几天;

  ● 项目经理对各开发团队的开发能力没有客观的认识;

  ● 项目经理对各项目的进度情况不能有效把握,经常被告之以“马上就完了”这样含糊的承诺;

  ● 项目经理对自主开发的产品没有量化的质量评价;

  ● 所有这些问题都在TC 系统中迎刃而解。

  2、TC 系统依赖全新的管理思路

  ● 做出好软件

  好的软件是做出来的,不是改出来的。软件必须依靠具有一定水平的开发人员集中精力开发,不可能靠反复的修改来完成。软件修改次数越多,出错的可能性就越大。

  ● 测试的任务

  测试的主要任务是控制开发人员随意提交低质量的程序。例如:我们在测试中有个定义叫返回,意思是,当开发人员提交了问题过多的程序后,测试人员可以不用告知程序中的问题,直接返回程序要求开发人员重新修改。这样既控制了被提交程序的质量,也使测试人员把工作重点从寻找简单的低级错误,转移到寻找程序中复杂的逻辑错误。坚决反对“测试人员是帮助程序人员发现问题的”说法,而强调测试人员是站在一个更高的管理控制层面上。

  ● 绩效考核

   项目开发中的工期与质量采用分值进行量化绩效考核,不单注重质量或进度,将二者统一起来。绩效是指某人在完成一个工单时,质量和工期的综合评价。一个理 想程序员完成工单的绩效为1,比理想程序员完成效果好绩效大于1,完成效果差绩效小于1,一般程序员的绩效在0.7 左右。

  采用量化绩效可以对项目人员绩效进行考核排队,并与个人收入挂钩。采用量化绩效还能将从事不同类型工作的项目人员进行排队,如:对开发人员和售后服务人员绩效进行排队。

  ● 弱化人际关系

  项目管控过程中对事不对人,由软件系统确定处理流程,邮件方式传递信息,避免人情关、面子关,减少在人为交流中的冲突与不确定性。

  ● 全面管控

  借鉴ISO9000 质量管理体系的思想,遵循“怎么想就怎么写,怎么写就怎么做,怎么做就怎么记”。所有工作做到统一安排、有据可依、有史可查。

  3、实现流程

  TC 可以在整个项目的开发过程中进行管控。需求分析,技术攻关,分析与设计,构造实现,测试部署阶段,甚至在售后服务阶段都可以使用TC 系统进行控制。

  所有工作都以工单的形式派发并跟踪验收。各工单按以下流程进行控制:

以测试为核心的软件开发过程_第1张图片

图一

  开发团队接到新项目,明确工作内容后,就可以使用TC 系统控制整个项目直至结束。制订工作计划;派发各阶段的工单,验收工单,封版;如此循环,直至所有工单都封版,表明项目开发完成。

  摘要:软件项目规模越来越大,开发团队人员越来越多,人员增加带来管理成本上升,于是引入ISO9000、CMM,但最后发现它们实施难度相当大。于是我们介绍一套行之有效的 测试控制方法,它能够有效对软件项目开发进行控制。

  关键词:软件测试软件开发;软件项目管理

  1、引言

  TC(测试控制方法)是指以测试为核心控制软件项目开发过程的方法,它包括完整的规范TC 系统及其相关管理理论TC 理论。主要完成软件开发中开发流程的管控、软件测试、开发绩效评价、持续改进管控质量等功能。

  ● 我们先来看一看软件项目开发中经常遇到的问题。

  ● 各模块一拖再拖,整个项目无休止延期,开发进度无法得到控制;

  ● 改正了旧问题,又冒出更多新问题,问题层出不穷;

  ● 模块难度、工期质量考核无法量化,更无法与个人收入挂钩;

  ● 技术攻关、需求、分析与设计阶段任务难以进行验收;

  ● 项目负责人需要时刻关注各开发人员的开发过程,没有时间进行项目整体规划;

  ● 项目负责人经常感到失控,开发人员开发出的结果往往与预期效果差异很大;

  ● 项目负责人在模块严重拖期时,不知是应该换人重做,还是再让其开发几天;

  ● 项目经理对各开发团队的开发能力没有客观的认识;

  ● 项目经理对各项目的进度情况不能有效把握,经常被告之以“马上就完了”这样含糊的承诺;

  ● 项目经理对自主开发的产品没有量化的质量评价;

  ● 所有这些问题都在TC 系统中迎刃而解。

  2、TC 系统依赖全新的管理思路

  ● 做出好软件

  好的软件是做出来的,不是改出来的。软件必须依靠具有一定水平的开发人员集中精力开发,不可能靠反复的修改来完成。软件修改次数越多,出错的可能性就越大。

  ● 测试的任务

  测试的主要任务是控制开发人员随意提交低质量的程序。例如:我们在测试中有个定义叫返回,意思是,当开发人员提交了问题过多的程序后,测试人员可以不用告知程序中的问题,直接返回程序要求开发人员重新修改。这样既控制了被提交程序的质量,也使测试人员把工作重点从寻找简单的低级错误,转移到寻找程序中复杂的逻辑错误。坚决反对“测试人员是帮助程序人员发现问题的”说法,而强调测试人员是站在一个更高的管理控制层面上。

  ● 绩效考核

   项目开发中的工期与质量采用分值进行量化绩效考核,不单注重质量或进度,将二者统一起来。绩效是指某人在完成一个工单时,质量和工期的综合评价。一个理 想程序员完成工单的绩效为1,比理想程序员完成效果好绩效大于1,完成效果差绩效小于1,一般程序员的绩效在0.7 左右。

  采用量化绩效可以对项目人员绩效进行考核排队,并与个人收入挂钩。采用量化绩效还能将从事不同类型工作的项目人员进行排队,如:对开发人员和售后服务人员绩效进行排队。

  ● 弱化人际关系

  项目管控过程中对事不对人,由软件系统确定处理流程,邮件方式传递信息,避免人情关、面子关,减少在人为交流中的冲突与不确定性。

  ● 全面管控

  借鉴ISO9000 质量管理体系的思想,遵循“怎么想就怎么写,怎么写就怎么做,怎么做就怎么记”。所有工作做到统一安排、有据可依、有史可查。

  3、实现流程

  TC 可以在整个项目的开发过程中进行管控。需求分析,技术攻关,分析与设计,构造实现,测试部署阶段,甚至在售后服务阶段都可以使用TC 系统进行控制。

  所有工作都以工单的形式派发并跟踪验收。各工单按以下流程进行控制:

以测试为核心的软件开发过程_第2张图片

图一

  开发团队接到新项目,明确工作内容后,就可以使用TC 系统控制整个项目直至结束。制订工作计划;派发各阶段的工单,验收工单,封版;如此循环,直至所有工单都封版,表明项目开发完成。

● 项目绩效正态分布曲线

以测试为核心的软件开发过程_第3张图片

图六

  该曲线Y 轴为工单数目,X 轴为工单绩效。整个曲线描述用户培训管理系统在开发中各级绩效出现次数对比,其中绩效为0.2 以下和1.2 以上的很少,绩效为0.7 的工单最多,因此可以说明用户培训管理系统的开发绩效在0.7 左右浮动,平均开发绩效接近0.7。

  ● 公司绩效正态分布曲线

以测试为核心的软件开发过程_第4张图片

图七

  该曲线描述整个公司在项目开发中各级绩效出现次数对比,其中绩效为0.2 以下和1.2 以上的很少,绩效为0.7 的工单最多,因此可以说明公司的开发绩效在0.7 左右浮动,平均开发绩效接近0.7。

  若单从平均值来看,图六和图七表现的开发能力是相当的,其实不尽然,图七的正态分布趋势要比图六更向0.7 紧缩,从图上看图七要瘦于图六,说明图七的开发能力更趋于稳定,而图六的开发能力更难以预料。因此由以上分析得知用户培训管理系统开发团队的平均质量与公 司整体开发质量相当,但远不如公司整体开发能力稳定。

  5、适用对象

  TC 适合大多数软件开发团队。由于她的特点是以测试为核心控制软件开发过程,因此她更适合于软件测试人员配备不是非常充裕的团队,由有限的软件测试人员就可以担当起测试与控制的任务。

  对于开发一般企业级应用软件的开发团队来说,软件开发中一般低级错误是最多的,通过TC 系统能使一般低级错误得到控制,测试人员集中精力于业务逻辑关系测试。一般企业级应用软件的开发团队选择TC 系统将会比选择任何一家测试或项目管理软件更实用。

  对于开发控制系统或算法集中的平台类软件的开发团队来说,虽然一般的低级错误可能较少,但TC 系统能将任务分配、任务的追踪、工期质量统计、测试记录的整理与归纳等工作自动完成,自然可以大大减少测试人员的事务性工作,帮助测试人员关注核心的算法与逻辑关系测试。

  6、结束语

  TC 能有效对软件项目进行控制, 记录各阶段工作详细内容,并能够对原始数据进行挖掘整理,为各类项目人员提供全面多方位的信息表现形式,协助公司和个人客观认识自身的开发能力,寻找影响开发能力的主要因素,为持续改进提供帮助。

你可能感兴趣的:(以测试为核心的软件开发过程)