为什么要测试?
1、软件非正常运行或自身缺陷会引发问题
2、代码和文档是人写的,难免会出错
3、环境原因影响软件(内存不足,存储,数据库溢出等)
4、软件测试活动是保证软件质量的关键之一
什么是测试?
软件行业:
1、验证软件的正确性
2、发现软件中的缺陷(bug)
如何做一个成功测试?
能发现前所未有的错误的测 试
软件生命周期?
指软件从产生到报废的整个过程,是一种时间概念。
通常软件生命周期包括哪些阶段?
1)客户问题引入或定义
? 2)可行性分析(涉及经济(商业论证),政治,
法律,技术等)
? 3)项目招投标
? 4)项目立项
? 5)需求分析
? 6)开发阶段(设计,编码,测试)
? 7)维护
软件生命周期模型:
--瀑布模型(waterfall)
? --V模型
? --W模型
? --H模型
? --X模型
? --敏捷开发模型
? --迭代开发模型
? --增量开发模型
v模型
概要设计:简称HLD 是一个文档
内容:架构的初步设计文档,使用说明什么类型数据库,架构的描述,设计,模块的名称(理解为:要盖一栋房,文档里面记录着放在的大概设计的规格)
详细设计: 简称 LLD 也是一个文档
内容:针对功能具体的实现文档,模块的具体实现,具体设计,架构的具体描述(理解为:房子的具体的装饰设计)
需求 (软件需求规格说明书) 是一个文档 简称: SRS
内容:对整个项目的设计,框架,功能,模块的描述,
四个阶段(重点)
1、单元测试 UT UNIT TEST(简称白盒测试---开发自测)
单元测试:是指验证软件单元是否满足详细设计文档的规格,能正确的执行,主要是对代码的测试;
单元测试也是最小的测试单位;
在工作中,单元测试一般都是开发自测,如果测试要进行单元测试,对测试的技术要求非常高,必须要懂开发语言;
2、集成测试 (IT)
集成测试是指多个单元组合验证软件是否满足概要设计文档的规格,能正常执行,主要是模块与模块之间数据的交互,我们也叫接口测试。
3、系统测试 (ST)
系统测试是指把软件进行正常的运行,对整个系统进行测试,验证这个系统能正常的运行,主要是测试一个整体业务的流程。
4、验收测试:(UAT)重点
验收测试是指:站在用户的角度对系统进行测试,验证系统满足用户需求。
验收测试分为alpha(α) 和beta (β)
如果公司验收需要经过α测试 和β测试,都是先α(内部测试)然后β测试(客户方测试)
alpha(α) 和beta (β)区别:
1、α测试地点是在公司;β测试地点一般在客户方
2、α测试 都是内部人员进行测试,开发,测试都在现场,及时发现问题,及时解决;
β测试是客户方的员工测试,发现问题后统一反馈给开发,在解决;
3、α测试时间比较短 ,测试人员比较集中,
β测试 时间较长,测试人员不集中
IT和ST 合并为 sit 系统集成测试 (sit测试,sit环境(技术用来测试的环境))
uat 验收测试 ( uat测试,uat环境 (专门用来验收环境))
H模型
拿到一个需求(SRS)
了解概要设计(测试文档)
了解详细设计(测试文档)
需求评审会议(测试,开发,产品)产品主持会议
编写测试计划(测试经理,测试组长)
根据测试计划,分配工作
编写测试用例 测试
用例评审(两种评审方式:1、组内评审 :测试,开发,产品,交叉评审:测试同事之间评审)
用例通过,导入到用例管理工具中(禅道)
用例分配给对应的负责
部署环境(测试环境(测试),开发环境,线上环境)
部署:运维,测试经理,测试组长,自己
开发提测,也是提交代码包(达到准入的要求)
拿到代码包部署到环境中
冒烟测试(重点)
冒烟测试(称为版本验证测试,提交测试)是指:对新版本的主要功能,基本功能进行测试,如果通过,那么冒烟测试通过,如果冒烟识失败,那么就把版本打回给开发进行修改,直到冒烟通过;
每一次开发提交新版本,测试都需要在测试环境中进行冒烟测试;
冒烟测试通过以后才能进入sit测试(系统集成测试);
sit测试(系统集成测试) 一般一个项目有三次,项目周期长可能4次,更多;
第一次sit测试是全量测试(所有编写的用例都要进行测试);
测试小结:包括用例数,bug数,新增用例数等 ;
开发修改bug
第二sit测试
冒烟测试 ,sit2测试,(回归测试)
回归测试:是系统维护阶段进行的验证测试
区别:测试的阶段不同
冒烟测试是在版本提交时进行的第一个测试,回归测试是在维护阶段的测试;
用例来源:
1、冒烟测试的用例
2、验证上一个版本提交的bug用例;
3、测试和bug相关联的模块的用例
4、你认为可疑的测试用例或者是测试场景
5、测试补充的测试用例或测试场景
第二次测试小结
有bug转给开发
开发修改bug;
提交第三次版本
sit3测试
冒烟测试
测试用例
达到准出要求;
输出测试报告 -----表示sit测试完成
--------
uat 验收测试 (uat环境) --通过uat通过
系统版本打包(封板:是封装版本)
----------
上线
上线成功 ,上线失败,版本回退,继续用之前的版本
回退的版本要重新让开发修改,测试 ,上线
----------
上线前会准备线上测试数据,上线后我们在线上测试下新版本;
如果线上没问题,上线完成,
如果有bug,首先分析bug对项目的影响,影响大,退回版本;影响小,开发和测试分析并上报,建议下一个版本修改。
上线成功 ;
1、说下你是如何开展测试工作的?
2、冒烟测试和回归测试的区别?
3、说下每一轮sit的测试用例怎么来的?
4、你们公司如何去评审用例?谁主持评审会议?如何去开评审?
5、
敏捷开发:
针对于需求变化快,交付周期短的项目,轻量级开发
(一个星期,两个星期做一个需求)
tapd 腾讯项目管理工具
增量开发模型:
迭代开发模型:
有一个需求,划分多个模块,按优先级来实现,在增加量来交付;
测试原则:
1、尽早介入测试
2、测试是无穷尽
3、测试根据用户需求
4、测试不仅是软件的测试,(兼容性,可靠性)
5、二八原则
6、克服杀虫剂效应,
7、测试关注点不一样(性能,安全)
8、尽量选择第三方测试,
1、你写过测试计划?测试计划的内容?
2、测试中的测试文档?
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架