1.软件开发流程与项目管理
软件开发流程的演变
传统瀑布模型->敏捷开发模型->DevOps开发模型
瀑布模型
瀑布模型的优缺点
优点:
开发的各个阶段比较清晰
强调早期开发和需求调查
适合需求稳定的产品开发
缺点:
由于开发模型是线性的,增加了开发的风险
早期的错误可能要到开发后期才发现
敏捷开发模型
XP
SCRUM
XP
SCRUM
敏捷开发模型特点
增量迭代
小步快跑
大概2周迭代一个版本,现在大部分公司的主流
DevOps开发模型
DevOps生命周期
DevOps对发布的影响
减少变更范围
加强发布协调
自动化
可以1天发布一个小版本
CI/CD
持续集成(CI)
持续交付(CD)
CD与DevOps的关系
项目管理
软件项目管理的方法
制定项目计划
执行该计划并监控跟踪管理
项目风险应对与问题解决
项目收尾
跨部门沟通合作
1.与产品沟通
需求评审会
分析需求
测试用例编写阶段
测试过程中
2.与研发沟通
分析需求
测试用例编写阶段
测试过程中
线上监控发现bug时
3.上下游测试配合
测试计划沟通
环境对接
熟悉业务
2.测试流程体系
软件测试基本概念
软件测试
通过手工或工具对”被测对象“进行测试,验证实际结果与预期结果之间是否存在差异。
软件测试原则
测试显示缺陷的存在
穷尽测试是不可能的
测试应尽早介入
缺陷集群性(2/8原则)
杀虫剂悖论
测试活动依赖于测试内容
没有错误是好是谬论
软件测试对象
需求分析阶段:需求文档、接口文档
编码实现阶段:源代码
系统功能使用:应用程序
测试用例
为特定的目的而设计的一组测试输入、执行步骤和预期的结果,以便测试产品满足某个特定需求的文档。
软件测试模型
1.V模型
V模型是瀑布模型的一种改进
V模型标明了测试过程中的不同阶段
V模型优缺点
2.W模型
W模型明确表示出了测试和开发的并行关系
W模型中测试伴随着整个开发周期,并且测试的对象不仅仅是程序,需求和设计同样需要测试
W模型优缺点
3.H模型
把测试活动完全独立起来,形成一个完全独立的流程,将测试准备活动和测试执行活动清晰的体现出来
H模型优缺点
软件测试工作流程
1.传统测试流程
2.系统测试流程
3.bug管理流程
测试左移
测试左移是往测试之前的开发阶段移
在软件开发周期早期就开始介入
对代码进行测试
从发现bug到预防bug
测试右移
右移是往发布之后移
产品上线之后进行线上监控
3.测试技术体系
软件测试分类
分层测试体系
单元测试
单元测试方法
java:JUnit、TestNG
python:Unittest、pytest
接口测试
接口,简称API
是针对软件对外提供服务的接口的输入输出测试
接口测试方法
UI测试
UI测试方法
4.常用测试平台
常用测试平台
1.测试用例管理平台和bug管理平台
2.代码管理平台
gitlab用的企业较多
3.流程管理平台
5.黑盒测试方法论
1.常用测试方法
等价类划分
边界值分析
因果图
判定表
决策树
探索式测试
等价类
边界值
因果图和判定表
决策树
探索式测试
是一种软件测试的风格
6.白盒测试方法论
白盒测试的度量
代码覆盖率常见概念
覆盖率统计工具
例如Java工具:
Emma
cobertura
jacoco
流程覆盖
利用代码执行流代表流程
流程覆盖用路径覆盖率表达
对流程进行裁剪获得一个适合业务的小规模的业务子集
流程覆盖率=测试经过的路径/业务子集的路径
精准化测试
代码调用链与黑盒测试用例的关联
根据代码变更自动分析影响范围
黑盒测试中借助代码流程覆盖数据指导探索式测试
利用线上数据推导有效测试用例
代码流程分析和覆盖率统计
7.测试经典书籍推荐
1.全程软件测试-朱少民
2.探索式测试-史亮
3.Google的测试之道
4.持续交付-乔梁
5.不测的秘密-腾讯TMQ