软件质量管理:wxaace的技术博客

所有的从事软件生产的都要学习软件质量,包括软件分析人员、设计人员、开发人员、测试人员、维护人员。

在软件质量管理中,我们要主要学习软件质量的定义、软件质量管理体系、软件质量模型、软件质量活动。

质量就是就是把客户的质量要求转化为设计参数,形式预期的产品,最终生产出低成本并且稳定可靠的产品。

ISO关于质量的定义如下:

一个实体的所有特性,基于这些特性可以满足明显的或隐含的需求,而质量就是实体基于这些实体特性满足需求的程序。

软件质量的三个层次

从质量的定义来看,我们可以引申出不同层次的软件质量:

我们对用户的显式或隐式的需求,作分析,整理出需求分析、概要设计、详细设计、代码设计、然后做单元测试、集成测试、系统测试。

最终用户的体验是包含我们是否满足了用户提出的隐式和显式需求的。

软件质量铁三角

那么我们接下来就要考虑,有哪些因素会影响软件的质量,进而影响用户的体验。

流程、技术、组织这三个因素是影响软件质量的的铁三角,软件质量的提高是一个综合因素,需要从各方面进行改进,同时还需要兼顾成本和进度。

流程

软件生产流程:计划 -- 分析 -- 设计(概要设计、详细设计) -- 实现(编码) -- 测试 -- 运行 -- 维护。

但严格按照流程执行,并不一定能生产出好的产品。

所以,我们还需要其他的手段来提高软件质量。

技术

在技术这块,我们要了解:

我们还需要将技术和流程相结合起来。

除了技术和流程的有效结合,还需要有效的组织管理。

组织

组织不力,会间接影响软件质量。

在质量管理的不断发展过程中,经历了三个阶段。

第一阶段,检验质量管理(19世纪末-20世纪初):

产品都生产好了,你再检查,为时已晚,检查出来不合格的产品都将沦为废品。

那么怎么提高良品率呢,质量管理的发展来到了第二阶段。

第二阶段,统计质量控制(20世纪40年代-20世纪60年代):

根据这些数据以及某些规律,发现质量问题不是在某一个环节出了问题,更多的出现在整个产品的生产周期内。

而此时质量管理发展到了第三阶段。

第三阶段,全面质量管理阶段(TQM,Total Quality Management):

思想的碰撞,产生以各种体系,这就是质量管理体系的诞生。

质量管理体系给控制质量、管理质量提供了支撑的框架。

常用的质量管理体系:

它是由一族标准组成。

ISO9000:2000版标准

ISO9000族2000版标准主要由ISO9000、ISO9001和ISO9004三个核心标准组成。

ISO9000阐明了ISO9000:2000版标准制定的管理理念和原则,确定了新班标准的指导思想和理论基础、规范和确定了新版ISO9004族标准所使用的概念和术语。

ISO9001标准对组织质量管理体系必须履行的要求做了明确的规定,是对产品要求的进一步补充。

ISO9004是组织进行持续改进的标准指南。

ISO9000:2000版的八项质量管理原则

原则

内容

ISO9001标准条款

以顾客为中心

组织依存与其顾客,因此,组织应理解顾客当前和未来的需求,满足顾客要求争取超越顾客期望。

0.1、5.2、7.2.1、7.2.3、7.3、7.5.3、7.5.4、8.2.1

领导作用

领导者将本组织的宗旨、方向和内部环境统一起来,并创造使用员工能够充分参与实现组织目标的环境。

5.1、5.3、5.4.1、5.4.2、5.5.2、5.5.3、5.6、6.1

全员参与

各级人员是组织之本,只有他们的充分参与,才能使他们的才干为组织带来最大的收益。

5.1、5.3、6.2、7.5.4

过程方法

0.3、5、6、7、8(标准的每一条款都涉及过程)

管理的系统方法

针对设定的目标,识别、理解并管理一个由相互关联的过程所组织成的体系,有助于提高组织的有效性和效率

4.1、7.1、8.2.2

持续改进

持续改进是组织的一个永恒的目标

5.2、5.6、7.5、8.2.2、8.5.1、8.5.3

基于事实的决策方法

对数据和信息的逻辑分析或者直觉判断是有效决策的基础。

7.5.2、7.5.5、7.6、8.2.3、8.3、8.4、8.5.2、8.5.3

互利的供方关系

通过互利的关系,增强组织及其供方创造价值的能力

7.4、8.3

八项质量管理原则的意义

是质量管理的理论基础。

用高度概括、易于理解的语言所表述的质量管理的最基本、最通用的一般性规律。

为组织建立质量管理体系提供了理论依据。

是组织的领导者有效地实施质量管理工作必须遵循的原则。

软件行业遵循ISO9000能不能行,能行,但是应该根据软件行业的特点和特殊性,有更具体的体系标准,这就是CMM(Capability Maturity Model,能力成熟度模型)。

既然是模型就有对应的实体:软件组织,解决按时、按计划、高质量完成软件开发。

CMM用途是多样性的:流程成熟度内部评估、第三方评估、流程的改进。

CMM的历史起源

在20世纪60年代左右,美国军方在对联邦项目(由承包商完成的)的一项统计中,发现软件行业较为混乱,软件质量不高。但是,它又要用这些软件承包商开发的软件。后来,美国软件工程研究所(SEI)受美国国防部委托立项,要求提出一个模型,以评估软件承包商的能力,协助软件组织改进过程,提高过程能力。

项目负责人是:Watts Humphrey(CMM之父)。研究了大约1年多,拿出了他们的成果,于1987年发表承包商软件工程师能力评估方法,提出初始框架,根据这个框架来评估软件承包商的能力,那个时候,这个框架不叫CMM,而是叫做PMM(Process Maturity Model,流程成熟度模型),用来规范流程的。

1991年推出CMM1.0版,1993年提出CMM1.1版,维护到了2000年左右,由于不同行业的软件不同,分类又有很多,又制定了不同的模型。

那么CMM是如何评估软件承包商能力的呢?从以下几个方面展开的。

软件流程能力:遵循标准的软件流程,有多大可能达到预计的结果。软件流程能力提供一种有效的手段,可以预计软件组织承担某个项目最有可能结果是什么样子。

软件流程性能:遵循标准的软件流程,真正达到的结果是怎么样的,换而言之,软件流程能力是表示期望的结果,而软件流程性能表述的是软件表达的实际结果。

软件流程成熟度:指一个特定的流程,在多大程度上,被明白无误的定义、管理、衡量和控制,以及软件表达的效果是怎么样的。一个软件组织的软件流程成熟度是预示着它的软件流程能力有多大的发展潜力,这不仅指它的软件流程的丰富性、完备性,并且代表软件流程要做到一致。

CMM能力成熟度是一个阶梯式的模型。

模型共分为5级,每个级别都高度概括了该级别的特点。

很多公司都很推崇这个CMM框架的,并且已经达到了最高的级别,比如软通动力、亚星科技等等。尤其是外包公司,这代表着公司的实例!

CMM级别考核依据

过程能力等级

特点

关键过程域

1. 初始级

软件过程是无序的,有时甚至是混乱的,对过程几乎没有定义,成功取决于个人努力,管理是反应式的。

2. 可重复级

