1Copyright©2004LiJian.Allrightsreserved.2004年7月软件外包培训系列2004年7月软件外包培训系列软件测试外包独立高级咨询师李健李健自我介绍•3年以上对欧美软件外包和联盟软件工厂高级管理经验;•5年以上的软件过程改善咨询经验;•10年以上软件开发、测试、质量保证和项目管理经验;•软件工程专家网()首席质量管理专家;•北京软协企业管理顾问中心首席咨询师;李健针对的问题?测试相关技术测试管理怎样做内存泄漏检测、系统性能调优?8如何做特殊测试?/数据库连接的测试,界面的测试6怎样编写测试用例?7测试问题的功能点量化与跟踪?5回归测试如何做?4开发人员怎样做单元测试?1性能测试如何做(数据少,无法看出性能问题)?/压力测试?/压力测试数据分析?2如何自动测试?3怎样衡量和保证测试是充分的?/测试的路径多,没有耐心走完?3工期紧或有限时间内,确保测试有效?/测试用例会占用时间?5怎样进行版本控制?4如何协调测试工作与开发工作?2控制测试进度?12李健课程期望希望本次培训不光是只针对测试人员,也要从开发人员的角度来看一些问题。希望能提高测试的理论体系,同时也明确开发人员在测试工作中需要充当那些角色。10白盒测试;如何让测试和具体的开发过程结合得更紧密9如何使测试尽可能多的覆盖可能出现的情况?如何进行自动化测试?8希望能够得到一个系统化的理论知识,以及希望能够把讲师在测试方面的工作经验传授一些给大家。7希望了解测试的理论、方法,以及实践工具,以java为主。6web网站系统测试工具及方法(j2ee构架)5工具使用,概念系统化,高效测试过程,量化测试进度4希望很培训做成一次深层次的测试交流,而不是单独讲一些理论上的知识。希望在交流过程中,能够真正解决测试中的问题。3能够更好的将理论应用于实践,测试方法系统化,在技术上能够有所突破2测试管理、设计思路和结果分析1李健提纲)软件测试外包•软件测试基础•软件测试的有效性•软件测试工具技术•软件测试过程•软件测试实施要点李健为什么要进行外包?Ú提升公司的核心竞争力Ú有效控制并大大降低公司业务运作成本Ú使公司产品快速进入市场Ú利于整合公司内部资源,扩展业务内容Ú寻求公司内不可获取的资源Ú获得专业的软件工程技能3李健用户/客户的高要求外包市场的可控性特点:¾客户的控制力¾咨询公司的控制力9外包项目的低端特性¾低附加值的软件生产¾高附加值的低端生产李健软件外包分类软件外包=(内容,时机,场所,管理)•内容:开发(业务建模、系统分析、系统设计、详细设计、编码),测试,维护,运营,项目管理•时机/项目阶段:产品初期,产品开发期,产品运营期•场所:离岸、本地、现场•管理:合同工,独立项目小组外包服务供应商的资源:人、技术、过程4李健基本软件外包服务内容(1)软件开发软件项目开发软件产品的客户化软件产品的增值开发(2)软件维护和再造(3)软件测试项目测试第三方产品测试第三方验收测试李健业务运作模型基于人力资源的计费基于人力资源的计费实际工作内容标的价格和时间计费模型基于里程碑支付项目合同(工作范围和规范不清晰)基于单位时间支付人员外包基于单位时间支付“下工程”子合同基于里程碑支付项目合同(工作范围和规范清晰)支付方式业务合同类型李健计费模型Ø标的价格和时间项目的估价是以项目固定的工作内容和时间为基础,需求在项目过程中很小变化。Ø实际工作内容对于需求不明确或可能发生很大的变化的项目,以实际发生的工作时间和投入作为估价的基础。这种方式,通常通过每周的时间占用表和项目进度报告来跟踪控制。Ø基于人力资源占用计费是以每个时间单元为基础,乘上所占用的各个层次的人力资源量。5李健基本业务流程确定项目范围选择项目负责人组建开发队伍签署项目计划建立项目开发基本设施客户现场对业务知识的获取项目实施–实验项目项目实施–主体项目项目提交后期支持李健降低测试成本(约40%)9降低开发成本(约12%~30%)9降低管理成本9提升企业的核心竞争力9改善软件开发过程9享受专业的软件开发和测试服务李健软件测试外包特点市场特点•软件测试外包的客户认可度高;•国内市场存在相当的软件测试外包量;技术特点•不同于软件开发外包的低端特性,它具备高端内容;•对业务的了解要求高于软件开发外包项目;管理特点•充分利用时差优势;•通过合作建立长期的关系,并在此基础上评价。6李健软件测试外包的类型服务于软件开发项目的客户方(“甲方”),帮助客户实施验收测试;验收测试为软件项目开发提供独立的第三方测试;可服务于企业内部验收测试;产品测试作为外部独立的QC资源,在软件项目系统开发过程中进行质量控制;测试项目的持续时间较长;可同时服务于软件开发项目的甲乙双方。项目测试李健软件测试外包项目的验收`项目验收•产品的质量指标(0.04-0.09/defects/FP)?•完成的测试用例数?•完成的覆盖指标?•抽查测试结果?•验证的验证谁来做?•公司评估•人员评估•项目评估•非技术评估软件外包考核李健软件测试外包的前提`客户方对外包内容的控制;对承包方的评估体系`承包方区分产品开发和专业服务;相对稳定的过程;相对稳定的人员7李健提纲)软件测试外包)软件测试外包项目管理•软件测试基础•软件测试的有效性•软件测试工具技术•软件测试过程•软件测试实施要点李健软件测试外包项目中的甲乙双方`“客户”—软件产品生产厂商`结果管理/内容管理`过程管理`“客户”—软件产品昀终客户`结果管理/内容管理`处理与第三方(监理方)的合作关系李健软件测试外包项目管理质量进度成本?质量进度成本8李健软件生产的特点•依赖人的创造性?•技术革新快?•客户需求不稳定?•“制造”成本高?•产品或服务的个性化要求高?•多是无形资产投入?…“灵活性”是软件的特点“不确定性”和“变更”是软件生产的特点李健软件生产成本(狭义)•项目或产品开发成本•系统或产品维护成本9软件生产成本(广义)•项目市场定单成本•产品市场成本•客户保持成本生产阶段用户使用阶段升级阶段生命周期开始生命周期结束软件产品生命周期中的成本内容•项目开发成本•系统维护成本•系统开发成本•产品市场成本•项目市场定单成本•客户保持成本•客户保持成本李健市场划分分类资料来源:IDC,麦肯锡数据库,麦肯锡分析硬件产品硬件维护服务引入包括服务的软件专业化服务企业解决方案大众市场成套软件软件产品软件产品和服务处理服务和因特网服务IT市场9李健三个市场领域的异同低中高低中高专业化服务企业解决方案大众市场成套软件产品化程度销售单元市场结构高度集中市场结构高度分化高度全球化主要是地域化,全球化趋势增强客户关系一对多客户关系一对一边际成本为零边际成本几乎不变市场份额生产力利用率1.战略2.营销和销售3.人力资源4.软件开发1.人力资源2.软件开发3.营销和销售4.战略产品行业专业服务几个小时安装安装需要几个月乃至几年,而非几个小时寻求高市场分额不是为数百万,而是为数千有数可选方案(大众版、企业版等)量身定做大众产品企业产品李健不同项目类型特点不同低管理复杂度•规模小•非正式•利益相关者少•“产品”开发高管理复杂度•规模大•正式的合同项目•利益相关者多•“项目”开发高技术复杂度•嵌入式、实时、分布式、容错系统•高性能要求、可移植性要求高•新系统、“架构”再工程低技术复杂度•管理型简单系统、单一线程系统•交互式性能要求、单一平台•维护性开发,“应用”再工程一般软件项目•5到10人•10到12个月•3到5个外部接口•需求部分不稳定商业报表系统小型科学计算企业应用(数据录入)电信交换系统国防武器系统空中管制系统程序编译系统嵌入式应用(手机、汽车)大规模仿真系统国防管理信息系统企业信息管理系统李健软件生产中的经济模型工作量=(人员技能)(环境)(质量)(规模过程)COCOMO/COCOMOII:Effort=C1EAF(SizeP1)Time=C2(Effort)P2软件过程是以指数形式影响软件生产的成本。软件开发规模越大,过程质量所产生的影响就越大。10李健软件项目成本改善途径环境–过程自动化软件规模–软件开发语言–面向对象方法和虚拟建模–复用–商业组件(中间件)人员技能–技能平衡–技能覆盖过程–基于事前控制原则的过程管理质量–基于演示的质量评估–统计质量控制降低开发成本中的新产品开发成本,客户化成本不变李健软件生产特点对项目成本管理的影响有效的软件项目成本管理有效的软件项目变更管理=11李健软件测试外包项目变更?责任变更和非责任变更测试过程变化5?责任变更测试组成员变更6?责任变更和非责任变更测试支持环境变更7?责任变更和非责任变更测试完成指标变化4?责任变更和非责任变更测试技术要求变化3?非责任变更测试项目范围变化2?非责任变更测试项目目标变化180/20责任变更类型编号李健成功的软件测试外包项目`客户满意度•外包项目实施过程质量•外包项目实施结果质量`项目利润•降低项目成本•控制项目成本`公司利润•外包项目实施过程质量(QA在其中的作用?)李健软件测试外包项目的风险管理?与客户顺畅的沟通5?测试组成员变更6?测试支持环境7?明确的测试目标4?对测试对象业务逻辑的理解3?回归测试技术2?性能测试技术1风险典型风险编号12李健提纲•软件测试外包)软件测试基础•软件测试的有效性•软件测试工具技术•软件测试过程•软件测试实施要点李健http:/