浅谈软件项目管理之测试

笔者从事软件行业相关工作将近十年,其中与测试相关时间有7年之久,现浅谈软件项目管理中测试的必要性,供大家参考。

  一、测试的必要性

  为什么需要测试,那是因为由于分工的精细化,软件开发必须经历客户、需求、设计、开发多个环节。为了保证最终的结果符合要求,上下游是需要确认的。

  用户告诉我们:我需要什么?软件企业需要在理解正确、表达正确的情况下完成需求规则说明书,把客户的原始需求转变为IT需求,表达出能够提供什么

  需求的下一环节是设计,设计主要是要要说清楚:我要让软件做什么。需要与前一环节确认理解正确了、设计正确了、表达也正确了

  接下来就是实现了,程序告诉计算机怎么做,最终保证能够运行出结果,而且运行的结果与用户要求是相符的。

  正式因为一个项目参与环境众多,为了保证客户需求在传递过程中尽可能少的丢失,我们需要反复的校验、确认,也就产生了测试。

  传统的观念中把测试定位于从程序员到运行结果这一段,实际上强化每个阶段的确认、特别是用户需求到需求规格的确认,是更能节省时间和成本的方法。

  二、测试管理与质量管理之间的关系

  首先回顾一下PMI协会关于质量管理的一些观点:

  第一点就是质量管理的最终目标是使客户满意,质量管理的定义就是理解、评估、定义和管理客户需求,以达到客户期望;能使客户满意的标准就是符合要求且易于使用。这是一个从项目角度出发提出的概念,针对产品研发也应该是吻合的。研发出的产品是为了卖给客户的,不是为了孤芳自赏的,所以研发成果是否满足客户要求也是至关重要的。

  另外一点就是关于功能性符合度和易用性符合的强调,现在很多企业很容易聚焦于功能而忽视软件最终是给人使用,是给不同文化层次的客户使用的,软件的易用性往往能够推翻软件企业为了实现功能所做的一切努力。

  举例来说,有一个项目,需要实现两种产品单据的传递,因为交付工期很短,我们的开发人员加班加点的完成了功能,但是客户却拒绝接收。原因在于引入单据之前需要进行两种产品基础资料的匹配,开发实现了这个功能,却忽视了客户有大概2000条基础资料需要匹配,没有提供批量匹配的功能,最终客户试用中感觉工作量无法接受,拒绝验收了。前面所有加班所有的努力都白费,原因就是忽略客户的易用性需求。

  可能对于产品研发而言,没有这么强硬的结果,但是一些功能不好用对客户满意度的影响还是相当多的。所以个人认为把产品通过测试的标准定位与符合要求且易于使用是非常恰当的。

  第二个观点是预防胜于检查,这是很容易明白,但是实际过程中又不大容易做到的。因为客户的压力,很多企业的发版是很频繁的,发版之后是否有人来总结这次版本研发中碰到了什么问题,哪些缺陷影响了发版时间,下次版本中需要一些什么预防措施?如果没有这样的一个过程,没有缺陷的一套分析和预防机制,很多类似的问题会不断的出现,版本的质量以及补丁的压力会像滚雪球一样越滚越大,最终使得整个研发团队难以负荷。

  第三个观点是关于管理层责任的,提出PDCA循环的戴明就说,85%的质量问题应该由管理层负责,只有15%的责任是团队负责。很浅显易懂的一个道理,假设公司老板对你说,这个版本你一定要保证质量,有一个问题都不能放行!你想这个版本质量能差吗?

  换一种场景,你告诉老板有几个核心问题还没有解决,没有达到发版条件,老板却说,客户压力大,你先发出去,后面再出补丁!结果又会如何呢?

  老板当然不可能忽视客户对工期的要求,不惜一切代价的保证质量,但是当成本和质量进行权衡的时候,老板会偏重哪一个,直接影响最终产品的质量;

  老板在质量文化减少方面、过程改进方面重视的程度,也将直接影响这个公司所有产品的质量。

  这就是管理层的责任!

  提出这个观点的戴明还有一个观点与PMP相关体系非常符合,即质量并不是由工作人员的能力决定的,而是取决于如何开展工作的程序和制度。之所以要进行项目管理的认证,就是要让项目管理的整体能力不因为个人能力产生较大起伏,如果都能按照组织确定的流程进行相关活动,最低水平也能被保证。

  第四个观点是持续改进原则,持续地、渐进地改变来改善情况,中国的俗话也说的好:饭要一口一口的吃,别想一口吃成一个胖子。

  那测试管理到底与质量管理有什么关系呢?

  在量管理活动中,测试是质量控制的重要手段。

  三、测试相关原则

  上图中也提到了测试的基本原则,在此做简单描述,欢迎大家拍砖。

  1、尽早测试原则

  尽早测试原则与马丁分析出来的结论有非常大的关系,一个缺陷在需求阶段被发现所产生的纠正费用是产品交付后维护阶段发生费用的两百分之一。

  有软件公司也曾经做了简单测算,1个缺陷留到客户处被发现,所耗费的成本在50万左右。

  或许引起客户怨声载道的严重缺陷,在需求环节解决只需要增加一行字的清晰描述,在编码阶段只需要多增加几行代码,可是一旦到了客户哪里,便成了投诉、安抚、补丁、责任追究等一系列的紧急事件。

  2、Good-enough原则

  Good-enough原则其实是针对测试本环节来说的,也体现了项目管理思想中关于质量和成本直接的关系。如果以精益求精的思想,能够到底“零缺陷”是最为完美的一种状态。可是从投入产出的衡量来说,零缺陷是很不划算的。理想状态下的测试系统,根据帕累托的二八原则,研发测试应该至少发现80%的bug,而最好只有5%的缺陷是由客户发现的。之所以要推行good-enough的原则,是因为在项目中时间、成本、质量是永远不可调和的矛盾,不论是高层还是基层的测试负责人,软件项目管理人员都需要对自己负责领域进行一定平衡和妥协。

  总而言之,做好了测试的管理,对于软件项目的成本、工期和质量管理都有非常大的好处,但是目前国内的很多软件企业却不重视,特别是针对客户的定制项目,希望未来一段时间能够得到改观。