建立了基本的项目管理过程来跟踪费用、进度和功能特性。制定了必要的过程纪律,能重复早先类似应用项目取得的成功。

a.需求管理

b.软件项目计划

c.软件项目跟踪和监督

d.软件子合同管理

e.软件质量保证

f.软件配置管理

3. 已定义级

已将软件管理和工程两方面的过程文档化、标准化、并综合成该组织的标准软件过程。所有项目均使用经批准、裁剪的标准软件过程来开发和维护软件。

a.组织过程定义

b.组织过程焦点

c.培训大纲

d.集成软件管理

e.软件产品工程

f.组际协调

g.同行评审

4. 已管理级

收集对软件过程和产品质量的详细度量,对软件过程和产品都有定量的理解与控制。

a.定量的过程管理

b.软件质量管理

5. 优化级

过程的量化反馈和先进的新思想、新技术促使过程不断改进

a.缺陷预防

b.技术变更管理

c.过程变更管理

划定流程成熟度的依据就是该级别的KPA 。

第一级别没有KPA,在CMM中,共有18个KPA分布在4个级别中。

什么是KPA呢?KPA(Key Process Area)是关键过程域。

如果你的公司想申请CMM3级,那么评定组织会首先评定你公司的二级6个KAP是否达到目标,如果达到则再评定3级的KPA,达到则是3级,否则还是2级。

每个KPA都设定了​​2~4​​个目标,我们称为KG(Key Goal)关键目标。这些关键目标是通过关键实践(key Practice)来完成的。

通过关键实践达到关键目标,关键目标达到,那么你的关键过程域也就达到了,这些关键过程域都达到了,你公司也就达到了某个级别。

但是,你也不要忽略非关键过程域,而是关键过程域和非关键因素相结合来评定。比如第2级别中的缺少某些工程活动,比如说软件测试活动。

如果你对这些理解起来比较困难,相对抽象,那么你可以参考医院的评定级别来考虑。比如医院如何被评选为三级甲等的,要达到哪些硬性指标,或者其他的指标,这跟CMM很相似。

那么这些我们都需要重点了解什么呢?如上表加粗部分,2级的需求管理、配置管理,3级的同行评审。

CMM:1级特点

一个软件公司成立之后,默认的就是CMM1级。

那么初始级的软件公司是处于什么样的状况呢?

总的来说,全靠英雄主义来救场了。

CMM:2级特点

再来看可重复级的特点:

总的来说,根据以往的经验,总结下来,应用到新项目中,降低对人的依赖,并且项目是可控的。

但这仍然是不完善的, 因为这一级别只是项目级的,而不是组织级的。

CMM:3级特点

CMM2级只能针对项目的成功,会使下一个类似项目成功,但仍然是有局限性的,那么我们来寻求更高层次的成功,比如说组织级的成功,也就是已定义级。

CMM:4级特点

再来看CMM4级,已管理的特点:

三级简单来说,就是说这个人漂亮不漂亮,下了定义,但4级可以通过调整一些量让这个人变得更漂亮,也就是纠正偏差(纠偏)。

4级也就是有了更多的度量指标,来调控整个项目的过程,所以软件的质量是可预测的,它强调的是量化管理。

那么我们根据度量指标来纠偏,以致于软件质量有更大的进步,所以,我们来看优化级。

CMM:5级特点

优化级的特点是:

第5级强调的是流程的持续改进思想。

再回过头来看软件组织的流程,从无到有,从杂乱无章到某一个相同项目的成功重复,再到一致标准性到定量的发展,再到持续的优化。

所以,​​1~4​​级着重创建,而第5级,重点在优化、持续改进。

处于第5级的软件组织已经具备了自我改进的基础架构,因为它经历了前面的经验积累、技术储备,有了相当陈厚的沉淀。

现在,我们在来聊聊CMM和CMMI的区别。

第一个区别是CMMI比CMM多了集成,都是那些方面呢?

另一个区别是表达方式的区别,CMMI的表达方式:

除此之外:

那么,我们说CMM是软件质量管理体系,它跟ISO9001质量管理体系有什么关系呢?

最大的相似点:强调管理、过程、规范化和文档化。

不同点:CMM把焦点严格对准软件;ISO9001的范围包括硬件、软件、流程性材料和服务。

CMM级别与质量的关系

每千行缺陷数

软件过程成熟度级别

软件准时提交的百分比

软件需要返工的百分比

大于10

初始级

<=50

>=45

2到60分钟

小于10

可重复级

90

20

1-160分钟

小于1

已定义级

99

10

不确定

小于0.1

管理级

不确定

小于0.01

优化级

<=2

近似完全可靠

CMM的用途

评估组用来识别组织中的强项和弱点。

评价组用来识别不同的业务承包商的风险和监督合同。

管理者用来了解其组织的能力,并了解为了提高其能力成熟度而进行软件过程改进所需要进行的活动。

技术人员和过程改进组用来作为指南,指导他们在组织中定义和改进软件的过程。

这里的西格玛指的是统计学的偏差,表示数据的离散程度。那六西格玛就是六倍的西格玛,也就是六倍的标准偏差。

六西格玛管理法

六西格玛模式的本质是一个全面管理概念,而不仅仅是质量提高手段

何为六西格玛(6 sigma)

6个西格玛流程能力等于百万个样本中,仅有3.4个缺陷。

Sigma Capability

Yield

Defect Rate(DPMO)

1 Sigma

30.230000%

697700

2 Sigma

69.123000%

308770

3 Sigma

93.318900%

66811

4 Sigma

99.379000%

6210

5 Sigma

99.976700%

233

6 Sigma

99.999660%

3.4

7 Sigma

99.999998%

0.019

不同西格玛水平的绩效影响

西格玛

手术事故

婴儿出生

信件邮递

DPMO

产出率

每年有200000宗做错手术事件

每年120000婴儿出生时因医护人员过时死亡

每年有130000000封信邮寄错误

68800

93.32000%

3.875σ

每年有25000宗做错手术事件

每年15000婴儿出生时因医护人员过时死亡

每年有17520000封信邮寄错误

8800

99.1200%

每年有650宗做错手术事件

每年392婴儿出生时因医护人员过时死亡

每年有47909封信邮寄错误

230

99.97700%

每年有9宗做错手术事件

每年5.8婴儿出生时因医护人员过时死亡

每年有6770封信邮寄错误

3.4

99.99966%

六西格玛管理法原则

以质量为主线,以客户需求为中心:

六西格玛的实施方式

六西格玛管理组织结构

六西格玛也不是一般人能玩的转的,下图展示了六西格玛管理组织的结构。

它需要管理层的大力支持,需要有委员会,还要有倡导者。

绿带是兼职的,主黑带和黑带是全职的。一个有一千人规模的公司有1个主黑带就不错了,一个百人规模的公司有个黑带也是很好了。

主黑带(做管理),也称黑带大师,想要拿到相应的资质也是很不容易的。绿带可以由开发人员测试人员兼任。

如果碰到有主黑带或者黑带的公司,那这个公司就很厉害了。

质量模型:一组特性及特性之间的关系,它提供规定质量需求和评价质量的基础。

首先来看质量模型中的内部和外部质量。

各质量的关系是相互影响又相互依赖的关系。

过程质量

对于软件的质量好坏,要从软件的研发过程来控制,有严格的方式方法,这也是一个质量保证。

