课程背景 据中国软件行业协会研究报告显示,2010年1-11月,我国软件业呈快速增长态势,同比增长30%,增速比去年同期提高8.6个百分点,软件产业已成为中国高科技发展重要支柱之一。软件测试是软件质量控制的重要手段,在国外早已成为软件行业中一项非常专业化的职业,而国内只有在近几年才慢慢被重视起来,软件测试的从业人员技能和数量都远远不能满足要求。 软件测试是一项非常有挑战性的工作,不仅要求从业人员对业务领域、软件的测试过程、方法和工具有深入掌握,而且要具备良好的沟通能力、数据分析能力和项目管理能力。 微软为打造Windows2000,用了250多个项目经理、1700多个开发人员,而测试人员则用了3200人,几乎是开发人员的两倍。而在我国,由于总体上,国内软件项目过程不规范,导致重视编码和轻视测试的现象,对于软件测试的重要性、测试方法和流程等还存在很多错误的认识。主要表现在: (1)软件开发完成后进行软件测试 (2)软件发布后如果发现质量问题,是软件测试人员的责任 (3)软件测试哪个人员都行 (4)软件测试是测试人员的事情,与程序员无关 (5)项目进度紧张时少做测试,时间富裕时多做测试 (6)软件测试是没有前途的工作,只有程序员才是软件高手 以上几点是中国很多研发管理人员的误区,虽然很多领导试图提高软件质量,并且大部分领导已认识到测试是提高软件质量的重要手段之一,但总是不得要领,不知如何建立软件测试管理体系,设置了人员但不知如何明确职责,明确了职责但不知如何建立测试流程,建立了流程但不知如何参与研发团队进行测试,测试人员与开发人员之间矛盾重重,软件质量无法保证。 本次培训讲带领学员对软件测试工作所涉及的方方面面有全面的了解,为从事测试打下坚实的基础。 课程特色 实践性:本课程是基于华为等国内外优秀公司的测试工作经验开发出来的,完全不同于通常的教科书或培训所传授的很难操作的理论,具有非常强的实践性和可操作性,授课过程中大量的演练活动。 系统性:从理念到方法,从技术到工具组织到人员,本课程全面的对软件测试进行讲解。 针对性:针对国内软件项目特点和测试工作特点,有重点地进行剖析问题的本质,并给出经过实践验证的、行之有效的措施。课程收益 分析为什么测试环节是许多企业的“短板”,深度剖析人们对测试存在的普遍误区 掌握有效的测试用例设计方法,提高缺陷发现的效率 掌握如何有效开展单元测试、集成测试和各类专项系统测试 如何在项目前期开展测试,从而提升测试效率和效果 掌握缺陷管理方法,通过对缺陷的管理,评估测试、开发效果,改进测试和开发过程,做好缺陷预防 全面了解测试工具,以及如何选择合适的测试工具 掌握建立自动化测试方法和实施自动化测试策略 掌握测试部门组织结构设计原则 掌握测试工作所需的技能、素质 学习软件测试的度量指标,以及测试团队的绩效考核 学习企业级测试体系建设的方法和技巧 课程大纲 1. 软件测试概述 本章节学习目标:主要让学员了解软件测试对于软件质量保证的重要性,关于软件测试存在哪些误区,正确的理念又是什么。 1.1. 软件测试的重要作用 1.1.1. 软件质量事故案例分享,说明质量的重要性 1.1.2. 软件质量管理的主要手段,以及测试在其中的重要作用 1.2. 软件测试常见误区剖析 1.2.1. 测试工程师是个刺头,给项目士气造成负面影响 1.2.2. 测试工作可不是一个良好的职业起点,还是先做开发才有前途 1.2.3. 有了测试工程师,关于产品质量管理层就不会有什么担忧的了 1.2.4. 关于软件产品质量,测试工程师有着清楚的认识 1.2.5. 测试工程师不会犯错 1.2.6. …… 1.3. 软件测试基本原则 1.3.1. 所有测试都应追溯到用户需求的原则 1.3.2. 测试工作尽早启动的原则 1.3.3. 20/80原则 1.3.4. 先局部后整体的原则 1.3.5. 为效益而测试的原则 1.3.6. 第三方测试的原则 1.4. 软件测试目的 1.4.1. 测试目的,目的不同会有完全不一样的结果;测试是为了发现缺陷而不是证明程序是正确的 1.5. 测试活动分类 1.5.1. 动态测试、静态测试 1.5.2. 白盒测试、黑盒测试 1.5.3. 手工测试、自动化测试 1.5.4. 单元测试、集成测试、系统测试、验收测试、ALPHA测试、BETA测试 1.5.5. 功能测试、性能测试、界面测试、配置测试、恢复测试... 1.6. 软件质量 1.6.1. 案例分析:这些所谓的bug到底是不是bug 1.6.2. 术语解释:bug,缺陷、故障、失效 1.6.3. 软件质量属性:3大类,11小类 2. 软件测试过程 本章节学习目标:让学员了解测试过程,掌握软件测试的关键活动。 2.1. 软件测试过程及其在开发过程中的位置 2.2. 测试策略 2.2.1. 什么是测试策略 2.2.2. 测试策略的作用 2.2.3. 演练:如何制定有效的测试策略 2.3. 测试计划 2.3.1. 测试计划内容和制定时机 2.4. 测试需求 2.4.1. 案例分析:依据某功能需求规格是否能够设计出测试用例 2.4.2. 需求层次:needs,feature和requirement 2.4.3. 需求来源和获取方法,如客户访谈、竞争对手产品分析等 2.4.4. 需求分析方法和工具,如用例图 2.4.5. 好的需求文档特点 2.4.6. 需求文档中避免出现的一些词汇 2.4.7. 确定需求优先级,以及如何根据需求优先级进行测试活动 2.4.8. 测试人员在软件需求分析活动承担的角色和职责,分析华为成功案例 2.4.9. 当需求规格文档缺失时,测试人员应如何面对 2.5. 可测试性 2.5.1. 可测试性的定义 2.5.2. 高测试性的软件特征 2.6. 测试用例设计和执行过程介绍 3. 测试用例 本章节学习目标:掌握测试用例的设计方法,如何写好测试用例。 3.1. 什么是测试用例 3.1.1. 测试用例组成部分 3.1.2. 测试用例模板展示 3.1.3. 输入和输出通常包含哪些 3.2. 黑盒用例设计方法 3.2.1. 等价类划分法 3.2.2. 演练:用等价类划分方法设计测试用例,并确保用例数量尽可能少 3.2.3. 边界值分析法 3.2.4. 演练:用边界值分析法设计测试用例,并确保用例数量尽可能少 3.2.5. 判定表,该方法的适用情况、例子展示 3.2.6. 因果图法 3.2.7. 演练:使用因果图和判定表方法设计测试用例 3.2.8. 正交实验设计方法 3.3. 白盒用例设计方法 3.3.1. 逻辑覆盖:语句覆盖、条件覆盖、分支覆盖、路径覆盖… 3.4. 测试用例写作 3.4.1. 测试用例写作粒度 3.4.2. 逻辑和数据分离 3.4.3. 测试用例顺序 3.4.4. 测试用例设计和写作常见误区 3.5. 测试用例评审 3.5.1. 评审方法和过程 3.5.2. 如何评价用例的好坏 3.6. 测试用例执行与维护 3.6.1. 测试执行准备:环境搭建、数据准备 3.6.2. 测试用例执行状态 3.6.3. 测试用例的维护 3.7. 测试用例重用 4. 单元和集成测试 本章节学习目标:掌握单元测试和集成测试如何开展。 4.1. 什么是单元测试 4.2. 单元测试的投入产出比高吗?剖析是否值得做单元测试 4.3. 演练:如何针对给定的函数进行单元测试 4.4. 单元测试基本概念(桩、驱动)介绍 4.5. 高效单元测试过程 4.5.1. 用例如何写 4.5.2. 怎样打桩 4.5.3. 怎样利用单元测试工具 4.5.4. 有效单元有哪些原则和注意事项 4.6. 单元测试工具介绍:PC-LINT、logiscope和boundschecker 4.7. 案例:华为推行单元测试的历程 4.8. 集成测试介绍 5. 系统测试 本章节学习目标:掌握各项系统测试。 5.1. 功能测试介绍 5.2. 性能测试介绍 5.3. 安全性测试介绍 5.4. 可恢复性测试介绍 5.5. 兼容性测试介绍 5.6. 界面测试介绍 5.7. 演练:如何对某嵌入式软件产品进行测试 6. 缺陷管理 本章节学习目标:了解缺陷管理的重要作用,掌握缺陷管理方法。 6.1. 缺陷管理的分类和意义 6.1.1. 单个缺陷管理 6.1.2. 一组缺陷的收集、统计分析 6.1.3. 缺陷库和缺陷预防 6.2. 单个缺陷的管理 6.2.1. 单个缺陷的生命周期 6.2.2. 缺陷报告的重要性 6.2.3. 如何写好缺陷报告 ——示例:什么是好的缺陷报告,什么是不合适的缺陷报告 6.3. 缺陷统计分析 6.3.1. 度量概述,简介GQM方法 6.3.2. 测试生产率度量项 6.3.3. 缺陷度量项——缺陷密度 ——缺陷密度的定义 ——如何用缺陷密度评估质量控制效果和交付产品交的质量 ——如何用缺陷密度改进开发过程 6.3.4. 缺陷度量项——缺陷剔除率 ——缺陷剔除率的定义 ——如何用缺陷剔除率评估质量控制效果,并改善高质量控制方法 ——如何用缺陷剔除率改进开发和测试过程 6.3.5. 分析工具:柏拉图、控制图 ——使用柏拉图找重要问题 ——使用控制图找异因,从过程着手做改进 6.3.6. 缺陷动态预测模型:Rayleigh曲线 6.3.7. ODC分类法介绍 ——ODC背景介绍 ——ODC分类简介 ——举例说明如何用ODC缺陷分类分析改进开发和测试工作 6.4. 缺陷预防介绍 6.5. 测试报告 6.5.1. 测试报告目的和内容 6.5.2. 何时停止测试? 6.5.3. 面对质量不过关产品要做对外发布,测试人员该如何面对? 7. 自动化测试 本章节学习目标:了解自动化测试的重要性,自动化级别,以及如何实施自动化测试。 7.1. 手工测试引发的问题 7.1.1. 测试效率低,项目延期 7.1.2. 不断的重复操作,降低测试人员的工作满意度 7.1.3. 测试的可重复性差,影响测试效果 7.1.4. …… 7.2. 自动化测试的自动化程度 7.2.1. 静态自动化测试(脚本录制) 7.2.2. 哑猴测试(编写脚本,盲目随机测试) 7.2.3. 智能测试(基于模型的自动化测试) 7.3. 实施自动化测试 7.3.1. 实施自动化测试的条件 7.3.2. 开展自动化测试的切入点 7.3.3. 实施自动化测试的策略 8. 测试工具 本章节学习目标:全面了解各类测试工具,掌握测试工具的选择原则 8.1. 测试工具分类介绍 8.2. 白盒测试工具介绍 8.2.1. 静态白盒工具,PC LINT等工具介绍 8.2.2. 演练:使用PC LINT工具发现代码缺陷 8.2.3. 动态白盒工具,包括覆盖率统计工具(如logiscope)和内存检查工具(如boundschecker) 8.3. 黑盒测试工具介绍, 8.3.1. 脚本录制工具 8.3.2. 基于模型的自动化测试工具 8.4. 性能测试工具介绍 8.5. 测试管理工具介绍 8.6. 工具的选择原则 9. 测试组织与团队 本章节学习目标:了解测试部门的组织结构设计原则,测试人员的技能、素质要求、职业发展通道、测试人员的绩效考核,以及测试系统建设。 9.1. 测试部门的组织结构 9.1.1. 组织结构对测试工作的影响 9.1.2. 测试部门组织结构设置的基本原则 9.1.3. 几种不同的组织结构比较 9.2. 测试人员的知识、技能和素质要求 9.3. 测试管理者关注点 9.4. 测试人员的职业发展通道 9.5. 测试人员的绩效考核 9.6. 测试管理体系建设
课程主讲 周志龙:资深讲师,资深咨询顾问 中国软件行业协会授予的十大咨询师 专业背景:哈尔滨工业大学工学硕士,具备14年产品研发、研发管理、质量管理及研发过程改进咨询经验。曾在华为公司北研所和华为3COM公司任职7年,历任研发工程师、研发经理、质量总监等职位,对IPD和CMMI有深入的研究和丰富的实践,是华为最早按照研发流程体系成功完成项目的首批项目经理;参与了华为和华为3COM研发流程体系建设、推行和改进工作;在华为3COM主导的产品开发过程的变革获得巨大成功,使得华为3COM产品开发远远领先于业界。 咨询背景:有6年的咨询经验,曾在全球著名的咨询公司QAI任资深咨询师,为数十家高科技企业做过咨询服务,涉及领域包括金融、邮电、电力、汽车、电子政务、税务、手机、餐饮等,包括世界500强企业、上市公司。主要咨询客户有:台湾晨星半导体,宇龙通讯、锐捷网络、长春一汽,北京伟创力(中国),埃斯顿自动化,净雅集团、北京软脑软件,北京华胜天成,北京天碁科技(T3G),中星电子,北京中科恒业,奥德思电器,江苏大唐,航天信息,公众信息,中科院西北星,中兴通讯,成都天府软件园,山东农信社等等。专业、敬业的咨询作风深受客户赞扬,应得非常好的口碑,被中国软件行业协会授予十大咨询师。 培训背景:在华为公司和华为3COM公司,为研发人员提供大量培训,就多次被评为公司优秀讲师。在咨询服务过程中,为客户提供研发管理、测试管理、质量管理、项目管理、软件工程等培训,此外,还为广东核电站、上海中科深江、珠海高凌信息、深圳市文鼎创数据科技、奥维通信、深圳市科陆电子、理邦精密仪器、南京科远、广利核、横河电机、冶自欧博、中星电子等公司提供培训服务,在北京、上海、深圳、大连、成都、南京等地举办过公开课。
|