本课程通过实践练习演示软件工程,需求工程和测试的基础知识和应用。
软件工程 5天
第一天: Project Management
- 项目与生产线管理、维护和支持
- 项目定义和项目形式
- 管理 – 一般规则和项目管理
- 管理风格
- IT项目有什么特别之处?
- 项目基本流程
- 迭代式、增量式、瀑布式、敏捷式、精益式项目流程
- 项目阶段
- 项目角色
- 项目文件和其他人工制品
- 软因素和人性化因素
- PRINCE 2、PMBOK、PMI、IPMA等项目标准
第 2 天:业务分析和 Requirements Engineering 基础知识
- 定义业务目标
- Business 分析、业务流程管理、业务流程改进
- 业务分析与系统分析之间的边界
- 系统利益相关者、系统用户、系统上下文和系统闺房
- 为什么需要要求?
- 什么我们要求工程
- 需求工程和建筑设计之间的界限
- 需求工程通常隐藏在哪里?
- 迭代、精益和敏捷开发以及持续集成中的需求工程 – FDD、DDD、BDD、TDD
- 基本需求工程流程、角色和工件
- 标准和认证:BABOK、ISO/IEEE 29148、IREB、BCS、IIBA
第 3 天:架构和开发基础知识
- 编程语言 – 结构和面向对象范式
- 面向对象开发——多少是历史,多少是未来
- 架构的模块化、可移植性、可维护性和可扩展性
- 软件架构的定义和类型
- 企业架构和系统架构
- 编程风格
- 编程环境
- 编程错误以及如何避免和预防它们
- 对体系结构和组件进行建模
- SOA、Web Services 和微服务
- 自动构建和持续集成
- 一个项目有多少架构设计?
- 极限编程、TDD 和重构
第 4 天:质量保证和测试基础知识
- 产品质量:它是什么?ISO 25010、FURPS等
- 产品质量、用户体验、卡诺模式、客户体验管理与整体质量
- 以用户为中心的设计、角色和其他方式,使质量个性化
- 恰到好处的质量
- 质量保证和质量控制
- 质量控制中的风险策略
- 质量保证的组成部分:需求、过程控制、配置和变更管理、验证、确认、测试、静态测试和静态分析
- 基于风险的质量保证
- 基于风险的测试
- 风险驱动型开发
- Boehm在质量保证和测试方面的曲线
- 四所考试学校——哪所适合您的需求?
第 5 天:流程类型、成熟度和流程改进
- IT流程的演变:从艾伦·图灵(Alan Turing)到蓝色巨人(Big Blue),再到精益创业
- 流程和面向流程的组织
- 手工艺和工业的工艺历史
- 流程建模:UML、BPMN 等
- 流程管理、流程优化、流程再造和流程管理系统
- 创新工艺方法:Deming、Juran、TPS、Kaizen
- (过程)质量是免费的吗?(菲利普·克罗斯比)
- 成熟度提升的需求和历史:CMMI、SPICE等成熟度量表
- 特殊类型的成熟度:TMM、TPI(用于测试)、需求工程成熟度(Gorschek)
- 流程成熟度与产品成熟度:有关联吗?有什么因果关系吗?
- 流程成熟度与业务成功:有关联吗?有什么因果关系吗?
- 被遗忘的教训:自动化缺陷预防和生产力的下一次飞跃
- 尝试:TQM、六西格玛、敏捷回顾、流程框架
Requirements Engineering - 2 天
第 1 天:需求获取、协商、整合和 Management
- 查找需求:内容、时间和由谁
- 利益相关者分类
- 被遗忘的利益相关者
- 定义系统上下文 – 定义需求源
- 启发方法和技术
- 通过测试(探索性和其他方式)获取原型、角色和需求
- 营销和需求获取 – MDRA(“市场驱动 Requirements Engineering”)
- 优先级需求:MoSCoW、Karl Wiegers 和其他技术(包括敏捷 MMF)
- 细化需求 – 敏捷的“实例规范”
- 需求协商:冲突类型、冲突解决方法
- 解决某些类型需求之间的内部不一致(例如安全性与易用性)
- 需求可追溯性 – 为什么以及如何
- 需求状态更改
- 要求 CCM、版本控制和基线
- 需求的产品视图和项目视图
- 项目中的产品管理和需求管理
第 2 天:需求分析、建模、规范、验证和确认
- 分析是你在启发和规范之间所做的思考和重新思考
- 需求过程始终是迭代的,即使在连续的项目中也是如此
- 用自然语言描述需求:风险和收益
- 需求建模:收益和成本
- 使用自然语言进行需求规范的规则
- 定义和管理需求术语表
- UML,BPMN 和其他形式和半形式的需求建模符号
- 使用文档和句子模板进行需求描述
- 验证需求 – 目标、级别和方法
- 验证 – 包括原型设计、审查和检查以及测试
- 需求验证和系统验证
测试 - 2 天
第 1 天:测试设计、测试执行和探索性测试
- 测试设计:在基于风险的测试之后,选择最佳方式来利用可用的时间和资源
- “从无穷大到这里”的测试设计——无法进行详尽的测试
- 测试用例和测试场景
- 各种测试级别(从单元测试到系统测试级别)的测试设计
- 静态和动态测试的测试设计
- Business以技术为导向的测试设计(“黑盒”和“白盒”)
- 试图破坏系统(“负面测试”)和支持开发人员(验收测试)
- 实现测试覆盖率的测试设计 – 各种测试覆盖率措施
- 基于经验的测试设计
- 根据需求和系统模型设计测试用例
- 测试设计启发式和探索性测试
- 何时设计测试用例?– 传统和探索性的方法
- 描述测试用例 - 有多少细节?
- 测试执行 – 心理方面
- 测试执行 - 日志记录和报告
- 为“非功能”测试设计测试
- 自动测试设计和MBT(基于模型的测试)
第 2 天:测试组织、Management 和自动化
- 测试级别(或阶段)
- 谁进行测试,何时进行?– 各种解决方案
- 测试环境:成本、管理、访问、责任
- 模拟器、仿真器和虚拟测试环境
- 在敏捷 Scrum 中进行测试
- 测试团队的组织和角色
- 测试流程
- 测试自动化 – 哪些可以自动化?
- 测试执行自动化 – 方法和工具
United Arab Emirates - Software Engineering, Requirements Engineering and Testing
Qatar - Software Engineering, Requirements Engineering and Testing
Egypt - Software Engineering, Requirements Engineering and Testing
Saudi Arabia - Software Engineering, Requirements Engineering and Testing
South Africa - Software Engineering, Requirements Engineering and Testing
Brasil - Software Engineering, Requirements Engineering and Testing
Canada - Software Engineering, Requirements Engineering and Testing
中国 - Software Engineering, Requirements Engineering and Testing
香港 - Software Engineering, Requirements Engineering and Testing
澳門 - Software Engineering, Requirements Engineering and Testing
台灣 - Software Engineering, Requirements Engineering and Testing
USA - Software Engineering, Requirements Engineering and Testing
Österreich - Software Engineering, Requirements Engineering and Testing
Schweiz - Software Engineering, Requirements Engineering and Testing
Deutschland - Software Engineering, Requirements Engineering and Testing
Czech Republic - Software Engineering, Requirements Engineering and Testing
Denmark - Software Engineering, Requirements Engineering and Testing
Estonia - Software Engineering, Requirements Engineering and Testing
Finland - Software Engineering, Requirements Engineering and Testing
Greece - Software Engineering, Requirements Engineering and Testing
Magyarország - Software Engineering, Requirements Engineering and Testing
Ireland - Software Engineering, Requirements Engineering and Testing
Luxembourg - Software Engineering, Requirements Engineering and Testing
Latvia - Software Engineering, Requirements Engineering and Testing
España - Ingeniería de Software, Ingeniería de Requerimientos y Pruebas
Italia - Software Engineering, Requirements Engineering and Testing
Lithuania - Software Engineering, Requirements Engineering and Testing
Nederland - Software Engineering, Requirements Engineering and Testing
Norway - Software Engineering, Requirements Engineering and Testing
Portugal - Software Engineering, Requirements Engineering and Testing
România - Software Engineering, Requirements Engineering and Testing
Sverige - Software Engineering, Requirements Engineering and Testing
Türkiye - Software Engineering, Requirements Engineering and Testing
Malta - Software Engineering, Requirements Engineering and Testing
Belgique - Software Engineering, Requirements Engineering and Testing
France - Software Engineering, Requirements Engineering and Testing
日本 - Software Engineering, Requirements Engineering and Testing
Australia - Software Engineering, Requirements Engineering and Testing
Malaysia - Software Engineering, Requirements Engineering and Testing
New Zealand - Software Engineering, Requirements Engineering and Testing
Philippines - Software Engineering, Requirements Engineering and Testing
Singapore - Software Engineering, Requirements Engineering and Testing
Thailand - Software Engineering, Requirements Engineering and Testing
Vietnam - Software Engineering, Requirements Engineering and Testing
India - Software Engineering, Requirements Engineering and Testing
Argentina - Ingeniería de Software, Ingeniería de Requerimientos y Pruebas
Chile - Ingeniería de Software, Ingeniería de Requerimientos y Pruebas
Costa Rica - Ingeniería de Software, Ingeniería de Requerimientos y Pruebas
Ecuador - Ingeniería de Software, Ingeniería de Requerimientos y Pruebas
Guatemala - Ingeniería de Software, Ingeniería de Requerimientos y Pruebas
Colombia - Ingeniería de Software, Ingeniería de Requerimientos y Pruebas
México - Ingeniería de Software, Ingeniería de Requerimientos y Pruebas
Panama - Ingeniería de Software, Ingeniería de Requerimientos y Pruebas
Peru - Ingeniería de Software, Ingeniería de Requerimientos y Pruebas
Uruguay - Ingeniería de Software, Ingeniería de Requerimientos y Pruebas
Venezuela - Ingeniería de Software, Ingeniería de Requerimientos y Pruebas
Polska - Software Engineering, Requirements Engineering and Testing
United Kingdom - Software Engineering, Requirements Engineering and Testing
South Korea - Software Engineering, Requirements Engineering and Testing
Pakistan - Software Engineering, Requirements Engineering and Testing
Sri Lanka - Software Engineering, Requirements Engineering and Testing
Bulgaria - Software Engineering, Requirements Engineering and Testing
Bolivia - Ingeniería de Software, Ingeniería de Requerimientos y Pruebas
Indonesia - Software Engineering, Requirements Engineering and Testing
Kazakhstan - Software Engineering, Requirements Engineering and Testing
Moldova - Software Engineering, Requirements Engineering and Testing
Morocco - Software Engineering, Requirements Engineering and Testing
Tunisia - Software Engineering, Requirements Engineering and Testing
Kuwait - Software Engineering, Requirements Engineering and Testing
Oman - Software Engineering, Requirements Engineering and Testing
Slovakia - Software Engineering, Requirements Engineering and Testing
Kenya - Software Engineering, Requirements Engineering and Testing
Nigeria - Software Engineering, Requirements Engineering and Testing
Botswana - Software Engineering, Requirements Engineering and Testing
Slovenia - Software Engineering, Requirements Engineering and Testing
Croatia - Software Engineering, Requirements Engineering and Testing
Serbia - Software Engineering, Requirements Engineering and Testing
Bhutan - Software Engineering, Requirements Engineering and Testing
Nepal - Software Engineering, Requirements Engineering and Testing
Uzbekistan - Software Engineering, Requirements Engineering and Testing