软件测试发展史:
软件调试——>独立的软件测试——>定义软件测试——>软件测试成为专门的学科——>开发与测试相结合——>软件测试的 发展
软件测试与软件开发过程的关系
软件工程的阶段
项目规划阶段,需求分析阶段,详细设计和概要设计阶段,编码阶段,测试阶段
**软件测试的模型**
1:V模型
局限性:没有明确地说明早期的测试,无法体现“尽早地和不断地进行软件测试”的原则“
2:W模型
测试与开发同步进行
局限性:W模型和V模型都把软件的开发视为需求,设计,编码等一系列串行的活动,无法支持迭代,自发性以及变更调整
3:X模型
X模型也是对V模型的垓心,X模型提出针对单独的程序片段进行分离的编码和测试,此后通过频繁的交接,通过集成最终合成为可执行的程序
4:H模型
软件测试过程活动完全独立,贯穿于整个产品的周期,与其他流程并发进行。某个测试点准备就绪时,就可以从测试准备阶段进行测试执行阶段,软件测试可以尽早进行,并且可以根据被测物的不同而分层次进行。
H模型揭示了一个原理:
软件测试是一个独立的流程,贯穿于产品的整个生命周期,与其他流程并发进行。H模型指出软件测试要尽早准备,尽早执行。
5:前置模型
前置模型体现了开发与测试结合,要求对每一个交付的内容进行测试。
前置模型特点:
1:开发与测试相结合
2:对每一个交付内容进行测试
3:在设计阶段进行计划和测试设计
4:让验收测试和技术测试保持相互独立
5:反复交替的开发和测试
6:发现内在价值
前置测试的两项技术:
开发基于需求的测试用例
定义验收标准
软件测试的类型
1:Web应用测试
2:手机软件测试
3:嵌入式软件测试
4:安全测试
5:可靠性测试
软件缺陷 BUG
从产品内部看,缺陷是软件产品开发或维护过程中存在的错误,毛病等
从产品外部看,缺陷是系统所需要实现的某种功能的失效或违背
**缺陷的表现形式**
1:需求功能未完成不好
2:需求功能数据不达标
3:多做了功能
4:为完成默认应该做的功能
5:软件不好用,体验效果不好
软件缺陷产生的原因
1“软件本身的问题
2:团队工作的问题
3:技术问题
4:项目管理问题
软件质量:软件与明确的和隐含的定义的需求相一致的程度”
质量管理的三个过程:质量计划,质量保证,质量控制
软件过程成熟度等级
初始级 依靠负责人经验
可重复级 具备基本管理制度,重复以前成功项目的环境和条件
已定义级 实现标准化,建立完事的培训制度和专家评审制度
已管理级 建立定量的质量目标,加入规定的很清楚的连续的度量
优化级 改进过程,采用新技术,拥有防止缺陷,识别薄弱环节以及改进的手段
软件测试成熟度
初始级
定义级
集成级
管理和测量级
优化,预防和质量控制级
*测试用例=输入+输出+测试环境
良好的测试用例的特性
有效性
经济性
可仿效性
可修改性
独立性
可跟踪性
测试用例设计的基本原则
测试用例的代表性
测试结果的可判定性
测试结果的可在现性
测试环境=硬件+软件+网络+历史数据
****测试环境的重要性****
加快测试进度
**可以** 准确重现缺陷
提高工作效率和软件质量
良好测试环境的要素
好的测试模型
多样化的系统配置
熟练使用工具的测试员
**测试环境的维护**
设置专门的测试环境管理员
明确测试环境所需要的各种文档
测试环境访问权限的管理
测试环境的变更管理
测试环境的备份和恢复
-
软件测试的分类*
按阶段分 单元测试 集成测试 系统测试 验收测试 回归测试 Alpha测试 Beta测试 按测试方法分 白盒测试 黑盒测试 灰盒测试
软件测试的流程
需求分析,测试计划,测试设计,执行设计,分析结果(缺陷跟踪)
测试执行的过程
单元测试——>集成测试——>系统测试——>出厂测试
** 测试分析**
1:测试的完整性和有效性
2:测试用例的管理
3:测试用列的屏蔽性
4:测试用列的效率和关联性
5:缺陷管理
软件测试的原则
1:测试显示缺陷的存在
2:穷尽测试是不可能的
3:测试的尽早介入
4:却显得集群性
5:杀虫剂悖论
6:测试活动依赖于测试内容
7:没有失效不代表系统是可用的
8:测试的标准是用户的需求
9:尽早定义产品的质量标准
10:测试贯穿于整个生命周期
11:第三方或独立的测试团队