测试理论
测试理论
角色:
项目经理:leader
产品:规划产品具体怎么做
开发-->后端开发,前端开发:根据产品的规划依据代码来实现它
测试:根据产品的需求文档以及开发转测的产品,来验证产品是否满足用户的需求
设计:主要考虑的是页面的UI和交互
软件测试的目的
软件测试的目的是发现问题,发现至今未发现的问题,检查系统是否满足需求。软件测试的目的具体为:
测试程序执行的过程,目的在于发现错误
工作内容:
1、要求参与公司产品体系的所有流程和工作
2、参与到开发技术方案的评审和开发代码的评审
3、测试工作:编写测试用例,评审测试用例,测试具体的程序
4、上线后的产品质量监控
软件测试的十大原则
1.测试应基于用户需求
被测的产品是服务于用户的,是给用户赋能的。产品会升级用户的需求,需求评审后,大家就会达成一致的目标。
2.做好软件测试计划是做好软件测试工作的关键
测试计划会明确规范每个时间点的工作内容,和工作进度,以及工作安排,和工作完成度。
3.应尽早的开始软件测试并不断的进行软件测试
1、从产品经理需求开始,测试工作都已经进行了开展:梳理需求点,梳理逻辑
2、产品上线后,需要持续跟踪产品的运行,如果有设计不合理的,需要记录,到下个版本加入到需求里面
4.测试前必须明确定义好产品的质量标准
1、会有质量标准,达到标准就可以上线,达不到就不能
2、在设计测试用例的时候,要考虑到产品各个维度
5.避免测试自己的软件
场景:线上出现问题,程序员修改完后,程序员自己进行了测试,同时反馈测试结果是OK的,那么测试还需要测试吗?需要似的,因为程序员测试的不代表考虑到了所有的测试场景,必须测试这边需要验证
6.应充分注意测试中的集群现象
1、尽可能的覆盖以及考虑到更多的场景,但是无法做到100%的覆盖
2、测试需要持续不断的进行
7.必须检查每个实际的输出结果
8.穷举测试是不可能的
解决方法:优先考虑优先级高的业务场景来进行测试,优先级低的,可以在上线后,在进行测试
9.测试设计决定了测试的有效性和效率
1、编写测试方案:测试的思路
10.注意保留测试设计和说明文档,并注意测试设计的可重用性
软件测试的分类
按照阶段划分
1.单元测试
单元测试是针对程序最小离度的测试,它主要是应用于白盒测试程序是由代码写的,代码里面最小单位是方法,所以单元测试是针对方法的测试
白盒测试根据不同的编程语言有对应的测试框架,如Java里面的junit和TestNG框架,Python里面的UnitTest和Pytest测试框架。
2.集成测试
集成测试,是把单个模块的程序集成到一起后的测试,集成测试主要来验证各个模块集成后模块与模块之间的功能性,以及各个模块集成后的功能流程性和逻辑兼容性的测试
现代版的继承测试:
1、现代企业都是前后端分离的模式,前后端各自完成工作后,需要联调验证产品的完整性
2、后端与后端的联调
3、公司程序员与第三方程序员之间的联调
3.系统测试
将软件系统看成是一个系统的测试。包括对功能、性能以及软件所运行的软硬件环境进行测试。时间大部分在系统测试执行阶段来验证被测程序的完整性的功能
1、系统测试现在又称为端到端的测试
2、可以理解为产品的业务链,从开始到结束的所有流程验证测试
3、测试内容:功能,界面,可靠性(服务持续运行是否出现瘫痪)、易用性、性能、兼容性、安全性等
4.验收测试
验收测试是部署挼卷之前的最后一个测试操作。它是技术测试的最后一个阶段,也成为了交付模式
1、自研公司:由测试发起,产品经理来进行验收检测,产品经理验收测试通过后,再开始上线
2、外包:外包验收是甲方(客户)来进行验收
按查看代码分类
黑盒测试
就是把被测试的程序看成一个黑色的盒子,看不到里面的内部的结构,对应的是系统测试
白盒测试
被测程序看成一个白色的盒子,能够看见程序内部的结构,对应的是单元测试
灰盒测试
介于白盒测试和黑盒测试之间,它对测试的要求是:能够参与开发代码的评审,以及开发代码的检查
针对程序判断逻辑,判断分之,判断循环,程序流程走向的测试。灰盒测试是一种高技能的测试,对测试的技术水平要求是比较高的
按代码编写分类
手工测试
手工测试就是由人去一个一个的输入测试用例,然后观察结果,和机器测试相对应,属于比较原始但是必须的一个步骤。手工测试又叫功能测试,或者说是业务测试
它的主要优点为:
优点:自动化测试是无法替代人的测试,也无法替代探索性测试
缺点:执行效率慢,影响测试交付的效率
自动化测试
自动化测试就是通过编写代码(使用工具)的方式来代替模拟人的一种行为方式来对系统进行的一种测试。自动化测试又分为UI自动化测试,API自动化测试,性能自动化测试。一般性说的自动化测试大多数时候指的是UI自动化测试和API自动化测试。
软件质量
描述当前软件是否好用,在当前的软件行业里面我们采用的一套标准是基于IOS组织制定的。我们需要记忆的就是软件质量的六大特性
功能性
软件需要满足用户显示或者隐式的功能。
易用性
软件易于学习和上手使用。
可靠性
指的就是软件必须实现需求当中指明的具体功能。
效率性
类似于软件的性能
可维护性
要求软件具有将某个功能修复之后继续使用的能力
可移植性
当前软件可以从一个平台移植到另一个平台上去使用的能力。
开发的分类
服务端测试的开发
算法测试开发
大数据测试开发
移动专项测试开发
队列:先进先出
堆栈:先进后出
表达式:<、=、 >、 &&(并且)、||(或者)、++(现有基础上加1)、 -- (现有的基础上减去1)
软件的分类
中间件:mysq(数据库)redis(缓存中间件)kafka(MQ)
ipconfig:查询IP的地址
cmd:WIN+R 输入cmd 就可以打开控制台
dir:展示当前目录下的文件和文件夹
cd d:/进入到了D潘
测试术语
1.冒烟测试
目的:冒烟测试目的是确认软件基本功能正常
使用场景:开发转测后,测试要进行冒烟测试,验证被转测的软件基本流程是否正常
2.探索性测试
探索性测试:探索性测试可以说是一种测试思维技术,探索性强调测试人员的主观能动性
使用场景:测试报告已经完成,要准备上线前,对产品进行探索性的测试
3.安全测试
安全测试:目前测试更多的聚焦于渗透测试这部分
4.回归测试
回归测试:回归测试是指修改了旧代码后,重新进行测试以确认修改没有引入新的错误或导致其他代码产生错误。
使用场景:
1、转测后,对系统已有的功能进行回归测试
2、上线前,开发对代码进行了合并,需要整体的进行回归测试
3、上线后,对产品进行整体的回归测试
如何做软件测试需求分析
为什么要需求分析
1、软件测试需求是设计测试用例的依据。
2、有助于保证测试的质量和进度
3、软件测试需求是衡量测试覆盖率的重要指标
软件测试需求分析步骤
1、列出需求文档的具有可能性的原始需求
2、对每一条需求进行细化分解,形成可测试的分层描述的测试点
3、对形成每一个测试点,从软件产品的质量需求来分析,确定测试执行时需要实施的测试类型。
4、简历测试需求跟踪矩阵,对测试需求进行管理
测试需要分析的主要目的:获取测试点,根据测试点来编写测试用例
举例
1、搜索“测试开发工程师”的职位关键字,按下回车键后,显示测试开发工程师职位搜索的结果信息
点击搜索按钮
按下回车键
2、结果信息可以进行反野
每页显示15条数据
大于15数据进行反野
假设返回的数据是35条,那么第三条展示的数据是5条
3、结果信息可以根据工作经验。。。。。联合搜索
4、验证搜索的结果信息是否准确
测试用例概述
测试用例是为特定的目的而设计的一组测试输入、执行条件和预期的结果。测试用例是执行的最小实体。
编写用例
1、写的非常详细,测试步骤很详细
2、思维导图的模式
3、checklist
选择的原则是什么:和现在的团队保持一致,至少对自我的要求上,要比现在的团队做的更好
测试用例写特征
用例ID
用例名称:描述用例的名称
测试目的
测试级别:
参考信息:指的是参考需要的文档
测试环境:
前提条件:做事情的前置工作是什么
测试步骤:做事情详细的步骤
预期结果:在做事的时候所预期的结果
设计人员。
环境的分类
QA环境(测试环境)
指的是专门提供给测试团队使用的环境,更多的时候是在公司内部环境搭建的
预发布环境
介于QA环境与线上环境之间的一个环境,那么预发布环境专门来解决可能上线存在的问题,这个环境部署的代码和生产环境的一致,唯一不同的是数据这部分做了分离
线上环境(生产环境)
指的是提供给客户使用的环境
8中测试方法
1.等价类
定义 等价类是把所有可能的输入数据,即程序的输入域划分成若干部分(子集),然后从每一个子集中选取少数,具有代表性的数据作为测试用例。该方法是一种重要的,常用的黑盒测试用例设计方法。
可以理解为针对被测程序输入的数据,可以分为有效数据和无效数据,如拉勾网的注册,使用的常用手机号:
有效数据:三大运营商以及虚拟运营商的手机号码
无效数据:11位连续都是数字,不合法的手机号,数字和字母,特殊字符,标点符号的组合
2.边界值
定义 边界值分析法就是对输入或输出的边界值进行测试的一种黑盒测试方法。通常边界值分析法是对等价类划分的补充,这种情况下,其测试用例来自等价类的边界
可以理解成 要求4-16字符 边界值测试:3(4----16)17
3.错误推测方法
定义 基于经验和直觉推测程序中所有可能存在的各种错误,从而针对性的设计测试用例的方法有
举例:
有一个点击按钮,点击一次确认弹出支付成功
点击10次
可能支付错误,也可能支付成功10次
需要考虑的是正常的
第一按钮只能点击一次,点击的二次不会出发
实战:京东页面
正常的 点击超链接按钮会正常跳转网页且只能点击一次
错误的 因网络延迟问题快速点击超链接多次跳转网页 或者无法点击
正常的 京东网页属于加载资源的网页 执行下拉操作 显示页面
错误的 快速下拉 导致加载资源没有正常进行资源加载
页面丢失,显示不全 颜色异常 无法点击任何位置或滑动 点击搜索框或者文字、图片不跳转 画面一直跳转
4.因果图方法
输入条件会有N个,我们要检查的是and关系还是or的关系
定义 是一种利用图解法分析输入的各种组合情况,从而设计测试用例的方法,它适合于检查程序输入条件的各种组合情况。
以新浪注册邮箱为例,
以上所有内容为必须填写否则无法点击立即注册按钮
所以and关系
也可以理解成为and关系在邮箱上面体现为必填项,or关系为选填项
5.正交试验设计方法
利用因果图来设计测试用例的时候,作为输入条件的原因与输出结果之间的因果关系,有时很难从软件需求规格说明中得到。往往因果关系非常庞大,以至于因果图而得到的测试用例数目多的惊人,给软件测试带来沉重的负担,为了有效的,合理地减少测试的工时与费用,可利用正交试验设计方法进行测试用例的设计。
举例:
拉勾网的学历要求为 不限 大专 本科 硕士 博士 不要求
那么利用正交试验设计方法我们只验证大专本科 硕士就可以了
如果用因果图测试测试用例很多的情况下,将测试用例的是实际属性进行分类,按照类来进行测试可以大大提高工作效率,这就是正交试验设计法
6.判定驱动分析方法
方法简介
1.定义
判定表示分析和表达多逻辑条件下执行不同操作的情况的工具。
2.判定表的优点
能够将复杂的问题按照各种可能的情况全部列举出来,简明并避免纰漏。因此,利用判定表能够设计出完整的测试用例集合。
举例 以拉钩网为例
测试工程师 开发工程师 运维工程师 产品经理 设计
相关的关键字+工作经验学历要求等筛选条件进行关键字搜索
7.场景设计方法
现在的软件几乎都是用事件触发来控制流程的,事件触发时的情景便形成了场景,而同一事件不同的出发顺序和处理结果就形成事件流。
以京东为例
商家先从商品把书进行上架
在输入框内搜索Python自动化测试实战 点击搜索
点击计算机与互联网当中的 编程语言与程序设计
点击品牌当中的 电子工业出版
8.功能图
功能图方法中,要用到逻辑覆盖和路径测试的概念和方法,其属白盒测试方法中的内容。
逻辑覆盖是以程序内部的逻辑结构为基础的测试用例设计方法
该方法要求测试人员对程序的逻辑结构有清楚的了解
由于覆盖测试的目标不同,逻辑覆盖可分为:语句覆盖,判定覆盖,判定-条件覆盖,条件组合覆盖路径及路径覆盖
功能图属于代码级别的白盒测试
功能图方法中,要用到逻辑覆盖和路径测试的概念和方法,其属白盒测试方法中 的内容.逻辑覆盖是以程序内部的逻 辑结构为基础的测试用例设计方法.该方法要求测试人员对程序的逻辑结构有清楚的了解.由于覆盖测试的目标不同, 逻辑覆盖可分为:语句覆盖,判定覆盖,判定-条件覆盖,条件组合覆盖及路径覆盖.
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!