一阶段:
一周:系统测试的流程规范
二周:数据库基础
三周:Linux操作系统
四周:项目实战
五周:APP专项测试
段位:初级测试工程师、初中级测试工程师的能力
二阶段:
一周:Python基础
二周:Python高阶
三周:接口测试(基于Python自动化实施方案)
四周:UI测试(基于Python自动化实施方案)
段位:中级工程师
三阶段:
一周:性能测试流程规范
二周:性能测试高阶
三周:性能测试项目实战
四周:自动化测试框架设计实现
段位:中高级、高级
四阶段:
一周:微服务架构基础
二周:微服务项目系统测试和接口测试
三周:微服务项目UI自动化测试和性能测试
四周:协同周、和研发团队做一个实际互动的项目
二、软件测试相关概念
1. 软件测试
1. 软件
1. 软件的历史、定义、概念
· 计算机:1929年诞生
(电子计算机、电子管计算机,第一代。1956:第二代为晶体管计算机。
第三代为小规模集成电路。第四代为大规模集成电路。计算机代表硬件:躯壳。计算机软件:灵魂)
· 软件的发展
第一代:纸带上打孔,用于科学计算,批处理。
第二代:编程:汇编语言(低级语言)
第三代:面向过程的程序,C语言,cobol,Fortran(高级语言)
第四代:面向对象的程序,C++,java,ruby,Python
第五代:大数据、人工智能
· 软件的定义
IEEE(国际电气化工程协会)支撑计算机程序运行的代码、文档、数据统称为软件。通常称为:计算机程序。
· 软件工程学
目标:解决软件研发过程中出现的问题
软件危机:预算经常超支、交付延迟、软件质量差、维护困难、
软件的可移植性差,两个类似的软件很少能够重用
软件工程七原则:
2. 软件的作用
1. 软件的生命周期
1. 软件定义:指的是要开发一款什么样的软件:领域、范围
1. 可行性研究:从技术、经济、操作性方面区研究
2. 需求分析
任务:确定待开发软件的功能需求、性能需求和运行环境约束,编制软件需求规格说明、
软件系统的确认测试准则和用户手册概要【重点】
软件需求规格说明(SRS:software requestment specification)是开发工程师的一句,同样也是测试的依据
2. 软件设计与实现
1. 概要设计:技术选型、框架搭建:dev
2. 详细设计:定义函数、接口
3. 实现:编码、调试
4. 集成测试:单元测试、接口测试
5. 确认测试:系统测试、性能测试
3. 软件的使用、退役
1. 发布上线、运营
2. 退役
2. 测试
1. 测试的历史、定义、概念
1. 测试的历史发展
1. 1951年的时候,才把测试从开发工作中独立出来。
2. 测试的发展阶段
1. 测试等同于调试,在1951年之前,一个登录功能:用户名、密码正确、提示登陆成功。
2. 测试主要用于确认软件产品是按照需求要求来实现的。关键词:确认
3. 测试除了要确认之外,还必须使用破坏性的用例,来验证软件产品没有做不允许做的。关键词:验证
4. 测试是为了预防可能出现的错误。关键词:预防。
3. 定义:为了发现软件中存在的错误或问题而运行软件的过程。
1. 目的:发现问题。找bug,尽可能的找出bug
2. 手段:运行程序,运行软件
3. 本质:过程–>完成某一个事务所必须的步骤统称。
4. 概念【重点】
1. 测试用例:一次实际的测试数据和操作组成的集合。比如:测试登录功能
2. bug:缺陷的别名
3. 缺陷:软件产品中存在的不符合需求的功能、实现或者错误的描述或实现
4. 缺陷包含:错误、故障、失效,因为错误,所以可能导致故障,故障导致功能失效。
5. 测试工程师的角色扮演:
1. 用户
1. 第一种:正常用户,是需要通过对软件进行操作来达成自己某些业务目的的人
2. 第二种:粗心的用户:在使用过程中会制造一些小麻烦的人。比如:错误输入,不按照要求操作,心急的用户
3. 第三种:破坏者:使用软件的目的是为了破坏软件的运行、窃取数据等等。黑客。
2. 工程师:在某个领域里面掌握了相关业务的流程规范、方法论、技术体系、工具体系的专业人士
1. 计划
2. 流程规范,规范等同于标准
3. 方法论、技术
4. 工具体系
2. 测试需要流程规范
3. 测试的方法论、技术
4. 测试的工具体系
软件开发模型
一、导入
测试工作是从研发中分出来的,所以测试工作是研发过程中的一部分,要做好测试工作,必须深刻理解研发过程和模型
研发工程师相当于挖战壕,测试工程师相当于测试战壕
二、研发模型
1. 早期模型
· 大爆炸:随便做,计算机工程师
· 边做边改
2. 中期模型
· 瀑布模型:1970年
定义:把软件研发的过程按照需求分析、设计、实现、测试、发布的顺序来进行规划的一种研发方法论。
优点和缺点
1. 至少有一个可用的框架
2. 对于规模小的项目非常适用,手到擒来
3. 节约成本,保障项目交付成功率,从原来不足50%,一下提高了80%
4. 交付质量提高好几倍
缺点:
1. 不适用于大中型项目
2. 需求变化频繁项目不适合
3. 过程中间缺少反馈,早期的问题要到很晚才能发现,导致维护成本加大
4. 交付效率低
· 增量迭代模型(迭代增量式开发或迭代进化式开发)
每次只设计和实现这个产品的一部分
逐步完成的方法叫迭代开发
每次设计和实现一个阶段叫做一个迭代
过程:
需求分析
迭代计划:把需求进行拆分,选最主要的部分先开发,拆成多个迭代
设计
实现
测试
优点:
可以把大项目拆分成多个小的项目来完成
不惧需求变化,因为迭代周期较短,变化的需求可以在下一个迭代周期里面解决
在研发过程中可以进行有效反馈,通过反馈才能进行效果评估
交付效率也得提高
缺点:
划分迭代数量没有标准,根据产品经理的能力决定(可以通过同行评审来克服这个问题)
迭代次数越多,管理维护成本越高,问题也越多
· 螺旋模型:将瀑布模型和快速原型模型结合起来,特别适合大型复杂的系统
· 敏捷模型(敏捷实践):以用户的需求进化为核心,采用迭代、循环渐进的方法进行软件开发,
是一种应对快速变化的需求的一种软件开发能力。
个体与交互胜过过程和工具、可用的软件胜过完备的文档、客户协作胜过合同谈判、响应变化胜过遵循计划
价值观:以人为本、目标导向、客户为先、拥抱变化
敏捷时间价值观对测试的指导意义:
以人为本:我们要充分和产品经理、研发工程师进行面对面的沟通和交流,及时
目标导向:测试过程中有限软件的功能验证和确认,可用性
客户为先:要及时听取客户的意见,有机会和客户进行充分交流,理解客户的需求
拥抱变化:测试工程师要深刻理解业务,理解被测对象,终身学习
敏捷实践分类:
极限编程:螺旋式开发方式,四大价值观:沟通、简单、反馈、勇气(对于一般的团队来说做不了)
scrum:冲刺,有若干个迭代周期组成,一个短的迭代周期称为一个sprint,重要特性:迭代开发,
增量交付,适用于外包,自组织团队,高优先级的需求驱动,交付就是软件发布给用户使用,
自组织团队:团队中的每个成员自发的去工作和改进自己的工作,高优先级的需求驱动就是所有需求都必须标注优先级,标注方式是使用数字,
从1开始不重复的标注,每次sprint,按照优先级从高到低选取一部分(2-4周的量)
软件测试模型
一、V模型:左右两边对照,基于瀑布模型来做的,从左到右描述了基本的开发行为
1. 定义
2. 作用
3. 优点
明确的标明了测试和开发各个阶段的对应关系和等级
4. 缺点
如果在需求阶段、概要设计阶段、详细设计阶段出现错误,那么必须在测试过程中才能发现。修复成本会成倍上升
原因:测试是在编码之后开始的
二、W模型
优点:
开发伴随着整个开发周期,需求和设计同样要测试
更早介入测试,可以发现初期的缺陷,修复成本低
分阶段工作,方便项目整体管理
缺点:
开发和测试依然是线性的关系,需求的变更和调整,依然不方便
如果没有文档,根本无法执行w模型,对于项目组成员的技术要求更高
左侧:
静态测试:精读文档,同行评审
右侧:
动态测试:运行程序,执行测试用例
测试执行的四个阶段:单元测试、集成测试、系统测试、验收测试
重要的概念:
单元定义:C中是一个函数,Java中指一个类,在图形化的软件中,单元一般指1个窗口,1个菜单。
单元测试:模块测试,针对软件设计中的最小单元进行正确性检查的测试工作。需要从程序的内部结构出发设计测试用例。
集成测试:又称组装测试,通常在单元测试的基础上,将所有程序模块进行有序的、递增的测试。
系统测试:将整个软件系统看成一个整体来进行测试,包括对功能、性能、以及软件所运行的软硬件环境进行测试。
Alpha测试:内测,公司内部员工进行测试,主要看有没有功能缺失或系统错误,Alpha测试完后一般不会有大问题了。
Beta测试:公测,主要看用户对软件外观、使用方便等反应。选一部分用户参与测试。
三、H模型:软件测试过程完全独立,开发做开发的工作,测试做测试的工作。
优点:
软件测试完全独立,贯穿整个生命周期,且与其他流程并发进行。
软件测试活动可以尽早准备、尽早执行,具有很强的灵活性。
软件测试可以根据被测物的不同而分层次、分阶段、分次序的执行,同时也是可以被迭代的。
缺点:
管理型要求高、技能要求高、测试就绪点分析困难,对整个项目组的人员要求非常高
四、X模型
分片执行
质量模型
1. 为什么要讲质量模型/p>
如何衡量一个商品的质量家评估的标准都是有差异的,每个人侧重点不一样。
ISO:国际标准化组织,经常邀请各国的、各领域的专家针对某些领域指定工业级标准。
ISO9126和ISO25010都提到了软件产品的质量模型:这个模型是世界范围都认可的模型。
2. 质量是什么/p>
· 质量:产品质量是值在特定的使用条件下产品满足明示的和隐含的需求所明确具备能力的全部固有特性(内在特性),
体现了产品满足产品要求的程度(外部表现),是产品的质量属性。
· 特性或能力:内部质量,需要满足特点使用条件的各种需求。
· 外部质量:内部特性的一种呈现,内部特性决定了外部质量。
· 质量就是产品所具有的内部特性或能力。
3. 质量模型有什么用/p>
· 质量模型定义了软件产品必须具备的相关的内部特性以及每个类型所必须具备的属性
· 要评估一款软件产品的质量是否符合需求,就可以依据质量模型来进行
4. 质量模型怎么指导测试工作/p>
一、ISO25010质量模型
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!