文章目录
- 一. 概念篇
- 测试的概念
- 软件测试领域
- 面试题:测试和调试的区别
- 面试题: 优秀人员具备的素质
- 测试用例
- 什么是需求
- 开发模型和测试模型只需理解记忆特点和缺陷!
- 开发模型
- 软件的生命周期
- 常见的开发模型
- 瀑布模型(笔试题)
- 螺旋模型
- 增量模型,迭代模型
- 敏捷模型
- Scrum
- 轻文档和快速迭代
- 测试模型
一. 概念篇
测试的概念
验证软件的特性是否满足用户的需求
- 满足用户需求,就可以提高用户的使用的满意度
软件测试领域
软件测试工程师
软件测试开发工程师
- 各位涉及到软件测试,自动化测试,性能测试…(等技术事务),这种也就是测试工程师
异同:
- 本职工作都是软件测试
- 软件测试开发工程师,多了开发二字
测试开发:在完成业务测试之后,余有时间需要做一些技术事务
面试题:测试和调试的区别
目的 :调试是发现并解决问题,测试是发现问题
角色不同:调试 开发人员,测试(全部成员)
虽然软件测试人员的主要工作职责是保障产品的测试质量,但是,软件的质量并不是只由测试人员来保障!
项目组(产品经理,前端开发,后端开发,测试,交互,设计…)全部成员都需要为产品质量负责
找bug也是测试人员绩效的考核机制
阶段: 调试在开发阶段,测试是在软件的整个生命周期
面试题: 优秀人员具备的素质
- 沟通能力
- 快速学习能力:对不同的业务需求和功能的快速学习和理解能力
- 开发能力
- 文字能力
测试用例
什么是需求
-
需求的概念:
用户需求和软件需求
用户需求:没有经过合理的评估,通常就是一句话
小杨:立马找一个对象
韩信:立马展现应该五杀
软件需求:开发人员和测试人员执行工作的依据
韩信五杀: 让敌方五人全部复活,敌方站在我方防御塔下,韩信站在我方防御塔下,韩信攻击
用户需求不能直接作为开发和测试的依据!
开发模型和测试模型只需理解记忆特点和缺陷!
开发模型
软件的生命周期
软件的生命周期其实就是软件的开发模型 :
需求分析-计划-设计-编码-测试-运行维护
(软件的基础流程)
常见的开发模型
软件的开发流程(软件的生命周期)
了解开发模型的特点和适用场景即可
瀑布模型(笔试题)
star—需求分析—计划—设计—编码—测试—end
特点:
每个流程只执行一次,线性的开发流程
缺点:
最大的缺陷在于,可以运行的产品很迟才能被看到,可能导致需求/功能过时
直播软件—-上线(两年后才上线,直播板块不火了)
测试后置
- 前面各阶段遗留的风险推迟到测试阶段才被发现,导致项目大面积返工,失去了及早修复的机会
- 必须留有足够的时间给测试活动,否则导致测试不充分,将缺陷直接暴露给用户
瀑布模型的适用场景: 需求固定的小项目
螺旋模型
适用场景:规模庞大,复杂度高,风险大的项目
特点
螺旋模型中,各个阶段都引入了风险分析 + 原型
在螺旋模型中,需要额外招聘专业的风险分析人才,各阶段是否遗留问题完全取决于风险分析人员自身的能力
优点:
强调严格的全过程风险管理
强调各开发阶段的质量
增加风险分析和原型
缺点
项目中可能存在风险性和风险管理人员的技能水平有直接关系
需求人员,资金,时间的增加和投入,可能会导致项目的成本太高
增量模型,迭代模型
增量模型:将大需求拆分为小需求,每个需求独立开发上线
基础版本—–优化版本1—-优化版本2….
增量通常和迭代混为一谈,但是其实两者是有区别的。增量是逐块建造的概念,例如画一幅人物画,我们可以先画人的头部,再画身体,再画手脚……而迭代是反复求精的概念,同样是画人物画,我们可以采用先画整体轮廓,再勾勒出基本雏形,再细化、着色。
随着互联网的发展,很少有企业会独立使用这两个模型,而是两个配合一起用
敏捷模型
Scrum
三个角色:
- 产品经理(product owner):收集需求(user story),产出软件需求文档
- 项目经理(scrum master):负责召开各种会议,协调项目,为研发团队服务
- 研发团队(team):开发人员(前后端,测试人员,交互设计)
迭代开发:将产品开发分解为若干个小sprint(迭代),每一次迭代一定产生交付
五个重要会议
轻文档和快速迭代
测试人员不该用传统的excel编写测试用例,更多的是思维导图,探索性测试(强调自由度,设计和执行同时进行,根据测试结果不断调整测试计划),自动化测试
敏捷讲求合作,在敏捷项目中,测试人员应多主动和开发人员了解需求,讨论设计,一起研究bug出现的原因
测试模型
V模型:缺点测试后置(和瀑布模型类似)
W模型(双V模型)