过程质量由公司的QA(Quality assurance)人员来保证,QA保证软件的研发过程是按照比较科学的方式方法进行,并将科学的方式贯彻到项目团队,这个活动我们称为软件质量保证(SQA,software quality assurance)。

内部质量

内部质量是指软件研发过程中软件的质量,在这个过程中会产生的需求文档、概要设计、详细设计等文档依据,这些文档的优劣直接影响内部质量。内部质量是由开发来把控。

外部质量

外部质量指地是软件开发完成后,整体运行时暴露出来质量特性,外部质量的界定是由系统测试的来对软件进行质量评判的工作,外部质量由测试人员把控。

使用质量

当软件交付用户后,由用户在使用时感受及目标的符合程度,简单来说就是用户说你的软件好不好,这就是使用质量。

前面的过程、内部、外部质量都是由公司的内部人员来进行评估的;使用质量由用户来评估的。

ISO9126提出了如下图的质量模型。

六大特性包含了27个子特性,但它只是一个质量模型,我们还是要根据具体的软件环境、背景去考察其他方面的特性。

功能性这里主要来探讨其包含的子特性。

适合性(suitability):指软件产品为指定的任务和用户目标提供一组合适的功能的能力。

就是来探讨合适不合适的问题。

比如一个交友软件,你有即时通信、传视频啥的就很合适,但是你这里有查物流的功能,还合适吗?

准确性(accuracy):指软件产品提供具有所需精确度的正确或相符的结果或效果的能力。

就是来探讨对不对的问题。

比如计算器的计算功能。

互操作性(interoperability):软件产品与一个或更多的规定系统进行交互的能力。

比如Word软件和各个厂商打印机之间的交互能力。

再比如手机入网测试。

保密安全性(security):指软件产品保护信息和数据的能力,以使未授权的人员或系统不能阅读或者修改这些信息和数据,而不拒绝授权人员或系统对它的访问。

常见的安全性测试:

DDos拒绝服务攻击,简单来说就是攻击方使劲儿的耗费被测软件的资源,导致它没有资源处理正常的服务。

DDos的另一种表现形式比如春节12306抢票,由于大量的人员去网站抢有限的票,导致某些用户无法访问该网站的购票服务,也就是12306官网拒绝提供服务。

功能性的依从性(functionality compliance):指软件产品遵循与功能性相关的标准、约定或者法规以及类似规定的能力。这些标准要考虑国际标准、国家标准、行业标准、企业内部规范等。

比如钢铁物流中,行业标准中关于称重误差是千分之三;再比如我们国内生产的医药设备要在美国市场流通,就必须遵循美国的FDA(美国食品与药品管理局)的审核。

可靠性子特性:在指定条件下使用时,软件产品维持规定的性能级别的能力。

上述定义,有三个要素要考虑:

成熟性(maturity):指软件产品为避免由软件中错误而导致失效的能力。

比如遇到支付失败的问题,软件要有成熟的处理手段。

比如我们向国家电网交电费,在国家电网内部的软件因为某个模块出现问题导致交电费失败的问题。

容错性(fault tolerance):指在软件出现故障或者违反指定接口的情况下,软件产品维持规定的性能级别的能力。

现在,国家电网把收费委托给了支付宝,每次用户支付后,支付宝都会给国家电网一个反馈,那么如果有意外出现,比如本来要返回给国家电网一个状态码, 现在给了一个文本文件,那么国家电网的相关接口要处理这种意外情况的能力。

不能因为某个节点出现问题,导致整个系统瘫痪。

易恢复性(recoverability):指在软件失效(崩溃)的情况下,软件产品重建规定的性能级别并恢复首直接影响的数据的能力。

比如系统突然蓝屏,我们正在编辑的Word,在系统重启后内容是否还存在。Word是有这个功能的。

比如Google浏览器发现浏览器异常关闭,再重启后会提示是否打开原来的那些窗口。

一般的比如服务器都会有主备两套服务,来避免主机突然挂掉而影响业务。

易用性子特性:在指定的条件使用时,软件产品被理解、学习、使用和吸引用户的能力。

易理解性(understandability):指软件产品使用用户能理解软件是否合适以及如何能将软件用于特定的任务和使用环境的能力。

比如拼音和五笔输入法,那肯定是拼音相对理解。

再比如,小爱音响关于QQ音乐的绑定,在绑定QQ音乐的时候,从小爱音响跳转到QQ音乐去授权,然后QQ音乐会有授权相关的操作, 但我就碰到了跳转到了QQ音乐然后就没有然后了,我不知道该干什么了,没有授权成功等操作也没有.....这就让人难以理解。

易学性(learnability):指软件产品使用户能学习其应用的能力。

比如用户手册,是否有中文版的文档报告。

易操作性(operability):指软件产品使用户能操作和控制它的能力。

比如在手机的任何页面,按home键都能返回主页。

吸引性(attractiveness):指软件产品吸引用户的能力。

易用性的依从性(usability compliance):指软件产品遵循与易用性相关的标准、约定、风格指南或法规的能力,这些标准要考虑国际标准、国家标准、行业标准、企业内部规范等,例如企业内部的界面规范。

比如说软件的提示是否一致,图标风格是否一致,错误处理个格式是否一致等。

效率:在规定的条件下,相对于所用资源的数量,软件产品可提供适当性能的能力。

时间特性(time behavior):指在规定条件下,软件产品执行其功能时,提供适当的响应和处理时间以及吞吐率的能力,即完成用户的某个功能需要的响应时间。

资源利用率(resource utilization):指在规定的条件下,软件产品执行其功能时,使用合适的资源数量和类别的能力。

比如说是CPU,内存等它的资源利用率。

软件产品可被修改的能力,修改可能包括修正、改进或软件对环境、需求和功能规格说明变化的使应。

在这部分中,易分析性、易改变性、稳定性都属于软件质量中的内部质量。

易分析行(analyzability):指软件产品诊断软件中的缺陷或失效原因或识别待修改部分的能力。

当软件发生缺陷或者失效时,易分析性就是易定位,我们很快的找到缺陷位置。

易改变性(changeability):指软件产品使指定的修改可以被实现的能力。

软件一旦发生问题,我们在定位到缺陷位置后,修改其中的一部分,就能很快的解决,而不是牵一发而动全身导致代码要大改,也就是编程中强调的解耦合,使各功能相互独立,出了问题不至于引发一系列问题。另外就是再开发时,预留一些扩展接口,方便日后代码迭代升级。

稳定性(stability):指软件产品避免由于软件修改而造成意外结果的能力。

在编码时,避免不要硬编码,比如将数字写死在代码中,这么写的话,当这个数字要改动的话,你都不知道要改动多少出,可能因为你遗漏了之后,导致程序再次运行时,导致程序发生隐患,降低了程序的稳定性。

易测试性(testability):指软件产品使已修改软件能被确认的能力。

比如UI界面某些按钮,按下会有反馈等,某些选项有提示,这样就比较容易测试。

比如500人的群,你要测试...这可就有点麻烦喽。

但越是难以测试到的功能点,它的安全隐患也是越大。

可移植性:软件产品从一种环境迁移到另外一种环境的能力。

适应性(adaptability):指软件产品无需采用有别于为考虑该软件的目的而准备的活动或者手段就可以适应不同的指定环境的能力。

