软件测试(从练气境到陆地仙人)

软件测试(练气境)

课前导读
1.软件测试是干什么的? 软件质量检查工作(查找软件问题,保障软件质量) 2.软件测试前景? 软件测试的缺口是Java开发的8倍,薪资还凑合,是金融行业的1.3倍,是其他行业1.3倍 管理方向:测试组长 测试主管 测试经理 测试负责人 总监 技术方向:手工测试 自动化测试 测试开发 测试架构 测试专家 3.谁适合学软件测试? 基本:专科以上 19-35岁 重点:细心 有耐心 有逆向思维 想要进入互联网行业 4.怎么去学软件测试 学习方式:被动式学习 主动式学习 复习方式:1 2 4 7 天快速复习 5.学完后具备哪些能力 具备对所有软件的功能进行测试的能力(初级软件测试工程师)
阶段目标以及能力
1.目标
能够完成软件功能测试的工作
2.目标说明
 什么是功能?
 注册 登录 购物车 评论 订单等
3.达成目标线路
 测试基础(软件和测试相关知识) 测试设计(如何进行测试)  缺陷管理(测试不通过如何处理) 项目实战
测试的基础知识
认识软件以及测试
1.什么是软件?
 微信(聊天) 京东(电商) win10(操作系统)
 软件是控制计算机硬件工作的工具(聊天控制cpu 网卡 硬盘等)
2.软件基本组成
 笔记本(页面客户端)  服务器(代码服务器)   数据库服务器(存储数据)
 请求-->在请求-->响应-->在响应
3.软件产生的过程
  1.需求产生(客户,用户,需求方)(产品经理-0-1产品)                                           2.需求文档(产品经理)
  3.设计效果图(UI设计师)
  4.产品研发(研发工程师)
  5.产品测试(测试工程师)
  6.部署上线(正式使用)
4.软件测试
  1.使用技术手段验证软件是否满足使用需求
5.软件测试的目的
  1.减少软件缺陷(BUG) 保障软件质量
主流技术
1.功能测试   测试软件的功能是否满足需求
2.自动化测试 使用工具或代码代替手工,对项目进行测试
3.接口测试   使用代码或工具对服务端提供的接口进行测试
4.性能测试  模拟多人使用软件 查找服务器的缺陷(工具或者代码实现)
方向:功能测试+接口测试   功能测试+性能测试  功能测试+Web自动化测试
测试分类
按照阶段划分
1.单元测试 针对于程序源代码进行测试  开发自己测试
2.集成测试 针对于模块之间访问地址进行测试 接口测试
3.系统测试 对整个系统进行测试包括功能 兼容 文档等进行测试 全面测试
4.验收测试 主要分为内测,公测 使用不同人群进行测试
按照代码可见度划分
1.黑盒测试 源代码不可见 UI功能可见
2.白盒测试 全部代码可见 UI功能可见
3.灰盒测试 部分源代码可见 功能可见
模型
质量模型 衡量一个优秀软件的维度 
1.功能性 
2.性能 
3.兼容性
4.易用性
5.可靠性
6.安全性
7.可维护性
8.可移植性
需求 开发游戏 10个功能 支持web app 每日20W玩家在线
1.功能性 功能数量为10个 功能正确实现 错误处理情况
2.性能  服务器秒级处理请求数 服务器硬件配置是否满足
3.兼容性 Web(谷歌 IE 火狐 欧朋 苹果)
        Os(wind7,wind8,wind10,其他) 
        手机(分辨率,品牌,网络,其他)
4.易用性  简洁 友好 流畅 美观
5.可靠性  无响应 卡顿(响应时间慢) 死机(系统崩溃,闪退)
6.安全性  信息的传输(是否加密)  信息的存储(是否加密)
7.可维护性 是否满足研发规范
8.可移植性 网站数据迁移 
测试流程
1.需求评审 需求文档,需求理解一致
2.计划编写 测试什么,谁来测试,怎么进行测试
3.用例设计 验证项目是否符合需求的操作文档
4.用例执行 项目模块开发完成开始执行用例文档实施测试
5.缺陷管理 对缺陷进行管理的过程
6.测试报告 实施测试结果文档
测试用例
1.什么是用例  用户使用的案例
  是否能开机:打开手机按下电源键3s,是否可以开机
  验证内存:打开手机设置查看内存是否为64G
  验证屏幕:检查手机白屏下是否有黑色点
  检查运行速度:玩一下游戏,开否流畅
