目录
一.基础
1.概念
1.1 什么是软件测试?
软件测试就是验证软件产品特性是否满足用户的需求
测试是伴随整个生命周期的,是为了发现问题
测试手段:等价类划分法、边界值法......
1.2 什么是需求?
需求通常是由两部分(用户需求+软件需求)构成。
用户需求:可以简单理解为甲方提出的需求,如果没有甲方,那么就是终端用户使用产品时必须要完成的任务。该需求一般比较简略,通常就是一句话。例如:开发一个博客系统。
软件需求:通常是一个文档,详细描述了用户需求如何实现,日常工作中可以使用软件需求进行开发和测试。
1.3 什么是测试用例?
测试用例就是一组集合(包括测试环境、测试数据、预期结果、操作步骤......)
以博客系统举例:
测试环境:Windows系统+Chrome浏览器+本地
测试数据:账户,密码
操作步骤:输入账号,输入密码,点击登录
预期结果:登录成功
1.4 为什么需要测试用例?
a.测试用例提高测试人员工作效率/降低测试人员工作的重复性问题
b.测试用例是建立自动化的基础
1.5 什么是BUG?
当前仅当规格说明是存在且正确的,程序与规格说明之间的不匹配才是错误的。
当程序没有实现其最终用户合理预期的功能要求时,就是软件错误。
预期结果 != 执行结果
1.6 软件生命周期
需求分析 -> 计划 -> 设计 -> 编码 -> 测试 -> 运行维护
需求分析:分析需求是否合理,需求是否完整
计划:谁开发、开发时间、谁测试、测试多久
编码:编写代码
测试:发布一个测试报告
2.开发模型
2.1 瀑布模型
特点:线性的
优点:每个阶段做什么,产出什么,很清晰
缺点:周期很长
使用类型:小型的项目
2.2 螺旋模型
优点:每个阶段都会进行风险分析,避免一些线上问题发生
缺点:风险分析可能分析错,需要人力财力的投入
适用项目:适用于比较大的项目,风险比较多
2.3 增量模型、迭代模型
增量:登录开发完成->创建课程->上课
迭代:登录开发一部分->创建课程开发一部分->开发上课模块一部分
适用场景:大项目,需求不明确
2.4 敏捷模型
scrume模型:
三大角色:
scrum由product owner(产品经理PO)、scrum master(项目经理SM)和team(研发团队)组成。
team:后端开发,前端开发,UI设计师,测试
流程:
产品经理负责收集用户需求,来自客服反馈,来自用户
项目经理负责对需求进行优先级划分,计划项目什么时候开始,什么时候结束
每日站会:汇报昨天工作有没有完成,如果没有完成,遇到了什么问题,今天计划做什么
演示:各个部分进行
3.测试模型
软件测试中有两个比较重要的模型,V模型和W模型。
3.1 V模型
特点:左边开发,右边测试,类似于瀑布模型
优点:测试被划分成许多类型
缺点:测试人员介入太晚,发现问题时机太晚
3.2 W模型(双V模型)
特点:开发一个v测试一个v
优点:测试人员尽早介入了需求
缺点:测试人员和开发人员一定程度上还是串行的,不能拥抱变化,不能适用于敏捷
4.软件测试
4.1 生命周期
需求分析 -> 测试计划 -> 测试设计、测试开发 -> 测试执行 -> 测试评估
需求分析:需求是否完整,需求是否正确
测试计划:软件由谁测试,什么时候开始测试,什么时候结束测试,测试哪些模块
测试设计、测试开发:写测试用例(手工测试用例,自动化测试用例),编写测试工具
测试执行:执行测试用例
测试评估:测试报告
4.2 BUG
4.2.1 描述BUG
描述bug的基本要素:问题出现的版本、问题出现的环境、问题出现的步骤、预期结果、实际结果
4.2.2 bug级别
崩溃、严重、⼀般、次要
4.2.3 bug的生命周期
5.设计测试用例
5.1 测试用例要素
四个重要要素
测试环境、操作步骤、