软件质量保证过程.doc_第1页
软件质量保证过程.doc_第2页
软件质量保证过程.doc_第3页
软件质量保证过程.doc_第4页
软件质量保证过程.doc_第5页
免费预览已结束,剩余4页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

软件质量保证过程海恒达远科技有限公司2005年3月1日1、前言1.1 范围本文对软件质量保证活动中涉及到的人员提供指导,使得软件开发中不同的角色清楚自己在什么时间做什么事情。1.2 目的本文的目的是描述软件质量保证的所有活动。文档中涉及到的角色均以粗体表示,以便各角色更明确自己的工作。本文档可以帮助我们规范化公司的软件质量保证过程。1.3 文档概述第一部分:描述本文档的范围和目的,以及SQA过程涉及到的角色。第二部分:培训。第三部分:详细描述质量保证过程的活动。第四部分:附录。1.4 有关的角色及职责角色职责描述项目设计师组织和进行Quality review开发人员单元测试,alpha 测试测试负责人制定测试计划,确保测试过程正常进行测试人员Beta测试,性能测试2、培训对相关人员进行软件质量保证过程的培训,培训包括两部分:1、 软件质量保证过程。2、 过程用到的工具,包括Bugzilla, Junit, Jmeter,Webtest等3、软件质量保证活动软件质量保证是为保证产品和服务充分满足消费者要求的质量而进行的有计划、有组织的活动。软件的质量保证活动和一般的质量保证活动一样,是确保软件产品从诞生到消亡为止的所有阶段的质量的活动,即是为了确定、达到和维护需要的软件质量而进行的所有有计划、有系统的管理活动。质量保证是面向消费者的活动,是为了使产品实现用户要求的功能,站在用户立场上来掌握产品质量的。这种观点也适用于软件的质量保证。软件质量保证的主要手段是检验,检验有两种方式: Quality review,检查阶段产品是否与要求一致,防止软件差错到下个过程被放大。一般在各阶段的中途或向下一阶段移交时进行的检查。因为这时候还没有结果产品,所有的检查都是通过评审的形式实现的。(Verification) 测试,检验开发出来的软件的特性是否与需求相符,确保所有的软件功能需求都能得到满足,所有的软件性能需求都能达到,所有的文档都是正确的且便于使用。检查方式是由测试人员对产品结果进行正式全面的测试。(Validation)另外,为了保证程序源代码的可维护性,公司有严格而合适的编码规范以约束程序员的编码习惯。其中借助工具Checkstyle来检查java程序的编码规范。3.1 Quality review3.1.1 Quality review 概述目的:确保开发的过程结果的质量。时间:每个主要阶段上至少要进行一次Quality Reviews。可以根据工作和进程的需要安排Quality Reviews。它可以持续几天时间。形式:会议形式。由项目主管或设计师来发起和主持,一般要求项目主管或设计师提前将会议邀请发给需要参加会议的人。必要时需要将会议的内容大体介绍给大家,以便他们做好准备。参加人:团队中与本技术有关的所有人员和邀请的项目组之外的其他人员。该类会议一般会邀请有关领域的专家。活动: 讨论被审核对象的有关问题 深入地审核系统的体系架构和所使用的技术 确认技术过程(Build/Release,源码控制,等)会议记录:由设计师或指定他人在当天将会议的内容整理出来并置于配置管理之下。原则: 某阶段未通过阶段评审不得进入下一个软件研制阶段; 评审时对事不对人,评审的是产品,而不是评审生产者; 评审就要挑刺,找问题、缺陷和隐患; 评审组的人员面越广越好; 评审组不作无休止的争论和辩驳,将争论点记录下来,供以后甄别; 评审只是提出问题,没有解决问题的任务; 作用: 技术把关,避免软件人员的想当然; 概念沟通,吸收用户和总体人员参加,审查软件人员理解的正确性; 集思广益,吸收有关的分系统人员参加,从不同侧面确认软件的协调性; 总结汇报,使实时控制系统总指挥。设计师了解软件的进度、问题和要求,作出新的部署。 3.1.2 Checklist为了确保Quality review的质量,需要列出软件开发不同阶段上的Review内容。利用这个Checklist,设计师根据项目的具体内容安排合适的Quality review。公司给出了一个可参考的checklist,可以用来指导Quality review,也可以用来跟踪Quality review的执行。3.1.3 通过准则软件质量保证工作是开发团队整体的工作,只有每个人都将自己角色所涉及的工作质量把握好,才能保证项目整体的质量。这里将针对开发过程给出每个阶段的退出标准。即,只有达到了某个要求才可进入下个阶段。项目主管和设计师以此来推进项目的进度。发现定义设计概念实现Working/ShareIntegration Alpha testBeta testDeploy审核通过审核通过审核通过审核通过单元测试通过,Code review通过集成成功,记录日志Alpha测试结果审核通过成功发布,记录日志Beta测试结果审核通过2.1.4 Review notes为了更有效地开展Quality review工作,公司给出了一个可参考的review notes。利用这个表格,设计师可以更好地把握会议的重点。3.2 测试在分析、设计等各个开发阶段结束之前,对软件进行了严格的Quality review,但由于人们能力的局限性,审查不能发现所有的错误,而且在编码阶段还会引进大量的错误。软件测试就是在软件投入运行之前,对需求分析、设计规格说明书和编码的最终复审,是软件质量保证的关键步骤,是为了发现错误而执行程序的过程。测试不仅仅是运行程序,然后将发现的问题记录下来的过程。他的真正目的是想以最少的时间和人力找出软件中潜在的各种错误和缺陷。软件测试在软件生存期中横跨两个阶段:通常在编写出一个模块之后就对它做必要的测试(称为单元测试),编码和单元测试属于软件生存期中的同一个阶段。在结束这个阶段之后,对软件系统还要进行各种综合测试,这是软件生存期中的另一个独立的阶段,即测试阶段。它主要包括功能测试、性能测试、用户接受性测试。从测试方法上来讲,单元测试属于白盒测试;测试阶段的测试属于黑盒测试。对功能测试,又分为alpha测试阶段和beta测试阶段。Alpha测试由开发人员来做,Beta测试由专门的测试人员来做。测试阶段的测试,是在模拟的环境(可能就是开发环境)下,运用黑盒测试的方法,验证所测软件是否满足需求规格说明书列出的需求。由测试负责人负责制定测试计划,确保测试过程正常进行。3.2.1 单元测试定义单元测试集中检验软件设计的最小单元-模块。测试之前必须先通过编译程序检查并改正所有语法错误,然后用详细设计描述做指南,对重要的执行通路进行测试,以便发现模块内部的错误。单元测试要求开发人员来编写测试用例并执行测试。测试内容针对一个模块进行五方面的检查:模块模块接口错误处理边界路径局部数据结构 模块接口测试。这方面的错误如,调用所测模块时的输入参数与模块的形式参数在个数、属性、顺序上是否匹配;输出给标准函数的参数在个数、属性、顺序上是否正确;全局变量的定义在个模块中是否一致,等。 局部数据结构测试。这方面的错误如,不正确或不一致的数据类型说明;使用尚未初始化的变量;错误的初始值或错误的缺省值;变量名拼写错或书写错,等。 路径测试。这方面的错误如,不正确的逻辑运算符;关系表达式中不正确的变量和比较符;错误的或不可能的循环终止条件,等。 错误处理测试。这方面的错误如,出错的描述难以理解;出错的描述不足以对错误定位,不足以确定错误的原因;显示的错误与实际的错误不符,等。 边界测试。数据流、控制流中刚好等于、大于或小于确定的比较值时出现的错误。测试方法通常有两种测试方法: 单元静态检查,不要求实际执行所测程序,而是以一些人工的模拟技术和一些类似动态分析所使用的方法对程序进行分析和测试。 单元动态测试 ,通过执行程序来测试有没有问题。测试工具使用Junit工具来帮助实施单元测试,也包括Junit工具的扩展Cactus等。322 集成测试定义集成测试是为了确保测试用例能够正常运行而由开发人员来执行的测试测试内容测试软件或系统的全部流程、用例是否可以正常运行。测试方法首先需要制定测试计划,规定要做测试的范围,要求,方法等。还需要制定一组测试步骤,描述具体的测试用例,用例应该可以遍历到全部的流程。3.2.3功能测试定义为了保证软件能满足功能要求而做的测试。功能测试是由专门的测试人员对系统进行的有组织的详细全面的测试。测试内容软件的所有功能。针对公司Java开发Web测试的特点,需要额外注意以下几方面的测试: 操作系统+ 浏览器兼容性测试:在不同操作系统 (win,mac,unix)和不同版本的浏览器(IE4.0,IE5.0,IE5.5,NN6,NN4.5)组合情况下web应用能否正确执行; 可用性测试:主要从使用的合理性和方便性等角度对软件进行检查,是专为“对用户友好”的特性进行测试; 超链接检查:检查是否页面上所有的连接都正确链接,是否存在broken links; 图形显示检查:检查是否所有的图片都被正确装载,在不同的浏览器、分辨率下图片能否正确显示(包括位置、大小); 分辨率检查:在不同分辨率设置情况下,窗口的滚动条能够正确滚动,屏幕刷新是否正确; 调整窗口检查:在调整浏览器窗口大小时,屏幕刷新是否正确; 外部网络访问检查:从外部网络拨号访问web应用以验证连接、功能和性能;测试方法首先需要制定测试计划,规定要做测试的范围,要求,方法等。还需要制定一组测试步骤,描述具体的测试用例,旨在说明软件与需求是否一致。测试方案测试方案包括预定要测试的功能,应该输入的测试数据和预期的结果。设计测试方案的目标是,确定一组最可能发现某个错误或某类错误的测试数据。几种主要的黑盒测试的设计技术有: 等价类划分。将所有可能的输入数据,即程序的输入域划分为若干部分,然后从每一部分中选取少数。不光考虑输入等价类,有时还需要考虑输出等价类。 边界值分析。对等价类划分的补充,不是从等价类中随便选一个数据作为代表,而是选几个特定值,如等于、刚刚大于、刚刚小于边界值。 其他方法。回归测试当软件经过测试发现错误,程序员对一个错误的修改可能会引起另外的错误出现,所以,在修改之后还要进行测试,这种测试就叫回归测试。在整个产品提交之前要进行正式的回归测试,有必要给出回归测试的要求: 每次测试需要将所有的功能都走一遍; 对不同状态的bugs要求check一遍,重新定他们的状态,特别关注状态改变的bugs。 check Bugs时,注意走一下与此Bug 有关联的功能,以及与此Bug相类似的功能。为了更快更有效地进行回归测试,借助自动测试工具Webtest来完成部分的回归测试工作。3.2.4性能测试定义为了保证软件能满足性能要求而做的测试。本部分测试由专门的测试人员来设计和执行测试内容本着公司Web testing的特点,只提出下面三方面的测试: 安全测试:安全性测试是要检验在系统中已经存在的系统安全性、保密性措施是否发挥作用,有无漏洞。 负载测试:通过模拟大批量用户的并发请求,给系统施加较大的负载,这时检测整个系统处理交易的能力。 压力测试:在反常数量或资源(使用的容量达到规定的极限)的情况下执行应用程序,检测中间件系统在长时间、高负载情况下的运行处理能力,从而检验系统的稳定性。测试方法设计测试用例,模拟错误数据和软件界面可能发生的错误,测试各项性能是否达到预期的指标。测试工具使用Jmeter等工具来帮助测试系统的负载。3.2.5 用户接受性测试(UAT)定义验收测试的目的是向未来的用户表明系统能够象预定要求那样工作。要求必须有用户积极参与,或者以用户为主进行,测试人员来协助。测试内容主要对功能要求、性能要求、和文档的完整性进行检查。这里强调下面几点:1、 主要使用生产中的实际数据进行测试2、 对用户特别感兴趣的功能,需要增加一些测试3、 需要按照用户的使用步骤设计一些用例4、 可能会忽略一些纯技术性的特性测试方法一般使用黑盒测试方法。3.2.6 Bug管理管理内容Bug管理解决下面几个问题:1、 开发人员按照Bug的等级优先修复严重的问题2、 开发人员和测试人员之间的协作沟通方便有效3、 测试人员的Bug录入要方便有效4、 开发人员定位自己的Bug5、 Bug的跟踪6、 Bug的查询方便有效7、 方便准确地进行Bug统计Bug等级(Severity)This field describes the impact of a bug. Blocker - Blocks development and/or testing work. Critical - Crashes, loss of data, severe memory leak. Major - Major loss of function. Normal - This is the run of the mill bug. Minor - Minor loss of function, or other problem where an easy workaround is present. Trivial - Cosmetic problem like misspelled words or misaligned text. Enhancement - Request for enhancement.Bug管理工具借助Bugzilla来管理Bug。Bugzilla是一个Bug跟

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论