51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 10979|回复: 25
打印 上一主题 下一主题

[资料] SQA详解

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2007-10-8 10:28:53 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
软件质量保证(SQA)是建立一套有计划,有系统的方法,来向管理层保证拟定出的标准、步骤、实践和方法能够正确地被所有项目所采用。

      软件质量保证的目的是使软件过程对于管理人员来说是可见的。它通过对软件产品和活动进行评审和审计来验证软件是合乎标准的。软件质量保证组在项目开始时就一起参与建立计划、标准和过程。这些将使软件项目满足机构方针的要求。


一、基本目标

      目标 1: 软件质量保证工作是有计划进行的。
      目标 2: 客观地验证软件项目产品和工作是否遵循恰当的标准、步骤和需求。
      目标 3: 将软件质量保证工作及结果通知给相关组别和个人。
      目标 4: 高级管理层接触到在项目内部不能解决的不符合类问题。

二、QA的由来

      我们知道,国外很多的大公司,QA的职责就是测试(主要是系统测试),比如IBM、CA、PeopleSoft等。其实在最初,几乎所有的公司都是这样的。后来,由于缺乏有效的项目计划和项目管理,留给系统测试的时间很少(注:我以前做的一个项目,项目经理就明确告诉我系统测试就1天,没得商量)。另外,需求变化太快,没有完整的需求文档,测试人员就只能根据自己的想象来测试。这样一来,测试就很难保障产品的质量,事先预防的QA职能就应运而生。
事先预防其实是借鉴了TQM的思想,而且也符合软件工程“缺陷越早发现越早修改越经济”的原则。这些思想的渊源还可以追溯到中国古代的典故中,比如曲突徙薪、扁鹊论医术等。特别是扁鹊论医术这个典故,我偶然在国外的一篇文章中看到了(后来在林锐的文章中也看到了),常感叹我们国人连祖先的思想文化遗产都丢的差不多了。

三、QA的现在

      目前,实施CMM的企业越来越多了。CMM模型就要求建立QA角色。这里的QA类似于过程警察,主要职责是,检查开发和管理活动是否与已定的过程策略、标准和流程一致,检查工作产品是否遵循模板规定的内容和格式。在这些企业中,一般还要求QA独立于项目组,以保障评价的客观性。从国内来看,多数的QA没有技术背景,检查出的偏差多为鸡毛蒜皮,再加上自己没有令人信服的背景,领导也不支持,当然做起来就很困难了。

      缺乏信任和支持只是一个方面,QA工作本身就很具挑战性。它要求QA具有软件工程的知识、软件开发的知识、行业背景的知识、数理统计的知识、项目管理的知识、质量管理的知识等等。

      我们常常遇到这样的问题,改进到一定程度就很难突破,感觉心有余而力不足了,就开始郁闷了。后来通过学习、培训、交流,思想和技能得到升华,又发现了木桶中最短的那块,然后又开始改进,然后又遇到了玻璃天花板,然后……就这样处于郁闷的循环中。

      假使我们掌握了所有的知识,能突破所有的玻璃天花板,那是不是QA就可以一帆风顺了。答案是否定的。QA角色定义本身就有很大的局限性。QA充当的是过程警察的角色,无论是否有意义,都专横地强制过程的执行,容易在项目组中造成敌对的关系,受到排挤,而且这种警察的姿态也破坏了团队精神。如此一来,QA工作还需要的是人际关系技能,就如我以前写的《质量平衡》和《QA应该独立于项目组吗?》一样,艺术化地处理这种关系。

四、QA的未来

      从某种程度上说,独立的QA审查机制是瀑布模型的产物。随着现代软件开发技术的演变,螺旋模型和迭代模型的兴起,QA机制正在悄然发生变化。这种变化就是从独立专职的QA向贯穿过程的兼职QA演变。在CMMI模型中,这种兼职的QA也是被允许的。为什么会发生这种改变呢?无论是XP、RUP还是其它先进的方法论,都是先产生架构,然后再增量开发,直到完成。这种模式中,需求和设计缺陷在各个迭代周期被所尽早发现和修复,质量也内建于架构和过程中,项目的成本和进度也得到保障。
到那时,是不是独立的QA就不复存在了呢?有些成熟度较低的企业还是需要的,主要是保证过程执行的有效性和评价的客观性。

