所在位置:首页 -- 企业内训 -- 正文

微软软件自动化测试最佳实践 - 立项、流程、架构,工具、管理和新技术


发布时间:2013-2-17  来源:admin

课程简介:
本课程属于软件自动化测试的高级课程,课程目标是让测试人员和测试经理熟悉软件测试自动化立项决定的考虑因素, 自动化测试的流程和控制, 架构的设计和优化, 工具的选择考虑, 有效的自动化管理和新的技术。让学员学会独立的开发自动化测试,而不仅仅是简单的使用第三方自动化测试软件做测试。本课程对架构设计有相当深入的讲解, 而不是对某一个已经存在的架构做一般性介绍。让学员了解软件软件测试自动化的需求分析,设计和具体实施的过程。通过对案例的分析, 掌握怎样开发单元测试,集成测试和系统与回归测试自动化软件,怎样开发安全测试,压力测试,全球化测试,本地化测试,性能测试的自动化软件。怎样用UIA开发GUI程序的自动化测试软件,怎样开发一般API程序的自动化测试软件,及怎样利用Spec Explorer开发Model Based测试自动化。怎样有效的管理自动化测试和架构。
本课程在上一次培训后学员反馈的基础上,增加了课程的广度和深度,结合国内软件测试的具体情况,加入了许多具体的案例,使学员不仅能领会软件测试自动化的基础知识,并且通过具体的案例了解自动化测试的具体实施。
 

谁能受益于本课程:软件开发和测试人员、技术总监、软件管理经理
本课程通过对软件测试自动化的介绍及各种应用的讲解达到以下学习目标:
- 了解软件测试自动化立项的判断和准备工作
- 了解软件测试自动化的需求分析, 设计和实施的过程
- 掌握怎样设计一个结合自己公司实际的好的架构
- 掌握怎样开发单元测试, 集成测试和系统与回归测试自动化软件
- 掌握怎样开发Fuzz和Stress测试自动化软件来提高软件安全性和可靠性
- 掌握怎样开发全球化测试, 本地化测试, 性能测试的自动化软件
- 掌握怎样开发一般API程序的自动化测试软件
- 掌握怎样开发GUI程序的自动化测试软件
- 掌握怎样利用UIA实现自动化测试
- 掌握怎样利用支撑工具让自动化测试更容易发现bug
- 掌握怎样利用工具Spec Explorer开发Model Based测试自动化, 从而大幅度提高测试效率

时间
课题
简述
Day1

Topic 1 软件测试自动化的立项
- 揭开神秘面纱
- 自动化测试的立项判断依据
- 自动化和手工测试的比例控制
- 一个完整的自动化测试包
- 什么是软件测试‘全’自动
- 好的自动化测试是什么样的

本章节首先揭开软件测试自动化的神秘感。通过对一个典型的手工测试过程分析,讲解自动化工作可以从哪些方面入手,什么样的自动化测试才是一个完全的自动化测试。作为项目负责人或相关人员当考虑是否要采用自动化或者要自动化到什么程度时,判断的依据是什么?另外以一个案例讲解自动化测试的一般过程,给学员以概念:自动化的测试是什么样子的,一个完整的软件测试自动化应包括哪些,判断一个自动化测试好坏的依据是什么。

Topic 2自动化测试的流程
- 自动化测试的流程:一个案例
- It is Team Work!
- 测试和开发成本
- 不要迷信测试驱动开发
- 项目进程控制

本章节重点讲解自动化测试的流程,需求分析,设计,具体实施, 以及在这个过程当中各个角色的合作和配合.项目进程控制在流程当中是一个很重要的任务, 我们通过案例具体讲解。

Topic 3测试自动化的架构设计
- 自动化测试的架构精髓
- 架构设计的考虑因素
- 怎么设计属于自己的架构?
- 自动化测试的架构设计的案例分析

