IT项目如何进行质量控制
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
IT项目如何进行质量控制
提起如今的IT项目,软件工程备受关注。
而软件的质量更是众人关注的焦点,因为目前还没有一套完善的评估标准。
甚至有人提出,现在的软件开发根本提不上是“工程",因为它太稚嫩了,还没有一套成熟的标准来比照;因而软件项目极易出现失败或失误。
大量实践证明,软件工程项目的成败,通常是因为管理问题(协同工作的能力),而不是技术上的问题。
要想做一盘“完美”的软件大餐,质量管理的作用是不言而喻的。
在实际项目质量管理中,质量管理总是围绕着质量保证过程和质量控制过程两方面。
这两个过程相互作用,在实际应用中还可能会发生交叉。
关于软件的质量,很难下一个非常明确的定义.做软件“大餐”的工序软件质量保证(以下简称SQA)的目的是验证在软件开发过程中是否遵循了合适的过程和标准.
独立的SQA组是衡量软件开发活动优劣与否的尺度之一。
SQA组的这一独立性,使其享有一项关键权利—-—“越级上报"。
当SQA组发现产品质量出现危机时,它有权向项目组的上级机构直接报告这一危机。
这无疑对项目组起到相当的“威慑”作用,也可以看成是促使项目组重视软件开发质量的一种激励。
这一形式使许多问题在组内得以解决,提高了软件开发的质量和效率。
选择和确定SQA活动这一过程的目的是策划在整个项目开发过程中所需要进行的质量保证活动。
质量保证活动应与整个项目的开发计划和配置管理计划相一致。
一般把该活动分为以下5类:
第一类,评审软件产品、工具与设施软件产品常被称为“无形”的产品。
在评审时不能只对最终的软件代码进行评审,还要对软件开发计划、标准、过程、软件需求、软件设计、数据库、手册以及测试信息等进行评审。
评估软件工具主要是为了保证项目组采用合适的技术和工具。
评估项目设施的目的是保证项目组有充足设备和资源进行软件开发工作。
这也为规划今后软件项目的设备购置、资源扩充、资源共享等提供依据.
第二类,SQA活动审查的软件开发过程SQA活动审查的软件开发过程主要有:软件产品的评审过程、项目的计划和跟踪过程、软件需求分析过程、软件设计过程、软件实现和单元测试过程、集成和系统测试过程、项目交付过程、子承包商控制过程、配置管理过程.特别要强调的是,为保证软件质量,应赋予SQA阻止交付某些不符合项目需求和标准产品的权利.
第三类,参与技术和管理评审参与技术和管理评审的目的是为了保证此类评审满足项目要求,便于监督问题的解决。
第四类,做SQA报告SQA活动的一个重要内容就是报告对软件产品或软件过程评估的结果,并提出改进建议.SQA应将其评估的结果文档化.
第五类,做SQA度量SQA度量是记录花费在SQA活动上时间、人力等数据。
通过大量数据的积累、分析,可以使企业领导对质量管理的重要性有定量的认识,利于质量管理活动的进一步开展。
需要说明的是,并不是每个项目的质量保证过程都必须包含上述这些活动或仅限于这些活动,要根据项目的具体情况来定。
SQA计划中必须明确定义在软件开发的各个阶段是如何进行质量保证活动的.
因此,要想交付一个高质量的软件,消除缺陷的活动就变得很重要.缺陷消除是通过“评审”和“测试"这类质量控制活动来实现的.缺陷在软件开发的任何阶段都可能会被引入。
项目质量管理过程包含了许多可以识别缺陷、消除缺陷的过程。
“识别缺陷”和“消除缺陷”本来是两个不同的过程,但在这里为了简便统一用“消除”来代表它们。
潜在的缺陷越大,用来消除它所花的费用越高.因此成熟的软件开发过程在每一个可能会引入潜在缺陷的阶段完成之后都会开展质量控制活动。
这些为了消除缺陷的活动包括:需求评审、设计评审、代码走查、单元测试、集成测试、系统测试以及验收测试等。
质量控制的任务就是策划可行的质量管理活动,然后正确地执行和控制这些活动以保证绝大多数的缺陷可以在开发过程中被发现.正如前面提到的,在进行评审和测试时可检测到缺陷.在执行过程中,根据已定义好的过程来执行这些活动。
通过执行这些活动来识别缺陷,然后消除这些缺陷.例如,系统测试过程一般包括制定测试计划,测试计划中应列出在测试执行过程中所有的测试用例,评审测试计划,并且最终执行测试计划.《中国质量报》
请问各位是如何进行质量控制的呢?主要是对speciafication进行评审和对代码,文档进行检查吗?还有其他工作吗?有没有一定的标准呢?我们进行评审的时候就是大家开会一行行来讨论,没有任何标准,非常倚重个人的经验,非常累人,非常不科学,不知道有没有更好的方法?
1.文挡要结构化,标准化,是按一定的模板编制的;
2。
代码的结果,要满足模块设计的要求,而且代码量小,执行速度快;
3.代码结构符合标准要求,有说明等,格式标准.
们进行评审的时候就是大家开会一行行来讨论,没有任何标准,
你们公司有文档么?
即使文档按摸板写了,也不见得质量就得到控制了,
如果你们公司有制定好的文档,如果你们填写文档的人真的按照文档要求的内容去填写了,真的按照规定好的格式去做了,那么软件的质量会得到一个严格的控制的,周期可能会比较长。
总之,看了楼主的话,还是不太明白你们公司现在的具体情况,
1、你们有没有成型的各种文档规范?
2、有没有专门负责质量改进或者监督的人员?
3、有多少开发和测试人员?
4、大家对于软件质量的概念如何?是否都认为需要引进质量管理的体系?
……
针对你最后一句话,“你质量保证人员要敦促开发人员做的,问题是怎么做,”我来举个例子吧.
假设一个理想状态:
1、在项目的需求阶段,有需求说明书,和规格说明书。
2、技术经理据此写了详细的开发手册,也就是详细的表结构,数据库结构等等的设定。
3、开发人员按照这个开发手册,根据各自的任务进行代码编写。
4、QA人员根据这个开发手册,来检查“代码满足模块设计的要求”是否符合。
我们要保证质量的手段也只是开始定些编码规定,到最后让测试人员用一下再改这样就没有其他了.反正人手也不多,就一个到两个人把设计写出来,然后让程序员好好理解了再做。
我想可能问题就出在规范要让”程序员好好理解”,这说明设计写得不够详细。
大略的文档和编码规范当然有.比如编码规范也只是规定到了变量,字段如何命名之类,是不是应该有更详细,或者更多经验性的东西,可以事先规定的?
大家肯定觉得质量重要啊.但是就觉得不知道如何能在规定时间得到质量好的东西,总是做了叫测试人员用,出问题再改,再测又有新问题...恶性循环.而且大家都觉得CMM是奢侈的东西.
我有时候更怀疑这个”规定的时间"到底是否科学?为什么总是不能在规定时间完成?是人不行还是这个时间错了?规划这个时间是否有什么经验和标准呢?
再者,我对这个"评审的把关能力”就颇有疑问,它是不是就跟个人经验有很大关系,有没有一点具体或量化的标准可循呢?
我说的文档不是随便写出来的,是根据贵公司的实际情况编制的。
如果自己编写有困难,可以请这样的公司来贵公司实地考察然后帮你们编写。
如果按照这样的文档认真填写,做好每一步,比如从开始的设计阶段到最后的测试、审核、提交用户都有章可依,是比较正式的。
如果认真填写一份测试记录,那么开发人员看到后,也就能很快找到错误的地方,修改好,测试人员也能根据测试反馈以最快的速度进行回归测试。
(文档并不是万能的,如果大家都只是形式上的,还不如不要文档这个累赘)
楼上的说“开发人员的效益与项目整体的效益挂钩呢?"确实应该这样,但是不只是开发人员的,应该是项目所有成员的。
规定的时间内的问题:现在很多的公司为了拿到单子都承诺客户会在他们要求的时间内交付使用,其实如果按照公式来计算的话,不是完不成就是要投入更多的人,要么就是延长工作时间.不知道你们是怎么定义这个规定的时间的,:)?
我们公司是把每个人的利益和项目整体利益挂钩的,而且人员加班是很正常的事情,大家都不愿意被扣钱,而且如果因为你而使和你相关的人被扣钱也是件很难看的事,所以,大家都比较自觉的.但是还是有很多项目不能在客户要求的时间内交付。