一、 为什么要测试?
1、软件本身存在问题、非正常运行也会有问题
2、代码和文档是人写的,难免会出错
3、环境会影响软件
4、软件测试是保证质量的一种方法
二、测试的定义
制造业的定义: 以检验产品是否满足需求为目标
软件定义: a、验证软件的正确、b 发现软件中的缺陷(bug)
三、软件的生命周期
指的是软件从产生到报废的整个过程,是一种时间的概念。
四、通常软件生命周期包括哪些阶段?
(1)客户问题引入或定义 (点餐系统)
(2)可行性分析(涉及经济(商业论证)政治,法律,技术等)
(3)项目招投标
(4)项目立项
(5)需求分析
(6)开发阶段(设计,编码,测试)
(7)维护
五、软件生命周期模型有哪些?
瀑布模型(waterfall) (淘汰) 一个项目一年,测试就工作2个月
V模型(重点)
W模型(了解)
H模型(重点)
敏捷开发模型
迭代开发模型
增量开发模型
六、v模型
(1)v模型按开发阶段分为四阶段:单元测试、集成测试、系统测试验收测试
a、单元测试:是指验证单元是否满足详细设计文档的规格,能正确的执行,主要是对代码测试;
单元测试也是最小的测试单位;
在单元测试一般情况下开发自测,如果需要测试进行单元测试,对测试技术要求要高,必须懂开发语言;
理解为:一本书有10个单元,测试第一单元
b、集成测试:是指多个单元组合验证软件是否满足概要设计文档的规格,能正常执行;主要是模块与模块之间的数据交互。
理解为:一本书有10个单元,测试第一单元和第二弹元测试或其中考试(1-6单元)
c、系统测试:把软件进行正常运行,对整个软件进行测试,验证这个系统能正常的运行,主要测试一个整体业务的流程;
理解为:一本书有10个单元,测试第一单元到第十弹元测试(1-10单元)
d、验收测试:站在用户角度去对软件进行测试,验证系统满足用户需求
验收测试分为两种:内部验收测试(alpha),外部验收测试(bete测试)
内部验收和外部验收测区别:
(1)内部验收测试地点:自己公司 。外部验收测试地点:一般在客户方
(2)内部验收测试技术人员:集中,发现问题及时解决。外部验收测试是客户方员工测试:发现问题在反馈给开发
(3)内部验收测试时间短,外部验收测试时间长
(2)每个阶段对应相应的文档:
用户需求==验收测试(uat)
需求文档==系统测试(st)
概要设计==集成测试(it)
详细设计==单元测试(ut)
(3)涉及三个文档
a、需求(产品输出) 简称:srs
需求是一个文档,
内容:对整个项目的设计、框架、功能、模块的描述
b、概要设计(开发输出)简称hld
内容:架构的初步设计文档,使用说明什么类型的数据库,架构的描述、设计、模块名称;
理解为:盖房子的框架
c、详细设计(开发输出)
内容:针对功能的具体实现,模块的具体实现,具体设计,架构的具体描述;
理解为:盖房子的装修
(4)
系统测试(st)
集成测试(it)
合并成sit 系统集成测试 ==》也叫sit 测试
sit测试 技术测试
uat测试 验收测试
sit环境(sit1 ,sit2,sit3) 测试环境
uat环境
环境总共三种:
开发环境
测试环境(sit环境、uat环境)
线上环境
七、h模型
测试线:
(1)需求澄清会议(产品经理会组织需求会议) 需求:srs需求规格说明书
(2)拿到需求,深入分析和了解需求文档
(3)测试经理编写测试计划 (重点)
测试计划:(内容:测试目的,背景,范围,测试准入,测试准出,环境和资源,测试任务和测试进度,风险及风险管理,测试交付文档)
准入:(开始测试)
开发:需求分析报告,需求规格说明书,概要设计说明书,详细设计说明书,版本说明书及开发自测报告;
测试:写好测试计划,测试用例通过,测试环境搭建好
准出:(测试结束)
a.用例100%执行
b.0bug
c.输出测试报告
(4)安排任务,测试分析需求,编写用例
(5)评审用例(测试人员:组内评审(项目评审人员:开发,测试,产品都参加),交叉评审(测试人员之间评审:测试a、测试b、测试c))
(6)用例评审通过以后导入到用例管理工具中;如:禅道.testlink
(7) 搭建测试环境(可以说运维搭建,自己搭建,测试经理搭建)
(8)开发提交代码包,提测(也叫转测) 要达到准入要求
(9)测试将代码包部署到环境,
(10)进行冒烟测试,冒烟测试通过,进入sit系统测试,如果,冒烟测试不通过,就把版本打回给开发,开发修改,在提测。
冒烟测试(也叫版本验证测试)定义:指对新版本的主要功能,基本功能进行测试。
如果通过,那么冒烟测试通过,如果冒烟测试失败,那么就把版本打回给开发进行修改,直到冒烟测试通过
(11)sit系统集成测试第一次sit1(一般一个项目有3次系统集成测试,有些项目周期长也有4次,5次)
(12)第一次sit测试也叫全量测试(把前面写的所有用例都要进行测试),测试出来的bug,指派给开发(通过bug工具如:禅道)
(13)开发修改bug,在提交代码
(14)测试在第二次部署项目包,在进行第二次sit测试前也要进行冒烟测试,冒烟测试通过以后才能进行第二次sit测试;
第二sit测试和第三sit测试都叫做回归测试
回归测试:是系统维护阶段进行的验证测试
区别:测试阶段不同
冒烟测试是版本提交时第一个测试,回归测试是在维护阶段测试
(14)第二次sit测试,在将bug提交给开发,开发修改,
(15)第三sit测试,先冒烟测试,在去测试,验证。。。。。。以此类推,
备注:测试用例的来源:
a、冒烟测试用例
b、验证上一个版本提交bug的用例
c、测试与bug有关联的模块用例
d、你认为可疑的测试场景和测试用例
e、测试补充的测试用例和测试场景
(16)直到达到准出:用例100%执行,0bug,
(17)输出测试报告=========================说明sit测试测完(表示技术测完)
测试报告:
内容:测试目的,测试范围,测试背景,测试实施日期,测试人员,bug 清单,用例清单,测试结果,
(18)sit测完通知 uat 测试,uat验收通过,
(19)封板(封装版本)
(20)等待上线
(21)上线前准备线上数据
(22)上线后在线上测试,
(23)测试没有bug,如有bug就要分析bug,bug影响程度,影响大,就回退版本,如果影响小就备注下次版本修改
(24)上线成功
主流程:
产品召开需求会议测试和开发拿到需求分析需求测试经理编写测试计划,安排测试工作测试人员分析需求,编写测试用例评审测试用例,评审通过将用例倒入到用例管理工具中搭建环境
开发提测代码包,达到了准入要求测试代码包部署到环境中冒烟测试sit1系统测试有bug提交给开发,开发修改重新提交代码包进行冒烟测试,冒烟测试通过进行sit2系统测试有bug提交给开发,开发修改重新提交代码包以此类推 ,到达准出:0bug ,用例100%执行输出测试报告通知uat验收测试uat验收通过封装版本等待上线准备线上数据上线线上测试==测试无bug表示上线成功