好的架构是设计好自动化测试体系的基础;本章节阐述怎样设计一个自动化测试的架构, 设计的精髓是什么?怎样通过案例的分析并结合自己项目的实际情况设计一个属于自己的测试架构?
Topic 4 软件测试中各种测试的自动化
- 软件中的安全问题和稳定性问题讲解
- 自动化测试中的Fuzz和Stress测试
- 为什么Fuzz测试容易发现安全问题
- Fuzz和Stress测试的设计
- Fuzz测试的两个重要点
- 何时需要Fuzz和Stress自动化测试
- 全球化测试和本地化测试的自动化设计
- 性能测试的自动化设计
本章节全面详细的介绍软件测试中各种测试的自动化实现。以具体的例子贯穿始终。另外,以软件安全中常见的buffer overrun着手,通过挖出内存中call stack和分析常见的引起安全问题的代码,介绍了为什么需要fuzz 和stress 测试。结合案例详细的介绍怎么设计和实现Fuzz和Stress测试。并且结合本人实际的工作经验,介绍了fuzz测试中的两个关键点。并详细讨论全球化测试,本地化测试,性能测试的自动化设计。
Topic 5软件测试自动化的具体实现技术
- 为什么C#适合开发自动化测试软件
- 用C#实现一般的API和GUI测试
- 利用Reflection 实现自动化测试
- 自动化测试中delegation的应用
本章节用代码示例讲解怎样用C#开发自动化测试软件,用C#实现一般的API和GUI测试。另外介绍对软件测试自动化很有用的两个概念,并用代码示例演示怎样利用它们实现自动化测试。所有示例现场编译运行,让听众顿然觉得自己从零开始写自动化测试并不是高不可攀的。如果你在使用不同的平台和语言(像Java)也可以同样从中受益,因为这里的很多思想是相通的。
时间
课题
简述
Day2
 
 
Topic 6 UI Automation
- Microsoft UI Automation(UIA) 基本知识讲解
- UI Automation中的Tree, Control Patterns, Properties, Event and Security
- 怎样用UI Automation来实现UI 测试自动化
- 用UI Automation实现自动化测试的一个例子
Microsoft UI Automation(UIA)作为新的架构,应用越来越广泛。它提供了可编程的访问绝大部分UI 窗口元素功能。非常适合软件测试自动化的实现。本章节讲解UI Automation中的基本概念,有重点讲述怎样用UI Automation来实现UI 测试自动化,并用实际的代码示例让学员掌握实际应用的能力。
Topic 7 自动化测试的工具
- Record and playback 工具
- 市面上自动化测试工具的局限性
- 自己开发的必要性和可能性
- 自动化测试的支撑工具, 调试工具和虚拟工具

本章节介绍常用的自动化测试工具。首先从两个大的分类介绍自动化常用工具Record and playback 工具和自动化测试所需的支撑工具。我们的目标是让学员摆脱仅仅依靠测试工具来实现简单的自动化测试,从而能够自己设计和实现自动化测试。另外,介绍一些测试支撑工具,能够更容易的发现,重现和分析bug,能够提高测试自动化的程度和效率。

Topic 8 Model based 自动化测试设计
- 什么是model based 测试
- Model Based能做什么测试
- Spec Explorer工具
- Spec#语言
- Model based自动化测试的具体步骤
Model based测试设计应用领域相当广泛。如果掌握可以很快的提高自动化设计的过程。本章节讲解微软的一个软件自动化测试的工具SpecExsplore。通过一个实际的例子让学员学会model based自动化测试的具体步骤。请注意,Spec Explorer不是图形界面测试的record and play工具。
Topic 9 自动化测试的管理
- Test Cases 的管理
- 自动化测试架构的维护和管理
- Bug tracking
-自动化测试中bug重现
本章节介绍怎样管理和维护自动化测试。从两个方面着手;test case的管理和架构的维护管理。另外,测试中发现的bug怎样重现和track至关重要,因为它直接关系到测试的好坏。
Topic 10 经验分享
- 测试文化
- 怎样才能做一个好的测试人员
- 测试人员的职业规划
- 测试中明天的问题今天解决
将从自身的经验出发, 讨论怎样才能做一个好的测试人员,或作为管理人员怎样评估测试工作的绩效。测试人员怎样规划自己的职业发展。怎样去解决测试中明天的问题