简单来说,我们希望不需要做太大的变动,软件就能在不同的系统平台中部署。

易安装性(installability):指软件产品在指定的环境中被安装的能力。

比如说某款软件在windows平台, 会自动安装补丁,比如缺少​​dll​​文件,或者依赖文件,而无需由用户参与。

易替换性(replaceability):指软件产品在同样的环境下,替代另一个相同用途的指定软件产品的能力。

比如软件的升级,在线升级或者打补丁升级,或者固件升级,这里就包含之前的适应性和易安装性的属性了,不会由于某些问题,在版本升级中,无法卸载老版本而使新版本安装失败。

比如关于路径分隔符,Linux和Windows平台是不一样的,而开发者在开发的时候,就要自己去处理路径分隔符。而公司为了可移植性而专门成立的部门来处理相关的问题,那么就要求开发者在遇到类似的问题时,就要使用公司提供的相关接口来完成。

之前我们了解各种保证软件质量的体系,那我们怎么做这件事——保证软件质量,会有怎么样的软件活动。

软件组织主要的软件质量活动:

SQA和测试的关系

软件质量由组织、流程和技术三方面决定:

SQA监控整个项目的流程,比如项目的立项、开发、测试、发布。

测试活动就是项目流程中的一部分。

前言

所有的从事软件生产的都要学习软件质量,包括软件分析人员、设计人员、开发人员、测试人员、维护人员。

在软件质量管理中,我们要主要学习软件质量的定义、软件质量管理体系、软件质量模型、软件质量活动。

质量就是就是把客户的质量要求转化为设计参数,形式预期的产品,最终生产出低成本并且稳定可靠的产品。

ISO关于质量的定义如下:

一个实体的所有特性,基于这些特性可以满足明显的或隐含的需求,而质量就是实体基于这些实体特性满足需求的程序。

软件质量的三个层次

从质量的定义来看,我们可以引申出不同层次的软件质量:

我们对用户的显式或隐式的需求,作分析,整理出需求分析、概要设计、详细设计、代码设计、然后做单元测试、集成测试、系统测试。

最终用户的体验是包含我们是否满足了用户提出的隐式和显式需求的。

软件质量铁三角

那么我们接下来就要考虑,有哪些因素会影响软件的质量,进而影响用户的体验。

流程、技术、组织这三个因素是影响软件质量的的铁三角,软件质量的提高是一个综合因素,需要从各方面进行改进,同时还需要兼顾成本和进度。

流程

软件生产流程:计划 -- 分析 -- 设计(概要设计、详细设计) -- 实现(编码) -- 测试 -- 运行 -- 维护。

但严格按照流程执行,并不一定能生产出好的产品。

所以,我们还需要其他的手段来提高软件质量。

技术

在技术这块,我们要了解:

我们还需要将技术和流程相结合起来。

除了技术和流程的有效结合,还需要有效的组织管理。

组织

组织不力,会间接影响软件质量。

在质量管理的不断发展过程中,经历了三个阶段。

第一阶段,检验质量管理(19世纪末-20世纪初):

产品都生产好了,你再检查,为时已晚,检查出来不合格的产品都将沦为废品。

那么怎么提高良品率呢,质量管理的发展来到了第二阶段。

第二阶段,统计质量控制(20世纪40年代-20世纪60年代):

根据这些数据以及某些规律,发现质量问题不是在某一个环节出了问题,更多的出现在整个产品的生产周期内。

而此时质量管理发展到了第三阶段。

第三阶段,全面质量管理阶段(TQM,Total Quality Management):

思想的碰撞,产生以各种体系,这就是质量管理体系的诞生。

质量管理体系给控制质量、管理质量提供了支撑的框架。

常用的质量管理体系:

它是由一族标准组成。

ISO9000:2000版标准

ISO9000族2000版标准主要由ISO9000、ISO9001和ISO9004三个核心标准组成。

ISO9000阐明了ISO9000:2000版标准制定的管理理念和原则,确定了新班标准的指导思想和理论基础、规范和确定了新版ISO9004族标准所使用的概念和术语。

ISO9001标准对组织质量管理体系必须履行的要求做了明确的规定,是对产品要求的进一步补充。

ISO9004是组织进行持续改进的标准指南。

ISO9000:2000版的八项质量管理原则

原则

内容

ISO9001标准条款

以顾客为中心

组织依存与其顾客,因此,组织应理解顾客当前和未来的需求,满足顾客要求争取超越顾客期望。

0.1、5.2、7.2.1、7.2.3、7.3、7.5.3、7.5.4、8.2.1

领导作用

领导者将本组织的宗旨、方向和内部环境统一起来,并创造使用员工能够充分参与实现组织目标的环境。

5.1、5.3、5.4.1、5.4.2、5.5.2、5.5.3、5.6、6.1

全员参与

各级人员是组织之本,只有他们的充分参与,才能使他们的才干为组织带来最大的收益。

5.1、5.3、6.2、7.5.4

过程方法

0.3、5、6、7、8(标准的每一条款都涉及过程)

管理的系统方法

针对设定的目标,识别、理解并管理一个由相互关联的过程所组织成的体系,有助于提高组织的有效性和效率

4.1、7.1、8.2.2

持续改进

持续改进是组织的一个永恒的目标

5.2、5.6、7.5、8.2.2、8.5.1、8.5.3

基于事实的决策方法

对数据和信息的逻辑分析或者直觉判断是有效决策的基础。

7.5.2、7.5.5、7.6、8.2.3、8.3、8.4、8.5.2、8.5.3

互利的供方关系

通过互利的关系,增强组织及其供方创造价值的能力

7.4、8.3

八项质量管理原则的意义

是质量管理的理论基础。

用高度概括、易于理解的语言所表述的质量管理的最基本、最通用的一般性规律。

为组织建立质量管理体系提供了理论依据。

是组织的领导者有效地实施质量管理工作必须遵循的原则。

软件行业遵循ISO9000能不能行,能行,但是应该根据软件行业的特点和特殊性,有更具体的体系标准,这就是CMM(Capability Maturity Model,能力成熟度模型)。

既然是模型就有对应的实体:软件组织,解决按时、按计划、高质量完成软件开发。

CMM用途是多样性的:流程成熟度内部评估、第三方评估、流程的改进。

CMM的历史起源

在20世纪60年代左右,美国军方在对联邦项目(由承包商完成的)的一项统计中,发现软件行业较为混乱,软件质量不高。但是,它又要用这些软件承包商开发的软件。后来,美国软件工程研究所(SEI)受美国国防部委托立项,要求提出一个模型,以评估软件承包商的能力,协助软件组织改进过程,提高过程能力。

项目负责人是:Watts Humphrey(CMM之父)。研究了大约1年多,拿出了他们的成果,于1987年发表承包商软件工程师能力评估方法,提出初始框架,根据这个框架来评估软件承包商的能力,那个时候,这个框架不叫CMM,而是叫做PMM(Process Maturity Model,流程成熟度模型),用来规范流程的。

1991年推出CMM1.0版,1993年提出CMM1.1版,维护到了2000年左右,由于不同行业的软件不同,分类又有很多,又制定了不同的模型。

那么CMM是如何评估软件承包商能力的呢?从以下几个方面展开的。

