﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-hengheng123456789-随笔分类-CMMI-PPQA</title><link>http://www.blogjava.net/hengheng123456789/category/25653.html</link><description /><language>zh-cn</language><lastBuildDate>Mon, 04 Feb 2008 23:48:09 GMT</lastBuildDate><pubDate>Mon, 04 Feb 2008 23:48:09 GMT</pubDate><ttl>60</ttl><item><title>软件质量保证和检测工具Logiscope介绍</title><link>http://www.blogjava.net/hengheng123456789/archive/2008/02/03/179153.html</link><dc:creator>哼哼</dc:creator><author>哼哼</author><pubDate>Sun, 03 Feb 2008 06:50:00 GMT</pubDate><guid>http://www.blogjava.net/hengheng123456789/archive/2008/02/03/179153.html</guid><wfw:comment>http://www.blogjava.net/hengheng123456789/comments/179153.html</wfw:comment><comments>http://www.blogjava.net/hengheng123456789/archive/2008/02/03/179153.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/hengheng123456789/comments/commentRss/179153.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/hengheng123456789/services/trackbacks/179153.html</trackback:ping><description><![CDATA[<table width="100%">
    <tbody>
        <tr>
            <td class="a14"><strong>一、LOGISCOPE简介</strong></td>
        </tr>
    </tbody>
</table>
<table width="100%">
    <tbody>
        <tr>
            <td class="a14">LOGISCOPE是法国Telelogic公司推出的专用于软件质量保证和软件测试的产品。其主要功能是对软件做质量分析和测试以保证软件的质量，并可做认证、反向工程和维护，特别是针对要求高可靠性和高安全性的软件项目和工程。</td>
        </tr>
    </tbody>
</table>
<table width="100%">
    <tbody>
        <tr>
            <td class="a14">本产品应用于软件的整个生命周期，它贯穿于软件需求分析阶段&#224;设计阶段-&gt;代码开发阶段-&gt;软件测试阶段（代码审查、单元/集成测试和系统测试）-&gt;软件维护阶段的质量验证要求。</td>
        </tr>
    </tbody>
</table>
<table width="100%">
    <tbody>
        <tr>
            <td class="a14">在设计和开发阶段，使用LOGISCOPE可以对软件的体系结构和编码进行确认。可以在尽可能的早期阶段检测那些关键部分，寻找潜在的错误，并在禁止更改和维护工作之前做更多的工作。在构造软件的同时，就定义测试策略。可帮助编制符合企业标准的文档，改进不同开发组之间的交流；在测试阶段用LOGISCOPE，使测试更加有效。可针对软件结构，度量测试覆盖的完整性，评估测试效率，确保满足要求的测试等级。特别是，LOGISCOPE还可以自动生成相应的测试分析报告；在软件的维护阶段，用LOGISCOPE验证已有的软件是否是质量已得到保证的软件，对于状态不确定的软件，LOGISCOPE可以迅速提交软件质量的评估报告，大幅度地减少理解性工作，避免非受控修改引发的错误。</td>
        </tr>
    </tbody>
</table>
<table width="100%">
    <tbody>
        <tr>
            <td class="a14">本产品的最终目的是评估和提高软件的质量等级，采用基于国际间的标准度量方法（如Halstead、McCabe等）的质量模型对软件进行分析，从软件的编程规则，静态特征和动态测试覆盖等多个方面，量化地定义质量模型，并检查、评估软件质量。</td>
        </tr>
    </tbody>
</table>
<table width="100%">
    <tbody>
        <tr>
            <td class="a14">● LOGISCOPE 获取ISO/IEC9126 定义的"Quality Characteristics "；</td>
        </tr>
    </tbody>
</table>
<table width="100%">
    <tbody>
        <tr>
            <td class="a14">● LOGISCOPE 为ISO-9001提供需求（test acceptance criteria and qulity records ），自动确定ISO9001认证过程的任务；</td>
        </tr>
    </tbody>
</table>
<table width="100%">
    <tbody>
        <tr>
            <td class="a14">● LOGISCOPE 提供SEI/CMM在第2 级（Repeatable ）所要求的软件质量跟踪等关键实践的要求，推进开发组织尽快达到SEI/CMM 的3级。</td>
        </tr>
    </tbody>
</table>
<table width="100%">
    <tbody>
        <tr>
            <td class="a14">● 在有合同关系时，合同方可以用LOGISCOPE 明确定义验收时质量等级和执行测试。承制方可以用LOGISCOPE 验证其软件的质量。</td>
        </tr>
    </tbody>
</table>
<table width="100%">
    <tbody>
        <tr>
            <td class="a14">● 对所有的开发者提供确保代码质量和进行有效测试的方法</td>
        </tr>
    </tbody>
</table>
<table width="100%">
    <tbody>
        <tr>
            <td class="a14">● 对项目管理者和质量工程师提供对整个项目进行制度化的测试和评估。</td>
        </tr>
    </tbody>
</table>
<table width="100%">
    <tbody>
        <tr>
            <td class="a14">● 创立公司的技术文化：</td>
        </tr>
    </tbody>
</table>
<table width="100%">
    <tbody>
        <tr>
            <td class="a14">1 完美的开发环境集成，很容易访问和运行LOGISCOPE；</td>
        </tr>
    </tbody>
</table>
<table width="100%">
    <tbody>
        <tr>
            <td class="a14">2 开发者可以随时检查其工作；</td>
        </tr>
    </tbody>
</table>
<table width="100%">
    <tbody>
        <tr>
            <td class="a14">3 当达到要求的测试等级时，软件才可以离开测试阶段；</td>
        </tr>
    </tbody>
</table>
<table width="100%">
    <tbody>
        <tr>
            <td class="a14">4 维护工作是受控的；</td>
        </tr>
    </tbody>
</table>
<table width="100%">
    <tbody>
        <tr>
            <td class="a14">5 项目领导能把全部结果自动编制到日常报告中；</td>
        </tr>
    </tbody>
</table>
<table width="100%">
    <tbody>
        <tr>
            <td class="a14">6 质量工程师可以把项目作为一个整体,自动编写详细的报告。</td>
        </tr>
    </tbody>
</table>
<table width="100%">
    <tbody>
        <tr>
            <td class="a14"><strong>二、产品应用</strong></td>
        </tr>
    </tbody>
</table>
<table width="100%">
    <tbody>
        <tr>
            <td class="a14">目前，LOGISCOPE产品在全世界的26个国家的众多国际知名企业得到了广泛的应用，其用户涉及通讯、电子、航空、国防、汽车、运输、能源及工业过程控制等众多领域。现简单介绍如下：</td>
        </tr>
    </tbody>
</table>
<table width="100%">
    <tbody>
        <tr>
            <td class="a14">● 欧洲的卫星生产厂商Matla Marconi Space；</td>
        </tr>
    </tbody>
</table>
<table width="100%">
    <tbody>
        <tr>
            <td class="a14">● 直升机生产厂商Eurocopter；</td>
        </tr>
    </tbody>
</table>
<table width="100%">
    <tbody>
        <tr>
            <td class="a14">● 世界最大的粒子物理研究实验室CERN；</td>
        </tr>
    </tbody>
</table>
<table width="100%">
    <tbody>
        <tr>
            <td class="a14">● 航空航天领域有A&#233;rospatiale, Alcatel Space, Boeing, CNES, Northrop Grumman等国际著名公司；</td>
        </tr>
    </tbody>
</table>
<table width="100%">
    <tbody>
        <tr>
            <td class="a14">● IBM；</td>
        </tr>
    </tbody>
</table>
<table width="100%">
    <tbody>
        <tr>
            <td class="a14">● TI；</td>
        </tr>
    </tbody>
</table>
<table width="100%">
    <tbody>
        <tr>
            <td class="a14">● GE；</td>
        </tr>
    </tbody>
</table>
<table width="100%">
    <tbody>
        <tr>
            <td class="a14">● McDonnell Douglas；</td>
        </tr>
    </tbody>
</table>
<table width="100%">
    <tbody>
        <tr>
            <td class="a14">● EDS；</td>
        </tr>
    </tbody>
</table>
<table width="100%">
    <tbody>
        <tr>
            <td class="a14">● SAIC；</td>
        </tr>
    </tbody>
</table>
<table width="100%">
    <tbody>
        <tr>
            <td class="a14">● EXXON；</td>
        </tr>
    </tbody>
</table>
<table width="100%">
    <tbody>
        <tr>
            <td class="a14">● PHILIPS；</td>
        </tr>
    </tbody>
</table>
<table width="100%">
    <tbody>
        <tr>
            <td class="a14">● 国内有华为、中兴、航天部等单位。</td>
        </tr>
    </tbody>
</table>
<table width="100%">
    <tbody>
        <tr>
            <td class="a14"><strong>三、产品功能</strong></td>
        </tr>
    </tbody>
</table>
<table width="100%">
    <tbody>
        <tr>
            <td class="a14">下面分别介绍LOGISCOPE产品的3个功能：</td>
        </tr>
    </tbody>
</table>
<table width="100%">
    <tbody>
        <tr>
            <td class="a14">● Audit 静态分析功能；</td>
        </tr>
    </tbody>
</table>
<table width="100%">
    <tbody>
        <tr>
            <td class="a14">● RuleChecker 语法规则分析功能；</td>
        </tr>
    </tbody>
</table>
<table width="100%">
    <tbody>
        <tr>
            <td class="a14">● TestChecker 动态测试功能。</td>
        </tr>
    </tbody>
</table>
<table width="100%">
    <tbody>
        <tr>
            <td class="a14"><em>3.1 静态分析功能</em></td>
        </tr>
    </tbody>
</table>
<table width="100%">
    <tbody>
        <tr>
            <td class="a14">本产品采用的是包括软件质量标准化组织制定的ISO9126模型在内的质量模型。质量模型描述了从Halstend、McCabe的质量方法学引入的质量因素、质量准则和质量度量元。即本模型是一个三层的结构组织：</td>
        </tr>
    </tbody>
