浅谈软件质量保证

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

浅谈软件质量保证

摘要:

Software Quality Assurance软件质量保证(SQA)是建立一套有计划,有系统的方法,来向管理层保证拟定出的标准、步骤、实践和方法能够正确地被所有项目所采用

前言:

SQA的由来:随着第一个正式的质量保证和控制方案在1916年贝尔实验室的出现,整个制造业都认可了这一方案,时至今日每个公司都有其保证其产品质量的机制,公司对质量的保证也渐渐成为其核心的市场策略。对于软件开发来说,一个项目的主要内容是:成本、进度、质量。软件本身作为一种无形产品,其质量指的是:“系统,部件或者过程满足顾客或者用户需要或期望的程度”。在20世纪五六十年代,质量保证曾经只由程序员承担。而正规的软件质量保证标准首先在20世纪70年代初军方的软件合同中出现,此后迅速传遍整个商业世界。提出而随着市场化发展的成型,任何软件公司对自己产品的质量问题越来越关注,测试所花费的成本越来越多。在起初国外很多的大软件公司公司比如IBM、CA等,SQA的职责就是测试(主要是系统测试)。后来,由于缺乏有效的项目计划和项目管理,留给系统测试的时间很少。另外由于软件最终使用者的不专业性,需求变化太快,没有完整的需求文档,测试人员就只能根据自己的想象来测试。这样一来,测试就很难保障产品的质量,促进了事先预防的SQA职能的产生。随后随着软件开发模型的不断演化和发展CMM模型的出现,它引入了“全面质量管理”的思想,至此许多公司将SQA人员独立于项目组,以保证评价的客观性。专业的SQA人员应运而生。

简介:

软件质量保证(SQA)是建立一套有计划,有系统的方法,来向管理层保证拟定出的标准、步骤、实践和方法能够正确地被所有项目所采用。其根本目的是使软件过程对于管理人员来说是可见的。它通过对软件产品和活动进行评审和审计来验证软件是合乎标准的。软件质量保证组在项目开始时就一起参与建立计划、标准和过程。这些将使软件项目满足机构方针的要求。

SQA的基本目标:

1: 软件质量保证工作是有计划进行的。

2: 客观地验证软件项目产品和工作是否遵循恰当的标准、步骤和需求。

3: 将软件质量保证工作及结果通知给相关组别和个人。

4: 高级管理层接触到在项目内部不能解决的不符合类问题。

具体分析:

1:软件质量所包含的因素及软件质量评价标准:

软件质量包含的因素:正确性,可靠性,效率,完整性,可用性可维护性,灵活性,可测试性,可移植性,可复用性,互操作性等等。

软件质量评价标准:质量需求准则,着眼点是是否满足用户的要求;质

量设计准则,开发者在设计实现时是否按软件需求保证了质量。质量度

量准则,为质量度量规定了一些检查项目。

从事专业SQA的人员所应具备的基本素质,工作中的基本职能及与其他相似职能的区别:

SQA人员所应具备的基本素质:

按照软件界已经达成的共识:影响软件项目进度、成本、质量的因素主要是“人、过程、技术”。首先要明确的是这三个因素中,人是第一位的。SQA 小组的成员首先应当时刻以客户的观点看待软件。从事SQA工作由于要按照相应的标准对专业的行为加以监管,深刻了解企业的工程,并具有一定的过程管理理论知识对开发工作的基本情况了解,能够理解项目的活动,因此首先应具备较高的关于软件开发方面的知识;在工作中过程为中心:应当站在过程的角度来考虑问题,只要保证了过程,QA就尽到了责任;还应具有服务精神即为项目组服务,帮助项目组确保正确执行过程;另外应善于沟通,能够营造良好的气氛,避免其工作本身成为一种找茬活动。我所在的小组在课程实践过程中就出现过负责设计的同学对编码阶段的同学出现质疑,最终出现不愉快的事情。

工作中的基本职能以及于其他相似职能的区别:

要做好SQA工作首先应该明确SQA人员的职能以及与QC、SEPG的区别。

QC:检验产品的质量,保证产品符合客户的需求;是产品质量检查者;

SEPG:制定过程,实施过程改进;