软件流程能力:遵循标准的软件流程,有多大可能达到预计的结果。软件流程能力提供一种有效的手段,可以预计软件组织承担某个项目最有可能结果是什么样子。

软件流程性能:遵循标准的软件流程,真正达到的结果是怎么样的,换而言之,软件流程能力是表示期望的结果,而软件流程性能表述的是软件表达的实际结果。

软件流程成熟度:指一个特定的流程,在多大程度上,被明白无误的定义、管理、衡量和控制,以及软件表达的效果是怎么样的。一个软件组织的软件流程成熟度是预示着它的软件流程能力有多大的发展潜力,这不仅指它的软件流程的丰富性、完备性,并且代表软件流程要做到一致。

CMM能力成熟度是一个阶梯式的模型。

模型共分为5级,每个级别都高度概括了该级别的特点。

很多公司都很推崇这个CMM框架的,并且已经达到了最高的级别,比如软通动力、亚星科技等等。尤其是外包公司,这代表着公司的实例!

CMM级别考核依据

过程能力等级

特点

关键过程域

1. 初始级

软件过程是无序的,有时甚至是混乱的,对过程几乎没有定义,成功取决于个人努力,管理是反应式的。

2. 可重复级

建立了基本的项目管理过程来跟踪费用、进度和功能特性。制定了必要的过程纪律,能重复早先类似应用项目取得的成功。

a.需求管理

b.软件项目计划

c.软件项目跟踪和监督

d.软件子合同管理

e.软件质量保证

f.软件配置管理

3. 已定义级

已将软件管理和工程两方面的过程文档化、标准化、并综合成该组织的标准软件过程。所有项目均使用经批准、裁剪的标准软件过程来开发和维护软件。

a.组织过程定义

b.组织过程焦点

c.培训大纲

d.集成软件管理

e.软件产品工程

f.组际协调

g.同行评审

4. 已管理级

收集对软件过程和产品质量的详细度量,对软件过程和产品都有定量的理解与控制。

a.定量的过程管理

b.软件质量管理

5. 优化级

过程的量化反馈和先进的新思想、新技术促使过程不断改进

a.缺陷预防

b.技术变更管理

c.过程变更管理

划定流程成熟度的依据就是该级别的KPA 。

第一级别没有KPA,在CMM中,共有18个KPA分布在4个级别中。

什么是KPA呢?KPA(Key Process Area)是关键过程域。

如果你的公司想申请CMM3级,那么评定组织会首先评定你公司的二级6个KAP是否达到目标,如果达到则再评定3级的KPA,达到则是3级,否则还是2级。

每个KPA都设定了​​2~4​​个目标,我们称为KG(Key Goal)关键目标。这些关键目标是通过关键实践(key Practice)来完成的。

通过关键实践达到关键目标,关键目标达到,那么你的关键过程域也就达到了,这些关键过程域都达到了,你公司也就达到了某个级别。

但是,你也不要忽略非关键过程域,而是关键过程域和非关键因素相结合来评定。比如第2级别中的缺少某些工程活动,比如说软件测试活动。

如果你对这些理解起来比较困难,相对抽象,那么你可以参考医院的评定级别来考虑。比如医院如何被评选为三级甲等的,要达到哪些硬性指标,或者其他的指标,这跟CMM很相似。

那么这些我们都需要重点了解什么呢?如上表加粗部分,2级的需求管理、配置管理,3级的同行评审。

CMM:1级特点

一个软件公司成立之后,默认的就是CMM1级。

那么初始级的软件公司是处于什么样的状况呢?

总的来说,全靠英雄主义来救场了。

CMM:2级特点

再来看可重复级的特点:

总的来说,根据以往的经验,总结下来,应用到新项目中,降低对人的依赖,并且项目是可控的。

但这仍然是不完善的, 因为这一级别只是项目级的,而不是组织级的。

CMM:3级特点

CMM2级只能针对项目的成功,会使下一个类似项目成功,但仍然是有局限性的,那么我们来寻求更高层次的成功,比如说组织级的成功,也就是已定义级。

CMM:4级特点

再来看CMM4级,已管理的特点:

三级简单来说,就是说这个人漂亮不漂亮,下了定义,但4级可以通过调整一些量让这个人变得更漂亮,也就是纠正偏差(纠偏)。

4级也就是有了更多的度量指标,来调控整个项目的过程,所以软件的质量是可预测的,它强调的是量化管理。

那么我们根据度量指标来纠偏,以致于软件质量有更大的进步,所以,我们来看优化级。

CMM:5级特点

优化级的特点是:

第5级强调的是流程的持续改进思想。

再回过头来看软件组织的流程,从无到有,从杂乱无章到某一个相同项目的成功重复,再到一致标准性到定量的发展,再到持续的优化。

所以,​​1~4​​级着重创建,而第5级,重点在优化、持续改进。

处于第5级的软件组织已经具备了自我改进的基础架构,因为它经历了前面的经验积累、技术储备,有了相当陈厚的沉淀。

现在,我们在来聊聊CMM和CMMI的区别。

第一个区别是CMMI比CMM多了集成,都是那些方面呢?

另一个区别是表达方式的区别,CMMI的表达方式:

除此之外:

那么,我们说CMM是软件质量管理体系,它跟ISO9001质量管理体系有什么关系呢?

最大的相似点:强调管理、过程、规范化和文档化。

不同点:CMM把焦点严格对准软件;ISO9001的范围包括硬件、软件、流程性材料和服务。

CMM级别与质量的关系

每千行缺陷数

软件过程成熟度级别

软件准时提交的百分比

软件需要返工的百分比

大于10

初始级

<=50

>=45

2到60分钟

小于10

可重复级

90

20

1-160分钟

小于1

已定义级

99

10

不确定

小于0.1

管理级

不确定

小于0.01

优化级

<=2

近似完全可靠

CMM的用途

评估组用来识别组织中的强项和弱点。

评价组用来识别不同的业务承包商的风险和监督合同。

管理者用来了解其组织的能力,并了解为了提高其能力成熟度而进行软件过程改进所需要进行的活动。

技术人员和过程改进组用来作为指南,指导他们在组织中定义和改进软件的过程。

这里的西格玛指的是统计学的偏差,表示数据的离散程度。那六西格玛就是六倍的西格玛,也就是六倍的标准偏差。

六西格玛管理法

六西格玛模式的本质是一个全面管理概念,而不仅仅是质量提高手段

何为六西格玛(6 sigma)

6个西格玛流程能力等于百万个样本中,仅有3.4个缺陷。

Sigma Capability

Yield

Defect Rate(DPMO)

1 Sigma

30.230000%

697700

2 Sigma

69.123000%

308770

3 Sigma

93.318900%

66811

4 Sigma

99.379000%

6210

5 Sigma

99.976700%

233

6 Sigma

99.999660%

3.4

7 Sigma

99.999998%

0.019

不同西格玛水平的绩效影响

西格玛

手术事故

婴儿出生

信件邮递

DPMO

产出率

每年有200000宗做错手术事件

每年120000婴儿出生时因医护人员过时死亡

每年有130000000封信邮寄错误

68800

93.32000%

3.875σ

每年有25000宗做错手术事件

每年15000婴儿出生时因医护人员过时死亡

每年有17520000封信邮寄错误

