下面根据本人经验对它们之间的关系进行一个说明。
4、QA和QC
两者基本职责
QC:检验产品的质量,保证产品符合客户的需求;是产品质量检查者;
QA:审计过程的质量,保证过程被正确执行;是过程质量审计者;
注意区别检查和审计的不同
检查:就是我们常说的找茬,是挑毛病的;
审计:来确认项目按照要求进行的证据;仔细看看CMM中各个KPA中SQA的检查采用的术语大量用到了“证实”,审计的内容主要是过程的;对照CMM看一下项目经理和高级管理者的审查内容,他们更加关注具体内容。
对照上面的管理体系模型,QC进行质量控制,向管理层反馈质量信息;QA则确保QC按照过程进行质量控制活动,按照过程将检查结果向管理层汇报。这就是QA和QC工作的关系。
在这样的分工原则下, QA只要检查项目按照过程进行了某项活动没有,产出了某个产品没有;而QC来检查产品是否符合质量要求。
如果企业原来具有 QC人员并且QA人员配备不足,可以先确定由QC兼任QA工作。但是只能是暂时的,独立的QA人员应当具备,因为QC工作也是要遵循过程要求的,也是要被审计过程的,这种混合情况,难以保证QC工作的过程质量。
5、QA和SEPG
两者基本职责
SEPG:制定过程,实施过程改进;
QA: 确保过程被正确执行
SEPG应当提供过程上的指导,帮助项目组制定项目过程,帮助项目组进行策划;从而帮助项目组有效的工作,有效的执行过程。如果项目和QA对过程的理解发生争持,SEPG作为最终仲裁者。为了进行有效过程改进,SEPG必须分析项目的数据。
QA本也要进行过程规范,那么所有QA中最有经验、最有能力的QA可以参加SEPG,但是要注意这两者的区别。
如果企业的 SEPG人员具有较为深厚的开发背景,可以兼任SQA工作,这样利于过程的不断改进;但是由于立法、执法集于一身也容易造成SQA过于强势,影响项目的独立性。
管理过程比较成熟的企业,因为企业的文化和管理机制已经健全,
SQA职责范围的工作较少,往往只是针对具体项目制定明确重点的SQA计划,这样SQA的审计工作会大大减少,从而可以同时审计较多项目。
另 一方面,由于分工的细致化,管理体系的复杂化,往往需要专职的
SEPG人员,这些人员要求了解企业的所有管理过程和运作情况,在这个基础上才能统筹全局的进行过程改进,这时了解全局的SQA人员就是专职SEPG的主要人选;这些SQA人员将逐渐的转化为SEPG人员,并且更加了解管理知识,而SQA工作渐渐成为他们的兼职工作。
这种情况在许多 CMM5企业比较多见,往往有时看不见SQA人员在项目组出现或者很少出现,这种SEPG和SQA的融合特别有利于组织的过程改进工作。SEPG确定过程改进内容,SQA计划重点反映这些改进内容,从保证有效的改进,特别有利于达到CMM5的要求。从这个角度,国外的SQA人员为什么高薪就不难理解了,也决定了当前中国SQA人员比较被轻视的原因;因为管理过程还不完善,我们的SQA人员还没有产生这么大的价值嘛!
6、QA和组织级的监督管理
有的企业为了更好的监督管理项目,建立了一个角色,我取名为
“组织级的监督管理者”,他们的职责是对所有项目进行统一的跟踪、监督、适当的管理,来保证管理层对所有项目的可视性、可管理性。
为了有效管理项目, “组织级的监督管理者”必须分析项目的数据。
他们的职责对照上图的模型,就是执行 “反馈”职能。
QA本身不进行反馈工作,最多对过程执行情况的信息进行反馈。
SQA职责最好不要和“组织级的项目管理者”的职责混合在一起,否则容易出现SAQ困境:一方面SQA不能准确定位自己的工作,另一方面过程执行者对SQA人员抱有较大戒心。
如果建立了较好的管理过程,那么就会增强项目的可视性,从而保证企业对所有项目的较好管理;而
QA来确保这个管理过程的运行。
五、SQA的工作内容和工作方法 1、 计划
针对具体项目制定 SQA计划,确保项目组正确执行过程。制定SQA计划应当注意如下几点:
有重点:依据企业目标以及项目情况确定审计的重点
明确审计内容:明确审计哪些活动,那些产品
明确审计方式:确定怎样进行审计
明确审计结果报告的规则:审计的结果报告给谁
2、审计/证实
依据 SQA计划进行SQA审计工作,按照规则发布审计结果报告。
注意审计一定要有项目组人员陪同,不能搞突然袭击。双方要开诚布公,坦诚相对。
审计的内容:是否按照过程要求执行了相应活动,是否按照过程要求产生了相应产品。
3、问题跟踪
对审计中发现的问题,要求项目组改进,并跟进直到解决。
六、SQA的素质
过程为中心:应当站在过程的角度来考虑问题,只要保证了过程,
QA就尽到了责任。
服务精神:为项目组服务,帮助项目组确保正确执行过程
了解过程:深刻了解企业的工程,并具有一定的过程管理理论知识
了解开发:对开发工作的基本情况了解,能够理解项目的活动
沟通技巧:善于沟通,能够营造良好的气氛,避免审计活动成为一种找茬活动。
七、SQA活? 软件质量保证(SQA)是一种应用于整个软件过程的活动,它包含:
1、一种质量管理方法
2、有效的软件工程技术(方法和工具)
3、在整个软件过程中采用的正式技术评审
4、一种多层次的测试策略
5、对软件文档及其修改的控制
6、保证软件遵从软件开发标准
7、度量和报告机制
SQA与两种不同的参与者相关
—— 做技术工作的软件工程师和负责质量保证的计划、监督、记录、分析及报告工作的SQA小组 。
软件工程师通过采用可靠的技术方法和措施,进行正式的技术评审,执行计划周密的软件测试来考虑质量问题,并完成软件质量保证和质量控制活动。
SQA小组的职责是辅助软件工程小组得到高质量的最终产品。SQA小组完成:
(1)为项目准备SQA计划。该计划在制定项目规定项目计划时确定,由所有感兴趣的相关部门评审。
·需要进行的审计和评审;
·项目可采用的标准;
·错误报告和跟踪的规程;
·由SQA小组产生的文档;
·向软件项目组提供的反馈数量。
(2)参与开发项目的软件过程描述。评审过程描述以保证该过程与组织政策,内部软件标准,外界标准以及项目计划的其他部分相符。
(3)评审各项软件工程活动,对其是否符合定义好的软件过程进行核实。记录、跟踪与过程的偏差。
(4)审计指定的软件工作产品,对其是否符合事先定义好的需求进行核实。对产品进行评审,识别、记录和跟踪出现的偏差;对是否已经改正进行核实;定期将工作结果向项目管理者报告。
(5)确保软件工作及产品中的偏差已记录在案,并根据预定的规程进行处理。
(6)记录所有不符合的部分并报告给高级领导者。
八、正式技术评审(FTR) 正式技术评审是一种由软件工程师和其他人进行的软件质量保障活动。
1. 目标:
(1)
发现功能、逻辑或实现的错误
(2)
证实经过评审的软件的确满足需求
(3)
保证软件的表示符合预定义的标准
(4)
得到一种一致的方式开发的软件
(5)
使项目更易管理
2、评审会议
3-5人参加,不超过2小时,由评审主席、评审者和生产者参加,必须做出下列决定中的一个
:
(1)工作产品可不可以不经修改而被接受;
(2)由于严重错误而否决工作产品;
(3)暂时接受工作产品。
3、评审总结报告、回答
评审什么?由谁评审?结论是什么?
评审总结报告是项目历史记录的一部分,标识产品中存在问题的区域,作为行政条目检查表以指导生产者进行改正。
4、评审指导原则
(1)评审产品,而不是评审生产者。注意客气地指出错误,气氛轻松。
(2)不要离题,限制争论。有异议的问题不要争论但要记录在案。
(3)对各个问题都发表见解。问题解决应该放到评审会议之后进行。
(4)为每个要评审的工作产品建立一个检查表。应为分析、设计、编码、测试文档都建立检查表。
(5)分配资源和时间。应该将评审作为软件工程任务加以调度。
(6)评审以前所做的评审
九、统计软件质量保证 1、对所有错误进行分类统计
IES 规约不完整或规格说明错
MCC 未理解用户意图
IDS 故意偏离规格说明
VPS 违背编程标准
EDR 数据表示有错
ICI 构件接口不一致
EDL 设计逻辑有错
IET 测试不完全或有错
IID 不准确或不完整的文档
PLT 设计的程序设计语言翻译错
HCI 不清晰或不一致的人机界面
MIS 杂项错误
按严重,一般和微小级别统计各类错误的次数所占百分比,以及所有错误的数量及百分比。例如,建立一张类似如下的表格。
然后考虑“重要少数”的错误指标,提出改进意见。
2、根据软件过程中的每个步骤计算错误指标。
Ei = 第i发现的错误总数
Si = 严重错误数
Mi = 一般错误数
Ti = 微小错误数
PS = 第i步的产品规模( LOC,设计陈述,文档页数)
Ws,Wm,Wt分别是严重,一般,微小错误的加权因子,
推荐取值,Ws=10,Wm=3,Wt=1
软件工程 在过程的每一步中,计算各阶段的阶段指标
PIi = Ws(Si / Ei)+Wm(Mi / Ei)+Wt(Ti
/ Ei)
错误指标
Ei= ∑(i×PIi)/ PS
=(PI1 + 2PI2 + 3PI3 + … + i*PIi)/
PS
错误指标与上面表格中收集的信息相结合可以得出软件质量整体改进指标。七、质量保证与检验
确保每个开发过程的质量,防止把软件差错传播到下一个过程,因此,检验的目的有两个:
1.切实搞好开发阶段的管理,检查各开发阶段的质量保证。
2.预先防止软件差错给用户造成损失。
检验的类型有:
1.供货检验:对委托外单位承担开发作业,而后买进或转让的构成软件产品的部件,规格说明,半成品或产品的检查。
2.中间检验 / 阶段评审
目的是为了判断是否可进入下阶段进行后续开发,避免将差错传播到后续工作中。
3.验收检验:
确认产品是否已达到可以进行产品检验的质量要求。
4.产品检验:
判定向用户提供的软件产品是否达到令人满意的程度