</table>
<table width="100%">
    <tbody>
        <tr>
            <td class="a14">a． 质量因素[Factor] </td>
        </tr>
    </tbody>
</table>
<table width="100%">
    <tbody>
        <tr>
            <td class="a14">b． 质量准则[Criteria]</td>
        </tr>
    </tbody>
</table>
<table width="100%">
    <tbody>
        <tr>
            <td class="a14">c． 质量度量元[Metrics] </td>
        </tr>
    </tbody>
</table>
<table width="100%">
    <tbody>
        <tr>
            <td class="a14">质量因素是从用户角度出发，对软件的质量特性进行总体评估；质量准则从软件设计者角度出发，设计为保障质量因素所必须遵循的法则；质量度量元从软件测试者角度出发，验证是否遵循质量准则。一个质量因素由一组质量准则来评估；一个质量准则由一组质量度量元来验证。其关系如图所示。</td>
        </tr>
    </tbody>
</table>
<table width="100%">
    <tbody>
        <tr>
            <td class="a14">
            <p align="center"><img alt="" src="http://www.ccw.com.cn/htm/center/prod/02_5_16_2a.gif" border="0" /> </p>
            </td>
        </tr>
    </tbody>
</table>
<table width="100%">
    <tbody>
        <tr>
            <td class="a14">
            <p align="center">质量结构关系图</p>
            </td>
        </tr>
    </tbody>
</table>
<table width="100%">
    <tbody>
        <tr>
            <td class="a14">LOGISCOPE从系统[Application]、类[Class]和函数[Function]三个层次详细规定了上述质量特性及其组成关系。以C++程序的类层为例：</td>
        </tr>
    </tbody>
</table>
<table width="100%">
    <tbody>
        <tr>
            <td class="a14"><u>Factor：</u></td>
        </tr>
    </tbody>
</table>
<table width="100%">
    <tbody>
        <tr>
            <td class="a14">具有2个Factor：</td>
        </tr>
    </tbody>
</table>
<table width="100%">
    <tbody>
        <tr>
            <td class="a14">● 可维护性[MAINTAINABILITY] </td>
        </tr>
    </tbody>
</table>
<table width="100%">
    <tbody>
        <tr>
            <td class="a14"><img alt="" src="http://www.ccw.com.cn/htm/center/prod/02_5_16_2b.gif" border="0" /> </td>
        </tr>
    </tbody>
</table>
<table width="100%">
    <tbody>
        <tr>
            <td class="a14">● 可重用性[REUSABILITY] </td>
        </tr>
    </tbody>
</table>
<table width="100%">
    <tbody>
        <tr>
            <td class="a14">
            <p align="center"><img alt="" src="http://www.ccw.com.cn/htm/center/prod/02_5_16_2c.gif" border="0" /> </p>
            </td>
        </tr>
    </tbody>
</table>
<table width="100%">
    <tbody>
        <tr>
            <td class="a14"><u>Criteria：</u></td>
        </tr>
    </tbody>
</table>
<table width="100%">
    <tbody>
        <tr>
            <td class="a14">具有4个Criteria：</td>
        </tr>
    </tbody>
</table>
<table width="100%">
    <tbody>
        <tr>
            <td class="a14">● 可分析性[ANALYZABILITY] </td>
        </tr>
    </tbody>
</table>
<table width="100%">
    <tbody>
        <tr>
            <td class="a14"><img alt="" src="http://www.ccw.com.cn/htm/center/prod/02_5_16_91a.gif" border="0" /> </td>
        </tr>
    </tbody>
</table>
<table width="100%">
    <tbody>
        <tr>
            <td class="a14">● 可修改性[CHANGEABILITY] </td>
        </tr>
    </tbody>
</table>
<table width="100%">
    <tbody>
        <tr>
            <td class="a14">
            <p align="center"><img alt="" src="http://www.ccw.com.cn/htm/center/prod/02_5_16_91b.gif" border="0" /> </p>
            </td>
        </tr>
    </tbody>
</table>
<table width="100%">
    <tbody>
        <tr>
            <td class="a14">● 稳定性[STABILITY] </td>
        </tr>
    </tbody>
</table>
<table width="100%">
    <tbody>
        <tr>
            <td class="a14">
            <p align="center"><img alt="" src="http://www.ccw.com.cn/htm/center/prod/02_5_16_91c.gif" border="0" /> </p>
            </td>
        </tr>
    </tbody>
</table>
<table width="100%">
    <tbody>
        <tr>
            <td class="a14">● 可测试性[TESTABILITY] </td>
        </tr>
    </tbody>
</table>
<table width="100%">
    <tbody>
        <tr>
            <td class="a14">
            <p align="center"><img alt="" src="http://www.ccw.com.cn/htm/center/prod/02_5_16_91d.gif" border="0" /> </p>
            </td>
        </tr>
    </tbody>
</table>
<table width="100%">
    <tbody>
        <tr>
            <td class="a14"><u>Metrics：</u></td>
        </tr>
    </tbody>
</table>
<table width="100%">
    <tbody>
        <tr>
            <td class="a14">质量度量元较多，在此不详细描述。</td>
        </tr>
    </tbody>
</table>
<table width="100%">
    <tbody>
        <tr>
            <td class="a14">静态分析Audit部件将软件与所选的质量模型进行比较，生成软件质量分析报告。显示软件质量等级的概要图形表示，因此可以把精力集中到需要修改的代码部分。对度量元素和质量模型不一致的地方作出解释并提出纠正的方法。通过对软件质量进行评估及生成控制流图和调用图,发现最大可能发生错误的部分。一旦发现这些部分，可以使用度量元及控制流图、调用图等手段做进一步分析。</td>
        </tr>
    </tbody>
</table>
<table width="100%">
    <tbody>
        <tr>
            <td class="a14">简单介绍其功能：</td>
        </tr>
    </tbody>
</table>
<table width="100%">
    <tbody>
        <tr>
            <td class="a14">● 质量报告</td>
        </tr>
    </tbody>
</table>
<table width="100%">
    <tbody>
        <tr>
            <td class="a14">LOGISCOPE根据质量模型，生成相应的软件质量分析报告（HTML形式）。</td>
        </tr>
    </tbody>
</table>
<table width="100%">
    <tbody>
        <tr>
            <td class="a14">
            <p align="center"><img alt="" src="http://www.ccw.com.cn/htm/center/prod/02_5_16_91e.jpg" border="0" /> </p>
            </td>
        </tr>
    </tbody>
</table>
<table width="100%">
    <tbody>
        <tr>
            <td class="a14">● 质量度量元</td>
        </tr>
    </tbody>
</table>
<table width="100%">
    <tbody>
        <tr>
            <td class="a14">可清楚分析和观察每个类或方法中的质量度量元的数值，判断其是否合法。</td>
        </tr>
    </tbody>
</table>
<table width="100%">
    <tbody>
        <tr>
            <td class="a14">
            <p align="center"><img alt="" src="http://www.ccw.com.cn/htm/center/prod/02_5_16_91f.gif" border="0" /> </p>
            </td>
        </tr>
    </tbody>
</table>
<table width="100%">
    <tbody>
        <tr>
            <td class="a14">● 质量准则</td>
        </tr>
    </tbody>
</table>
<table width="100%">
    <tbody>
        <tr>
            <td class="a14">可清楚分析和判断各质量因素所含有的质量准则的数值和合格性。</td>
        </tr>
    </tbody>
</table>
<table width="100%">
    <tbody>
        <tr>
            <td class="a14">
            <p align="center"><span lang="EN-US" style="font-size: 10.5pt; font-family: 'Times New Roman'; mso-bidi-font-size: 12.0pt; mso-fareast-font-family: 宋体; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA"><V:SHAPETYPE id="_x0000_t75" coordsize="21600,21600" o:spt="75" o:preferrelative="t" path="m@4@5l@4@11@9@11@9@5xe" filled="f" stroked="f"><V:STROKE joinstyle="miter"></V:STROKE><V:FORMULAS><V:F eqn="if lineDrawn pixelLineWidth 0"></V:F><V:F eqn="sum @0 1 0"></V:F><V:F eqn="sum 0 0 @1"></V:F><V:F eqn="prod @2 1 2"></V:F><V:F eqn="prod @3 21600 pixelWidth"></V:F><V:F eqn="prod @3 21600 pixelHeight"></V:F><V:F eqn="sum @0 0 1"></V:F><V:F eqn="prod @6 1 2"></V:F><V:F eqn="prod @7 21600 pixelWidth"></V:F><V:F eqn="sum @8 21600 0"></V:F><V:F eqn="prod @7 21600 pixelHeight"></V:F><V:F eqn="sum @10 21600 0"></V:F></V:FORMULAS><V:PATH o:extrusionok="f" gradientshapeok="t" o:connecttype="rect"></V:PATH><O:LOCK v:ext="edit" aspectratio="t"></O:LOCK></V:SHAPETYPE><V:SHAPE id="_x0000_i1025" style="width: 415.5pt; height: 212.25pt" type="#_x0000_t75" o:ole=""><V:IMAGEDATA src="file:///C:/DOCUME~1/XUXIAN~1/LOCALS~1/Temp/msoclip1/01/clip_image001.png" o:title=""></V:IMAGEDATA></V:SHAPE><img height="283" alt="" src="http://www.ccw.com.cn/htm/center/prod/02_5_16_2h.jpg" width="554" v:shapes="_x0000_i1025" /> </span></p>
            </td>
        </tr>
    </tbody>
</table>
<table width="100%">
    <tbody>
        <tr>
            <td class="a14">● 质量因素</td>
        </tr>
    </tbody>
</table>
<table width="100%">
    <tbody>
        <tr>
            <td class="a14">针对系统层、类层和函数层，分别分析质量因素的合格性和所占百分比。</td>
        </tr>
    </tbody>
