软件测试流程实施方案一、流程的意义从一个软件企业的长远发展来看,如果要提高产品的质量首先应当从流程抓起,规范软件产品的开发过程。这是一个软件企业从小作坊的生产方式向集成化规范化的大公司迈进的必经之路,也是从根本上解决质量问题,提高工作效率的一个关键手段。软件产品的开发同其它产品(如汽车)的生产有着共同特性,即需要按一定的过程来进行生产。在工业界,流水线生产方式被证明是一种高效的,且能够比较稳定的保证产品质量的一种方式。通过这种方式,不同的人员被安排在流程的不同位置,最终为着一个目标共同努力,这样可以防止人员工作间的内耗,极大的提供工作效率。并且由于其过程来源于成功的实例,因此其最终的产品质量能够满足过程所设定的范围。软件工程在软件的发展过程中吸取了这个经验并把它应用到了软件开发中,这就形成了软件工程过程,简单的说就是开发流程。不管我们做哪件事情,都有一个循序渐进的过程,从计划到策略到实现。软件流程就是按照这种思维来定义我们的开发过程,它根据不同的产品特点和以往的成功经验,定义了从需求到最终产品交付的一整套流程。流程告诉我们该怎么一步一步去实现产品,可能会有那些风险,如何去避免风险等等。由于流程来源于成功的经验,因此,按照流程进行开发可以使得我们少走弯路,并有效的提高产品质量,提高用户的满意度。目前流行的流程方法有很多种,如瀑布模型、螺旋模型、RUP模型、IPD流程等,不同的过程模型适合于不同类型的项目。流程的意义续二、软件开发流程二、软件开发流程1.需求分析:通过对客户业务的了解和与客户对流程的讨论对需求进行基本建模,最终形成需求规格说明书。2.总体设计:通过分析需求信息,对系统的外部条件及内部业务需求进行抽象建模,最终形成概要设计说明文档。3.详细设计:此部分在对需求和概要设计的基础上进行系统的详细设计(也包含部分代码说明)。4.开发编程:对系统进行代码编写。5.测试分析与系统整合:对所有功能模块进行模拟数据测试及其它相关性测试并整合所有模块功能。6.现场支持:系统上线试运行进行现场问题记录、解答。7.系统运行支持:系统正式推产后,对系统进行必要的维护和BUG修改二、软件开发流程常见敏捷开发流程比较速度是企业竞争致胜的关键因素,软体专案的最大挑战在于一方面要应付变动中的需求,一方面要在紧缩的时程内完成专案,所以软体团队除了在技术上必须日益精进,更需要运用有效的开发流程,以确保团队能够发挥综效。这正是AgileProcess(敏捷的软体开发流程)于近年来兴起的主要原因,本文将介绍数种广为接受的软体开发流程,及其在运用上的建议。二、软件开发流程常见敏捷开发流程比较——AgileProcessAgileProcess(敏捷的开发流程)是一种软体开发流程的泛称,AgileProcess具有下列几项共通的特性:1).客户与开发人员形成密切合作的团队,因为客户无法于初期定义完整的规格,而开发人员于开发过程中也常常无法知悉外在环境或业务的变动,所以需要两者密切合作方能开发适用的软体。2).专案最终的目标是可执行的程式,因此所有的中间产品必须经过审慎评估,确认有助于最终目标,才需要制作中间产品。3).采用Iterative与Incremental方式分阶段进行,密集review是否符合需求。4).流程可以简单,但规划与执行必须严谨。5).强调团队合作,赋予高度的责任,团队有自主权得以因应变化做调整。二、软件开发流程常见敏捷开发流程比较——RationalUnifyProcessRUP为IBMRational公司经过多年的研发与经验所提出的软体开发流程,其内容含盖Businessmodeling,RequirementModeling,LogicalDesign,Implementation,Testing,Deployment等软体开发生命周期的直接工作,与ProjectManagement,Change&ConfigurationManagement,Environmentsupport等支援性工作。RUP的内容非常丰富,不同的专案需要不同调整,IBMRational提供RUPworkbench工具,方便调整RUP,并公布于Web,方便专案成员遵循统一的流程规范进行工作。RUP的主要精神为:1.专案进行采用Iterative程序分阶段渐进地完成专案功能;2.广泛使用VisualModeling于商业需求分析、系统分析与系统设计;3.强调架构设计;4.对每项工作所需要的技术、工具、做法、范本、检查项目均有详细的定义,架构完备且具有可调整的弹性。因为RUP的流程规范与相关技术较复杂,所以导入时必须注意几个因素:1.主管的支持以确保足够的资源投入;2.分阶段导入;3.适当的训练与密切的顾问咨询;4.使用Modeling技术时需要考量Coding的实作环境;5.良好团队的管理,以沟通、耐心与坚持解决变革的人性阻力。二、软件开发流程常见敏捷开发流程比较——EXtremeProgrammingXP亦称为终极流程,是最轻量级的开发流程,其最主要的精神是『在客户有系统需求时,给予及时满意的可执行程式』,所以最适合需求快速变动的专案。XP经过6年的实作与修改,已演化为精致的开发流程,但仍不失其精简的特性,它强调客户所要的是workable的执行码,所以把与撰写程式无关的工作降至最低,并要求客户与开发人员最好以side-by-side的方式一起工作。XP开发流程的基本步骤为:1.开发人员随时可以和客户进行有效沟通,撰写userstories以确认需求。2.简易快速的系统设计,撰写独立的验证程式以解决特殊困难的问题,找出演算法即可丢弃验证程式。3.规划多次小型阶段的专案计划,以最快速度完成每一阶段的程式交付客户,客户负责Acceptancetests;4.Coding前必须完成UnitTest与Acceptancetests程序,所有模组整合前都须经过UnitTests;5.开发人员必须快速回应Bug与需求变更;6.要求二人一组使用一台电脑设计程式,当一人coding时,另一人负责思考与设计;7.程式必须符合程式规范,并常做程式的重整(Refactoring)。XP属于较精简的流程,于导入应注意几件事情:1.最好有顾问给予协助;2.持续的Review;3.可适当调整流程,但不可失去其基本精神。二、软件开发流程常见敏捷开发流程比较——SCRUMSCRUM开发流程是AgileProcess的一种,以英式橄榄球争球队形(Scrum)为名,基本假设是『开发软体就像开发新产品,无法一开始就能定义FinalProduct的规程,过程中需要研发、创意、尝试错误,所以没有一种固定的流程可以保证专案成功』。Scrum将软体开发团队比拟成橄榄球队,有明确的最高目标,熟悉开发流程中所需具备的最佳典范与技术,具有高度自主权,紧密地沟通合作,以高度弹性解决各种挑战,碓保每天、每个阶段都朝向目标有明确的推进,因此SCRUM非常适用于产品开发专案。SCRUM开发流程通常以30天为一个阶段,由客户提供新产品的需求规格开始,开发团队与客户于每一个阶段开始时挑选该完成的规格部份,开发团队必须尽力于30天后交付成果,团队每天用15分钟开会检视每个成员的进度与计画,了解所遭遇的困难并设法排除。1.测试工作总体流程图说明:集成测试和系统测试的反馈意见可能导致设计文档(需求或数据库)的修改。三、测试工作流程图2.需求阶段流程图三、测试工作流程图3.单元/集成测试阶段流程图三、测试工作流程图4.系统测试阶段流程图三、测试工作流程图5.压力测试流程图三、测试工作流程图6.性能测试流程图三、测试工作流程图