2.什么是测试用例 为测试项目而设计的执行文档
3.用例的作用 防止漏测 实施测试的标准
4.用例设计的编写格式
  用例编号:项目_模块_编号
  用例标题:预期结果(测试点)
  模块/项目:所属项目或模块
  优先级:用例的重要程度P0~P4(P0最高)
  前置条件:执行该用例,有哪些前置操作
  测试步骤:描述操作步骤
  测试数据:操作的数据,没有的话可以为空
  预期结果:期望达到的结果
用例编号用例标题项目/模块优先级前置条件测试步骤测试数据预期结果备注
sgg_login_001登录失败(手机号为空)登录P11.打开登录页面1.输入手机号 2.点击发送验证码按钮3.输入验证码 4.勾选协议 5.点击登录1.手机:为空 2.验证码:8888 3.其他输入正确的数据1.手机文本框状态为空色2. 点击发送验证码不弹出滑块 3.登录失败,提示手机号不可以为空
测试用例进阶
1.能对穷举场景设计测试点
2.能够限定边界规则设计测试点
3.能对多条件依赖关系设计测试点
4.能对项目业务进行设计测试点
等价类划分
在所有测试数据中,具有某种共同的特征的数据集合进行划分
有效等价类:满足需求的数据集合  无效等价类:反之
步骤:
1.明确需求
2.确定有效等价类和无效等价类
3.提供数据编写测试用例
​
案例:验证qq账号的合法性  需求 6~10位自然数
有效: 8位自然数            无效:3位自然数 12位自然数
12345678                   123,123456789012
有效:8自然数,非空         无效:8位非自然数 空
                            1234567A

总结

软件测试
 使用技术手段验证软件是否满足需求
测试分类 
 阶段 单元测试 集成测试 系统测试 验收测试
 代码 黑盒测试 白盒测试  灰盒测试
质量模型的5个重点性
 功能 性能 兼容 易用 安全
测试流程
 需求评审 测试计划 用例设计 用例执行 缺陷管理 测试报告
测试模板
 测试编号 用例标题 项目模块 优先级 前置条件 测试步骤 测试数据 预期结果

软件测试(筑基境)

边界值
案例一:标题长度大于0 小于等于30个字符
 步骤:确定需求  确定有效和无效等价类 确定边界范围 提取数据编写用例
 有效:大于0小于30个字符     无效:大于0小于30个非字符
 上点:0位,30位            离点:1位,-1,29位,31位           内点:15位
 测试用例7~9条
用例编号用例标题项目/模块优先级前置条件测试步骤测试数据预期结果
title_001不合法(标题为空)标题P1打开标题验证程序1.输入标题 2.点击验证标题:空不合法
title_002不合法(标题15位非字符)标题P1打开标题验证程序1.输入标题 2.点击验证标题:15位非字符不合法
title_003合法(标题30位字符)标题P0打开标题验证程序1.输入标题 2.点击验证标题:30位字符合法
title_004合法(标题1位字符)标题P0打开标题验证程序1.输入标题 2.点击验证标题:1位字符合法
title_005合法(标题29位字符)标题P0打开标题验证程序1.输入标题 2.点击验证标题:29位字符合法
title_006不合法(标题31位字符)标题P1打开标题验证程序1.输入标题 2.点击验证标题:31位字符不合法
title_007合法(标题15位字符)标题P0打开标题验证程序1.输入标题 2.点击验证标题:15位字符合法
总结:
案例 -99<=a<=99
优化:7个优化成为5个
上点:必选
中点:必选
离点:开内闭外
使用场景:
 在等价值的基础上针对有边界范围的测试数据输入的地方(重点关注边界值)
 常见词描述:大小 尺寸 重量 最大 最小 至多 至少等修饰词
 典型代表 有边界范围的输入框类测试
判定表
判定表:一种以表格形式表达多种条件逻辑判断的工具
组成: 
 条件桩:列出问题中的所有条件 列出条件的次序无关紧要
 动作桩:列出问题中可能采取的操作,操作的顺序没有约束
 条件项:列出条件对应的值,所有可能的情况的