</table>
<table width="100%">
    <tbody>
        <tr>
            <td class="a14">
            <p align="center"><span lang="EN-US" style="font-size: 10.5pt; font-family: 'Times New Roman'; mso-bidi-font-size: 12.0pt; mso-fareast-font-family: 宋体; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA"><V:SHAPETYPE id="_x0000_t75" coordsize="21600,21600" o:spt="75" o:preferrelative="t" path="m@4@5l@4@11@9@11@9@5xe" filled="f" stroked="f"><V:STROKE joinstyle="miter"></V:STROKE><V:FORMULAS><V:F eqn="if lineDrawn pixelLineWidth 0"></V:F><V:F eqn="sum @0 1 0"></V:F><V:F eqn="sum 0 0 @1"></V:F><V:F eqn="prod @2 1 2"></V:F><V:F eqn="prod @3 21600 pixelWidth"></V:F><V:F eqn="prod @3 21600 pixelHeight"></V:F><V:F eqn="sum @0 0 1"></V:F><V:F eqn="prod @6 1 2"></V:F><V:F eqn="prod @7 21600 pixelWidth"></V:F><V:F eqn="sum @8 21600 0"></V:F><V:F eqn="prod @7 21600 pixelHeight"></V:F><V:F eqn="sum @10 21600 0"></V:F></V:FORMULAS><V:PATH o:extrusionok="f" gradientshapeok="t" o:connecttype="rect"></V:PATH><O:LOCK v:ext="edit" aspectratio="t"></O:LOCK></V:SHAPETYPE><V:SHAPE id="_x0000_i1025" style="width: 354pt; height: 222.75pt" type="#_x0000_t75" o:ole=""><V:IMAGEDATA src="file:///C:/DOCUME~1/XUXIAN~1/LOCALS~1/Temp/msoclip1/01/clip_image001.png" o:title=""></V:IMAGEDATA></V:SHAPE><img height="297" alt="" src="http://www.ccw.com.cn/htm/center/prod/02_5_16_2i.jpg" width="472" v:shapes="_x0000_i1025" /> </span></p>
            </td>
        </tr>
    </tbody>
</table>
<table width="100%">
    <tbody>
        <tr>
            <td class="a14">● 程序流程图</td>
        </tr>
    </tbody>
</table>
<table width="100%">
    <tbody>
        <tr>
            <td class="a14">控制流图显示算法的逻辑路径。其图形表示适用于评价函数的复杂性。</td>
        </tr>
    </tbody>
</table>
<table width="100%">
    <tbody>
        <tr>
            <td class="a14">
            <p align="center"><span lang="EN-US" style="font-size: 10.5pt; font-family: 'Times New Roman'; mso-bidi-font-size: 12.0pt; mso-fareast-font-family: 宋体; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA"><V:SHAPETYPE id="_x0000_t75" coordsize="21600,21600" o:spt="75" o:preferrelative="t" path="m@4@5l@4@11@9@11@9@5xe" filled="f" stroked="f"><V:STROKE joinstyle="miter"></V:STROKE><V:FORMULAS><V:F eqn="if lineDrawn pixelLineWidth 0"></V:F><V:F eqn="sum @0 1 0"></V:F><V:F eqn="sum 0 0 @1"></V:F><V:F eqn="prod @2 1 2"></V:F><V:F eqn="prod @3 21600 pixelWidth"></V:F><V:F eqn="prod @3 21600 pixelHeight"></V:F><V:F eqn="sum @0 0 1"></V:F><V:F eqn="prod @6 1 2"></V:F><V:F eqn="prod @7 21600 pixelWidth"></V:F><V:F eqn="sum @8 21600 0"></V:F><V:F eqn="prod @7 21600 pixelHeight"></V:F><V:F eqn="sum @10 21600 0"></V:F></V:FORMULAS><V:PATH o:extrusionok="f" gradientshapeok="t" o:connecttype="rect"></V:PATH><O:LOCK v:ext="edit" aspectratio="t"></O:LOCK></V:SHAPETYPE><V:SHAPE id="_x0000_i1025" style="width: 378pt; height: 209.25pt" type="#_x0000_t75" o:ole=""><V:IMAGEDATA src="file:///C:/DOCUME~1/XUXIAN~1/LOCALS~1/Temp/msoclip1/01/clip_image001.png" o:title=""></V:IMAGEDATA></V:SHAPE><img height="279" alt="" src="http://www.ccw.com.cn/htm/center/prod/02_5_16_2j.jpg" width="504" v:shapes="_x0000_i1025" /> </span></p>
            </td>
        </tr>
    </tbody>
</table>
<table width="100%">
    <tbody>
        <tr>
            <td class="a14">● 程序调用图</td>
        </tr>
    </tbody>
</table>
<table width="100%">
    <tbody>
        <tr>
            <td class="a14">调用图显示过程和函数之间的关系，非常适用于检查应用系统的设计。</td>
        </tr>
    </tbody>
</table>
<table width="100%">
    <tbody>
        <tr>
            <td class="a14">
            <p align="center"><span lang="EN-US" style="font-size: 10.5pt; font-family: 'Times New Roman'; mso-bidi-font-size: 12.0pt; mso-fareast-font-family: 宋体; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA"><V:SHAPETYPE id="_x0000_t75" coordsize="21600,21600" o:spt="75" o:preferrelative="t" path="m@4@5l@4@11@9@11@9@5xe" filled="f" stroked="f"><V:STROKE joinstyle="miter"></V:STROKE><V:FORMULAS><V:F eqn="if lineDrawn pixelLineWidth 0"></V:F><V:F eqn="sum @0 1 0"></V:F><V:F eqn="sum 0 0 @1"></V:F><V:F eqn="prod @2 1 2"></V:F><V:F eqn="prod @3 21600 pixelWidth"></V:F><V:F eqn="prod @3 21600 pixelHeight"></V:F><V:F eqn="sum @0 0 1"></V:F><V:F eqn="prod @6 1 2"></V:F><V:F eqn="prod @7 21600 pixelWidth"></V:F><V:F eqn="sum @8 21600 0"></V:F><V:F eqn="prod @7 21600 pixelHeight"></V:F><V:F eqn="sum @10 21600 0"></V:F></V:FORMULAS><V:PATH o:extrusionok="f" gradientshapeok="t" o:connecttype="rect"></V:PATH><O:LOCK v:ext="edit" aspectratio="t"></O:LOCK></V:SHAPETYPE><V:SHAPE id="_x0000_i1025" style="width: 373.5pt; height: 207.75pt" type="#_x0000_t75" o:ole=""><V:IMAGEDATA src="file:///C:/DOCUME~1/XUXIAN~1/LOCALS~1/Temp/msoclip1/01/clip_image001.png" o:title=""></V:IMAGEDATA></V:SHAPE><img height="277" alt="" src="http://www.ccw.com.cn/htm/center/prod/02_5_16_2k.jpg" width="498" v:shapes="_x0000_i1025" /> </span></p>
            </td>
        </tr>
    </tbody>
</table>
<table width="100%">
    <tbody>
        <tr>
            <td class="a14">● Kiviat图</td>
        </tr>
    </tbody>
</table>
<table width="100%">
    <tbody>
        <tr>
            <td class="a14">Kiviat图使质量等级与所选择的参考之间的一致性对比更加可视化。</td>
        </tr>
    </tbody>
</table>
<table width="100%">
    <tbody>
        <tr>
            <td class="a14">
            <p align="center"><span lang="EN-US" style="font-size: 10.5pt; font-family: 'Times New Roman'; mso-bidi-font-size: 12.0pt; mso-fareast-font-family: 宋体; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA"><V:SHAPETYPE id="_x0000_t75" coordsize="21600,21600" o:spt="75" o:preferrelative="t" path="m@4@5l@4@11@9@11@9@5xe" filled="f" stroked="f"><V:STROKE joinstyle="miter"></V:STROKE><V:FORMULAS><V:F eqn="if lineDrawn pixelLineWidth 0"></V:F><V:F eqn="sum @0 1 0"></V:F><V:F eqn="sum 0 0 @1"></V:F><V:F eqn="prod @2 1 2"></V:F><V:F eqn="prod @3 21600 pixelWidth"></V:F><V:F eqn="prod @3 21600 pixelHeight"></V:F><V:F eqn="sum @0 0 1"></V:F><V:F eqn="prod @6 1 2"></V:F><V:F eqn="prod @7 21600 pixelWidth"></V:F><V:F eqn="sum @8 21600 0"></V:F><V:F eqn="prod @7 21600 pixelHeight"></V:F><V:F eqn="sum @10 21600 0"></V:F></V:FORMULAS><V:PATH o:extrusionok="f" gradientshapeok="t" o:connecttype="rect"></V:PATH><O:LOCK v:ext="edit" aspectratio="t"></O:LOCK></V:SHAPETYPE><V:SHAPE id="_x0000_i1025" style="width: 366.75pt; height: 222.75pt" type="#_x0000_t75" o:ole=""><V:IMAGEDATA src="file:///C:/DOCUME~1/XUXIAN~1/LOCALS~1/Temp/msoclip1/01/clip_image001.png" o:title=""></V:IMAGEDATA></V:SHAPE><img height="297" alt="" src="http://www.ccw.com.cn/htm/center/prod/02_5_16_2l.jpg" width="489" v:shapes="_x0000_i1025" /> </span></p>
            </td>
        </tr>
    </tbody>
</table>
<table width="100%">
    <tbody>
        <tr>
            <td class="a14"><em>3.2 语法规则分析功能</em></td>
        </tr>
    </tbody>