8800

99.1200%

每年有650宗做错手术事件

每年392婴儿出生时因医护人员过时死亡

每年有47909封信邮寄错误

230

99.97700%

每年有9宗做错手术事件

每年5.8婴儿出生时因医护人员过时死亡

每年有6770封信邮寄错误

3.4

99.99966%

六西格玛管理法原则

以质量为主线,以客户需求为中心:

六西格玛的实施方式

六西格玛管理组织结构

六西格玛也不是一般人能玩的转的,下图展示了六西格玛管理组织的结构。

它需要管理层的大力支持,需要有委员会,还要有倡导者。

绿带是兼职的,主黑带和黑带是全职的。一个有一千人规模的公司有1个主黑带就不错了,一个百人规模的公司有个黑带也是很好了。

主黑带(做管理),也称黑带大师,想要拿到相应的资质也是很不容易的。绿带可以由开发人员测试人员兼任。

如果碰到有主黑带或者黑带的公司,那这个公司就很厉害了。

质量模型:一组特性及特性之间的关系,它提供规定质量需求和评价质量的基础。

首先来看质量模型中的内部和外部质量。

各质量的关系是相互影响又相互依赖的关系。

过程质量

对于软件的质量好坏,要从软件的研发过程来控制,有严格的方式方法,这也是一个质量保证。

过程质量由公司的QA(Quality assurance)人员来保证,QA保证软件的研发过程是按照比较科学的方式方法进行,并将科学的方式贯彻到项目团队,这个活动我们称为软件质量保证(SQA,software quality assurance)。

内部质量

内部质量是指软件研发过程中软件的质量,在这个过程中会产生的需求文档、概要设计、详细设计等文档依据,这些文档的优劣直接影响内部质量。内部质量是由开发来把控。

外部质量

外部质量指地是软件开发完成后,整体运行时暴露出来质量特性,外部质量的界定是由系统测试的来对软件进行质量评判的工作,外部质量由测试人员把控。

使用质量

当软件交付用户后,由用户在使用时感受及目标的符合程度,简单来说就是用户说你的软件好不好,这就是使用质量。

前面的过程、内部、外部质量都是由公司的内部人员来进行评估的;使用质量由用户来评估的。

ISO9126提出了如下图的质量模型。

六大特性包含了27个子特性,但它只是一个质量模型,我们还是要根据具体的软件环境、背景去考察其他方面的特性。

功能性这里主要来探讨其包含的子特性。

适合性(suitability):指软件产品为指定的任务和用户目标提供一组合适的功能的能力。

就是来探讨合适不合适的问题。

比如一个交友软件,你有即时通信、传视频啥的就很合适,但是你这里有查物流的功能,还合适吗?

准确性(accuracy):指软件产品提供具有所需精确度的正确或相符的结果或效果的能力。

就是来探讨对不对的问题。

比如计算器的计算功能。

互操作性(interoperability):软件产品与一个或更多的规定系统进行交互的能力。

比如Word软件和各个厂商打印机之间的交互能力。

再比如手机入网测试。

保密安全性(security):指软件产品保护信息和数据的能力,以使未授权的人员或系统不能阅读或者修改这些信息和数据,而不拒绝授权人员或系统对它的访问。

常见的安全性测试:

DDos拒绝服务攻击,简单来说就是攻击方使劲儿的耗费被测软件的资源,导致它没有资源处理正常的服务。

DDos的另一种表现形式比如春节12306抢票,由于大量的人员去网站抢有限的票,导致某些用户无法访问该网站的购票服务,也就是12306官网拒绝提供服务。

功能性的依从性(functionality compliance):指软件产品遵循与功能性相关的标准、约定或者法规以及类似规定的能力。这些标准要考虑国际标准、国家标准、行业标准、企业内部规范等。

比如钢铁物流中,行业标准中关于称重误差是千分之三;再比如我们国内生产的医药设备要在美国市场流通,就必须遵循美国的FDA(美国食品与药品管理局)的审核。

可靠性子特性:在指定条件下使用时,软件产品维持规定的性能级别的能力。

上述定义,有三个要素要考虑:

成熟性(maturity):指软件产品为避免由软件中错误而导致失效的能力。

比如遇到支付失败的问题,软件要有成熟的处理手段。

比如我们向国家电网交电费,在国家电网内部的软件因为某个模块出现问题导致交电费失败的问题。

容错性(fault tolerance):指在软件出现故障或者违反指定接口的情况下,软件产品维持规定的性能级别的能力。

现在,国家电网把收费委托给了支付宝,每次用户支付后,支付宝都会给国家电网一个反馈,那么如果有意外出现,比如本来要返回给国家电网一个状态码, 现在给了一个文本文件,那么国家电网的相关接口要处理这种意外情况的能力。

不能因为某个节点出现问题,导致整个系统瘫痪。

易恢复性(recoverability):指在软件失效(崩溃)的情况下,软件产品重建规定的性能级别并恢复首直接影响的数据的能力。

比如系统突然蓝屏,我们正在编辑的Word,在系统重启后内容是否还存在。Word是有这个功能的。

比如Google浏览器发现浏览器异常关闭,再重启后会提示是否打开原来的那些窗口。

一般的比如服务器都会有主备两套服务,来避免主机突然挂掉而影响业务。

易用性子特性:在指定的条件使用时,软件产品被理解、学习、使用和吸引用户的能力。

易理解性(understandability):指软件产品使用用户能理解软件是否合适以及如何能将软件用于特定的任务和使用环境的能力。

比如拼音和五笔输入法,那肯定是拼音相对理解。

再比如,小爱音响关于QQ音乐的绑定,在绑定QQ音乐的时候,从小爱音响跳转到QQ音乐去授权,然后QQ音乐会有授权相关的操作, 但我就碰到了跳转到了QQ音乐然后就没有然后了,我不知道该干什么了,没有授权成功等操作也没有.....这就让人难以理解。

易学性(learnability):指软件产品使用户能学习其应用的能力。

比如用户手册,是否有中文版的文档报告。

易操作性(operability):指软件产品使用户能操作和控制它的能力。

比如在手机的任何页面,按home键都能返回主页。

吸引性(attractiveness):指软件产品吸引用户的能力。

易用性的依从性(usability compliance):指软件产品遵循与易用性相关的标准、约定、风格指南或法规的能力,这些标准要考虑国际标准、国家标准、行业标准、企业内部规范等,例如企业内部的界面规范。

比如说软件的提示是否一致,图标风格是否一致,错误处理个格式是否一致等。

效率:在规定的条件下,相对于所用资源的数量,软件产品可提供适当性能的能力。

时间特性(time behavior):指在规定条件下,软件产品执行其功能时,提供适当的响应和处理时间以及吞吐率的能力,即完成用户的某个功能需要的响应时间。

资源利用率(resource utilization):指在规定的条件下,软件产品执行其功能时,使用合适的资源数量和类别的能力。

比如说是CPU,内存等它的资源利用率。

软件产品可被修改的能力,修改可能包括修正、改进或软件对环境、需求和功能规格说明变化的使应。

在这部分中,易分析性、易改变性、稳定性都属于软件质量中的内部质量。

易分析行(analyzability):指软件产品诊断软件中的缺陷或失效原因或识别待修改部分的能力。

