软件质量管理的方法、工具和保证
[引用]
ITPUB论坛:
【IT168 技术文章】
写在前面的话:
我们中国的软件产业是如此之年轻,如同一个年轻人,一个富有青春气息的朝气蓬勃的年轻人,在其发展中,是否也容易忽略了一些很基本的东西?
当我们热衷于追求某种时尚和新技术时,是否也容易忽略了一些最基本但却非常重要的东西,而且这些东西往往是来自于我们的生活经验。
1、从问题入手
对于一个发展中的组织,问题的暴露是很自然的,改进的过程实际上就是在按照计划执行与跟踪的过程中进行问题的发现、纠正和预防的过程。那么,发现问题、收集和整理问题、分析问题、排列问题重要性、提出解决措施、在部分区域演练、全面推广就成为过程改进的一个系统化的步骤。
实际上,无论是W.Edward Deming博士提出的Deming环,即PDCA(Planning, Do, Check, Action)环,还是后来SEI(美国卡耐基梅隆大学的软件工程研究所)在此基础上提出的IDEAL(Initiating, Diagnosing, Establishing,Acting, Leveraging)模型,都是软件过程改进的一个基本过程和方法。
实际上,无论是高层管理者,还是SQA、项目经理、软件工程师将自己工作中经常犯的错误随时记录下来,都是一个问题的收集过程;在此基础上再进行问题归类、问题统计和原因分析,然后再进行问题排序、针对问题进行纠正、纠正措施或预防措施等,并形成这样一个自反馈系统,就可以实现持续的过程改进。面向问题的软件质量保证框架如图1所示。
2、运用统计与度量技术
Deming是一位将统计方法用于质量控制的咨询专家。他说:“统计质量控制是统计原理和技术的一次实践,这种方法可以用于生产的所有阶段以及维护和服务,其目的是经济的满足需求。”
诸如SPC(统计过程控制)、头脑风暴法、鱼刺图、PARETO原理、层次图等方法都是统计控制理论和度量理论的一些基本方法。
头脑风暴法(Brainstorming)
头脑风暴法的一般步骤可以概括为:
(1) 确定质量问题。
(2) 尽可能找出影响质量问题的因素。
(3) 找出各原因之间的关系,在因果图上以因果关系用箭头连接起来。
(4) 根据对结果影响的程度,将认为有显著影响的因素标出来。
(5) 在因果图上标出必要的信息。
此方法实际上包含两项活动,一是用头脑风暴法找原因,二是对原因进行系统整理、归类,即先放开思路,进行开放式、创造性思维,然后再根据概念间的层次关系整理成型。它是用来表示质量波动特性与其潜在原因的关系,即表达和分析因果关系的一种图表。
鱼刺图
鱼刺图(Cause-effect diagram)又叫因果图、石川图、特性要因图、树形图,最先由日本东京大学石川馨教授于1953年提出。此后,很快在日本企业界得到广泛的应用。
PARETO原理
Pareto分析是一种识别消耗了最多成本的少部分的角色的统计分析方法。J.M.Juran是质量管理中Pareto原理之父。他首先提出了术语vital few 和trivial many,并应用到Pareto原理中。Pareto原理强调了将精力集中在少数重要的事情上(vital few),而不是在多数琐碎的事情上(trivial many)。
Boehm给出的度量中的头10个表示软件现象遵守Pareto分布:
20%的模块消耗80%的资源;
20%的模块包含80%的错误;
20%的错误消耗80%的修改成本;
20%的改进包含了80%的适应性为主的成本;
20%的模块占用了80%的执行时间;
20%的工具使用占80%的整个工具使用时间。
产品质量是由质量形成过程中许多因素共同作用的结果。质量有了问题,特别是主要质量问题,就要进一步找原因,并针对原因采取措施,才能解决问题。有些质量问题的原因一目了然,而有些质量问题的原因,就必须借助图形的方式来分析原因,这样就能帮助我们理清思路,从而对症下药。
而发现问题后,识别关键、把握关键是项目成败的关键,也是我们日常工作的关键所在。如不要为过于细节的讨论耗费太多时间。在CMM模型中提到的“关键成功要素”(Critical Success Factors)实际上就是一种基本的统计控制方法。
实际上,无论是我们的各种生活常识、管理经验、统计方法,还是古人早已提出的“孙子兵法”、“三十六计”等,都可能成为指导我们提高过程和改进质量的重要手段。比如是否可以考虑建立一个更好的质量体系框架,设立一些其它的关键过程区域,建立一套科学的裁剪准则等等,以便于更好地支持国内的软件组织进行过程改进。
3、必要的工具支持
软件过程改进的过程中,组织会产生大量的有关问题的历史数据,可以称为知识库;这些问题数据的采集和管理,就成为了一个重要的问题。组织可以通过这些知识库实现员工自我培训,从而实现知识的高效积累和复用。当然,工具不能解决所有问题,但必要的工具支持可以大大提高管理的效率。有了它,可以使组织的员工很快地学习到公司以前的经验知识,让错误不再重犯。它应该成为一种快速和有效的员工培训介质。
4、全员参与的质量保证
Lennart Sandholm在1978年东京召开的国际质量控制大会上,注意到了日本高层对质量做出的承诺。Lennart Sandholm注意到日本的与会人员有一半是高层管理者-总裁、总经理、部门经理、主任等等。在欧美召开的大会的与会人员则主要是质量工作者-质量保证工程师、可靠性工程师、质量经理等。很少有高层经理。
Deming说:“管理者们的到来不是仅仅听一下,而是要工作。他们已经从自身的实践中知道,他所做的是一个链式反应。随着质量的提高,成本开始下降。进而你可以降低价格。美国人不明白这一点。美国人认为提高质量会增加成本。”这段话一针见血地指明了问题的关键所在。
西方组织的一个弱点是其质量部门非常庞大而且是集中式的,职能也很多,如质量计划、协调、审计、审查和测试等。而日本的质量功能则由生产线上的人员(这些人受过必要的培训)实现的。日本公司也有质量部门,但人数很少,而且职能有限,主要集中于计划、审计和咨询等。高层管理者的质量审计评估组织的有效性,而且只有高层才能够授权进行重大变革。正是这种无所不在的质量意识让日本的产品质量远远走在了世界的前面。
可以看出,质量绝对不仅仅是质量部门的事情,以质量为核心的企业文化在未来将成为决定企业兴衰的关键因素。质量不是依赖于某个或某几个高手,而是依赖于整个过程。谁都会发现问题,项目经理、QA、高级管理者、程序员、设计人员、系统分析员等都具有质量保证的职责,并能起到质量保证的作用。好的过程是好产品的必备条件,这一点要成为企业文化的一部分,让质量文化深深地扎根于每个员工的心中。
推荐阅读
-
在Linux系统下安装和使用软件解压RAR文件的方法
-
Java 8新特性探究(十三)JavaFX 8新特性以及开发2048游戏-JavaFX历史## 跟java在服务器端和web端成绩相比,桌面一直是java的软肋,于是Sun公司在2008年推出JavaFX,弥补桌面软件的缺陷,请看下图JavaFX一路走过来的改进 从上图看出,一开始推出时候,开发者需使用一种名为JavaFX Script的静态的、声明式的编程语言来开发JavaFX应用程序。因为JavaFX Script将会被编译为Java bytecode,程序员可以使用Java代码代替。 JavaFX 2.0之后的版本摒弃了JavaFX Script语言,而作为一个Java API来使用。因此使用JavaFX平台实现的应用程序将直接通过标准Java代码来实现。 JavaFX 2.0 包含非常丰富的 UI 控件、图形和多媒体特性用于简化可视化应用的开发,WebView可直接在应用中嵌入网页;另外 2.0 版本允许使用 FXML 进行 UI 定义,这是一个脚本化基于 XML 的标识语言。 从JDK 7u6开始,JavaFx就与JDK捆绑在一起了,JavaFX团队称,下一个版本将是8.0,目前所有的工作都已经围绕8.0库进行。这是因为JavaFX将捆绑在Java 8中,因此该团队决定跳过几个版本号,迎头赶上Java 8。 ##JavaFx8的新特性 ## ###全新现代主题:Modena 新的Modena主题来替换原来的Caspian主题。不过在Application的start方法中,可以通过setUserAgentStylesheet(STYLESHEET_CASPIAN)来继续使用Caspian主题。 参考http://fxexperience.com/2013/03/modena-theme-update/ ###JavaFX 3D 在JavaFX8中提供了3D图像处理API,包括Shape3D (Box, Cylinder, MeshView, Sphere子类),SubScene, Material, PickResult, LightBase (AmbientLight 和PointLight子类),SceneAntialiasing等。Camera类也得到了更新。从JavaDoc中可以找到更多信息。 ###富文本 强化了富文本的支持 ###TreeTableView ###日期控件DatePicker 增加日期控件 ###用于 CSS 结构的公共 API
-
【软件】使用一键制作工具去除推广APP,并支持线刷包和卡刷包的制作
-
深入了解Linux内核调试工具:kprobe的工作原理和实施方法
-
图形软件Photoshop中的常用工具之详解:编辑工具栏选项、前后景色、画笔工具、缩放工具、抓手工具和矢量工具的功能及使用方法
-
理解并掌握ipvsadm命令工具以及LVS-NAT和LVS-DR的实现方法
-
使用R语言实现工具变量和两阶段最小二乘法的数据生成方法
-
【3D程序软件】SideFX与上海道宁一直为设计师提供程序化 3D 动画和视觉效果工具,旨在创造高质量的电影效果
-
如何绕过杀毒软件:Msfvenom编码器、shellcode算法加密和白名单嵌入的方法
-
全面解析CF鼠标宏数据:探索鼠标宏软件、映射工具和控制软件Xmouse的奥秘