条件是否欠费
是否关机
操作是否允许主被叫
规则:
 判定表中贯穿条件项和动作项的一列就是一条规则
 假设N个条件,每个条件的取值就有两个(0,1)全组合有2的N次方规则
步骤:
 明确需求 画出判定表 根据规则编写测试用例
案例:规则:
 如果金额大于500元 未过期 发出批准单和提货单
 如果金额大于500元  过期  不发出批准单和提货单
 如果金额小于等于500元  不论过期不过期  都发出批准单和提货单
 在过期的情况下不论金额大小还需要发出通知单
 
 1.明确需求
   两个条件 四个用例
 2.画判定表
 3.提取数据,编写用例
是否大于500
是否过期
批准单X
提货单X
通知单XX
用例编号用例标题项目/模块优先级前置条件测试步骤测试数据预期结果
order_001通知单(大于500,过期)订单P1打开订单验证程序1.输入金额2.选择是否过期 3.点击验证按钮金额:600 是否过期:过期发通知单,不发批准单和提货单
order_002通知单(大于500,未过期)订单P1打开订单验证程序1.输入金额2.选择是否过期 3.点击验证按钮金额:600 是否过期:未过期不发通知单,发批准单和提货单
order_003通知单,批准单,提货单(小于500,过期)订单P1打开订单验证程序1.输入金额2.选择是否过期 3.点击验证按钮金额:400 是否过期:过期发通知单,批准单和提货单
order_004批准单,提货单(小于500,未过期)订单P1打开订单验证程序1.输入金额2.选择是否过期 3.点击验证按钮金额:40 是否过期:未过期不发通知单,发批准单和提货单
场景法(流程图)
使用标准图形和箭头表达程序或业务走向
开始 --> 判断 --= 语句 --> 结束
流程图对测试人员的作用
1.能看懂流程图 设计业务用例
2.当需求文档信息不全 根据需求 梳理出流程
网页工具:https://processon.com
windows工具:visio
需求:用户名admin 密码123456 输出 登录成功
     登录,搜索商品 添加购物车 结算 支付 成功 提示下单成功 不成功 提示支付失败
太简单了,这里就不画了
场景法用于测试业务用例,优先进行测试
​
错误推荐法
介绍:
 通过经验推测系统可能出现的问题
场景:
 时间紧迫,经验多
思想:
 根据经验列举可能出现问题的清单 根据清单分析问题可能原因 推测发现缺陷
​
面试题:如果该时间紧,任务多,就你一个人,你该如何测试?
       先去和产品确定哪些是重要的义务,先测试主业务,再去验证主功能的正向和逆向,按照时间节点走,在加班
   
总结
能对穷举场景设计测试点 
 等价类 有效等价(取一个) 无效等价(两边取一)重点:验证类型
能对限定边界规则设计测试点
 边界值 上点(边界上的点) 离点(距离上点最近的点) 内点(范围内的点) 测试点最多7条用例 优化后为5条(开内闭外)
能够对多条件依赖关系进行设计测试点
 判定表 条件桩 动作桩 条件项(是是 是否 否是 否否) 动作项(√ X)只有多个条件依赖才使用判定表 2的条件次方为用例个数
能够对项目业务进行设计测试点
 流程图 先测业务 在测模块功能

软件测试(金丹境)

用例执行
用例编号用例标题项目/模块优先级前置条件测试步骤测试数据预期结果实际结果
login_001qq合法(8位自然数)qqP0打开qq验证程序1.输入程序2.点击验证按钮12345678合法通过(pass)
login_002qq合法(5位自然数)qqP0打开qq验证程序1.输入程序2.点击验证按钮12345不合法通过(pass)
login_003qq合法(11位自然数)qqP0打开qq验证程序1.输入程序2.点击验证按钮12345678912不合法通过(pass)
login_004qq合法(6位自然数)qqP0打开qq验证程序1.输入程序2.点击验证按钮123456不合法不通过(fail)
缺陷(BUG)
缺陷:
 软件在使用过程中存在的任何问题都叫软件的缺陷,简称BUG
缺陷的判定标准:
 软件未实现需求(规格)说明书中明确要求的功能--少功能
 软件出现需求(规格)说明书指明不应该出现的错误--功能错误
 软件实现的功能超出需求(规格)说明书指明的范围--多功能
 软件未实现需求(规范)说明书未指明但应该实现的要求--隐形功能错误
 软件难以理解,不宜使用,运行缓慢,用户体验差--不易使用