本文出自seven的测试人生公众号最新内容请见作者的GitHub页:http://qaseven.github.io/

时间: 2024-10-30 20:13:58

浅谈软件项目管理之测试的相关文章

浅谈软件项目管理环境下的质量管理

浅谈软件项目管理环境下的质量管理 摘要:软件项目管理是为了使软件项目能够按照预定的成本.进度.质量顺利完成,而对成本.人员.进度.质量.风险等进行分析和管理的活动.软件项目的质量管理就是产出的软件,满足客户明确需求.隐含需求的能力的所有特性.在现实生活中,监控所有对质量有影响的关键点,采用有效的测量手段来管理软件的质量,从而实现软件项目的"高"质量.使软件项目管理较之其他项目管理而言有其特殊性.采用CMM标准可以确保软件项目的质量,CMM是美国卡纳基梅隆大学软件工程研究所提出的软件研发

浅谈软件项目的需求管理

软件项目区别于其它项目的最显著的特征是其不可见性,它不像硬件购销.建筑工程,都是实实在在可见的东西.而软件项目在系统交付之前很长一段时间,客户是无法感知自己想要的系统究竟是什么样子.因此,需求管理就显得十分重要,据相关统计数据分析,软件项目90%以上失败的原因都在于没有重视需求或者需求管理方面做的不到位导致的. 需求管理作为软件项目管理的一个重要内容,贯穿项目实施的全生命周期.俗话说:万事开头难.需求作为软件开发的第一个环节,其重要性不言而喻.市面上关于需求管理的相关理论和书籍很多,但多数停留在

康华:浅谈软件可维护性问题

前言     很多包括自己在内的开发人员都会经常去借用(我们不用剽窃这个词了!呵呵)开源代码进行二次开发:或者在前辈的遗留代码下,继续修修补补.这种经历往往并不像看起来那么简单--有时看懂,进而修改别人的少许代码,都会觉得老虎天--无从下手,究其原因主要是代码晦涩,关系复杂,难以隔离影响等.    而这时我们或者抱怨前人代码写的愚蠢,垃圾:或者又会自惭自己编码水平太次.其实这种困境的起源除了自己笨以外,更多是因为代码的可维护性不够.    由于前不久和朋友齐永升注释<代码质量>一书时曾关注过代

浅谈软件验收测试

随着信息化的全面实施,软件业正迅速发展,软件的应用已渗透到各行各业,软件质量也越来越受到关注,本文将结合全面质量管理思想,谈谈软件质量保障交付阶段的安全锁-软件验收测试. 如同任何产品离不开质量检验一样,软件验收测试是在软件投入运行前,对软件需求分析.设计规格说明和编码实现的最终审定,在软件生存期中占据着非常突出的重要位置.正如山东省软件评测中心韩庆良主任所说:"验收测试,让软件隐形质量可视化." 软件验收测试概念:软件验收测试,让系统用户决定是否接收系统,是一项确定产品是否能够满足合

浅谈软件静态测试中的代码审查

摘要:本文描述了软件代码审查的作用.代码审查内容.代码审查过程,并列举一些常见代码审查问题. 关键词:软件测试:代码审查: 一.引言 软件测试常用方法可分为动态测试和静态测试,只有动态测试和静态测试有效结合,才能更好的完成软件测试工作.代码审查是软件静态测试中常用的软件测试方法之一,代码审查时,只要测试人员方法得当.足够细心,往往能够产生意想不到的效果. 二.代码审查的作用 代码审查是在不执行软件的条件下有条理的仔细审查软件代码,从而找出软件缺陷的过程. 代码审查可以找出动态测试难以发现或隔离的

浅谈软件测试用例

发现: 人来了,又走了! 有篇博文如是说,大体意思是有些的程序员,中途转测试,但很快又转回程序员.为何会这样,难道说测试不值得他们一试吗?普遍流行说测试工作如何如何简单,就是会点点鼠标.按钮就能做的工作:然而,事实恰恰相反,这些老到的程序员却是因为测试工作的复杂而没有既来之,则安之的. 软件测试乍看起来是件简单的工作,深入其中后,发现并不如所想,程序中各个模块之间的接口调用错综复杂(特别是大型程序),加之程序员的编写代码技巧以及个人习惯,使得一个程序有多种编程思路,只为实现功能,而不考虑代码的优

浅谈软件人机界面设计

设计 众所周知,软件是一种工具,而软件与人的信息交换是通过界面来进行的,所以界面的易用性和美观性就变得非常重要了,这就需要好好利用人机界面设计的原则及设计的方法.一般来说,完成软件人机界面设计需考虑以下问题: ----1)界面总体布局设计,即如何使界面的布局变得更加合理.例如,我们应该把功能相近的按钮放在一起,并在样式上与其他功能的按钮相区别,这样用户使用起来将会更加方便.  ----2)操作流程设计,即通过设计工作流程,而使用户的工作量减小,工作效率提高.例如:我们如何才能让用户用最少的步骤,

浅谈软件下载站有哪些盈利模式

中介交易 http://www.aliyun.com/zixun/aggregation/6858.html">SEO诊断 淘宝客 云主机 技术大厅 虽然说现在的软件下载站不像之前那么火爆了,不过软件下载网站的盈利模式却有很多,所以对很多个人站长的吸引力还是比较大的,下面就让笔者给大家介绍几种常见的软件下载站的盈利模式!希望能够给大家做一下参考! 一:利用弹窗广告的模式来赚钱,虽然弹窗广告这种模式已经被很多正规的网站所抛弃了,不过对于垃圾网站来说还是有相当不错的诱惑力的,很多下载类的网站可

浅谈软件项目范围变更管理

       我认为,任何项目都有一个范围.项目范围就是使客户满意而必须做的所有工作,它包括了项目的产品或服务以及实现其所做的各项工作.范围管理就是为了成功地实现项目的目标,规定或控制哪些是项目应该做的,哪些是不该做的.范围告诉了我们:做什么.怎么做.做到什么程度. 范围管理是项目成功的基础和重要因素.如果不能合理界定项目范围,项目就无法启动,无法进行项目管理,意外的变更将会随时出现,项目也会返工.费用上升甚至不能完成. 项目范围管理的核心就是控制项目范围变更.目前,项目在实施过程中由于受到内外