目录
一.软件测试的目的和软件开发的生命周期
1.软件测试目的
目的是为了验证软件功能是否满足用户的需求
2.软件开发的生命周期
需求分析 ---》计划 ---》设计 ---》开发 ---》测试 ---》运行和维护
二.软件测试与软件调试的区别
1.目的不同
软件测试是验证软件是否实现了它应该实现的功能
软件调试是开发人员验证软件是否实现了他自己想让软件实现的功能
2.角色不同
软件测试:开发人员(白盒测试)和测试人员
软件调试:开发人员
3.阶段
软件测试:整个开发的生命周期
软件调试:开发阶段
三.需求
1.需求的概念
需求就是实现用户的期望或满足文档(合同,标准,规范)所需要的条件;其中需求有两种,
用户需求:比较简略,直接实现有困难。
软件需求:由用户需求转化而来,是用户需求的具体细化和具体实现细节。
注意:软件需求是测试人员进行测试的根本依据
2.怎样了解需求
(1)从需求分析阶段开始接入了解需求
(2)站在用户需求的角度进行考虑
四.测试用例
1.什么是测试用例
测试用例就是向被测试的系统发出的一组集合,其中包括测试环境,测试数据,测试步骤,预期结果。
2.测试用例书写的例子
以PC端登录qq网页版为例
(1)测试环境:Chrome浏览器 版本号:99.0.4844.51 PC端操作系统:Windows10
(2)测试数据: 账号:admin 密码:123
(3)测试步骤:
- 在浏览器上打开QQ登录的URL: I'm QQ - 每一天,乐在沟通
- 输入账号和密码
- 点击确认登陆
(4)预期结果:登录成功(测试步骤操作结束)
五.软件错误(BUG)
1.什么是软件错误
(1)当软件规格说明书(软件需求)存在且合理时,如果软件功能和软件规格说明书不符合,就说是软件错误。
(2)当软件需求不存在,用户需求存在且合理时,软件功能和用户所需功能不相符,也是软件错误。
六.软件开发的五个模型
1.瀑布模型
(1)模型图
(2)特点
每一个阶段比较独立,看重前期的需求分析和后期的测试,阶段性比较强。
(3)缺点
测试人员介入的比较晚,导致前期的问题后期才发现,可能会错失补救问题的机会。
2.螺旋模型
(1)模型图
(2)特点
适合于项目比较庞大,风险度高,比较复杂。回归测试比较重要。
(3)缺点
成本高,投入的人力物力比较多
3.增量模型,迭代模型
背景:加入有四个A,B,C,D模块需要两周时间进行完成
(1)增量模型
第一周开发AB模块,第二周开发CD模块
(2)迭代模型
第一周ABCD模块的基本功能,第二周在第一周的基础上完善其他功能。
(3)特点
抗风险能力强
4.敏捷模型
(1)敏捷模型的价值观
- 个体与交互重于过程和工具
- 可用的软件重于完备的文档
- 客户协作重于合同谈判
- 响应变化重于遵循计划
总计:轻文档,轻流程,重目标,重产出
在敏捷开发中,比较流行的时scrum
(2)scrum里的角色和各自的任务
角色:
scrum由product owner(产品经理)、scrum master(项目经理)和team(研发团队)组成。
分工:
- 其中product owner负责整理user story(用户故事),定义其商业价值,对其进行排序,制定发布计划,对产品负责。
- scrum master 负责召开各种会议,协调项目,为研发团队服务。
- 研发团队则由不同技能的成员组成,通过紧密协同,完成每一次迭代的目标,交付产品。
(3)scrum流程图
开发周期一般为2-4周,开发人员一般为5-9人。
流程解释如下:
发布计划会议:产品经理分析需求,形成user story,进行讲解,根据需要进行开发的user story形成sprint backlog。。
迭代计划会议:分析user story,把user story分解成一个个任务,分配给开发人员,制定开发计划。
每日例会:昨天做了什么,遇到了什么问题,今天的计划
演示会议:给甲方/用户演示产品,产品经理把不足的地方整理成user story,下一次迭代再进行改进。
回顾会议:回顾整个迭代过程,找不足的迭代地方,在下一次迭代计划中进行改进,优化迭代流程。
5.测试模型
(1)V模型
(2)W模型
特点:和V模型相比,测试介入的比较早,一开始就进行介入了,可以保证前期发现问题并及时纠正。
缺点:串行化进行,一个阶段完了就进行到下一个阶段了,但是中间如果客户想要增加需求就不可能实现;不支持敏捷开发。