</table>
<table width="100%">
    <tbody>
        <tr>
            <td class="a14">LOGISCOPE提供编码规则与命名检验，这些规则是根据业界标准和经验所制订。因此可建立企业可共同遵循的规则与标准，而避免自我不良的编程习惯及彼此不相容的困扰。同时LOGISCOPE还提供规则的裁剪和编辑功能，可以用Tcl、脚本和编程语言定义新的规则。</td>
        </tr>
    </tbody>
</table>
<table width="100%">
    <tbody>
        <tr>
            <td class="a14">以C语言为例，以下列出部分的规则：</td>
        </tr>
    </tbody>
</table>
<table width="100%">
    <tbody>
        <tr>
            <td class="a14">请点击<a href="http://www.ccw.com.cn/htm/center/prod/02_5_16_3333.jpg" target="_blank"><font color="#0000ff">这里查看&gt;&gt;</font></a> </td>
        </tr>
    </tbody>
</table>
<table width="100%">
    <tbody>
        <tr>
            <td class="a14">RuleChecker的工作界面如下：</td>
        </tr>
    </tbody>
</table>
<table width="100%">
    <tbody>
        <tr>
            <td class="a14">
            <p align="center"><span lang="EN-US" style="font-size: 12pt; font-family: 宋体; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: 'Times New Roman'"><V:SHAPETYPE id="_x0000_t75" coordsize="21600,21600" o:spt="75" o:preferrelative="t" path="m@4@5l@4@11@9@11@9@5xe" filled="f" stroked="f"><V:STROKE joinstyle="miter"></V:STROKE><V:FORMULAS><V:F eqn="if lineDrawn pixelLineWidth 0"></V:F><V:F eqn="sum @0 1 0"></V:F><V:F eqn="sum 0 0 @1"></V:F><V:F eqn="prod @2 1 2"></V:F><V:F eqn="prod @3 21600 pixelWidth"></V:F><V:F eqn="prod @3 21600 pixelHeight"></V:F><V:F eqn="sum @0 0 1"></V:F><V:F eqn="prod @6 1 2"></V:F><V:F eqn="prod @7 21600 pixelWidth"></V:F><V:F eqn="sum @8 21600 0"></V:F><V:F eqn="prod @7 21600 pixelHeight"></V:F><V:F eqn="sum @10 21600 0"></V:F></V:FORMULAS><V:PATH o:extrusionok="f" gradientshapeok="t" o:connecttype="rect"></V:PATH><O:LOCK v:ext="edit" aspectratio="t"></O:LOCK></V:SHAPETYPE><V:SHAPE id="_x0000_i1025" style="width: 415.5pt; height: 311.25pt" type="#_x0000_t75"><V:IMAGEDATA src="file:///C:/DOCUME~1/XUXIAN~1/LOCALS~1/Temp/msoclip1/01/clip_image001.png" o:title=""></V:IMAGEDATA></V:SHAPE><img height="415" alt="" src="http://www.ccw.com.cn/htm/center/prod/02_5_16_2o.jpg" width="554" v:shapes="_x0000_i1025" /></span> </p>
            </td>
        </tr>
    </tbody>
</table>
<table width="100%">
    <tbody>
        <tr>
            <td class="a14"><em>3.3 动态测试功能</em></td>
        </tr>
    </tbody>
</table>
<table width="100%">
    <tbody>
        <tr>
            <td class="a14">为控制测试的有效性，必须定义准则和策略以判断何时结束测试阶段。准则必须是客观和可量化的元素。LOGISCOPE推荐对指令、逻辑路径和调用路径覆盖测试。根据应用的准则和项目相关的约束，可以定义使用的度量方法和要达到的覆盖率，度量测试的有效性。</td>
        </tr>
    </tbody>
</table>
<table width="100%">
    <tbody>
        <tr>
            <td class="a14">TestChecker产生每个测试的测试覆盖信息和累计信息。用直方图显示覆盖比率，并根据测试运行情况实时更改。随时显示新的测试所反映的测试覆盖情况。TestChecker允许所有的测试运行依据其有效性进行管理。用户可以减少那些用于非回归测试的测试。被执行过的函数，一旦作了修改需要重新运行时，LOGISCOPE将会标出。优化测试过程在测试阶段的第一步，执行的测试是功能性测试。其目的是检查所期望的功能是否已实现。在测试初期，覆盖比率迅速增加。象样的测试工作一般能达到70%的覆盖率。但是，要提高此比率是十分困难的。主要是由于测试覆盖了相同的测试路径。在该阶段需要对测试策略做一些改变。应当执行结构化测试，即，要检测没有执行的逻辑路径，定义适当的测试覆盖这些路径。在测试执行期间，当测试策略改变时，综合的运用TestChecker检测关键因素以提高效率。将TestChecker与静态分析相互依赖使用能够帮助用户分析未测试的代码。用户可以显示所关心的代码，并通过对执行未覆盖的路径的观察得到有关的信息。信息以图形（控制流图）和文本（伪代码和源文件）的形式提交，并在其间建立导航关联。TestChecker管理系统能声明新的测试、编制有关文档、定义启动命令、以及自动执行的方法。</td>
        </tr>
    </tbody>
</table>
<table width="100%">
    <tbody>
        <tr>
            <td class="a14">同时LOGISCOPE 支持对嵌入式领域软件的测试。众所周知，嵌入式系统软件的测试是最为困难的。因为，它的开发是用交叉编译方式进行的。在目标机（Target）上，不可能有多余的空间记录测试的信息。必须实时地将测试信息通过网线/串口传到宿主机（Host）上，并实时在线地显示。因此，对源代码的插装和目标机上的信息收集与回传成为问题的关键。LOGISCOPE 很好地解决了这些技术，成为嵌入式领域测试工具的佼佼者。它支持各种实时操作系统（RTOS）上的应用程序的测试，也支持逻辑系统的测试。Logiscope 提供VxWorks 、pSOS 、VRTX 实时操作系统的测试库。</td>
        </tr>
    </tbody>
</table>
<table width="100%">
    <tbody>
        <tr>
            <td class="a14">TestChecker的运行界面：</td>
        </tr>
    </tbody>
</table>
<table width="100%">
    <tbody>
        <tr>
            <td class="a14">
            <p align="center"><span lang="EN-US" style="font-size: 12pt; font-family: 宋体; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: 'Times New Roman'"><V:SHAPETYPE id="_x0000_t75" coordsize="21600,21600" o:spt="75" o:preferrelative="t" path="m@4@5l@4@11@9@11@9@5xe" filled="f" stroked="f"><V:STROKE joinstyle="miter"></V:STROKE><V:FORMULAS><V:F eqn="if lineDrawn pixelLineWidth 0"></V:F><V:F eqn="sum @0 1 0"></V:F><V:F eqn="sum 0 0 @1"></V:F><V:F eqn="prod @2 1 2"></V:F><V:F eqn="prod @3 21600 pixelWidth"></V:F><V:F eqn="prod @3 21600 pixelHeight"></V:F><V:F eqn="sum @0 0 1"></V:F><V:F eqn="prod @6 1 2"></V:F><V:F eqn="prod @7 21600 pixelWidth"></V:F><V:F eqn="sum @8 21600 0"></V:F><V:F eqn="prod @7 21600 pixelHeight"></V:F><V:F eqn="sum @10 21600 0"></V:F></V:FORMULAS><V:PATH o:extrusionok="f" gradientshapeok="t" o:connecttype="rect"></V:PATH><O:LOCK v:ext="edit" aspectratio="t"></O:LOCK></V:SHAPETYPE><V:SHAPE id="_x0000_i1025" style="width: 415.5pt; height: 311.25pt" type="#_x0000_t75"><V:IMAGEDATA src="file:///C:/DOCUME~1/XUXIAN~1/LOCALS~1/Temp/msoclip1/01/clip_image001.png" o:title=""></V:IMAGEDATA></V:SHAPE><img height="415" alt="" src="http://www.ccw.com.cn/htm/center/prod/02_5_16_2p.jpg" width="554" v:shapes="_x0000_i1025" /></span> </p>
            </td>
        </tr>
    </tbody>
</table>
<table width="100%">
    <tbody>
        <tr>
            <td class="a14"><strong>四、产品构成</strong></td>
        </tr>
    </tbody>
</table>
<table width="100%">
    <tbody>
        <tr>
            <td class="a14"><strong>Audit</strong> for c/c++ ;</td>
        </tr>
    </tbody>
</table>
<table width="100%">
    <tbody>
        <tr>
            <td class="a14"><strong>RuleChecker</strong> for c/c++;</td>
        </tr>
    </tbody>
</table>
<table width="100%">
    <tbody>
        <tr>
            <td class="a14"><strong>TestChecker</strong> for c/c++ 。</td>
        </tr>
    </tbody>
</table>
<table width="100%">
    <tbody>
        <tr>
            <td class="a14">运行平台：WIN2000/NT</td>
        </tr>
    </tbody>