当软件发生缺陷或者失效时,易分析性就是易定位,我们很快的找到缺陷位置。

易改变性(changeability):指软件产品使指定的修改可以被实现的能力。

软件一旦发生问题,我们在定位到缺陷位置后,修改其中的一部分,就能很快的解决,而不是牵一发而动全身导致代码要大改,也就是编程中强调的解耦合,使各功能相互独立,出了问题不至于引发一系列问题。另外就是再开发时,预留一些扩展接口,方便日后代码迭代升级。

稳定性(stability):指软件产品避免由于软件修改而造成意外结果的能力。

在编码时,避免不要硬编码,比如将数字写死在代码中,这么写的话,当这个数字要改动的话,你都不知道要改动多少出,可能因为你遗漏了之后,导致程序再次运行时,导致程序发生隐患,降低了程序的稳定性。

易测试性(testability):指软件产品使已修改软件能被确认的能力。

比如UI界面某些按钮,按下会有反馈等,某些选项有提示,这样就比较容易测试。

比如500人的群,你要测试...这可就有点麻烦喽。

但越是难以测试到的功能点,它的安全隐患也是越大。

可移植性:软件产品从一种环境迁移到另外一种环境的能力。

适应性(adaptability):指软件产品无需采用有别于为考虑该软件的目的而准备的活动或者手段就可以适应不同的指定环境的能力。

简单来说,我们希望不需要做太大的变动,软件就能在不同的系统平台中部署。

易安装性(installability):指软件产品在指定的环境中被安装的能力。

比如说某款软件在windows平台, 会自动安装补丁,比如缺少​​dll​​文件,或者依赖文件,而无需由用户参与。

易替换性(replaceability):指软件产品在同样的环境下,替代另一个相同用途的指定软件产品的能力。

比如软件的升级,在线升级或者打补丁升级,或者固件升级,这里就包含之前的适应性和易安装性的属性了,不会由于某些问题,在版本升级中,无法卸载老版本而使新版本安装失败。

比如关于路径分隔符,Linux和Windows平台是不一样的,而开发者在开发的时候,就要自己去处理路径分隔符。而公司为了可移植性而专门成立的部门来处理相关的问题,那么就要求开发者在遇到类似的问题时,就要使用公司提供的相关接口来完成。

之前我们了解各种保证软件质量的体系,那我们怎么做这件事——保证软件质量,会有怎么样的软件活动。

软件组织主要的软件质量活动:

SQA和测试的关系

软件质量由组织、流程和技术三方面决定:

SQA监控整个项目的流程,比如项目的立项、开发、测试、发布。

测试活动就是项目流程中的一部分。

“为变化做好准备。”这是当下对所有人的一句很重要的话,尤其是对于处在高速迭代与日新月异的技术工程领域的我们。最近,Gartner在2023十大技术趋势的报告中提到了平台工程(Platform Engineering)和应用可观测性(Applied Observability)。 本文将通过对这两大战略性技术趋势点的进行剖析,看看这对质量测试领域到底意味着什么,以及我们

简介接口:接口可以叫做 API(Application Programming Interface),其实本质上就是后端的开发预先定义好的函数,这些函数可以提供一些确定的功能和服务。接口是在软件开发中连接不同系统、软件或组件的关键点。它定义了通信方式和规范,协助组件之间有效地交互和协作。接口测试:接口测试是验证系统不同组件或模块之间的通信和数据交换的软件测试类型。它基于接口的输入和输出,测试每个接

1 软件的运行和编译1.1 软件的一些相关概念1.1.1 ABIABI,即应用程序二进制接口(Application Binary Interface),描述了应用程序和操作系统之间、一个应用和它的库之间,或应用的组成部分之间的底层接口。ABI允许编译好的目标代码在使用兼容ABI的系统中无需改动就能运行,从而提高了程序的移植性和兼容性。windows与Linux的ABI并不兼容:windows:P

软件质量管理-6-质量管理

什么是质量? 质量就是良好的实用性1.从顾客的角度出发2.用户对产品的基本要求是适用3.不同类型用户对产品和服务的要求不同软件与用户需求相一致的程度。 质量是产品符合规定要求的程度。使用要求:用户需求,应准确、清晰的表达,多样化,动态化的用户需求。满足程度:应通过一定手段,借助工具进行定期测量。提供

在软件行业迅猛发展的今天,软件项目的质量成为了决定项目成功与否的关键因素。随着软件规模的扩大和复杂性的增加,软件项目质量管理的重要性日益凸显。特别是在软考(软件水平考试)中,软件项目质量管理更是被赋予了极高的关注度和要求。本文将围绕软件项目质量管理的核心内容展开探讨,以期为广大软件从业者提供有益的参考。首先,我们需要明确软件项目质量管理的定义。软件项目质量管理是指为了确保软件项目满足既定的质量

【软件项目质量管理方案】PMP(项目管理专业人士)认证是全球公认的项目管理领域最具权威的认证之一。持有PMP证书不仅可以提升个人在项目管理方面的专业素养,更是许多企业衡量项目管理人员能力的重要标准。但PMP认证并不是一劳永逸的,每三年需要获得60个PDU(专业发展单元)以保持认证的有效性。本文将围绕PMP考试、后续PDU积累和持续教育的重要性展开讨论,并结合软件项目质量管理方案的实际应用,阐述

相信不少软件开发公司都存在质量管理部门。而且,如果一个公司稍微正规的话,一定会使用一个缺陷跟踪软件系统,比如开源的Bugzilla,或是IBM的ClearQuest等等。那质量管理部门是如何跟踪和控制软件质量的呢?毫无疑问,需要通过软件缺陷跟踪系统,这倒也没有什么问题。但问题在于质量管理部门是如何看待和处理缺陷跟踪系统所提供的缺陷统计数据的。有的公司质量管理部门的地位很高,可能是因为公司质

在软件行业日益发展的今天,软件质量管理成为了确保软件产品质量、提升用户满意度的关键环节。特别是在软考(软件专业技术资格(水平)考试)中,软件质量管理更是被赋予了重要的地位。软考作为国家级的IT专业考试,其目的在于通过科学、公正的考核,评估和提升IT专业人士的技术水平,而软件质量管理则是其中不可或缺的一部分。软件质量管理涵盖了软件开发的全过程,从需求分析、设计、编码、测试到维护,每一环节都需要严

点击0元报名后领取>>>软考18本电子版教材 & 15个科目知识点速记 + 17套历年真题试卷 + 80篇软考优秀论文6G资料包   (1)质量保证与质量控制         质量保证与质量控制在很多情况下被混淆了,以至于人们有时认为这两个术语具有互换性。对于质量管理专业和项目管理专业人

最近读了下《软件质量管理实践-缺陷预防清除管理实用方法》一书,感觉写的不错,小结之。1 缺陷的主要信取,需求分析。   需求管理:主要

软件质量管理-复习总结

点击0元报名后领取>>>软考18本电子版教材 & 15个科目知识点速记 + 17套历年真题试卷 + 80篇软考优秀论文6G资料包0引言  说到软件项目的质量管理,首先要弄清楚什么是质量管理。国际标准组织ISO9000对质量的定义就是:质量是产品或服务用于满足人们潜在或明示的需求的所有特征和性能的总和。软件项目的质量管理就是确定软件项目的质量方针

