史上最全面!!软件测试(知识点整理)
-
软件测试
第
1
章
软件工程概述
1.1
软件工程起源
1.1.1
软件的发展及特点
1.1.1.1
计算机硬件的发展
1.1.1.2
计算机软件的发展
1.1.1.3
计算机软件特点
1.2
软件危机
1.2.1
软件危机的表现
1.2.2
软件危机的形成条件
1.2.3
软件工程的提出
1.3
软件工程概述
软件工程
是研究和应用如何以系统性
的、
规范性的、
可定量的过程化方法去开发和维护软
件,
以及如何把经过时间考验而证明正确的管理技术和当前能够得到的最好
的技术方
法结合起来。
1.3.1
软件工程三要素
方法、过程和工具。
1.
方法
(
1
)
结构化方法(模块化方法)
将系统分
解为具有层次结构的模块或过程,
在设计和实现模块的内容时候,
不同
考虑其他模块的内部实现细
节,
而只需要考虑本模块的实现和与其他模块实现的接口。
(
2
)
面向对象方法
面向对象方法的核心概
念是“类”
,类是对具有相同属性和行为的一个或多个对
象的抽
象描述。
(
3
)
形式化方法
形式化方法是描述系统性
质的基于数学的技术,
此技术提供了一个框架,
可以在
框架中以系统的方式刻画。开发和验证系统。
(
4
)
基于构件的方法
构件是可复用的软件
组成成分,
可以独立地制造、
分发、
销
售和装配的二进制软
件单元,是可执行软件的一个物理封装,他有良好的接口,可被用来
构造其他软件
涉及三个子过程,构件开发、构件管理、基于构件的应用组装。
(
5
)
基于
Agent
的方法
面向多
Agent
的观点认为现实世界是由许多自主的或非自主的实体组成,
它们按
照各种关系组织起来,彼此间进行各种交互与通信,完成各种复杂的任务
。
(
6
)
基于敏捷技术的方法
敏捷方法汲取众
多轻型方法的“精华”
,恰当的表达这些方法的最根本之处
2.
过程
RUP
软件生命周期四过程:初始、细化、构造、交付
3.
工具
(
1
)
管理工具
主要对软件项目活动进行支持,如管理工具
Microsoft
Project
、需求管理工具
Doo
rs
、测试管理工具
TestDirector
、配置管理工具
Microsoft Visual
SourceSafe
。
(
2
)
开发工具
主要对软件的系统分析与设
计、
开发及测试活动进行支持,
如系统建模工具
Rose
、
集成开发环境
JB
uilding
、
Framework
、单元测试工具
JUnit
、性能测试
工具
LoadRunner
(
3
)
其他工具
图形化工具,如例图、鱼骨图
1.3.2
软件开发工程模型
1.
瀑布模型
2.
原型模型
3.
增量模型
4.
喷泉模型
5.
螺旋模型
1.4
软件过程能力评估与
CMM/CMMI
CMM
是软件过程能力成熟度模型(
Capacity Maturity Model
)的简称,
是卡内
基-梅隆大学软件工程研究院为了满足美国联邦政府评估软件供应
商能力的要求,
于
1986
年开始研究的模型,并于
1991
年正式推出了
CMM 1.0
版。
CMM
的五个成熟度等级
初始级:
可重复级:
确定级:
管理级:
优化级:
第
2
章
软件测试的金字塔体系
2.1
一个中心:质量
(金字塔顶点)
p>
质量
人员
资源
技术
流程
2.2
五个要素:
(金字塔
5
个支点)
(
1
)
质量
(
2
)
人员
(
3
)
技术
(
4
)
资源
(
5
)
p>
流程:从测试计划和测试用例的创建、评审到测试的执行、报告,设定每
个阶段的进出标准
。
质量
以人为本
测试覆盖率
测试效率
人员
流程
技术
图
1
:软件测试核心、目
标、基础等关系
2.3
五
个工作面:
(金字塔
5
个面)
(
1
)
p>
质量
-
人员
-
p>
技术:团队建设
(
2
)
p>
质量
-
人员
-
p>
资源:成本管理
(
3
)
p>
质量
-
技术
-
p>
流程:测试架构
(
4
)
p>
资源
-
质量
-
p>
流程:基础建设
(
5
)
p>
人员
-
技术
-
p>
流程
-
资源:项目管理
质量
成本管理
人员
建
设
础
建
< br>团
项
目
测试架构
资源
设
管
理
< br>队
技术
流程
2.4
八
组关系:
(金字塔
8
条边)
(
1
)
质量与人员
(
2
)
质量与流程
(
3
)
质量与技术
(
4
)
质量与资源
(
5
)
人员与技术
(
6
)
人员与流程
(
7
)
流程与资源
(
8
)
技术与资源
2.5
13
项原则
ISTQB
的
6
项原则
(
1
)
测试显示缺陷,但不能证明没有缺陷
基
(
2
)
穷尽测试是不可能的
(
3
)
测试尽早借入
(
4
)
缺陷集群性:发现缺陷多的地方,没有发现的缺陷更多
(
5
)
p>
杀虫剂悖论:采用同样的测试用例多次重复测试将不在发现新的缺陷
(
6
)
p>
测试活动依赖于测试背景:针对不同的测试环境,测试的活动也是不
同的。
其他重要的
7
条原则
(
7
)
持续的测试、持续的反馈
(
8
)
80/20
原则
(
9
)
建立清晰的阶段性目标
(
10
)测试独立性
(<
/p>
11
)确保可测试性
< br>(
12
)计划是一个过程
p>
(
13
)一切从用户角度出发
2.6
21
个关键域
序号
1
2
3
4
5
6
7
8
9
10
11
12
13
14
关键域
团队文化
团队业务能力
团队技术能力
团队成长
测试生命周期流程
测试基础设施
测试能力需求分析
测试设计与用例
静态测试技术
动态测试技术
非功能性测试能力
高级测试技术
自动化测试
测试计划与策略
简要说明
15
16
17
18
19
20
21
测试环境
测试执行与监控
缺陷分析与跟踪
结果报告与分析
度量
软件产品质量评估
预防缺陷
2.7
34
个方法
序号
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
静态测试方法
基于不同方式的宏
观测试方法
灰盒测试
黑盒测试
类别
白盒测试
方法
语句覆盖
判定覆盖
条件覆盖
判定条件覆盖
条件组合覆盖
基本路径覆盖
等价类划覆盖
边界值分析法
判定表方法
因果图法
正交试验法
功能图法
ALAC
方法
随机测试法
错误测试法
模糊测试法
变异测试法
基于
API
测试方法
基于用例进行测试
探索式测试方法
主动测试方法
被动测试方法
手工测试方法
自动化测试方法
互为评审
备注
像用户那样进行测试
在产品发布前系统化测试
在线测试、在线监控
26
27
29
30
31
32
33
34
其他
形式化方法
轮查、走查
会议评审
工具扫描
基于模型的测试方法
基于逻辑的测试方法
基于网络的测试方法
基于代数的测试方法
基于风险的测试方法
端到端的测试方法
2.8
软件测试分类
分类依据
软件开发阶段
测
试
p>
方
法
与
技
术
测试实施组织
测试类型
单元测试
集成测试
系统测试
验收测试
测试类型描述
是
否
执
p>
静态测试
行软件
动态测试
是
否
了
黑盒测试
解
内
部
结构
白盒测试
开发方测试
用户测试
第三方测试
测试内容
功能测试
安全性测试
接口测试
容量测试
完整性测试
结构测试
负载测试
压力测试
恢复性测试
配置测试
兼容性测试
安装测试
疲劳强度测试
2.9
编号
软件测试的详细分类
二级目录
编号
0101
0102
0103
0104
0105
0106
0107
0108
名称
质量
缺陷
软件测试
验证和确认
主动测试
被动测试
手工测试
自动化测试
动态测试
011001
011002
011003
0110
静态测试
011004
011005
011006
011007
互为评审
走查
会议审评
需求审评
设计审评
代码审评
代码扫描
编号
三级目录
名称
名称
一级目录
01
基本概念
0109
02
白盒方法
0201
0202
0203
0204
0205
基本路径覆盖
语句覆盖
分支覆盖
条件覆盖
组合覆盖
0206
形式化方法
020601
020602
020603
020605
020606
020607
03
黑盒方法
0301
0302
0303
0304
0305
0306
0307
0308
04
单元测试
0401
0402
0403
0404
0405
0406
0407
0408
0409
05
集成测试
0501
0502
0503
等价类划分
边界值分析
因果图
决策表
状态转换法
正交试验方法
错误猜测法
模糊测试法
面向对象的单元测试
C++
单元测试
Java
单元测试
C#
单元测试
PHP
单元测试
Python
单元测试
Ruby
单元测试
AJAX
单元测试
其他程勋单元测试
桩程序
驱动程序
集成程序
050301
050302
050303
050304
050305
0504
0505
0506
06
形式化验证
< br>(UML
、
SPIN)
有限状
态机(
FSM
)
扩展有限机状态
(
EFSM
)
p>
标准
RBAC
模
型
扩展的
RBAC
< br>模型
符号模型检验
BAN
逻辑模型
大棒模式
递增模式
深度优先策略
广度优先策略
混合模式
版本构建
持续集成
接口测试
功能测试
060101
系统测试
0601
UI
测试
060102
060103
060104
0602
性能测试
060105
060201
060202
060203
060204
060205
060206
060207
060208
0603
安全性测试
060301
060302
060303
060304
060305
060306
0604
可靠性测试
060401
060402
060403
0605
兼容性测试
060501
060502
060503
0606
基于应用的测试
060601
060602
060603
060604
060605
0607
0608
0609
0610
0611
0612
端到端测试
负面测试
回归测试
冒烟测试
验证测试
基准测试
规划测试
压力测试
负载测试
容量测试
性能指标
负载模式
代码安全
数据安全
通信安全
系统安全
加密安全
Web
系统安全
故障转移测试
备份测试
恢复测试
数据迁移测试
系统升级测试
配置测试
数据库测试
嵌入式系统的测试
分布式系统的测试
实时系统测试
云计算系统测试
部署测试
国际化测试
本地化测试
验收测试
α
测试
β
测试