Testing Egineer note:2024_4_27-day01-part03
三、软件测试之理论知识
1 软件测试知识:
1.1 为什么要测试?
- 代码是人写的,难免会出错
- 软件本身就会存在问题,非正常运行也会问题
- 环境会影响软件出现问题
- 软件测试活动是保证软件测试质量之一
1.2 测试的定义什么?(重点)
制造业定义:以检验产品是否满足需求为目标
软件行业定义:
- 验证软件的正确性
- 发现软件中的缺陷(找bug)
1.3 软件生命周期?
指的是软件从产生到报废的整个过程,是一种时间的概念。
1.4、软件生命周期包括哪些阶段?
- 问题引入或定义
- 可行性分析(涉及经济,政治,法律,技术)
- 项目招投标
- 项目立项
- 需求分析
- 开发阶段(设计,编码,测试)
- 维护
1.5 软件什么周期模型有些?
- 瀑布模型(waterfall model)[目前已经淘汰]
- V模型(重点讲解)
- W模型
- H模型 (重点讲解)
- 敏捷开发模型 (重点讲解)
- 迭代开发模型
- 增量开发模型
1.6 V模型
- 用户需求
需求(简称:srs)产品输出全称:软件需求规格说明书
类型:一个文档;
内容:对整个项目的设计、框架、功能、模块的描述 - 概要设计(开发输出)
简称:(HLD)
类型:文档
内容:架构的初步设计文档,使用说明什么类型数据库,架构的描述,设计,模块的名称(可理解为:盖房子的大概设计,基本框架结构) - 详细设计
简称(LLD)
类型:也是一个文档
内容:针对功能具体的实现,模块的具体实现,具体设计,架构的具体描述,(可理解为:房子的具体的装饰设计)
1.6.1 V模型的四个阶段:

- 单元测试
单元测试是指验证软件单元是否满足详细设计文档的规格,能正确的执行,主要是对代码的测试。单元测试也是最小的测试单位;在工作中单元测试一般情况是开发自测,如果需要测试进行单元测试,对测试的技术要求非常高,必须要懂开发语言;
理解:单元测试,课本上有10个单元一本书(一单元测试) - 集成测试
集成测试是指多个单元组合验证软件是否满足概要设计文档的规格,能正常执行,主要是模块与模块之间的数据交互。
理解:课本上有10个单元(有2个单元或2个单元模块以上测试,比如期中考试1-6单元) - 系统测试
系统测试是指把软件进行正常运行,对整个软件系统进行测试,验证这个系统能正常的运行,主要是测试一个整体业务的流程。
理解:课本上有10个单元(测试1-10 单元综合测试) - 验收测试
验收测试是指:站在用户角度去对软件进行测试,验证系统满足用户需求;
验收测试测试分为两种:alpha测试(α)和 bete测试(β)
- α测试是内部验收测试
- β测试是客户方测试
- α测试和β测试区别:
- α测试测试地点:是在自己公司;
β测试一般在客户方 - α测试都是内部人员进行测试,开发在现场及时发现问题,及时解决;
β测试是在客户方的员工测试,发现问题在反馈给开发在解决 - α测试测试时间短,技术人员比较集中;
β测试测试时间较长,测试人员不集中;
- α测试测试地点:是在自己公司;
备注:
- 集成测试(it)和系统测试(st)合并成(sit测试)
- sit测试(系统集成测试), 技术测试 ;uat测试(验收测试)
- sit环境 (sit1环境,sit2环境,sit3环境);uat环境(专门用来验收环境)
- 环境:
- 线上环境(也叫生成环境)
- 测试环境:测试人员使用
- 开发环境:开发人员使用
1.7 H模型(重点)
测试前:
- 需求澄清会议(产品经理会组织需求会议)
- 拿到需求,深入分析和了解需求文档
- 测试经理编写测试计划 (重点)
[测试计划:(内容:测试目的,背景,范围,测试准入,测试准出,环境和资源,测试任务和测试进度,风险及风险管理,测试交付文档]
[准入:开发:需求分析报告,需求规格说明书,概要设计说明书,详细设计说明书,版本说明书及开发自测报告;]
[测试:写好测试计划,测试用例通过,测试环境搭建好]
[准出:1、用例100%执行;2、0bug;3、输出测试报告] - 安排任务,测试分析需求,编写用例
- 评审用例(测试人员:组内评审(项目评审人员:开发,测试,产品都参加),交叉评审(测试人员之间评审:测试a、测试b、测试c))
- 用例评审通过以后导入到用例管理工具中;如:禅道.testlink
- 搭建测试环境(运维搭建,自己搭建,测试管理搭建)
- 开发提交代码包,提测(也叫转测) 要达到准入要求;
- 测试将代码包部署到环境,
- 进行冒烟测试,冒烟测试通过,进入sit测试,如果,冒烟测试不通过,就把版本打回给开发,开发修改,在提测。
冒烟测试(也叫版本验证测试)定义:指对新版本的主要功能,基本功能进行测试。
如果通过,那么冒烟测试通过,如果冒烟测试失败,那么就把版本打回给开发进行修改,直到冒烟测试通过 - sit系统集成测试(一般一个项目有3次系统集成测试,有些项目周期长也有4次,5次)
- 第一次sit测试也叫全量测试(把前面写的所有用例都要进行测试),测试出来的bug,指派给开发(通过bug工具如:禅道),测试小结
- 开发修改bug,在提交代码
- 测试在第二次部署项目包,在进行第二次sit测试前也要进行冒烟测试,冒烟测试通过以后才能进行第二次sit测试;第二sit测试和第三sit测试都叫做回归测试回归测试:是系统维护阶段进行的验证测试
区别:测试阶段不同
冒烟测试是版本提交时第一个测试,回归测试是在维护阶段测试 - 第二次sit测试,在将bug提交给开发,开发修改,
- 第三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测试-->
以此类推-->
直到达到准出要求0bug,用例100%执行-->
输出测试报告-->
通知uat测试-->
uat验收通过-->
封装版本-->
等待上线-->
准备线上数据-->
上线-->
线上测试-->
测试无bug表示上线成功。
- 产品开需求会议-->
根据讲解的H模型:梳理(重点记)
产品拿出需求规格说明书(srs);召开需求会议,分析需求,熟悉需求;测试负责人拿到需求开始编写测试计划;安排测试任务,各自编写测试用例;编写完用例后在对用例进行评审(有组内评审,有交叉评审);评审通过以后,导入到用例管理工具中;在搭建好环境(运维或测试人员);开发开发完也要进行提测(达到准入);测试将代码包部署到环境中;在进行冒烟测试,冒烟测试通过(如果冒烟失败,就打回版本),就进行sit1系统集成测试,将所有测试用例都执行一遍;有bug提交给开发,开发修改,再提交代码包;进行第二次sit系统集成测试,也要冒烟测试,冒烟测试以后就开始进行sit2系统集成测试,测试中发现的bug,提交给开发,开发修改,再提交第三次代码包,进行第三sit系统集成,以此类推,直到测试用例100%执行,0bug(达到测试准出),输出测试报告;通知uat验收,验收通过;封装版本,打包,准备线上数据,上线,线上测试,线上测试通过,上线成功。(如果线上有bug根据影响程度判断:影响大就回退版本,如果影响小,备注好下一个版本解决)
自动化部署H模型:(拓展)jenkins自动化部署工程,是自动化部署环境
产品拿出需求规格说明书(srs);召开需求会议,分析需求,熟悉需求;测试负责人拿到需求开始编写测试计划;安排测试任务,各自编写测试用例;编写完用例后在对用例进行评审(有组内评审,有交叉评审);评审通过以后,导入到用例管理工具中;在搭建好环境(运维或测试人员);开发开发完也要进行提测(达到准入);搭建自动部署环境平台;通过jenkins去构建对应的工程;将代码包部署到环境中,在进行冒烟测试,冒烟测试通过(如果冒烟失败,就打回版本),就进行sit1系统集成测试,将所有测试用例都执行一遍;有bug提交给开发,开发修改,开发体提交代码包,合并分支;通过jenkins去构建对应的工程拉取最新的代码,进行第二次sit系统集成测试,也要冒烟测试,冒烟测试以后就开始进行sit2系统集成测试,测试中发现的bug,提交给开发,开发修改,通过jenkins去构建对应的工程拉取最新的代码,进行第三sit系统集成,以此类推,直到测试用例100%执行,0bug(达到测试准出),输出测试报告;通知uat验收,验收通过;封装版本,打包,准备线上数据,上线,线上测试,线上测试通过,上线成功。(如果线上有bug根据影响程度判断:影响大就回退版本,如果影响小,备注好下一个版本解决)
敏捷开发模型(重点)
敏捷开发模型是一个新型模型适应快速需求变化,交付周期比较短,轻量级的开发模式。
时间:一周,两周,一个月
产品拿到一个需求,开发一周,测试编写用例,第二周测试去测试,开发修改,修改好就上线
增量开发模型
项目被分为一系列的增量,每一个增量都交付整个项目需求中的一部分功能,需求按优先级进行划分增量的交付。
如:买家版,卖家版, 商家版, ,先买家版,
================================================
迭代开发 模型(重点)
项目被分为大量的迭代过程,一次迭代就是一个完整的开发流程,也是一个可以发布的可执行的产品,输入软件开发周期中最终产品的一个子集。
如:拍拍,微信、qq
面试题:(回答H 模型)
1、你上一家公司工作的流程?
2、给你一个需求,你会怎么做?
3、说说你在公司中如何开展测试工作?
4、你们公司测试流程?
测试的基本原则:
1、测试是从用户的角度去测试;(用户故事测试)
2、测试不仅测试是软件本身,(比如:测试环境,配置,网络等)
3、软件外在可用,不代表软件没有问题(比如:aap能下载安装,点击就闪退)
4、软件测试是没有完成正确,只有更加完美
5、测试是永远测不完的
6、测试应尽早介入(比如:建房,开始就介入测试就可以发现更多问题,等)
7、2/8原则, (80%的错误集中在20%的区域)比如:
8、杀虫剂效应
9、测试尽量选择第三方测试
10、测试活动的依赖对象(功能测试,性能测试,安全测试等)
测试活动的周期
测试计划(安排任务)-------测试分析和设计(编写用例)-----测试实现执行(测试阶段)---输出测试报告---- 资产归档(测试文档)
准入(也叫转测,也叫提测):
开发:详细设计,概要设计,开发自测报告,
测试:测试计划,测试用例,测试用例审核通过,搭建好环境
准出:0bug ,用例100%执行,输出测试报告

浙公网安备 33010602011771号