软件质量管理 朱兰博士的“三部曲” 质量计划 (Quality Plan) 质量保证(Quality Assurance, QA) 质量控制(Quality Control, QC) 质量控制方法 静态 技术评审 代码评审 同行评审 动态 单元测试 集成测试 确认测试 缺陷跟踪

质量管理发展三阶段人类社会的质量活动可以追溯到远古时代.但现代意义上的质量管理活动是从20世纪初开始的.根据解决质量问题的手段和方式的不同,一般可以将现代质量管理分为三个阶段.第二次世界大战以前可以看作是第一阶段,这们通常称之为质量检验阶段.第二阶段是从第二次世界大战开始到20世纪50年代的统计质量控制阶段.第三阶段是从20世纪60年代开始的全面质量管理阶段.质量检验阶段这一阶段主要是通过检验的方

软件项目/产品的质量问题一直困扰软件企业、监理方和甲方,如何预防、发现、治理软件项目/产品质量问题,是目前我国it发展面临巨大的挑战,这也是it发展过程中关注的主要问题。软件企业、甲方和监理方在研发过程中常常要面临很多难题:1、软件质量管理基础(1)质量的概念与定义;(2)软件的质量要素;(3)软件质量评价的准则;(4)iso 9000软件质量体系结构;(5)软件质量保证过程;(6)质量管理大师简介;(7)质量管理的发展历程;2、软件质量与质量管理(1)软件质量面临的挑战及模糊认识;(2)软件质量基础;(3)软件发生质量问题的根本原因及对策;(4)软件质量工程体系;(5)软件质量控制方法、模型与工具;(6)软件全面质量管理;3、软件质量管理工具选型;(1)软件质量管理粒度分析;(2)软件质量管理工具决策分析;(3)介绍商用质量管理工具;(4)介绍开源质量管理工具;

本文档的目的是为特定产品、项目或合同的质保工作提供指导,帮助项目组其他成员了解质量保证要素,明确质量保证活动,确定质量保证范围。本文档将规定项目质量管理员的职责和权利,资源要求,活动安排,进度,要求质量保证活动中必须生成的文档,反馈问题的方法和频度等。一、管理组织本公司的软件质量保证活动统一由质量管理员进行管理、检查与汇报,公司相关部门经理及项目中的项目经理、程序经理、开发经理、测试经理、产品经理

出品 | 51Testing软件测试网 3.2 软件质量管理体系 目前业内常见的质量管理体系如下。 · ISO:不具体针对某个行业的质量标准,是普遍适用的质量管理体系。 ·CMM:特定针对软件行业的质量管理体系。 ·6西格码:不具体针对某个行业,不只关注质量,还关注成本、进度等。 3.2.1 ISO9000:2000版标准 ISO9000:2000版标准主要由I

软件质量管理-代码质量与规范圈复杂度(Cyclomatic complexity)是一种代码复杂度的衡量标准,在1976年由Thomas J. McCabe, Sr. 提出。      在软件测试的概念里,圈复杂度用来衡量一个模块判定结构的复杂程度,数量上表现为线性无关的路径条数,即合理的预防错误所需测试的最少路径条数。圈复杂度大说明程序代码可能质量低且难于测试和维护,根据经验,程序的可能错误和高

在构建实时数据处理系统时,选择合适的流处理框架至关重要。本文将从架构设计和性能表现两方面,对比Go语言生态的事件驱动框架Watermill与Apache Kafka官方流处理库Kafka Streams,帮助技术团队做出更贴合业务需求的技术选型。## 核心架构对比### Watermill的组件化设计Watermill采用**插件化架构**,通过抽象的Pub/Sub接口实现与多种消息系统...

1. 项目介绍 该项目包括创建一个基于技术的解决方案,利用物联网(IoT)来监测水培栽培系统中的关键环境变量。通过无线传感器网络(LoRaWAN),收集和传输温度、湿度、大气压力和空气质量等数据。 其目的是提高作物的性能和可持续性,减少水和能源消耗,并允许在不需要大型基础设施的情况下将系统逐步扩展到 ...

掌握Java程序员必备技能,快速构建高效稳定的企业级应用。涵盖Spring Boot、微服务、分布式缓存、JVM调优与容器化部署,助力提升开发效率与系统性能。适用于中大型项目架构设计,值得收藏。

linux查看网络速度工具:iftop一直以来我都没学会怎么查看当前网络的速度是多少.工具用过很多,不过没一个深入的 .昨天我用debmirror进行mirror ubuntu的镜像, 一个presise, 就有120G大小. 估计要下载2天. 搜索半天,发现还是iftop这个工具比较实用. 不过这个工具在SecureCRT下不太正常,putty下是没问题的. iftop,就是interf

struct ifnet {void *if_softc; /* pointer to driver state 指向设备驱动控制体*/char *if_name; /* name, e.g. ``en'' or ``lo'' */TAILQ_ENTRY(ifnet) if_link; /* all struct ifn

THE END
0.【招生】西南大学法学院2023年硕士研究生招生复试录取实施细则综合总成绩=(初试总成绩÷5)×60%+复试成绩×40% 五、体检 体检工作在考生被拟录取后进行。考生自行到二甲及以上医院进行体检。2023年4月30日之前,考生需将体检报告(附件4)扫描件发送至648323396@qq.com(命名要求:考生编号+姓名+体检报告)。体检标准按照《普通高等学校招生体检工作指导意见》《教育部办公厅卫生部jvzquC41nc}/u€z0gf{/ew4kphu03;5:187527mvo
1.D/TLD存档责任件的控制在制造环节,如生产流程的缺陷,缺陷材料被安装,没有执行规定的测试和检验 等工作,制造缺陷可能会涉及到每个人的工作职责。 罪责责任与侵权责任的区别 产品责任法带来了重大变化。以前产品责任主要遵照民法典的合同责任或犯罪法责任范畴内的规定,所以生产者的责任只有当他故意或过失行为时才发生,而产品责任法的根本标志在jvzquC41yy}/fxsiejkek7hqo1{he8ftvkimg8<338717?582:984<=33
2.手机项目研发详细流程知识复杂的零件要求MD员工非常熟悉材料和工艺。摩托罗拉V3的厚度为13.9mm,掀起了手机市场的热潮。V3手机卖的都是超薄。因为其手机壳材质的选择至关重要,所以V3的外壳采用航空级铝合金,工艺先进。可以说,特殊外壳材料的选择是V3成功的关键.此外,有用户感觉在使用一些超薄滑盖手机时,接听电话时总能感觉到手机前壳的左右晃动jvzq<84yyy4zq~xjqwiy0lto1kteg3rjrEn?wjyu(g>fnyckny'exsvgpz`kmB9:
3.SolidWorks零部件的总质量在该材料更改之前被覆盖怎么解决学员反馈给溪风这个问题,分享给大家解决方法。那就是SolidWorks提示零部件的总质量在该材料更改之前被覆盖,该新材料的密度将不影响零部件的质量,如下图所示: 也就是说SolidWorks材质虽然你更改了,但是质量不会发生变化,那么应该怎么解决呢? 解决方法: 解铃还须系铃人,既然提示我们SolidWorks总质量被覆盖,那么我们取消jvzq<84yyy4ykojpidulg7hqo1vpu}44347/j}rn