​
缺陷产生的原因:
 需求阶段 需求描述不易理解 有歧义 错误等
 设计阶段 设计文档存在错误或者缺陷
 编码阶段 代码出现错误
 运行阶段 软件硬件系统本身故障导致软件缺陷
软件缺陷的生命周期:
 生产缺陷( 需求规格说明  设计  编码 )
 发现缺陷(测试)
 清除缺陷(缺陷分类 故障隔离)
 生产缺陷(故障解决)
缺陷的核心内容
 缺陷的标题 描述缺陷的核心问题
 缺陷的预置条件 缺陷产生的前提
 缺陷的重复步骤 修改缺陷的过程
 缺陷的预期结果 希望得到的结果
 缺陷的实际结果 实际得到的结果
 缺陷的必要附件 图片日志(证据)
缺陷的提交要素
 缺陷编号
 严重程度 (S1-S4)严重(主功能) 一般(次功能) 微小(业务功能) 建议(建议问题)
 缺陷优先级 (Priority0-proiorty3)24小时  发布前 下一个版本
 缺陷类型 代码类型 兼容性问题 性能问题
 缺陷状态 New Open Close PostPoned
缺陷类型
 功能错误 UI错误 兼容 数据 易用性 建议 架构
 
总结:
 设计用例--执行用例--缺陷(提交 验证 关闭)
缺陷定义:
 任何问题(BUG)
缺陷标题:
 多功能 少功能 错误 缺少隐形功能 易用性
缺陷描述:
 缺陷标题 前置条件 复现步骤 预期结果 实际结果 附件备注
缺陷提交:
 指派人 缺陷等级 修复优先级 类型

软件测试(元婴境)

BUG编写
缺陷报告实例
缺陷ID bug_001
缺陷标题 正常下单成功支付失败 
缺陷状态 new
严重程度 P0
优先级 P0
所属模块 Ego核心业务
缺陷描述 1.打开小程序 2.选中商品添加购物车功能进行下单 3.在商品详情页面点击付款 预期结果:唤醒微信支付 实际结果:无响应
附件 页面截图
​
面试题
当你发现缺陷后,首先你会怎么办?
 确认BUG 保证缺陷可以复现 提交BUG 指派开发
禅道
介绍:
 https://www.zentao.net/
特点:
 国产 免费 轻量 三管融合(产品管理 项目管理 质量管理)
 三权分立 产品部门(构想者) 研发部门(执行者)测试部门(保证者)
 四角协同 产品经理 项目经理 研发团队 测试团队
使用流程:
 
软件测试(渡劫境)
实例项目
需求描述:
 1.文章标题不能小于5个字符
 2.文章内容不能为空
 3.频道内容不可以为空
 4.封面选择:单图 三图 无图 自动
 5.点击选择图片
  5.1素材库 上传图片切换 
  5.2素材库
   5.2.1全部和收藏切换
   5.2.2图片可以选择
  5.3上传图片
 6.点击发表,提示文章新增成功 跳转到内容列表 文章状态显示待审核
 7.文章审核成功后,可以跳转到首页文章的区域
 

@黑马程序员官网-IT培训机构|java培训班|python培训|大数据培训|Web前端课程|软件测试课程

软件测试(陆地仙人)