</table>
<img src ="http://www.blogjava.net/hengheng123456789/aggbug/179153.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/hengheng123456789/" target="_blank">哼哼</a> 2008-02-03 14:50 <a href="http://www.blogjava.net/hengheng123456789/archive/2008/02/03/179153.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>如何实施软件质量保证（转）</title><link>http://www.blogjava.net/hengheng123456789/archive/2007/09/07/143386.html</link><dc:creator>哼哼</dc:creator><author>哼哼</author><pubDate>Fri, 07 Sep 2007 06:10:00 GMT</pubDate><guid>http://www.blogjava.net/hengheng123456789/archive/2007/09/07/143386.html</guid><wfw:comment>http://www.blogjava.net/hengheng123456789/comments/143386.html</wfw:comment><comments>http://www.blogjava.net/hengheng123456789/archive/2007/09/07/143386.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/hengheng123456789/comments/commentRss/143386.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/hengheng123456789/services/trackbacks/143386.html</trackback:ping><description><![CDATA[<br />
http://developer.51cto.com/art/200601/16640.htm<br />
<br />
<p>软件质量保证（即SQA——Software Quality Assurance），是CMM2级中的一个关键过程域,它是贯穿整个软件过程的第三方独立审查活动，出现在大多数关键过程域的检查与验证的公共特性中，在整个软件开发过程中充当重要角色。</p>
<p>从CMM2级中包含的6个关键过程域来看，无论是需求管理、软件项目计划、软件项目跟踪与监控，还是软件子合同管理、软件配置管理，都不同程度地存在于我们现在正在进行的软件项目开发过程中，对于它们的了解我们已经不再陌生，只有SQA这个关键过程域，是在我们准备以CMM2级要求的关键过程域为基础进行软件过程改进前未接触过的。</p>
<p>在很多软件企业中还没有与之相对应的人员和工作方法，整套关注软件开发过程的软件质量保证体系还没有建立起来。所以，在企业以CMM2级关键过程域为参考进行软件过程改进时，SQA往往是一个难点，直接涉及到组织结构的变化。</p>
<p><strong>实施SQA的目的</strong></p>
<p>软件质量保证的目标是以独立审查方式，从第三方的角度监控软件开发任务的执行,就软件项目是否正遵循已制定的计划、标准和规程给开发人员和管理层提供反映产品和过程质量的信息和数据，提高项目透明度，同时辅助软件工程组取得高质量的软件产品。主要包括以下四个方面： </p>
<p>● 通过监控软件开发过程来保证产品质量; <br />
<br />
● 保证开发出来的软件和软件开发过程符合相应标准与规程；<br />
<br />
● 保证软件产品、软件过程中存在的不符合问题得到处理,必要时将问题反映给高级管理者；<br />
<br />
● 确保项目组制定的计划、标准和规程适合项目组需要，同时满足评审和审计需要; </p>
<p>除了以上四点之外，我们还希望SQA能作为软件工程过程小组（SEPG）在项目组中的延伸，能够收集项目中好的实施方法和发现实施不利的原因，为修改企业内部软件开发整体规范提供依据，为其他项目组的开发过程实施提供先进方法和样例。 </p>
<p><strong>对SQA人员的素质要求</strong></p>
<p>1. SQA人员(有时简称SQA)要有很强的沟通能力。从实施SQA的目的中可以看出，SQA不在项目中，是独立于软件项目的第三方，但他要了解项目的开发过程和进度，捕捉到项目中不符合要求的问题，这就要求SQA能够深入项目，和软件开发经理以及项目组中的开发人员保持很好的沟通，这样才能及时获得真实的项目情况。</p>
<p>2. SQA要熟悉软件开发过程。作为SQA，既然要确保项目组制定的计划、标准和规程，要符合项目组要求，那么SQA首先自己就要了解软件项目开发过程，以及企业内部已经有的开发过程规范。</p>
<p>3. SQA本身要有很强的计划性。SQA一方面要监督软件项目组编写计划，另一方面SQA自身的工作也要有计划，并且能够按照计划开展工作。</p>
<p>4. SQA要能应对繁杂的工作。作为SQA，在跟踪项目进行过程的时候要对项目组的很多工作产品进行审计，而且会参与项目组中的多种活动。同时一个SQA还有可能会面对多个项目组，所以任务相对繁杂细碎，这就要求SQA在处理这些事物的时候要耐心细致。</p>
<p>5. SQA要客观，有责任心。作为第三方对项目过程进行监督，SQA要能保持自己的客观性，不能一味讨好项目经理，也不能成为项目组中的宪兵，否则会影响工作的开展。对于项目组中多次协调解决不了的问题，能够向项目的高层经理进言，完成SQA的使命。</p>
<p>以上五点是作为SQA应该具备的基本素质，除此之外，一个好的SQA还应该在软件开发过程中作为开发人员或测试人员参与过一个或多个环节，这样他们才能在过程监督中比较准确地抓住重点，同时他们的意见和提出的解决办法也会更贴近项目组，容易被项目组接受。</p>
<p><strong>SQA人员的组成</strong></p>
<p>软件企业中的SQA人员既可以由全职人员担任，也可以由企业内具有相关素质、经过SQA培训的人员兼职担任。由此组成的SQA小组可能是一个真正的物理上存在的独立部门，也可以是一个逻辑上存在的平台。但不管是真正的独立部门还是逻辑上的平台，它都需要有一个灵魂人物——SQA小组组长，来组织SQA小组的日常活动。</p>
<p>在给一个项目组分配负责监督其项目过程的SQA时，一定要注意一点：就是该项目的SQA不能是该项目组的开发人员、配置管理人员或测试人员，一个项目的SQA除了监控项目过程，完成SQA相关工作以外，不应该参与项目组的其他实质性工作，否则他会与项目组捆绑在一起，很难保持客观性。</p>
<p><strong>SQA工作的内容</strong> </p>
<p>SQA的工作内容主要包括以下六类：</p>
<p>1. 与SQA计划直接相关的工作：SQA在项目早期要根据项目计划制定与其对应的SQA计划，定义出各阶段的检查重点，标识出检查、审计的工作产品对象，以及在每个阶段SQA的输出产品。定义越详细，对于SQA今后的工作的指导性就会越强，同时也便于软件项目经理和SQA组长对其工作的监督。编写完SQA计划后要组织SQA计划的评审，并形成评审报告，把通过评审的SQA计划发送给软件项目经理、项目开发人员和所有相关人员。</p>
<p>2. 参与项目的阶段性评审和审计：在SQA计划中通常已经根据项目计划定义了与项目阶段相应的阶段检查，包括参加项目在本阶段的评审和对其阶段产品的审计。对于阶段产品的审计通常是检查其阶段产品是否按计划按规程输出并内容完整，这里的规程包括企业内部统一的规程也包括项目组内自己定义的规程。但是SQA对于阶段产品内容的正确性一般不负责任检查，对于内容的正确性通常交由项目中的评审来完成。SQA参与评审是从保证评审过程有效性方面入手，如参与评审的人是否具备一定资格、是否规定的人员都参见了评审、评审中对被评审的对象的每个部分都进行了评审、并给出了明确的结论等等。</p>
<p>3. 对项目日常活动与规程的符合性进行检查: 这部分的工作内容是SQA的日常工作内容。由于SQA独立于项目组，如果只是参与阶段性的检查和审计很难及时反映项目组的工作过程，所以SQA也要在两个阶段点之间设置若干小的跟踪点，来监督项目的进行情况，以便能及时反映出项目组中存在的问题，并对其进行追踪。如果只在阶段点进行检查和审计，即便发现了问题也难免过于滞后，不符合尽早发现问题、把问题控制在最小的范围之内的整体目标。</p>
<p>4. 对配置管理工作的检查和审计：SQA要对项目过程中的配置管理工作是否按照项目最初制定的配置管理计划进行监督，包括配置管理人员是否定期进行该方面的工作、是否所有人得到的都是开发过程产品的有效版本。这里的过程产品包括项目过程中产生的代码和文档。</p>
<p>5. 跟踪问题的解决情况: 对于评审中发现的问题和项目日常工作中发现的问题，SQA要进行跟踪，直至解决。对于在项目组内可以解决的问题就在项目组内部解决，对于在项目组内部无法解决的问题，或是在项目组中跟催多次也没有得到解决的问题，可以利用其独立汇报的渠道报告给高层经理。</p>
<p>6. 收集新方法，提供过程改进的依据：此类工作很难具体定义在SQA的计划当中，但是SQA有机会直接接触很多项目组，对于项目组在开发管理过程中的优点和缺点都能准确的获得第一手资料。他们有机会了解项目组中管理好的地方是如何做的，采用了什么有效的方法，在SQA小组的活动中与其他SQA共享。这样这些好的实施实例就可以被传播到更多的项目组中。对于企业内过程规范定义的不准确或是不方便的地方，软件项目组也可以通过SQA小组反映到软件工程过程小组，便于下一步对规程进行修改和完善。</p>
<p><strong>SQA与几类角色间的关系</strong></p>
<p>一个企业内的部门设置可能会各有不同，但是很多角色设置是相同的，从一个项目的SQA出发，我们可以把SQA与其他相关角色的关系表示为下图: 以上图示只说明SQA与高层经理、项目组和其他相关组之间的关系，并不是以上几个角色之间所有关系的描述，所以即便项目组会直接向高层经理汇报，但与SQA无直接关系，在图中就没有表现出来。</p>
<p><strong>SQA工作中常见的几个问题</strong></p>
<p>1. 最初给项目组配置SQA人员的时候，SQA的价值不被认可因为是新工作的初次开展，已经习惯了自己管理项目，向高层经理汇报的项目组难免会有抵触情绪。要从两个方面解决这个问题：一方面，从组织的角度，要明确SQA的角色及其合法性; 另一方面，SQA也要以其专业的工作赢得项目组认可，为项目组增加价值。</p>
<p>2. 一个全职的SQA可以同时兼任多少个项目的SQA工作对于不同的项目规模和组织管理方式，这个问题会有不同的答案，根据实施中的一些经验总结，通常在第一次实施时，承担一个20人左右的项目组的SQA工作需要占用一个人30%左右的工作量，随着SQA的成熟，这个比例会降低到15%。对于一个10人以内的项目组，SQA需要投入其10%左右的工作量。当然，项目越大SQA的投入就越多。</p>
<p>3. SQA与项目组的关系难处理对于SQA与项目组的关系，应该遵循以下两条原则: 要在过程方面成为项目组的严师，有错必纠，但不能有错全报；要做项目组的朋友，但不能对项目组包庇纵容。</p>
<p>4. 项目组有了SQA，可是需求文档和设计文档的质量还是不高对不起，这不是SQA的直接工作范围。提高需求和设计的质量，要从人员培训和严格评审入手，让有经验有资格的人来完成需求和设计文档。SQA只能从规程符合方面进行监督。</p>
<p>总之，在软件企业中建立SQA体系，是软件项目管理由人治到法治的一个必经阶段，也是软件企业以CMM模型为参考，进行软件过程改进中一个不可缺少的部分。软件企业只要真正建立了SQA规范，培养了专业的SQA人员就会真正从中体会到它的好处。</p>
<img src ="http://www.blogjava.net/hengheng123456789/aggbug/143386.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/hengheng123456789/" target="_blank">哼哼</a> 2007-09-07 14:10 <a href="http://www.blogjava.net/hengheng123456789/archive/2007/09/07/143386.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>SQA到底是什么?（转）</title><link>http://www.blogjava.net/hengheng123456789/archive/2007/09/07/143385.html</link><dc:creator>哼哼</dc:creator><author>哼哼</author><pubDate>Fri, 07 Sep 2007 05:55:00 GMT</pubDate><guid>http://www.blogjava.net/hengheng123456789/archive/2007/09/07/143385.html</guid><wfw:comment>http://www.blogjava.net/hengheng123456789/comments/143385.html</wfw:comment><comments>http://www.blogjava.net/hengheng123456789/archive/2007/09/07/143385.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/hengheng123456789/comments/commentRss/143385.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/hengheng123456789/services/trackbacks/143385.html</trackback:ping><description><![CDATA[<br />
http://tech.itdb.cn/n/200503/01/n20050301_31878.shtml<br />
<br />
<p><strong>一、 前言</strong></p>
<p>本文作者在企业从事SQA工作，同时兼任SEPG的工作进行基于CMM3的过程改进，在实践过程中，对SQA的工作有了较多的想法和认识。本文是个人看法，请大家指教，如果要和本人联系，请发Email到：<a href="&#109;&#97;&#105;&#108;&#116;&#111;&#58;&#104;&#101;&#113;&#105;&#110;&#103;&#101;&#109;&#97;&#105;&#108;&#64;&#49;&#54;&#51;&#46;&#110;&#101;&#116;">heqingemail@163.net</a>。</p>
<p><strong>二、SQA的理论探索</strong></p>
<p>2.1、过程的;认识</p>
<p>我们都知道一个项目的主要内容是：成本、进度、质量；良好的项目管理就是综合三方面的因素，平衡三方面的目标，最终依照目标完成任务。项目的这三个方面是相互制约和影响的，有时对这三方面的平衡策略甚至成为一个企业级的要求，决定了企业的行为，我们知道IBM的软件是以质量为最重要目标的，而微软的&#8220;足够好的软件&#8221;策略更是耳熟能详，这些质量目标其实立足于企业的战略目标。所以用于进行质量保证的SQA工作也应当立足于企业的战略目标，从这个角度思考SQA，形成对SQA的理论认识。</p>
<p>软件界已经达成共识的：影响软件项目进度、成本、质量的因素主要是&#8220;人、过程、技术&#8221;。<br />
首先要明确的是这三个因素中，人是第一位的。<br />
现在许多实施CMM的人员沉溺于CMM的理论过于强调&#8220;过程&#8221;，这是很危险的倾向。这个思想倾向在国外受到了猛烈抨击，从某种意义上各种敏捷过程方法的提出就是对强调过程的一种反思。<br />
&#8220;XP&#8221;中的一个思想&#8220;人比过程更重要&#8221; 是值得我们思考的。我个人的意见在进行过程改进中坚持&#8220;以人为本&#8221;，强调过程和人的和谐。<br />
根据现代软件工程对众多失败项目的调查，发现管理是项目失败的主要原因。这个事实的重要性在于说明了&#8220;要保证项目不失败，我们应当更加关注管理&#8221;，注意这个事实没有说明另外一个问题&#8220;良好的管理可以保证项目的成功&#8221;。现在很多人基于一种粗糙的逻辑，从一个事实反推到的这个结论，在逻辑上是错误的，这种错误形成了更加错误的做法，这点在SQA的理解上是体现较深。<br />
如果我们考证一下历史的沿革，应当更加容易理解CMM的本质。CMM首先是作为一个&#8220;评估标准&#8221;出现的，主要评估的是美国国防部供应商保证质量的能力。CMM关注的软件生产有如下特点：<br />
质量重要<br />
规模较大<br />
这是CMM产生的原因。它引入了&#8220;全面质量管理&#8221;的思想，尤其侧重了&#8220;全面质量管理&#8221;中的&#8220;过程方法&#8221;，并且引入了&#8220;统计过程控制&#8221;的方法。可以说这两个思想是CMM背后的基础。<br />
上面这些内容形成了我对软件过程地位、价值的基本理解；在这个基础上我们可以引申讨论SQA。</p>
<p>2.2、生产线的隐喻</p>
<p>如果将一个软件生产类比于一个工厂的生产。那么生产线就是过程，产品按照生产线的规定过程进行生产。SQA的职责就是保证过程的执行，也就是保证生产线的正常执行。<br />
抽象出管理体系模型的如下，这个模型说明了一个过程体系至少应当包含&#8220;决策、执行、反馈&#8221;三个重要方面。QA的职责就是确保过程的有效执行，监督项目按照过程进行项目活动；它不负责监管产品的质量，不负责向管理层提供项目的情况，不负责代表管理层进行管理，只是代表管理层来保证过程的执行。</p>
<p><img src="http://images.itdb.cn/News/2005/03/01/8C8C409C45BD4E3.jpg" border="0"  alt="" /></p>
<p>2.3、SQA和其他工作的组合</p>
<p>在很多企业中，将SQA的工作和QC、SEPG、组织级的项目管理者的工作混合在一起了，有时甚至更加注重其他方面的工作而没有做好SQA的本职工作。<br />
根据hjhza 的意见&#8220;中国现在基本有三种QA（按照工作重点不同来分）：一是过程改进型，一是配置管理型，一是测试型&#8221;。我个人认为是因为SQA工作和其他不同工作组合在一起形成的。<br />
下面根据本人经验对它们之间的关系进行一个说明。</p>
<p>2.4、QA和QC</p>
<p>两者基本职责<br />
QC：检验产品的质量，保证产品符合客户的需求；是产品质量检查者；<br />
QA：审计过程的质量，保证过程被正确执行；是过程质量审计者；<br />
注意区别检查和审计的不同<br />
检查：就是我们常说的找茬，是挑毛病的；<br />
审计：来确认项目按照要求进行的证据；仔细看看CMM中各个KPA中SQA的检查采用的术语大量用到了&#8220;证实&#8221;，审计的内容主要是过程的；对照CMM看一下项目经理和高级管理者的审查内容，他们更加关注具体内容。</p>
<p>对照上面的管理体系模型，QC进行质量控制，向管理层反馈质量信息；QA则确保QC按照过程进行质量控制活动，按照过程将检查结果向管理层汇报。这就是QA和QC工作的关系。在这样的分工原则下，QA只要检查项目按照过程进行了某项活动没有，产出了某个产品没有；而QC来检查产品是否符合质量要求。如果企业原来具有QC人员并且QA人员配备不足，可以先确定由QC兼任QA工作。但是只能是暂时的，独立的QA人员应当具备，因为QC工作也是要遵循过程要求的，也是要被审计过程的，这种混合情况，难以保证QC工作的过程质量。</p>
<p>2.5、QA和SEPG</p>
<p>两者基本职责</p>
<p>SEPG：制定过程，实施过程改进；<br />
QA： 确保过程被正确执行</p>
<p>SEPG应当提供过程上的指导，帮助项目组制定项目过程，帮助项目组进行策划；从而帮助项目组有效的工作，有效的执行过程。如果项目和QA对过程的理解发生争持，SEPG作为最终仲裁者。为了进行有效过程改进，SEPG必须分析项目的数据。</p>
<p>QA本也要进行过程规范，那么所有QA中最有经验、最有能力的QA可以参加SEPG，但是要注意这两者的区别。</p>
<p>如果企业的SEPG人员具有较为深厚的开发背景，可以兼任SQA工作，这样利于过程的不断改进；但是由于立法、执法集于一身也容易造成SQA过于强势，影响项目的独立性。管理过程比较成熟的企业，因为企业的文化和管理机制已经健全，SQA职责范围的工作较少，往往只是针对具体项目制定明确重点的SQA计划，这样SQA的审计工作会大大减少，从而可以同时审计较多项目。</p>
<p>另一方面，由于分工的细致化，管理体系的复杂化，往往需要专职的SEPG人员，这些人员要求了解企业的所有管理过程和运作情况，在这个基础上才能统筹全局的进行过程改进，这时了解全局的SQA人员就是专职SEPG的主要人选；这些SQA人员将逐渐的转化为SEPG人员，并且更加了解管理知识，而SQA工作渐渐成为他们的兼职工作。</p>
<p>这种情况在许多CMM5企业比较多见，往往有时看不见SQA人员在项目组出现或者很少出现，这种SEPG和SQA的融合特别有利于组织的过程改进工作。SEPG确定过程改进内容，SQA计划重点反映这些改进内容，从保证有效的改进，特别有利于达到CMM5的要求。从这个角度，国外的SQA人员为什么高薪就不难理解了，也决定了当前中国SQA人员比较被轻视的原因；因为管理过程还不完善，我们的SQA人员还没有产生这么大的价值嘛！</p>
<p>2.6、QA和组织级的监督管理</p>
<p>有的企业为了更好的监督管理项目，建立了一个角色，我取名为&#8220;组织级的监督管理者&#8221;，他们的职责是对所有项目进行统一的跟踪、监督、适当的管理，来保证管理层对所有项目的可视性、可管理性。</p>
<p>为了有效管理项目，&#8220;组织级的监督管理者&#8221;必须分析项目的数据。</p>
<p>他们的职责对照上图的模型，就是执行&#8220;反馈&#8221;职能。</p>
<p>QA本身不进行反馈工作，最多对过程执行情况的信息进行反馈。</p>
<p>SQA职责最好不要和&#8220;组织级的项目管理者&#8221;的职责混合在一起，否则容易出现SAQ困境：一方面SQA不能准确定位自己的工作，另一方面过程执行者对SQA人员抱有较大戒心。</p>
<p>如果建立了较好的管理过程，那么就会增强项目的可视性，从而保证企业对所有项目的较好管理；而QA来确保这个管理过程的运行。</p>
<p><strong>三、SQA的工作内容和工作方法</strong></p>
<p>3.1、 计划</p>
<p>针对具体项目制定SQA计划，确保项目组正确执行过程。制定SQA计划应当注意如下几点：<br />
有重点：依据企业目标以及项目情况确定审计的重点<br />
明确审计内容：明确审计哪些活动，那些产品<br />
明确审计方式：确定怎样进行审计<br />
明确审计结果报告的规则：审计的结果报告给谁</p>
<p>3.2、审计/证实</p>
<p>依据SQA计划进行SQA审计工作，按照规则发布审计结果报告。<br />
注意审计一定要有项目组人员陪同，不能搞突然袭击。双方要开诚布公，坦诚相对。<br />
审计的内容：是否按照过程要求执行了相应活动，是否按照过程要求产生了相应产品。</p>
<p>3.3、问题跟踪<br />
对审计中发现的问题，要求项目组改进，并跟进直到解决。</p>
<p><strong>四、SQA的素质</strong></p>
<p>过程为中心：应当站在过程的角度来考虑问题，只要保证了过程，QA就尽到了责任。</p>
<p>服务精神：为项目组服务，帮助项目组确保正确执行过程<br />
了解过程：深刻了解企业的工程，并具有一定的过程管理理论知识<br />
了解开发：对开发工作的基本情况了解，能够理解项目的活动<br />
沟通技巧：善于沟通，能够营造良好的气氛，避免审计活动成为一种找茬活动。</p>
<img src ="http://www.blogjava.net/hengheng123456789/aggbug/143385.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/hengheng123456789/" target="_blank">哼哼</a> 2007-09-07 13:55 <a href="http://www.blogjava.net/hengheng123456789/archive/2007/09/07/143385.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>如何实施SQA（转）</title><link>http://www.blogjava.net/hengheng123456789/archive/2007/09/07/143378.html</link><dc:creator>哼哼</dc:creator><author>哼哼</author><pubDate>Fri, 07 Sep 2007 05:34:00 GMT</pubDate><guid>http://www.blogjava.net/hengheng123456789/archive/2007/09/07/143378.html</guid><wfw:comment>http://www.blogjava.net/hengheng123456789/comments/143378.html</wfw:comment><comments>http://www.blogjava.net/hengheng123456789/archive/2007/09/07/143378.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/hengheng123456789/comments/commentRss/143378.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/hengheng123456789/services/trackbacks/143378.html</trackback:ping><description><![CDATA[http://tech.itdb.cn/n/200601/10/n20060110_71261.shtml<br />
<br />
<p>SQA(软件质量保证)是CMM2级中的一个重要关键过程区域，它是贯穿于整个软件过程的第三方独立审查活动，在CMM的过程中充当重要角色。</p>
<p>SQA的目的是向管理者提供对软件过程进行全面监控的手段，包括评审和审计软件产品和活动，验证它们是否符合相应的规程和标准，同时给项目管理者提供这些评审和审计的结果。因此，满足SQA是达到CMM2级要求的重要步骤之一。</p>
<p><strong>背景</strong></p>
<p>对任何制造业企业来说，质量保证活动都是必不可少的。第一个正式的质量保证和控制职能部门于1916年在贝尔实验室出现，此后迅速风靡整个制造业。软件的质量标准首先出现在20世纪70年代军方的软件开发合同中，此后得到了广泛的应用。在软件越来越普及的今天，"软件质量保证"更成为软件开发企业和最终用户所关心的问题。</p>
<p>实践证明，软件质量保证活动在提高软件质量方面卓有成效。IBM360/370系统软件的开发经验证明了这一点，IBM的有关报告指出，在8年的时间里，软件质量提高了3～5倍，而SQA是其质量体系中的一个重要组成部分。</p>
<p><strong>目标</strong></p>
<p>SQA组织并不负责生产高质量的软件产品和制定质量计划，这些都是软件开发人员的工作。SQA组织的责任是审计软件经理和软件工程组的质量活动并鉴别活动中出现的偏差。</p>
<p>软件质量保证的目标是以独立审查的方式监控软件生产任务的执行，给开发人员和管理层提供反映产品质量的信息和数据，辅助软件工程组得到高质量的软件产品，其主要工作包括以下三个方面：</p>
<p>通过监控软件的开发过程来保证产品的质量；保证生产出的软件和软件开发过程符合相应的标准与规程；保证软件产品、软件过程中存在的不符合问题得到处理，必要时将问题反映给高级管理者。</p>
<p>从软件质量保证的目标中可以看出，SQA人员的工作与软件开发工作是紧密结合的，需要与项目人员沟通。因此SQA人员与项目人员的合作态度是完成软件质量保证目标的关键，如果合作态度是敌意的或者是挑剔的，则软件质量保证的目标就难以顺利实现。 </p>
<p><strong>任务</strong></p>
<p>软件质量保证的主要作用是给管理者提供实现软件过程的保证，因此SQA组织要保证如下内容的实现：<br />
<br />
选定的开发方法被采用；选定的标准和规程得到采用和遵循；进行独立的审查；偏离标准和规程的问题得到及时的反映和处理；项目定义的每个软件任务得到实际的执行。</p>
<p>相应地，软件质量保证的主要任务有以下方面：</p>
<p><strong>SQA审计与评审</strong></p>
<p>其中，SQA审计包括对软件工作产品、软件工具和设备的审计，评价这几项内容是否符合组织规定的标准。SQA评审的主要任务是保证软件工程组的活动与预定义的软件过程一致，确保软件过程在软件产品的生产中得到遵循。</p>
<p><strong>SQA报告</strong></p>
<p>SQA人员应记录工作的结果，并写入到报告之中，发布给相关的人员。SQA报告的发布应遵循3条基本原则：SQA和高级管理者之间应有直接沟通的渠道、SQA报告必须发布给软件工程组但不必发布给项目管理人员、在可能的情况下向关心软件质量的人发布SQA报告。</p>
<p><strong>处理不符合问题</strong></p>
<p>这是SQA的一个重要的任务，SQA人员要对工作过程中发现的不符合问题进行处理，及时向有关人员及高级管理者反映。在处理问题的过程中要遵循两个原则：其一，对符合标准过程的活动，SQA人员应该积极地报告活动的进展情况以及这些活动在符合标准方面的效果；其二，对不符合标准过程的活动，SQA要报告其不符合性以及它对产品的影响，同时提出改进建议。</p>
<p><strong>实施</strong></p>
<p>软件质量保证任务的实现需要考虑几方面的问题。首先，要考虑SQA人员的素质。SQA人员的责任是审查软件设计、开发人员的活动，验证他们是否将选定的标准、方法和规程应用到活动中去，因此，SQA工作的有效执行需要SQA人员掌握专业的技术，例如质量控制知识、统计学知识等。其次，SQA人员的经验对任务的实现同样重要。应该选择那些经验丰富的人来做SQA，同时为SQA人员进行专门的培训，以使他们能够胜任这项工作。第三，组织应当建立文档化的开发标准和规程，使SQA人员在工作时有一个依据、判断的标准，如果没有这些标准，SQA人员就无法准确地判断开发活动中的问题，容易引发不必要的争论。第四，高级管理者必须重视软件质量保证活动。在一些组织的软件生产过程中，高级管理者不重视软件质量保证活动，对SQA人员发现的问题不及时处理。如此一来，软件质量保证就流于形式，很难发挥它应有的作用。第五，SQA人员在工作过程中一定要抓住问题的重点与本质，不要陷入对细节的争论之中。SQA人员应集中审查定义的软件过程是否得到了实现，及时纠正那些疏漏或执行得不完全的步骤，以此来保证软件产品的质量。</p>
<p>此外，做好软件质量保证工作还应该有一个计划，用以规定软件质量保证活动的目标，执行审查所参照的标准和处理的方式。对于一般性项目，可采用通用的软件质量保证计划，而对于那些有着特殊质量要求的项目，则必须根据项目自身的特点制定专门的计划。</p>
<p>总之，软件质量保证是软件过程中的独立审查活动，它从一个侧面反映了现行软件过程能力的成熟度水平。软件质量保证活动是贯穿整个软件过程的，那种到编码之后才开始关心质量的做法是极其错误的。</p>
<img src ="http://www.blogjava.net/hengheng123456789/aggbug/143378.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/hengheng123456789/" target="_blank">哼哼</a> 2007-09-07 13:34 <a href="http://www.blogjava.net/hengheng123456789/archive/2007/09/07/143378.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>SQA报告（转）</title><link>http://www.blogjava.net/hengheng123456789/archive/2007/09/07/143338.html</link><dc:creator>哼哼</dc:creator><author>哼哼</author><pubDate>Fri, 07 Sep 2007 02:50:00 GMT</pubDate><guid>http://www.blogjava.net/hengheng123456789/archive/2007/09/07/143338.html</guid><wfw:comment>http://www.blogjava.net/hengheng123456789/comments/143338.html</wfw:comment><comments>http://www.blogjava.net/hengheng123456789/archive/2007/09/07/143338.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/hengheng123456789/comments/commentRss/143338.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/hengheng123456789/services/trackbacks/143338.html</trackback:ping><description><![CDATA[http://tech.itdb.cn/n/200610/17/n20061017_71272.shtml<br />
<br />
<p>在软件开发实施过程中，SQA是一个独立的角色，而SQA报告也是其工作的一个重点。如何把握好SQA报告的客观性与SQA报告的合适度是一个相当重要的问题。
<p>在SQA工作中，SQA报告有些时候很容易失去一种效力；相信实施过SQA工作的组织中也许都碰到过类似的问题，特别是在刚开始实施的企业中；在缺泛促进力的情况下，SQA的工作常常会降低到统计缺陷的数据，审核一些无关紧要的问题，争论一些无关紧要的问题的情况中。在SQA组织相对保守的情况下。甚至还会不敢去同意任何产品的发布与交付。在项目总结会议或更高一级会议的时候，罗列出的是一长串令人惊讶的缺陷。那么，开发人员又不得不对此花费大量的时间去修改。而结果呢，却发现这些缺陷或FINDING大部分是不影响软件运行质量或交付的缺陷，拼写错误，语句不通等。而当修复这些所谓的缺陷后，很快就可以进行交付了。</p>
<p>那么如何把握SQA报告一个简单的原则呢，它不应该受软件技术经理或项目经理的控制。在项目进展的过程中，特别是对于合同项目来讲，进度总是很紧张的，而技术经理通常不愿支持诸如测试计划不完整，文档不全面，所写文档不正确，存在一些开发人员本身的问题等之类的SQA的报告。SQA应该在此情况下，有能够向更高级别管理层报告的通道。并能明确问题的优先级，争取问题的优先解决。并且确定与协商的过程中需要获得修复关键问题所需要的资源与时间。</p>
<p>在SQA报告的过程中，对报告级别的选反需要进行考虑与权衡。在项目整个开发的过程中，报告级低，有利于和开发及其它协同工作组保持密切的关系。而存在问题却是会降低报告的影响程度。不同的组织要根据本身组织的文化与自已项目的实际情况，定义好相关的机制与通道。</p>
<p>--SQA不能向项目经理报告<br />
<br />
--SQA不宜跨越本地组织进行报告<br />
<br />
--SQA和本地企业的最高管理层之间最多只能存在一个管理级别<br />
<br />
--SQA和公司的高级质量经理之间应该随时保持一种联系<br />
<br />
--SQA在实施中，有可能的情况下，要善于捕捉对质量非常关注的的现场负责人或高管人员。并及时向他们报告。</p>
<p>SQA的工作在国内进行的时间本身并不长，也存在着企业对SQA的一些误解等。而工作进展中的障碍，工作本身缺少的创造性等会使SQA很容易丧失积级性。从而SQA可能会变成一种统计的官撩机构。而坚持贯彻抽象的理念与理想是很难的。在执行的过程中要寻求一种可行性，合理性。</p>
<img src ="http://www.blogjava.net/hengheng123456789/aggbug/143338.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/hengheng123456789/" target="_blank">哼哼</a> 2007-09-07 10:50 <a href="http://www.blogjava.net/hengheng123456789/archive/2007/09/07/143338.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>如何做好质量保证工作（转）</title><link>http://www.blogjava.net/hengheng123456789/archive/2007/09/07/143336.html</link><dc:creator>哼哼</dc:creator><author>哼哼</author><pubDate>Fri, 07 Sep 2007 02:42:00 GMT</pubDate><guid>http://www.blogjava.net/hengheng123456789/archive/2007/09/07/143336.html</guid><wfw:comment>http://www.blogjava.net/hengheng123456789/comments/143336.html</wfw:comment><comments>http://www.blogjava.net/hengheng123456789/archive/2007/09/07/143336.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/hengheng123456789/comments/commentRss/143336.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/hengheng123456789/services/trackbacks/143336.html</trackback:ping><description><![CDATA[http://lazycat1992.blogcn.com/diary,102919184.shtml<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;软件质量保证和软件控制都是得罪人的工作，并不是太好的做。经常是费力不讨好，最后人得罪了不少，力气费了不少，成效不大。而很多质量保证人员也不得不离开所在的单位。很多著名的公司为了搞好质量工作，采用国外先进的管理方法进行质量保证，但也往往遇到水土不服的问题，因为这个问题下岗的高级管理人员也不是一个两个了。为什么在国外很好的质量保证手段在中国就水土不服？为什么质量保证人员总是打一枪换一个地方（很多质量保证人员在一个地方工作的时间往往是2年左右）。如果我们一味强调客观因素，而不是从我们自身找问题，是没有办法真正找到解决这个的方法的。下边就我说说我自己的一些感受。<br />
<br />
1 质量保证工作，重流程，轻实施是我们的一个问题。<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;现在的质量保证人员一般手里都不乏这样或那样的证书，拿我们软件质量保证人员来说，最基本的是ISO9000的证书，然后是CMM/CMMI，似乎没有这些证书就不适合搞质量保证工作。如果让他们规范单位开发流程，他们在几天之内就可以给你拿出一大堆流程文件来，而且可以保证这些问题是符合质量的要求。但一旦到了实施阶段，就会发现这些流程不能适应公司的具体要求，不是太繁琐，就是开发人员搞不明白，和技术人员矛盾不断涌现，如果你的对手只是普通的技术人员那算你走运，你还可以挺几年，但如果是和公司几个核心的开发人员产生矛盾，那你准备卷铺盖走人吧。一个公司没有质量保证人员不会死，但核心技术人员如果走了，公司就会面临倒闭的问题，再傻的老板到这个时候都会挥泪斩马谡的。所以，想真正实施好公司的质量保证一定要重流程，更重实施。<br />
<br />
2 质量保证工作，重知识，轻经验。<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;我这里说的知识是指质量保证知识，经验是指实际工作经验，拿我们做SQA的来说就是你的开发经验，我遇到了很多SQA只有1-2年的开发经验，或者干脆就没有开发经验。想一下，没有调研经验的人去给一帮参加过7，8个大项目调研的人将如何调研，一个没有编写过设计文档的人，在给一群架构师讲解如何设计软件，一个没有代码编程经验的人给一帮代码量超过20万行的程序员讲代码规范，你说是不是一个可笑的事情，开发人员都是很实在的人（甚至有时候可以说比较傻的人），他们长期的工作经验使他们只信服那些实力比他们强的人，如果你有充足的实际工作经验（软件开发经验），说的问题到位，能够将质量保证理论和实际开发结合，可以帮助他们解决实际问题，他们很快就会接受你，否则他们会对你不屑一顾。而你的质量保证根本无法实施。<br />
<br />
3 质量保证人员不要抢功劳。<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;一个公司就象一个盘子，盘子里的蛋糕就这么大。你进来了需要从别人的蛋糕里切一块，别人自然会有反弹，作为质量保证人员在这个时候最好的方法就是退后一步，将功劳让给开发人员。质量保证工作会涉及到公司的各个部门，各项工作，会影响公司几乎所有的工作人员，如果在这个时候，你想把所有的功劳都抢到自己手里，会树敌无数，一旦这种情况出现，一个是你的工作无法推行（基本没有人支持你），另外一个就是你不得不离开这个公司了。但如果你是聪明人，你帮助开发人员不断的改善他们的工作，他们可以很好的完成自己的开发工作，加班时间大大减少，产品质量不断提高，不断获得客户和领导的表扬，而且加了工资，你想在这种情况下，他们怎么会不配合你的工作？所以说，好的质量保证人员永远是站在成功者背后的那个人，他默默地做着自己的工作，为别人做绿叶。一个良好的心态才能真正搞好质量保证工作。在这里再多说一句，任何人的功劳都会得到回报。当公司的整体质量提升了，公司的效益提高了，你觉得老板会不明白这是谁的功劳吗？<br />
<br />
4 质量保证工作，不能一开始就全面开花，而要由点到线，由线到面。<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;上边说了质量保证工作会涉及到单位工作的各个方面，在你刚进入到公司的时候，立刻会发现很多问题，但如何着手，需要一个谋划，一般来说比较容易见效果的，投入不大的方面是你首先要考虑的（有时候还不是公司最主要的质量问题）。如果你能在短时间让别人看到你的工作效果，见到成果，认可你的实力，才可能和他们达成一定的协作关系，为以后的质量保证工作铺平道路。另外需要说的，质量保证需要不断的投入人力和物力，而这些东西在你刚进入公司的时候往往是不具备的，分清事情的轻重缓急，难易程度，逐步实施质量保证。可以保证你的工作的顺利实施。<br />
<br />
5 做质量保证工作，最重要的是做人的工作，这里分两个问题来说明，一个是你要有自己可信赖的人员。<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;打铁先要自身硬，做质量保证工作，不但你最好有技术背景，精通软件开发，遵守公司的规章制度，你还要有一支可培养，可信赖的质量保证队伍，一个人的精力和能力毕竟是有限的，而一旦你形成了一个良好的质量保证队伍就可以保证你的工作越做越有成效。另外一个就是善于借力打力。上边说过，绝大多数开发人员都渴望成功，他们缺少的只是经验，将你的经验和知识和他们分享，让他们成为的朋友，成为工作的伙伴，成为你的编外质量人员，这对那些质量保证人员编制比较少的质量保证部门格外重要。<br />
<br />
6 质量保证工作，遇到问题，先解决问题，找出原因，进行改进，而不要一味地追查责任。<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;质量保证人员的责任是改进质量工作，提高整个公司的工作效率，而不是老板，去追查这是谁的责任。当一个问题发生的时候，所有的人员都在往后躲。怕承担责任，作为质量人员如果在这个时候，首先去追查责任，那你就大错特错了，首先我们要解决问题，看有什么补救的方法，先想办法将事情办好，然后仔细分析问题产生的原因，找到如何避免这个问题再次发生，至于责任在哪个责任人，自有具体的管理人员负责，这不是我们的责任，说简单一点，我们的责任就是协助一切工作人员做好他们的工作，而不是给人员裹乱。
<img src ="http://www.blogjava.net/hengheng123456789/aggbug/143336.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/hengheng123456789/" target="_blank">哼哼</a> 2007-09-07 10:42 <a href="http://www.blogjava.net/hengheng123456789/archive/2007/09/07/143336.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>