测试工程培训(微软)

preview
需积分: 0 52 下载量 114 浏览量 更新于2007-12-17 收藏 1.32MB PDF 举报
### 测试工程培训(微软) #### 软件测试概览 本次培训主要围绕软件测试这一核心主题展开,旨在提供一套全面的软件测试知识体系,帮助学员了解软件测试的重要性和实施策略。 #### AGENDA(议程) 1. **软件工程**:探讨软件工程的基本概念和发展历程。 2. **软件测试的方法和技术**:介绍多种软件测试方法和技术,包括但不限于单元测试、集成测试、系统测试等,并探讨每种方法的优点和局限性。 3. **测试流程**:详细介绍软件测试的各个阶段及其重要性。 4. **测试工具**:介绍常用的软件测试工具及其应用场景。 5. **测试的历史、现状与未来**:回顾软件测试的发展历程,分析当前面临的挑战,并展望未来趋势。 6. **软件测试与软件缺陷**:讨论软件测试与软件缺陷之间的关系,通过案例分析加深理解。 #### 软件测试历史与案例 - **1947年的Mark II的bug**:这是历史上第一个被记录下来的“bug”,实际上是一只飞进计算机内部并导致程序出错的蛾子。 - **千年虫(1974—2000)**:由于早期程序设计时日期表示方式的问题,导致了2000年到来时许多软件无法正常运行的重大危机。 - **Intel芯片(1994)**:Intel的Pentium处理器因浮点运算错误而召回,造成巨大经济损失。 - **爱国者导弹与伊拉克战争(1991)**:软件故障导致爱国者导弹未能拦截来袭的导弹,造成了人员伤亡。 - **狮子王(1994—1995)**:迪士尼的《狮子王》游戏在某一版本中存在严重缺陷,影响了用户体验。 #### 主要内容 - **软件工程历史**:追溯软件工程的起源和发展,重点介绍其在不同时期的重要里程碑。 - **CMMI介绍**:能力成熟度模型集成(CMMI)是一种用于改进组织过程的标准,涵盖了软件开发和维护等多个领域。 - **基本开发模型**:比较敏捷开发、瀑布模型等常见软件开发模型的特点和适用场景。 - **质量保证**:探讨如何通过有效的质量管理确保软件产品质量。 #### 软件中的难题 - **开发不符合用户需求**:分析需求沟通不畅、理解偏差等问题。 - **进度难以控制**:讨论项目管理中常见的进度延迟问题及其解决策略。 - **资源分配不当**:探讨如何合理分配人力资源和技术资源,提高开发效率。 - **功能实现错误**:分析软件开发过程中可能出现的功能缺陷及调试技巧。 - **现有软件维护难度大**:提出针对大规模遗留系统的有效维护方案。 #### 软件工程 - **定义**:软件工程是指运用工程学原理来指导软件开发和维护的过程。 - **核心**:强调系统化、规范化、可度量化的开发方法,涵盖过程、方法和工具三个方面。 - **质量因素**:阐述过程、方法以及团队成员的能力对软件质量的影响。 #### CMM/CMMI - **定义**: - CMM(能力成熟度模型):一种用于软件开发过程和能力改进与评估的模型。 - CMMI(能力成熟度模型集成):在CMM基础上发展而来,整合了多个领域的最佳实践,适用于软件工程和系统工程。 - **发展历程**: - 1991年,卡内基·梅隆大学发布了CMM 1.0版。 - 2001年,推出了CMMI模型,分为连续模型和阶段模型两种表现形式。 - SEI宣布将在2004年后停止支持CMM,2005年CMM将完全停止使用。 - **成熟度级别**:CMMI将成熟度分为五个级别,从初始级到优化级,每个级别都对应着不同的过程改进目标。 #### 国内软件公司通过CMM/CMMI情况 - **CMM3**:列举了普元软件技术(上海)、上海国信朗讯科技网络技术、创智科技等25家公司。 - **CMM4**:提及华为南京研究所、华为北京研究所等7家公司。 - **CMM5**:包括摩托罗拉中国软件中心、惠普中国软件研发中心等7家公司。 #### CMM/CMMI阶段模型 - **Maturity Level 1: Initial**:过程通常随机且混乱,项目的成功更多依赖于个人而非经过验证的过程。 - **Maturity Level 2: Managed**:过程得到一定的管理和控制,需求被明确管理,过程可以被计划、执行、度量和控制。 - **Maturity Level 3: Defined**:过程标准化并得到良好定义,项目可以根据组织标准过程进行定制。 - **Maturity Level 4: Quantitatively Managed**:过程和产品得到量化度量并控制,组织性能得到提升。 - **Maturity Level 5: Optimizing**:持续过程改进,组织能够快速响应市场变化。 通过以上概述,可以看出本课程涵盖了软件测试的基础知识、实际应用以及相关的管理模型等内容,旨在培养学员成为具备专业技能的软件测试工程师。