面试题
什么是软件测试?
答案:软件测试是通过执行程序或应用来评估其是否满足规定的需求和预期结果的过程。
软件测试的目的是什么?
答案:软件测试的目的是发现错误、缺陷和问题,提高软件的质量和可靠性。
软件测试的类型有哪些?
答案:常见的软件测试类型包括功能测试、性能测试、安全测试、兼容性测试等。
请描述黑盒测试和白盒测试的区别。
答案:黑盒测试是基于功能和需求的测试,不关注内部实现;白盒测试是基于代码和程序结构的测试。
什么是测试用例?为什么需要测试用例?
答案:测试用例是描述如何测试软件的具体步骤和期望结果的文档。它们有助于确保测试的系统性和重复性。
如何设计有效的测试用例?
答案:设计有效的测试用例需要理解需求、考虑边界情况、等价类划分等方法。
缺陷报告应该包含哪些信息?
答案:缺陷报告通常包括缺陷描述、重现步骤、严重程度、优先级等信息。
测试计划的主要内容是什么?
答案:测试计划包括测试目标、测试范围、测试策略、资源需求和进度安排等。
什么是冒烟测试?它的目的是什么?
答案:冒烟测试是在软件主要功能上进行的快速验证,目的是确保基本功能正常。
什么是回归测试?为什么要进行回归测试?
答案:回归测试是针对已有功能进行的再测试,以确保修改或新增功能没有影响到其他部分。
自动化测试的优点是什么?
答案:自动化测试可以提高效率、减少重复性工作、提高测试覆盖度和准确性。
你熟悉哪些自动化测试工具?
答案:(例如)Selenium、JMeter、TestNG 等是常见的自动化测试工具。
如何选择适合项目的自动化测试工具?
答案:根据项目需求、技术栈、团队技能和预算等因素来选择合适的工具。
什么是性能测试?性能测试的指标有哪些?
答案:性能测试评估软件在负载下的性能,指标如响应时间、吞吐量、资源利用率等。
请描述性能测试的过程。
答案:包括确定性能目标、设计场景、收集数据、分析结果等步骤。
什么是安全测试?安全测试的重点是什么?
答案:安全测试关注软件的安全性,重点是漏洞发现和防护。
你在测试过程中遇到过哪些挑战?如何解决的?
答案:可能提到时间压力、复杂需求、协作问题等挑战及解决方法。
如何确保测试的覆盖度?
答案:通过多种测试方法、需求分析和风险评估来确保覆盖度。
请描述你在以往项目中如何与开发团队协作的。
答案:分享测试结果、及时沟通问题、提供反馈等方面的协作经验。
对于一个新的项目,你会如何开始测试工作?
答案:了解需求、制定计划、设计测试用例等。
什么是测试环境?如何搭建测试环境?
答案:测试环境是模拟实际使用场景的环境,需要考虑硬件、软件、网络等因素。
测试结束的标准是什么?
答案:可能是达到一定的覆盖度、缺陷修复率、满足质量标准等。
如何评估测试的质量?
答案:通过缺陷分析、指标监控、用户反馈等方式评估测试质量。
你对敏捷开发方法有什么了解?
答案:敏捷开发强调迭代、快速反馈和团队协作,测试在其中扮演重要角色。
在敏捷开发中,测试人员的角色是什么?
答案:与开发团队紧密合作,提供快速反馈,参与敏捷活动等。
请描述一次你成功完成的测试项目。
答案:分享项目背景、测试策略、成果和收获。
你对持续集成和持续部署有什么了解?
答案:持续集成和持续部署是自动化流程,有助于提高软件交付效率和质量。
如何在有限的时间内完成测试任务?
答案:合理规划、优先级排序、高效执行和必要的沟通协调。
你对测试驱动开发(TDD)有什么理解?
答案:TDD 是一种先写测试用例再写实现代码的开发方法,有助于提高质量和可维护性。
对于未来的软件测试工作,你有什么职业规划?
答案:提及提升技能、拓展领域、承担更多责任等职业发展方向。
总结:
 随着信息技术的不断发展和普及,软件测试的市场需求逐渐增加,因此软件测试就业前景非常广阔。目前,软件测试已经成为信息技术行业中非常重要的职业之一。在互联网、金融、电子商务、医疗等领域,软件测试工程师都将扮演着关键的角色,担负着保障软件质量的重任。
  同时,随着人工智能和自动化技术的发展,软件测试也在向智能化、自动化方向发展。掌握自动化测试技术的测试人员将更受企业青睐,有望在就业市场中脱颖而出。
  然而,虽然软件测试行业就业前景看好,但也面临着激烈的竞争。学软件测试的人越来越多,求职市场也日益竞争激烈。因此,对于求职者而言,除了扎实的专业知识和技能外,还需要具备良好的团队合作能力、沟通能力和解决问题的能力,才能在求职中脱颖而出,成功进入软件测试行业,迎接美好的职业生涯。

部分素材以及模板等资源:

链接:https://pan.baidu.com/s/1Pkrb1QqBwN5qTtgnAAcypA?pwd=vmoz
提取码:vmoz

感谢:黑马程序员某老师以及字节跳动某团队

  • 32
    点赞
  • 51
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值