而SQA人员的主要工作为审计过程的质量,是过程质量审计者,其基本职能为确保过程被正确执行。其本身并不参与过程的制定,A的职责就是确保过程的有效执行,监督项目按照过程进行项目活动;它不负责监管产品的质量,不负责向管理层提供项目的情况,不负责代表管理层进行管理,只是代表管理层来保证过程的执行。

3:SQA活动:

软件质量保证由各种任务构成,这些任务分别与两种不同的参与者有关:做设计工作的软件工程师和SQA小组成员。

软件工程师通过采用可靠的技术方法和措施,进行正式的技术评审,执行计划周密的软件测试来考虑质量问题(并完成软件质量保证和质量控制活动)

SQA小组成员的职责为辅助软件工程小组得到高质量的最终产品。其主要工作如下:

为项目准备SQA计划。该计划在制定项目计划实制定,由所以感兴趣的相关部门评审。该计划将控制由项目组和SQA小组执行的质量保证活动。在计划中应标识一下几点:需要进行的评价;需要进行的审计和评审;项目可用的标准;错误报告和跟踪的规程;由SQA小组产生的文档;为软件项目提供的反馈数量。另外还需明确最终审计的结果报告给谁。

参与开发该项目的软件过程描述。软件工程小组为要进行的工作选择一个过程。SQA将评审过程描述以保证该过程与组织政策,内部软件标准,外界所订标准(如ISO9001)以及软件项目计划的其他部分相符。

评审各项软件工程活动,对其是否符合定义好的软件过程进行核实。SQA小组识别记录和跟踪与过量的偏差,并对是否已经改正进行核实。

审计指定的软件工作产品,对其是否符合定义好的软件过程中的相应部分进行核实。SQA小组对选出的产品进行评审;识别,记录和跟踪出现的偏差;对是否已经改正进行核实;定期将工作结果向项目管理者报告。在审计过程中。注意审计一定要有项目组人员陪同,双方要开诚布公,坦诚相对。审计的内容主要包括:是否按照过程要求执行了相应活动,是否按照过程要求产生了相应产品。

确保软件工作及工作产品中的偏差已被记录在案并根据预定规程进行处理。偏差可能出现在项目计划,过程描述,采用的标准或技术工作产品中。

记录所有不符合的部分并报告给高级管理者。对不符合的部分进行跟踪直至问题得到解决。

4:软件评审:软件评审是软件工程过程中的过滤器。评审被用于软件开发过程的多个不同的点上,起到发现错误和缺陷节日引发排错活动的作用。软件评审起到的作用是净化分析,设计和编码的软件工程活动。在课程实践过程中由于初始需求分析的不明确以及后来概要设计过程中关键点的遗漏所引发的错误曾经导致我们小组代码的两次大部分返工,现在看来在课程实践过程中没有进行软件评审所致

5:正式技术评审(FTR)

正式技术评审是一种由软件工程师和其他人进行的软件质量保障活动。

正式技术评审的目标是:发现功能、逻辑或实现的错误;证实经过评审的软件的确满足需求;保证软件的表示符合预定义的标准;得到一种一致的方式开发的软件;使项目更易管理。

评审会议一般由3-5人参加,不超过2小时,由评审主席、评审者和生产者参加,必须做出下列决定中的一个:工作产品可不可以不经修改而被接受;由于严重错误而否决工作产品;暂时接受工作产品。

评审总结报告和记录保存:评审会议结束时,生成一份评审问题列表,完成一份包括“评审什么?由谁评审?结论是什么?”的评审总结报告。

评审总结报告是项目历史记录的一部分,标识产品中存在问题的区域,作为行政条目检查表以指导生产者进行改正。

评审指导原则:评审产品,而不是评审生产者。注意客气地指出错误,气氛轻松;制定日程并且遵守日程;不要离题,限制争论和辩驳。有异议的问题不要争论但要记录在案;对各个问题都发表见解。问题解决应该放到评审会议之后进行;做书面笔记;限制参与者的人数并坚持事先做准备;为每个要评审的工作产品建立一个检查表。应为分析、设计、编码、测试文档都建立检查表。;为了让评审有效,为FTR分配资源和时间;为了提高效益对所有评审进行有意义的培训;评审以前所做的评审。

相关文档
最新文档