前言 :
什么是测试,测试在我们的生活中随处可见,比如你要买一件衣服,首先你可能是因为这件衣服的样式吸引了你,这其实就是外貌测试,然后呢,你就询问这件衣服的品质,看是不是你的需求,这是品质测试,最后呢,你肯定会询问衣服的价格,看价格在不在你的预算以内,这也是价格测试。也就是说,其实测试就是用来检验一个产品符不符合你的需求。
为什么要有测试:
首先要明白,企业都是要盈利的,像如果我们开发一个app,不经过任何测试就直接投入使用,用户在使用这个app时频繁的出现问题,那么相信不会再有用户来使用你这个app,而测试,就是保证我们这个app的质量,提高用户的满意度。
软件测试:
软件测试是测试一个产品的产品特性(如功能,性能等各个方面)是否满足用户的一个需求。
大多数企业都有测试岗位,测试是一个统称,主要的呢有下面两种
1.软件测试开发工程师:测试业务,开发效率工具(提高测试质量和效率)
2.测试工程师:测试业务
这两种岗位核心都是业务测试,只不过测开需要我们自己开发一些效率工具
软件测试和软件开发的区别 :
1)开发是指开发业务代码, 软件测试核心是对业务进行测试
比如公司的一个app要求新增一个收藏功能模块,让用户能够看到自己收藏的内容,这时候我们需要开发这个收藏功能,当点击这个收藏功能时,就调用数据库中相关的数据,而测试人员呢就对这一功能进行测试,就是我们点击之后它能不能进行一个跳转,看它能不能对数据库中的内容进行一个调用。
2)难度方面呢,我们来看看开发和测试要学习的内容:

因为测试人员要对开发的业务进行测试,也需要写代码,比如自动化测试,性能测试等等,所以我们要掌握开发的知识和框架。
3)测试人员和开发人员的沟通交流是很多的
4)测试是贯穿软件开发的整个生命周期的,比如软件开发前,我们要了解这个产品的需求,过程中也要测试软件是否会出错,有bug这些,软件上线后也要不断的进行测试。

自动化测试 :自动化测试能够帮助我们自动执行一些测试内容一样的测试。
主要有接口自动化和前端自动化。
测试用例 :测试用例是用来检验产品质量的,同时设计测试用例也是面试/笔试的必考题。

什么是需求 :
需求分为用户需求和软件需求
1.用户需求:是指没有进行合理的评估,通常只是一句话(比如开发一个购物软件)
2.软件需求:也叫做功能需求,根据用户需求详细的描述出软件需要开发人员实现的软件功能
注意 :
1.只有用户的需求进行合理的评估之后,才能够转化为我们的软件需求 ,(如果我们评估之后发现用户的需求是无法实现的,那么我们也就不可能开发出这样的一个软件功能去实现它)
2.软件需求是开发人员和测试人员进行开发和测试的依据,有了软件需求,才能进行开发和测试工作。
对比一下用户需求和软件需求:

开发模型:
在认识开发模型之前,我们首先要知道软件的生命周期,就像人的生命周期一样,软件的开发也是有生命周期的,软件的生命周期就是开发模型。
软件的生命周期:
1.需求分析:分析用户的需求,将其转化成我们的软件需求
2.计划:规划出每个角色所完成其任务的时间(比如完成开发任务的时间,完成测试任务的时间以及软件的上线时间等等)
3.设计:每个角色设计出自己的流程
4.开发:实现软件的功能
5.测试:测试软件功能,保证产品质量
常见的开发模型
瀑布模型 :同软件的基础生命周期一样。

特点 :
1.每个流程只执行一次
2.线性的开发流程
缺点 :1.产品上线很慢,可能导致上线后不在适合当时的时代,导致盈利少或者说是不盈利 2.如果在测试阶段出现问题了,很有可能导致整个项目重新返项(比如测试阶段发现功能不符合需求,那么就要层层追溯,最后重新进行需求分析)

为了解决上述在测试阶段可能出现问题导致返工的问题呢,又提出了一个螺旋模型
螺旋模型 :

特点 :
每到一个流程之前呢都进行风险分析和引入原型
1.风险评估:评价方案,识别风险,清楚风险
2.原型:原型是需求被开发完成之后的一个模型,是一个可运行的、简化的软件版本。
那么螺旋模型是个怎么样的流程呢:
首先根据用户需求开发一个可运行的简易软件,也就是原型,接着对这个原型进行风险分析,判断用户需求合不合理。然后进行下一阶段,对需求分析进行风险分析,没问题,则生成一个新原型,有问题,则优化需求分析,然后再生成一个新原型,以此类推,直到设计也没问题生成一个可运行原型,然后开发和测试根据这个可运行原型来进行编码和开发。
增量模型 :
特点:将一个需求分成多个小需求,每个小需求独立实现
迭代模型 :
特点是先开发出基础的功能,然后再不断的完善
敏捷模型 :
在实际工作中,用户可能在我们开发软件的过程中提出新的需求,如果使用上述模型进行开发流程,就会导致一旦需求变化,所有的工作就得从头开始,这是需要巨大的成本和时间的。为了解决这一缺点,所以提出了敏捷模型
特点 :
1)将一个需求分解为多个小功能,每个功能都快速的上线,之后再进行迭代优化,所以敏捷模型也被称做迭代式增量模型
2)能够快速适应需求的变化,快速的实现我们的软件项目
这里的敏捷模型只是一个统称,下面还有具体的敏捷模型
Scrum模型
Scrum是敏捷模型中的⼀种,⼜称为迭代式增量软件开发模型。
迭代开发:
Scrum模型将功能的开发分为多个小迭代,通常持续一周到四周,每次迭代都有需求,且需求是固定的,同时每次迭代结束都要有软件交付。
其中需要我们掌握的是Scrum模型的"三个角色,五大会议"
三个角色:
1.产品经理:负责收集用户的需求,对用户的需求进行评估和排序,形成产品需求列表。
2.项目经理:开展各种会议,项目的协调工作
3.研发团队:由不同技能的人员组成,完成每一次的迭代开发,交付产品
五大会议 :
首先,产品负责人收集用户的需求,列出一个产品需求表。
发布计划会议 :产品负责人对产品需求表里的需求进行合理的评估,然后进行排序,确定本次迭代要实现的需求列表。
迭代计划会议 :对发布计划会议确定的每一个需求进行任务拆解,也就是需求分析,计划等任务,同时给出每个任务开始和结束的时间和对应的负责人(比如测试负责人------测试人员)
每日会议 :团队成员按照任务开展自己的工作,在迭代周期内,每天都要进行会议,主要说明三个问题:1.昨天做了什么。2.今天要做什么。3.遇到了哪些问题
演示会议 :迭代周期结束后,对本次迭代取得的成果进行演示,然后收取反馈,需求等等
回顾会议::项⽬团队对本期迭代进⾏总结,发现不⾜,制定改进计划,下⼀次迭代继续改进,以达到持续改进的效果
这就是Scrum模型的流程