技术开发 频道

浅谈软件开发管理体会

    三、重视测试

    测试是软件开发中容易忽视的问题,许多人认为开发的主要工作是编码,其实不然,在没有严格执行开发流程的开发活动中,测试可能是唯一能确保软件质量的方法和手段。而越是松散的项目越轻视测试活动,它既没有固定的测试组织,又没有程序员间的交叉测试,更没有考虑过有效的测试流程和方法,他们的软件质量完全建立在对程序员能力信任的基础上,这是很不安全的。

    测试是对软件产品质量的检验和评价。它一方面检查软件中存在的质量问题,同时对产品质量进行客观的评价。 我们一般把发现的错误bug(我们也称为缺陷defect)按严重性分为四类:死机(系统崩溃或挂起)、致命(使系统不稳定、或破坏数据、或产生错误结果,而且是常规操作中经常发生或非常规操作中不可避免的)、严重(系统性能或响应时间变慢、产生错误的中间结果但不影响最终结果,如:显示不正确但输出正确)、一般(界面拼写错误或用户使用不方便)。

    我们也把发现的错误按优先级分为三种:高、中、低。一般是某错误对用户接受或使用影响越大其优先级越高。

    要完成严格的测试,就必须建立规范的系统测试流程,有专人负责执行,而且开发人员要积极配合,不要认为测试人员是在给自己找麻烦,测试人员查找的错误可能是程序员无法发现的错误。

    一般的测试流程应该是:

    1、项目组提交系统测试申请给测试中心指定帐号。由专人检查文档格式和完备性。

    2、检查合格后交给该产品对应方向的研究人员,评价其内容的有效性和真实性。

    3、检查合格后由测试中心主任审查并通过,成立测试组,指定测试组长(可暂时没有组员)。

    4、测试组长根据该产品的申请报告、测试设计和以往测试数据,制定测试方案。

    5、测试中心主任审核通过测试方案后,根据测试方案指定测试组成员,并由支持组完成其他支持任务(如:设备的配备、测试数据库的建立、网络权限的修改……)。

    6、测试期间测试组根据测试方案进行实际测试,记录并跟踪测试缺陷报告,填写测试记录。测试组长与项目组(测试经理)经常沟通,并获取产品的更新版本。同时,测试组长审查、修改并提交所有缺陷报告,保证随时掌握产品的质量情况,并监督测试进度。

    7、产品进行到一定阶段后(标志是测试缺陷报告库中所有的报告处于归档状态),由项目组和测试组长共同决定产品进入稳定期测试。稳定期测试版本之前的版本必须在显著位置标明为测试版字样。

    8、稳定期测试期间所发现的缺陷报告也需要记录在测试缺陷报告库中,并在稳定期结束后由双方(有时可能也有市场方面的意见)共同决定对这些缺陷的处理方式。如果需要改动产品,则重新开始稳定期,否则通过稳定期测试。

    9、测试组长对于通过稳定期测试的产品填写综合测试报告,测试中心依此发布产品发行通知。

    10、测试组对整个测试过程和产品质量进行总结和评价,形成文档并备案。同时,将测试过程中对测试设计的改动纳入基线(是已经通过正式复审核批准的某规约或产品,是软件开发中的里程碑)。最后,组长整理并在指定地点保存相关测试数据和测试样张。

    11、测试中心解散测试小组。

    另外,在系统测试阶段,我们要求测试小组要进行一些常规内容测试(如:Y2K测试,病毒检查、裸机测试、加密检查、说明书检查……),并要求写入测试方案中。

    测试应该在现实的环境中进行。所谓现实环境就是与用户实际使用的环境相同或相近,因为开发环境和用户使用环境有很大区别的,而开发的产品最终是要交给用户使用的。如果没有办法模拟用户环境,则程序员可能必须自己开发一些模拟程序来模拟现实环境。特别是与硬件配合的项目,因为在程序调试时硬件可能没有完全完成,这时就必须开发模拟硬件的程序,否则开发的进度可能无法保证。

    四、时间控制

    开发人员最担心 “领导不断催促,可系统提交日期一拖再拖”,项目负责人对此一筹莫展,束手无策。开发活动如同一个黑箱子,资金扔进去了,人员扔进去了,设备资源扔进去了,但不知道什么时候会出来结果,更没有把握出来的东西是否是用户所要的东西。为避免人力、物力、财力浪费,要做好项目计划,进行有效的时间控制。

    软件项目管理过程开始于项目的计划,在做项目计划时,第一项活动是估算。现在已经使用的技术是时间和工作量的估算。因为估算是其他项目计划活动的基石,而且项目计划又为软件工程过程提供了工作方向,所以我们不能没有计划就着手开发,否则就会陷入误区。

    软件项目的进度安排主要是考虑软件交付用户使用的这一段开发时间的安排。进度安排的准确程度可能比成本估计的准确程度更重要。软件产品可以靠重新定价或者靠大量的销售来弥补成本的增加,但进度安排的落空会导致市场机会的丧失或者用户不满意,而且也会导致成本的增加。因此在考虑进度安排时要把人员的工作量与花费的时间联系起来,合理分配工作量,利用进度安排的有效分析方法严密监视软件开发的进展情况,以使得软件开发的进度不至于被拖延。

    在作进度安排时要考虑的一个主要问题是任务的并行性问题。当参加项目的人数不止一人时,软件开发工作就会出现并行情况。因为并行任务是同时发生的,所以进度计划表必须决定任务之间的从属关系,确定各个任务的先后次序和衔接,确定各个任务完成的持续时间。另外还应注意关键路径的任务,这样可以确定在进度安排中应保证的重点。常用的进度安排方法有两种,即甘特图(Gantt Chart)法和工程网络法。

    项目怎么样才能算做好了,也是各有各的看法,我对项目成功的定义为,“三赢”的项目,才算是真正成功的项目。三赢包括,用户满意;公司满意;项目参与人员满意。

    为用户服务、让用户满意:用户指提供资金并且最终使用项目结果的所有人员,项目的开发过程和最终结果,要让用户认可、使用,并让用户说好。此为一赢。

    让公司满意:项目开发要按时保质保量地完成,并为公司积累项目经验、知识储备,包括项目、人才、技术、市场等各方面的储备。此为二赢。

    让项目参与人员满意:要让开发人员在项目中专注地完成任务,免受项目之外的因素干扰。正常、优秀地完成项目,对开发人员本身也是一种巨大的鼓励。还要让供应商深知其设备、软件的使用情况,让项目的成功成为供应商的成功,为下一次的更好合作打下基础。

    初为开发负责人,需要不断积累经验,我书写此文目的在于抛砖引玉,争取和大家一同将我们的项目做得更完美。欢迎各位指教。

    参考文献:

    《软件工程-实践者的研究方法 designtimesp=17942 designtimesp=19508 designtimesp=19680 designtimesp=20384 designtimesp=8071 designtimesp=8102 designtimesp=8145》RogerS.Pressman

    《项目管理知识体系指南 designtimesp=17944 designtimesp=19510 designtimesp=19682 designtimesp=20386 designtimesp=8073 designtimesp=8104 designtimesp=8147》美国项目管理协会

0
相关文章