认识测试
今天小编来分享下什么是测试。
这个里的测试是指软件测试
软件测试:是通过执行程序、系统、组件,以验证其是否满足规定的需求、发现其中存在的bug并评估其质量过程
与其类似还有一个,软件测试开发工程师
软件测试开发工程师:是介于传统测试工程师与开发工程师直接的角色,不仅负责测试策略与用例设计、还具有较强的编码能力、开发自动化测试框架、工具、脚本,以提升测试效率和质量保障能力。
那么值得注意的是,有些公司它招人是测试,但它也有可能会让你干测开的活。
接下来,小编再来分享一下关于测试的相关知识
需求
在多数的软件公司中,需要分为两种,一种是软件需求,一种是用户需求。
用户需求:
以最终用户或客户角度出发,描述他们希望系统“能做什么”或“解决什么问题”的高层次、业务导向的诉求。通常以自然语言、用例或用户故事的形式表达
示例:
“用户希望能够通过手机号一键登录,无需记住密码。”
软件需求:
是将用户需求转化为技术团队可理解、可验证、可实现的详细规范,明确系统“必须具备哪些功能”和应满足哪些约束条件“。它是开发和测试工作的直接依据
这里还分为功能性需求、非功能性需求
功能性需求:
描述系统应提供的具体功能或行为
示例:
”系统应在用户输入错误密码5次后锁定账户30分钟“
非功能性需求:
描述系统运行时的质量属性或约束条件,如性能、安全性、可用性、兼容性等
示例:
”系统应支持1000万并发用户同时登录,响应时间不超过2秒“
对比如下:
开发模型
分享这个开发模型之前,不得不提一句软件开发的生命周期。
软件开发的生命周期:
需求分析——>计划——>设计——>编码——>测试——>运行维护。
常见的开发模型:
瀑布模型:
开始——>需求分析——>计划——>设计——>编码——>测试——>结束
可以看到和软件的生命周期还是有点类似的
优缺点如下:
综上来说,瀑布模型适用场景:需求固定的小项目
螺旋模型:

图片来源:https://www.itcast.cn/news/20201008/15522827061.shtml
在有些场景中,软件开发的初期需求不是很明确时,会采用渐进式的开发模型。而螺旋模型是渐进式开发模型代表之一。
优缺点如下:
增量、迭代模型:
增量模型:
将系统划分为多个功能增量,每个增量都是一个可交付的完整子系统,逐步叠加直至完成全部功能。
可以理解为:先做一部分功能、做完再做下一部分
迭代模型:
通过多次循环开发、每次迭代都包含需求、设计、编码、测试等完整流程,逐步完善系统
可以理解为:每次做全功能、但越来越完善
优缺点对比如下:
敏捷模型:
敏捷模型是一种以人本、协作、响应变化和可工作软件为核心的软件开发方法论,强调小步快跑、持续交付、快速反馈,它不是单一的模型,而是一类方法的统称。
它存在着一个重要的《敏捷宣言》内容如下:
个体与交互重于过程和工具
可用的软件重于完备的文档
客户协作重于合同谈判
响应变化重于遵循计划
由此可以总结出四个特点:轻文档、轻流程、重目标、重产出
敏捷开发有很多方式,其中较为流行的是:scrum方式
scrum:又称为迭代式增量软件开发模型
其中三个角色和五个重要会议是比较重要的
三个角色:
1.product owner(产品经理) :负责整理user story(用户故事) 定义商业价值,对其进行排序,制定发布计划,对产品负责
2.scrum master(项目经理):负责召开各种会议,协调项目,为研发团队服务。
3.team(研发团队):研发团队由不同技能的成员组成,通过紧密协同,完成每一次迭代的目标,交付产品
五个重要会议:
1.发布计划会议:
产品经理负责讲解用户故事,对其进行估算和排序,发布计划会议的产出:就是制定这一期迭代要完成的story列表,sprint backlog
2.迭代计划会议:项目团队对每一个story进行任务分解,分解的标准是完成该story的所有任务,每个任务都有明确的负责人,并完成工时的初步预估
3.每日例会:项目经理召集站立会议,团队成员回答昨天做了什么、今天计划做什么、有什么问题
4.演示会议:迭代结束后,召开演示会议,相关人员都受邀参加,团队负责人向大家展示本次迭代取得的成果。期间大家的反馈记录下来,由产品经理整理,形成新的story
5.回顾会议:项目团队对本期迭代进行总结、发现不足、制定改进计划,下一次迭代继续改进,以达到持续改进的结果
那么对于这个开发模型分享到这里,接下来分享下测试模型
测试模型:
在测试中,有两个非常重要且具有标记性的测试模型:V模型和W模型
V模型:
V模型是瀑布模型在测试领域的延伸,强调开发阶段与测试阶段的一一对应关系,左侧是开发活动,右侧是测试活动,形成V字形结构

优点:
明确标注了测试过程中存在的不同类型的测试,并且清除的描述了这些测试阶段和开发过程期间各阶段的对应关系,有效提升测试的质量和效率
缺点:仅仅把测试作为编码之后的一个阶段,未在需求阶段就介入测试,缺点就类似于瀑布模型
W模型
是对v模型进行改进,它强调:测试不仅针对程序本身,也针对开发过程中所有工作产物(如需求文档,设计文档),且测试活动与开发活动并行开展。

图片来源:https://blog.csdn.net/weixin_51059284/article/details/123208765 W模型的核心特点:
有两个V字叠加,形成W形
左侧V:开发过程+对应的测试设计
右侧V:验证与确认并行
测试对象扩展:不仅测代码、还测需求、设计等文档(即静态测试)
测试尽早介入:从需求阶段就开始测试活动(如评审、检查);
对比如下: