®IBMSoftwareGroup©2006IBMCorporation如何打造/管理您的测试团队?IBMRational陈大金chendj@cn.ibm.comIBMSoftwareGroup|Rationalsoftware2议题企业面临的挑战软件测试的改革之路有步骤地构建高效的测试团队IBMSoftwareGroup|Rationalsoftware3外面的世界很精彩市场竞争对软件企业提出了更高的要求产品功能的先进性产品类型的多样性产品质量的可靠性技术发展不断挑战着软件企业的开发应用领域不断深入开发周期逐渐缩短开发难度日益增加质量--已经成为企业的核心竞争力IBMSoftwareGroup|Rationalsoftware4我们的世界很无奈企业面临的挑战缺少测试概念和方法,没有测试方面的专业知识缺少先进有效的测试流程且不规范研发测试混杂,没有专业的测试人员和体系缺乏先进的工具,产品质量不能满足市场和客户的需求IBMSoftwareGroup|Rationalsoftware5议题企业面临的挑战软件测试的改革之路有步骤地构建高效的测试团队IBMSoftwareGroup|Rationalsoftware6软件测试的改革之路人员工具测试团队流程规范软件测试观念的升级软件测试管理的进步测试流程的改进优化测试管理技术的提升IBMSoftwareGroup|Rationalsoftware7软件测试的改革之路-观念的升级必须从企业发展战略的高度认识质量和测试加强对软件质量的重视程度加深对软件测试作用的认识必须让企业高层管理人员真正支持全面质量改进提升质量及测试部门在企业中的地位从资源方面加强对质量及测试部门的支持研发和测试两手抓,两手都要硬必须让观念的改革落实到具体行动企业高层亲自负责推动质量管理流程构建高效先进的测试管理平台协助流程执行形成重视软件质量为荣的工作氛围人员工具测试团队流程规范IBMSoftwareGroup|Rationalsoftware8软件测试的改革之路-管理的进步重视质量管理及测试部门的团队建设正确定位和划分测试团队角色重视提高测试人员的技术水平和职业素养建立良性的项目评估机制和人员职业发展规划重视建立先进的测试管理平台正确定义测试团队执行的测试类型摆脱手工作坊式的管理模型使用先进工具确保过程的自动化人员工具测试团队流程规范IBMSoftwareGroup|Rationalsoftware9软件测试的改革之路-流程的优化选择业界领先的理念和标准构建企业测试流程明确测试所要达到的质量标准不能僵化的生搬硬套软件测试流程不能削足适履的一味生搬硬套制订裁减流程的标准,如:技术能力、资源现状、客户需求等不能随机的对已制订好的流程添减取舍已运行的流程不应随项目变化而频繁改动企业高层应对流程的执行负责人员工具测试团队流程规范IBMSoftwareGroup|Rationalsoftware10软件测试的改革之路-技术的提升明确软件测试是软件工程中的专业技术不要轻视软件测试中的技术含量保持与业界质量管理理念和测试方法论的同步制订专业、切实的人才培训计划明确先进的测试工具是质量保证的利器使用先进的测试管理平台提升整体管理水平使用优秀的测试工具保证各项测试指标的实施人员工具测试团队流程规范IBMSoftwareGroup|Rationalsoftware11议题企业面临的挑战软件测试的改革之路有步骤地构建高效的测试团队IBMSoftwareGroup|Rationalsoftware12构建高效的测试团队第一步:选择先进的方法论构筑指导流程第二步:选择合适的人才建设测试团队第三步:选择强大的技术平台搭建环境第四步:制订标准和规范,稳步提高质量人员工具测试团队流程规范IBMSoftwareGroup|Rationalsoftware13第一步:选择先进的方法论构筑指导流程RationalUnifiedProcess为全面质量管理保驾护航IBMSoftwareGroup|Rationalsoftware14实施步骤一:建立企业测试流程(1)了解RUP中提供的核心测试流程明确测试需要遵循的步骤明确测试需要涉及的角色明确测试过程的交付件明确测试过程需要的工具IBMSoftwareGroup|Rationalsoftware15实施步骤一:建立企业测试流程(2)通过裁剪,定制符合企业的测试流程明确企业的软件开发过程或模型根据软件开发模型制订测试流程定义测试流程中的测试活动,如:制订测试计划设计测试测试准备执行测试评估测试结果缺陷跟踪IBMSoftwareGroup|Rationalsoftware16实施步骤一:建立企业测试流程(3)通过RMC,发布定制的测试流程将企业的测试流程形成可视化的指南在企业中明确测试团队的工作范围让其他部门了解如何与测试团队配合方便测试团队内部统一工作思想IBMSoftwareGroup|Rationalsoftware17构建高效的测试团队第一步:选择先进的方法论构筑指导流程第二步:选择合适的人才建设测试团队第三步:选择强大的技术平台搭建环境第四步:制订标准和规范,稳步提高质量人员工具测试团队流程规范IBMSoftwareGroup|Rationalsoftware18第二步:选择合适的人才建设测试团队步骤一:确定测试团队在企业中的定位步骤二:确定测试团队的规模步骤三:确定企业中需要的测试类型步骤四:确定企业中需要的测试阶段步骤五:建立测试团队内部组织架构步骤六:确定测试团队人员组成IBMSoftwareGroup|Rationalsoftware19实施步骤一:确定测试团队在企业中的定位(1)好的组织结构,可以更好的发挥人员的能动性,使工作更有效率,也使工作的质量更高企业中测试人员处于什么位置?属于那个部门?质量管理部门?开发部门?独立的测试部门?适用的就是昀好的IBMSoftwareGroup|Rationalsoftware20实施步骤一:确定测试团队在企业中的定位(2)示例一:测试团队隶属于质量管理部门产品组经理项目经理开发经理质量保证经理开发工程师测试人员流程经理设计经理通常作为企业内部顾问组的方式存在。根据项目需要分配到各个项目,进行测试工作。日常也负责编制开发和测试指南、开发测试方法、测试工具评估与培训等工作。IBMSoftwareGroup|Rationalsoftware21实施步骤一:确定测试团队在企业中的定位(3)示例二:烟囱型测试团队定位测试人员因为项目临时组成,通常有2-5人,直接向项目经理负责。大型的组可以划分为几个小组,设测试经理。项目经理负责制定测试计划文档。IBMSoftwareGroup|Rationalsoftware22实施步骤一:确定测试团队在企业中的定位(4)示例三:集中型测试团队定位企业成立专职、独立的测试部门,通常由10-30人组成。集中测试组为每个项目配备几个全职的测试人员。IBMSoftwareGroup|Rationalsoftware23第二步:选择合适的人才建设测试团队步骤一:确定测试团队在企业中的定位步骤二:确定测试团队的规模步骤三:确定企业中需要的测试类型步骤四:确定企业中需要的测试阶段步骤五:建立测试团队内部组织架构步骤六:确定测试团队人员组成IBMSoftwareGroup|Rationalsoftware24实施步骤二:确定测试团队规模测试团队的规模由下列因素决定企业文化或测试成熟度测试需求范围工程师技能水平测试工具及应用水平业务知识组织形式测试工作介入时间IBMSoftwareGroup|Rationalsoftware25第二步:选择合适的人才建设测试团队步骤一:确定测试团队在企业中的定位步骤二:确定测试团队的规模步骤三:确定企业中需要的测试类型步骤四:确定企业中需要的测试阶段步骤五:建立测试团队内部组织架构步骤六:确定测试团队人员组成IBMSoftwareGroup|Rationalsoftware26实施步骤三:确定企业中需要的测试类型软件质量的5个维度易用性可靠性功能可支持性性能该系统是否易被业务人员所接受系统能够持续正常运行的能力系统的处理能力,包括系统容量、处理速度、并发用户数量、系统响应时间等系统的可维护性、可扩展性、兼容性,是否易于安装及升级等系统是否正确实现了在需求中所定义的系统能力IBMSoftwareGroup|Rationalsoftware27实施步骤三:确定企业中需要的测试类型(1)根据可靠性划分的测试类型:完整性测试:侧重于评估测试对象的强壮性(防止失败的能力),语言、语法的技术兼容性以及资源利用率的测试。该测试针对不同的测试对象实施和执行,包括单元和已集成单元。结构测试:侧重于评估测试目标是否符合其设计和构造的测试。通常对基于Web的应用程序执行该测试,以确保所有链接都已连接、显示正确的内容以及没有孤立的内容。企业根据自身需要,选取全部或部分类型开展测试IBMSoftwareGroup|Rationalsoftware28实施步骤三:确定企业中需要的测试类型(2)根据功能划分的测试类型:配置测试:侧重于确保测试对象在不同的硬件和/或软件配置上按预期运行的测试。该测试还可以作为系统性能测试来实施。功能测试:侧重于核实测试对象按计划运行,提供需求的服务、方法或用例的测试。该测试针对不同的测试对象实施和执行,包括单元、已集成单元、应用程序和系统。安装测试:侧重于确保测试对象在不同的硬件和/或软件配置上,以及在不同的条件下(磁盘空间不足或电源中断)按预期安装的测试。该测试针对不同的应用程序和系统实施和执行。安全测试:侧重于确保只有预期的主角才可以访问测试对象、数据(或系统)的测试。该测试针对多种测试对象实施和执行。容量测试:侧重于核实测试对象对于大量数据(输入和输出或驻留在数据库内)的处理能力的测试。容量测试包括多种测试策略,如创建返回整个数据库内容的查询;或者对查询设置很多限制,以至不返回数据;或者返回每个字段中昀大数据量的数据条目。企业根据自身需要,选取全部或部分类型开展测试IBMSoftwareGroup|Rationalsoftware29实施步骤三:确定企业中需要的测试类型(3)根据性能划分的测试类型:基准测试:一种性能测试,该测试将比较(新的或未知的)测试对象与已知的参照负载和系统的性能。竞争测试:侧重于核实测试对象对于多个主角对相同资源(数据记录、内存等)的请求的处理是否可以接受的测试。负载测试:一种性能测试,用于在测试的系统保持不变的情况下,核实和评估系统在不同负载下操作极限的可接受性。评测包括负载和响应时间的特征。如果系统结合了分布式构架或负载平衡方法,将执行特殊的测试以确保分布和负载平衡方法能够正常工作。强度测试:一种性能测试,侧重于确保系统可在遇到异常条件时按预期运行。系统面对的工作强度可以包括过大的工作量、不充足的内存、不可用的服务/硬件或过低的共享资源。企业根据自身需要,选取全部或部分类型开展测试IBMSoftwareGroup|Rationalsoftware30第二步:选择合适的人才建设测试团队步骤一:确定测试团队在企业中的定位步骤二:确定测试团队的规模步骤三:确定企业中需要的测试类型步骤四:确定企业中需要的测试阶段步骤五:建立测试团队内部组织架构步骤六:确定测试团队人员组成IBMSoftwareGroup|Rationalsoftware31实施步骤四:确定企业中需要的测试阶段(1)典型的测试阶段:单元测试:单元测试是指针对程序模块(软件设计的昀小单位)来进行正确性检验的测试工作,单元测试又称模块测试。集成测试:集成测试是在软件系统集成过程中所进行的测