软件测试
2020-03-27 09:57:55 0 举报
AI智能生成
软件测试介绍
作者其他创作
大纲/内容
定义
发现软件中缺陷
验证产品特性是否满足用户需求
对产品质量进行全面的评估
验证与确认(V&V)
已知的检验 + 未知的实验
测试标准
ISO 29119
ISO 25000
GBT 15532
GBT 16260
GBT 18905
IEC 16508/GBT 20438
测试原则
一切从用户的角度出发
测试活动贯穿SDLC
缺陷发现/质量风险揭示越早越好
80/20原则
基于上下文不断调整测试策略/方法
与相关利益者紧密协作
软件发展历史
流派
分析流派
代表传统测试:强调系统的逻辑分析
基于脚本的测试(ST):设计和执行分阶段执行
受瀑布模型影响大:阶段性、重视文档
标准流派
度量
劣质版本/保障性成本
质量流派
测试是把关质量,检验产品是否符合质量要求
上下文驱动流派
快速测试(RST)
探索式测试(ET)
SBTM
框架
session与charter
TSB
session spread sheet
Debrief
tools
敏捷测试
敏捷思维
敏捷开发原则
核心价值观
持续集成(CI)/ 持续测试 / 持续交付
轻量型测试工具
实践:TDD/ATDD/BDD
方法
基于直觉和经验的方法(EBT)
Ad-hoc方法
ALAC测试
错误猜测法
基于输入域的方法(IDBT)
等价类划分法
边界值分析法
决策表
因果图
组合测试方法
完全组合测试
组合优化方法
pairwlse方法
n-way方法
变强度的方法
正交试验法
分类树方法
基于代码的方法(COBT)
控制流覆盖
基本路径覆盖
语句覆盖
判定覆盖
条件覆盖
MCDC
条件组合覆盖
逻辑覆盖
数据流覆盖
变量定义--引用
基于故障方式的方法(FPBT)
故障模式识别/分析
故障注入
基于模型的方法(MBT)
模型规范
范围
Input-only
Input-output
特性
Timed/un-
确定性/非-
离散/连续/混合
范型
基于转换的
有限状态机(FSM)
EFSM
基于历史的
基于功能/操作的
随机的
数据流
自动生成测试
测试选择标准
结构模型覆盖
数据覆盖
需求覆盖
测试用例规范
随机的
基于故障模式的
技术
随机的
模糊的
变异的
概率模型
基于搜索算法
遗传算法
禁忌算法
粒子群算法
神经网络
演化算法
......
模型检验
时序逻辑LTL/CTL
符号执行
定理证明
约束求解
基于使用的方法(UBT)
基于配置及其组合的方法
基于应用场景的方法
用户观察启发式
基于需求/标准验证的方法(REBT)
基于逻辑分析的方法(LABT)
基于上下文驱动的方法(CBT)
RST/ET
基于风险的方法(RIBT)
类型/层次
单元测试
人工评审
Peer review
walk-through
Inspection
工具静态分析
工具
动态测试
Mock技术
Stub/Driver
xUnit框架
代码覆盖率分析
集成测试
持续集成
Big-bang/增量
自顶向下/自底向上...
BVT/Sanlty Testing
持续交付/DevOps
系统测试
功能测试(Functionality Test)
方法/技术/工具
Web/Mobile/...技术
回归测试(Regression Testing)
RIBT
性能测试(Performance Testing)
基准测试
验证测试
规划测试
容量测试
稳定性测试/压力测试(Stability/Stress testing)
负载测试
性能指标
负载模式
虚拟用户/负载产生器
控制器
性能调优
可靠性测试(Reliability Testing)
故障转义测试/Fail-over testing
故障注入
空间换时间---压力测试
安全性测试(Security Testing)
安全性功能测试
渗透测试
工具
MBT/模糊测试/FPBT
Web/Mobile/...
兼容性测试(Compatibility Test)
数据兼容
子系统/系统
硬件
基于互联网的测试
众测
云测试
灰度发布
A/B测试
用户体验测试
界面测试
Media Testing
最佳实践
可视化测试
截屏
行为测试
可达性测试(Accessibility Testing)
听觉/视觉/......
全球化和本地化测试
G11N/118N/LON
Pseudo-localization
文化/宗教/度量衡等
语言/翻译
本地化系统/硬件等
验收测试(Acceptance)
用户参与,用户环境/数据
管理
可测试性
需求可验证性
设计可验证性
代码可读性
接口定义
测试件团管理
测试计划
测试用例
测试脚本
测试工具
测试报告
缺陷管理
生命周期定义
严重性/优先级定义
类别
功能丢失
数值错误
运行错误
需求冲突
崩溃/闪退
显示不正常
逻辑问题
缺陷报告
缺陷分析
分布分析
趋势分析
根因分析
质量管理
过程跟踪
计划执行/风险/进度/...
评审
计划
目标清晰
分为界定合理
测试分析识别和应对
测试项目都识别出来了?
测试方法有效
设计
测试质量范围
设计思路合理?
设计能否实现目标
执行
代码覆盖率
设计覆盖率
需求覆盖率衡量
迟发现的Bug数
用例执行/通过率
度量
缺陷/测试用例/自动化/覆盖率...
人员能力
培训/认证/招聘/绩效/...
测试计划
明确测试目标
出/入口准则
测试需求
识别测试项
测试项优先级
确定测试范围
测试风险
识别/分析/防范/...
制定测试策略
工作量估算
资源安排
进度安排
风险管理
人员:能力/缺乏/....
策略:不有效/应用不当...
方法:上下文/应用不恰当...
范围:遗漏/模糊/变更...
环境:错误/差异/不足/冲突...
场景:差异/无法模拟/组合太多/...
执行:漏掉TC/错失Bug/偏差/...
进度:估算不足/需求变更/...
测试环境管理
基础设施
数据
网络与硬件
支撑软件
被测系统(SUT)
与相关利益者关系
过程
过程模型
W模型/TMap Next/XP...
过程改进
TMI/TMMI/CTP/...
工程过程
单元测试 / 集成测试
系统测试
Alpha测试
Beta测试
工作过程
测试计划
测试设计
测试执行
结果评估
测试报告
支持过程
SQA
配置管理
项目管理
技术
面向对象技术
OOA/OOD/OOP
面向SOA的技术
面向微服务测试技术
web测试技术
移动app测试技术
Windows测试技术
嵌入式软件测试技术
物联网测试技术
云测试技术
大数据测试技术
自动化测试(含工具)
策略
四个象限
金字塔
UI/API/Unit
自动化测试工具
单元测试
代码分析
Findbugs
CheckStyle
......
动态
xUnit
TestNG
PMD
JMock
......
code review辅助
集成测试
Jenkins/......
功能测试
Web测试
Selenium...
Windows
AutoIT...
Mac OS
XCode...
Mobile
Espresso/Robotium/...
......
覆盖率分析工具
Java
JCov/JaCoCo/Clover...
C/C++
gcov/xCover/...
python
Coverage.py...
......
性能测试
JMeter/nGrinder/Gatling...
安全性测试
OWASP ZAP/W3AT/Coverity/...
缺陷管理
JIRA/MantisBT/...
测试管理
TestLink/...
自动化测试框架
Robot Framework
STAF/STAX
Appium
......
测试方法
手工测试
自动化测试(TA)
主动测试
研发人员在研发环境的大部分测试
ST vs. ET
被动测试
在线测试 Testing in Production
静态测试
代码评审/工具分析
动态测试
手工测试/自动化测试
0 条评论
下一页