五、SQA的理论探索

      1、过程的认识

      我们都知道一个项目的主要内容是:成本、进度、质量;良好的项目管理就是综合三方面的因素,平衡三方面的目标,最终依照目标完成任务。项目的这三个方面是相互制约和影响的,有时对这三方面的平衡策略甚至成为一个企业级的要求,决定了企业的行为,我们知道 IBM的软件是以质量为最重要目标的,而微软的“足够好的软件”策略更是耳熟能详,这些质量目标其实立足于企业的战略目标。所以用于进行质量保证的SQA工作也应当立足于企业的战略目标,从这个角度思考SQA,形成对SQA的理论认识。

      软件界已经达成共识的:影响软件项目进度、成本、质量的因素主要是 “人、过程、技术”。首先要明确的是这三个因素中,人是第一位的。

      现在许多实施 CMM的人员沉溺于CMM的理论过于强调“过程”,这是很危险的倾向。这个思想倾向在国外受到了猛烈抨击,从某种意义上各种敏捷过程方法的提出就是对强调过程的一种反思。 “XP”中的一个思想“人比过程更重要” 是值得我们思考的。我个人的意见在进行过程改进中坚持“以人为本”,强调过程和人的和谐。

      根据现代软件工程对众多失败项目的调查,发现管理是项目失败的主要原因。这个事实的重要性在于说明了 “要保证项目不失败,我们应当更加关注管理”,注意这个事实没有说明另外一个问题“良好的管理可以保证项目的成功”。现在很多人基于一种粗糙的逻辑,从一个事实反推到的这个结论,在逻辑上是错误的,这种错误形成了更加错误的做法,这点在SQA的理解上是体现较深。

      如果我们考证一下历史的沿革,应当更加容易理解 CMM的本质。CMM首先是作为一个“评估标准”出现的,主要评估的是美国国防部供应商保证质量的能力。CMM关注的软件生产有如下特点:
      (1)质量重要
      (2)规模较大

      这是 CMM产生的原因。它引入了“全面质量管理”的思想,尤其侧重了“全面质量管理”中的“过程方法”,并且引入了“统计过程控制”的方法。可以说这两个思想是CMM背后的基础。

      上面这些内容形成了我对软件过程地位、价值的基本理解;在这个基础上我们可以引申讨论 SQA。

      2、生产线的隐喻

      如果将一个软件生产类比于一个工厂的生产。那么生产线就是过程,产品按照生产线的规定过程进行生产。 SQA的职责就是保证过程的执行,也就是保证生产线的正常执行。

      抽象出管理体系模型的如下,这个模型说明了一个过程体系至少应当包含 “决策、执行、反馈”三个重要方面。

      QA的职责就是确保过程的有效执行,监督项目按照过程进行项目活动;它不负责监管产品的质量,不负责向管理层提供项目的情况,不负责代表管理层进行管理,只是代表管理层来保证过程的执行。



      3、SQA和其他工作的组合

      在很多企业中,将 SQA的工作和QC、SEPG、组织级的项目管理者的工作混合在一起了,有时甚至更加注重其他方面的工作而没有做好SQA的本职工作。

      根据 hjhza 的意见“中国现在基本有三种QA(按照工作重点不同来分):一是过程改进型,一是配置管理型,一是测试型”。我个人认为是因为SQA工作和其他不同工作组合在一起形成的。

      下面根据本人经验对它们之间的关系进行一个说明。

      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来确保这个管理过程的运行。

[ 本帖最后由 elong602 于 2007-10-27 00:47 编辑 ]

评分

参与人数 1综合技术指数 +5 收起 理由
elong602 + 5 精品文章

查看全部评分

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

26#
发表于 2012-11-16 15:43:18 | 只看该作者
谢谢楼主
回复 支持 反对

使用道具 举报

该用户从未签到

25#
发表于 2012-11-6 16:49:38 | 只看该作者
GOOD
回复 支持 反对

使用道具 举报

该用户从未签到

24#
发表于 2012-11-5 10:49:29 | 只看该作者
正解,支持~
回复 支持 反对

使用道具 举报

该用户从未签到

23#
发表于 2012-11-2 10:08:43 | 只看该作者
顶!
回复 支持 反对

使用道具 举报

该用户从未签到

22#
发表于 2012-10-15 17:07:07 | 只看该作者
很好, 写的很详细
回复 支持 反对

使用道具 举报

该用户从未签到

21#
发表于 2012-10-15 17:06:48 | 只看该作者
很 详细
回复 支持 反对

使用道具 举报

该用户从未签到

20#
发表于 2012-9-26 20:18:40 | 只看该作者
新人,请多指教
回复 支持 反对

使用道具 举报

该用户从未签到

19#
发表于 2012-9-22 20:28:19 | 只看该作者
不错,很详细讲解的,收藏了!谢谢LZ!
回复 支持 反对

使用道具 举报

该用户从未签到

18#
发表于 2012-8-29 19:01:20 | 只看该作者
回复 支持 反对

使用道具 举报

该用户从未签到

17#
发表于 2012-8-27 11:47:25 | 只看该作者
学习了。
回复 支持 反对

使用道具 举报

该用户从未签到

16#
发表于 2012-8-13 16:42:55 | 只看该作者
学习了……
回复 支持 反对

使用道具 举报

该用户从未签到

15#
发表于 2012-5-27 21:30:30 | 只看该作者
成了公司唯一的SQA,工作不好做呀
回复 支持 反对

使用道具 举报

该用户从未签到

14#
发表于 2012-5-25 11:47:41 | 只看该作者
very good
回复 支持 反对

使用道具 举报

该用户从未签到

13#
发表于 2012-5-19 17:51:55 | 只看该作者
回复 支持 反对

使用道具 举报

该用户从未签到

12#
发表于 2012-5-16 17:22:36 | 只看该作者
回复 支持 反对

使用道具 举报

该用户从未签到

11#
发表于 2007-12-27 22:15:21 | 只看该作者
好及了,多谢
回复 支持 反对

使用道具 举报

该用户从未签到

10#
发表于 2007-12-19 10:51:13 | 只看该作者
是很详细,但有没有应用的实例呢
回复 支持 反对

使用道具 举报

该用户从未签到

9#
发表于 2007-12-18 11:37:16 | 只看该作者
8错
回复 支持 反对

使用道具 举报

该用户从未签到

8#
发表于 2007-11-27 15:35:29 | 只看该作者
很详细,辛苦
回复 支持 反对

使用道具 举报

本版积分规则

关闭

站长推荐上一条 /1 下一条

小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

GMT+8, 2024-11-7 19:33 , Processed in 0.075542 second(s), 27 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

快速回复 返回顶部 返回列表