测开基础知识02

2023-11-02

1:软件测试

软件测试:软件测试是软件研发的一部分,不止是找出软件错误的活动,是软件开发每一环节中一些列质量活动的总称,包括软件研发过程的改进,软件质量评定,需要参与到每一环关键的决策

  • 发现程序中的错误,根据需求,分析执行软件的全过程
  • 保证软件研发中,文档质量的过程
  • 分许错误产生的原因,以及发展趋势,提出研发过程中的改进意见
  • 未发现错误的测试也是有价值的,测试是评定软件质量的有效方法

软件测试的对象:程序和文档(交互文档,概要设计文档,详细设计文档)

软件测试的价值:

  • 质量检测(发现软件缺陷)
  • 质量改进(完善软件研发的过程)
  • 质量鉴定(证明版本可发布)
  • 质量督导(提高团队能力成熟度)

软件测试的原则:

  • 软件测试要尽早进行,贯穿软件的整个生命周期
  • 穷尽测试是不可能的
  • 注意测试过程中的群集现象(多个模块同时产生缺陷)
  • 缺陷的二八定律(80%的缺陷出现在20%的代码中)
  • 严格执行软件的测试计划,避免随意性的测试
  • 注意合法和非法的输入
  • 杀虫剂悖论(同模块定期替换测试人员测试)

测试误区:

  • 软件测试只是对程序的测试
  • 软件测试在开发完成后进行
  • 软件质量只是测试人员的责任
  • 软件发布后的缺陷全是测试人员的错误
  • 软件测试对测试人员的技术不高
  • 软件测试是测试的事与开发无关

软件测试流程:

  • 需求分析
    • 串讲:产品经理对开发和测试人员进行需求讲述
    • 反串讲:开发和测试人员对产品经理进行需求讲述
    • 串讲和反串讲的目的:需求对齐
  • 测试计划
    • 人员安排
    • 时间节点
    • 测试背景
    • 测试环境依赖
    • 风险
    • 退出机制
      • 测试用例覆盖度100%
      • 测试用例执行率100%
      • 缺陷遗留率2-5%
      • 遗留的缺陷需要有解决方案
  • 测试分析
    • 根据需求设计思维导图
  • 测试设计
    • 将功能点转化为测试点
  • 用例编写
    • 按照用例编写规范进行编写
  • 环境搭建
    • 搭建测试环境
    • 冒烟测试
  • 提交缺陷
    • 按照缺陷编写规范编写缺陷
    • 提交缺陷
  • 回归测试
    • 验证修复的缺陷
  • 测试报告
    • 测试用例执行情况
    • 测试分布情况
    • 缺陷处理情况
    • 测试结论

2:测试用例和缺陷

测试用例要素:

  • 用例编号
  • 模块
  • 子模块
  • 测试场景
  • 用例标题
    • 必须以验证开头
    • 不能包含二义性字样
    • 用例标题不超30字
    • 测试标题需要给出明确的结果
    • 用例标题不能重复
  • 优先级
  • 前置条件
  • 执行步骤
    • 给出具体的测试数据
  • 期望结果

缺陷:

  • 不满足客户需求
  • 超越客户需求
  • 不合符用户操作习惯
  • 缺失异常处理

缺陷要素:

  • 缺陷编号
  • 模块
  • 子模块
  • 测试场景
  • 缺陷标题
  • 优先级
  • 严重性(缺陷等级:轻微,一般,严重,致命)
  • 前置条件
  • 重现步骤
  • 期望结果
  • 实际结果
  • 附件:运行截图,大批量数据,运行日志等

缺陷生命周期:

  • 提交:提交上级
  • 确认:确定是否为缺陷
  • 分配:由开发组长进行分配
  • 修复:开发进行修复
  • 验证:测试进行验证(如果还有问题则直接和修改人员对接,reopen过程)
  • 关闭:验证通过,结束缺陷

3:各种测试

测试类型 描述
E2E测试 端到端测试,模拟真实使用环境测试业务的全流程
单元测试 单元测试一般是开发人员进行测试,各个模块在经过单元测试后进行组装
集成测试 主要目的是检查软件模块之间的接口是否正确,主要是针对程序内部结构进行测试,特别是对程序之间的接口进行测试
系统测试 是基于软件需求说明书黑盒测试,是对已经集成好的软件系统进行彻底的测试,以验证软件系统的正确性性能等满足其规约所指定的要求,检查软件的行为和输出是否正确
性能测试 性能测试:压力测试(非正常范围),负载测试(正常范围),并发测试(短时间内,大量请求同一个接口),稳定性测试(正常范围,长时间测试,比如一个礼拜),基准测试(测量和评估软件性能指标)
负载测试 系统在不同负载下的性能表现,通过负载测试能够测试出系统在各种负载下的性能变化曲线,发现系统的性能拐点,从而找出系统的最佳性能
压力测试 系统在高强度负载下的性能表现,通过压力测试可以测试出系统能够承受的最大负载。压测是一种寻求系统介于正常和不正常之间临界值的一种负载测试。压测不仅关注高负载下系统是否正常运行,同时关注负载减小后,系统是否能够恢复
稳定性测试 通过对软件稳定性的测试可以观察在一个运行周期内、一定的压力条件下,软件的出错机率、性能劣化趋势等。进而大大减少软件上线后的崩溃卡死等现象,为软件的逐步优化提供方向及验证。在特定的负载下(正常或略高于正常的负载),在一段运行周期内,对被测系统进行一系列的正常操作,观察各个系统性能指标变化以及系统是否能够长期稳定运行
并发测试 测试目的并非为了获得性能指标,而是为了发现并发引起的问题。通常使用一些工具进行并发测试:LoadRunner,JMeter等
基准测试 在特定时期(系统稳定时)通过基准测试建立一个已知的性能水平(称为基准线),当系统的软硬件环境发生变化之后再进行一次基准测试以确定那些变化对性能的影响。基准测试可以比较系统在版本迭代过程中,各个性能指标的变化,为系统的版本迭代优化提供参考
UAT用户验收测试 用户验收测试(包含Alpha,Beta测试),用户可接受性测试:用户或者第三方公司验证测试是否满足客户需求
A l p h a Alpha Alpha测试 一些最终用户在开发环境中进行测试
B e t a Beta Beta测试 A l p h a Alpha Alpha测试之后由一些最终用户在生产环境(线上环境)中进行的测试

4:测试方法

Ⅰ:等价类划分法

将程序的输入域划分为若干等价类,从每个部分中选取少数代表性的数据,当作测试输入数据

  • 有效等价类:对程序有意义的,合理的输入数据,构成的集合
  • 无效等价类:对程序无意义的,不合理的输入数据,构成的集合

举例:

输入条件 有效等价类 无效等价类
用户名 中文,英文,中英文 特殊字符,数字,空格
密码 6-10位纯数字 05位,7N位,字符

有效等价类测试:

  • 中文,6-10位纯数字
  • 英文,6-10位纯数字
  • 中英文,6-10位纯数字

无效等价类测试:

  • 无效等价类的用户名+有效等价类密码
  • 无效等价类的密码+有效等价类的用户名

根据等价类表生成测试步骤:(无效一次一个,有效一次尽可能多)

  • 为有效等价类编写唯一的编号编写测试用例,使其尽可能多的覆盖尚未被覆盖的有效等价类
  • 重复测试,直到所有的有效等价类被覆盖为止
  • 为无效等价类编写唯一的编号编写测试用例,使其覆盖一个尚未被覆盖的无效等价类
  • 重复测试,直到所有的无效等价类被覆盖为止

Ⅱ:边界值测试法

  • 上点:边界值上的点
  • 离点:离上点最近的且不属于同一个等价类的点
  • 内点:上点内的点

Ⅲ:场景测试法(流程分析法)

  • 正常的流程属于基本流
  • 因为错误而产生的流程属于备选流

Ⅳ:错误推断法

根据经验和直觉推测程序中所有可能存在的各种错误,从而设计有针对性的测试用例的方法

基本思想:列出程序中所有可能发生的错误或者容易发生错位的特殊情况,根据它们来设计测试用例

  • 单元测试的时候整理出来的模块中常见的错误
  • 以前产品测试中发生过的错误
  • 产品在顾客实际使用中发生的错误
  • 容易发生错误的情况
  • 一些公共模块(错误会导致群集现象)
  • 修复bug的功能和模块

Ⅴ:正交试验法

研究多因素多水平的一种实验法,利用正交表来对实验进行设计,通过少数的试验来代替全部的试验,根据正交表的正交性从全面试验中挑选适量的有代表性的点进行试验,这些有代表的点具备了均匀分散,整齐可比的特点(由于时间和成本的限制不可能进行全面试验)

兼容性正交:(一般测试三个版本)

表单正交:

  • 列出所有条件
  • 将条件值选项最多的作为第一列,以此类推,进行排列组合
  • 正交表除了第一行都是测试用例

表单:输入框,单选,多选,复选,文本,下拉

控件:滚动条,弹出框,按钮等

5:敏捷开发

敏捷模型:敏捷模型是一种以人为核心,迭代 (将软件研发过程分为若干轮次,每一个轮次都称为一个迭代,迭代经历 需求 计划 设计 实现) 循序渐进的开发思想,在敏捷开发过程中软件项目的研发被切分成多个阶段,各个阶段都具备可以独立运行以及独立交付的特征

名词 描述
scrum 敏捷开发的一种典型的管理方式
站立会 快速讨论
看板 展示每天的软件研发进度
用户故事 用户需求
燃尽图 进度图(X-时间 Y-工作剩余量)
UAT 用户验收测试
case 用例
Build 大概一周,迭代中的小型迭代
Sprint 大概一个月的时间,一次版本发布(迭代)

三个回归:

缺陷回归(发生在每一个build)

版本回归(发生在每一个sprint)

产品回归(发生在最后一个sprint)

三个报告:

测试报告(发生在每一个build)

sprint报告(发生在每一个sprint)

产品报告(发生在最后一个sprint)

两个UAT:

sprintUAT(发生在每一个sprint)

产品UAT(发生在最后一个sprint)

每一个build流程:

  • 编写用例
  • 搭建环境
  • 执行测试
  • 提交缺陷
  • 修复缺陷
  • 缺陷回归
  • build测试报告

每一个sprint流程:

  • 若干build
  • 最后一个build
    • 版本回归
    • sprint测试报告
    • sprintUAT
  • 最后一个sprint
    • 产品回归
    • 产品报告
    • 产品UAT
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

测开基础知识02 的相关文章

  • [Linux用户空间编程-5]:用IPTable实现NAT功能

    作者主页 文火冰糖的硅基工坊 文火冰糖 王文兵 的博客 文火冰糖的硅基工坊 CSDN博客 本文网址 https blog csdn net HiWangWenBing article details 123427800 目录 前言 第1章
  • 5个高清视频素材网站,免费商用,建议收藏~

    1 Mixkit https mixkit co 站内有非常多的高清视频素材 音频素材 视频全部都分类好了 像自然 航拍 科技 人物等等这里都能找到 还有很多视频模板 达芬奇模板全部都是免费 可商用 但每天有限制下载次数 素材的授权方式也不
  • 2022春招前端最新面试题分享(诺亚财富)

    诺亚财富面经 公司及岗位信息 公司 诺亚财富 岗位 前端开发工程师 地点 上海 薪资 10k 15k 14薪 面试结果 三轮技术面全部通过 约了HR面了 一面 2022 04 21 自我介绍 为什么不在实习公司转正 JS常见数据类型 基本类
  • windows Ubuntu loongnix 网络通信

    当我们进行Linux应用开发时 我们面临的首要问题便是如何让windows ubuntu和开发板三者完成通信 以便于代码文件的传输 1 windows和ubuntu 的通信 首先我们在建立ubuntu虚拟机时将其网络适配器模式配置为NAT
  • To create POPUP menu

    To create popupmenu Create new menu as follows Select popup opion Click on define transfer Assign any menu component pag
  • 飞猪单品详情采集

    api detail f ret SUCCESS 调用成功 v 1 0 data sold data sold 月销 5647 笔 soldCount 5647 tag sold pageContainer children detailC
  • python(chapter02)

    字符串 字符串 pystr python iscool is cool print pystr 0 使用切片法来进行字符串的切割 索引是2 到 5 的字符串 print pystr 2 5 索引是0到2的 print iscool 2 索引
  • ChatGLM-6B的安装和使用最全面细节讲解

    ChatGLM 6B是一个基于General Language Model GLM 架构的开源对话语言模型 支持中英双语 该模型使用了和ChatGPT类似的技术进行优化 经过1T标识符的中英双语训练 同时辅以监督微调 反馈自助和人类反馈强化
  • 【Solidity】Storage和memory关键字的区别和用法

    在 Solidity 中 有两个地方可以存储变量 storage以及memory Storage 变量是指永久存储在区块链中的变量 Memory 变量则是临时的 当外部函数对某合约调用完成时 内存型变量即被移除 状态变量 在函数之外声明的变
  • Work Tips

    目录 IAR环境下 使用Live Watch实时监控变量值 IAR替换mcu库 Linux中删除swp文件 使用J Link通过SWD接口直接下载 hex文件和 bin文件到MCU 下载J Flash软件 linux设置时间命令 Jlink
  • chatgpt综述和报告

    ChatGPT究竟强在哪 复旦大学邱锡鹏教授 大型语言模型的能力分析与应用 哔哩哔哩 bilibili2022年底 美国OpenA1公司发布了ChatGPT 一个可以与人类对话交互的千亿规模参数的大型语言模型 它可以根据用户输入的指令完成各
  • Cocos Creator 华容道

    环境 cocos creator 2 0 10 Mac环境 TypeScript 文末附源码链接 本文提供了游戏玩法的逻辑 支持关卡配置 可以自由配置关卡 先看一下效果 首先 我们看一下我们要处理的问题 1 区域划分 2 角色摆放 即 关卡
  • openWRT添加模块(四)

    http blog chinaunix net uid 10429687 id 3374873 html OpenWrt是一个比较完善的嵌入式Linux开发平台 在无线路由器应用上已有100多个软件包 人们可以在其基础上增加软件包 以扩大其
  • PID怎么应用到实际控制系统

    早就想写篇PID应用的文章 可是一直以来受限于自己的知识水平和能力 未能如愿 整个暑假在做一个激光电源的控制程序 核心思想又是PID控制 看来在整个控制领域 PID 的市场可是无处不在啊 关于PID的理论分析这里不在赘述 可以在一般的资料上
  • 判断这个数能被4整除,但是不能被100整除

    需求 用户输入一个 判断这个数能被4整除 但是不能被100整除 分析 1 用户输入 2 控制台 是否能被4整除并且100整除 let num prompt 请输入一个数 num num 0 防止用户输入空字符若是空字符就为0 let re
  • kdj超卖_kdj超卖是什么意思?kdj超买超卖区别是什么

    kdj超卖是什么意思 kdj超买超卖区别是什么 对于大多数股民来说 指标应用是股市投资必不可少的操作系统 指标的主要作用就是用来作参考 辅助自己进行股票投资 今天 在这里我们所要谈论的是kdj指标 kdj超卖是什么意思 如何判断kdj超买超

随机推荐

  • angular4学习指南,环境搭建,基础概念解析(一)

    一 Angular是什么 Angular是由google开发维护的一个开发跨平台应用的框架 同时适应PC端和移动端 两个大版本 1 5 和4 0 4 0完全重写 1 5之前的叫angularJS 4 0叫angular 二 Angular开
  • Netty02-入门

    二 Netty 入门 1 概述 1 1 Netty 是什么 Netty is an asynchronous event driven network application framework for rapid development
  • dlna 斐讯r1怎么用_斐讯R1智能(蓝牙)音箱固件升级教程

    斐讯R1智能 蓝牙 音箱固件升级教程 2019 07 05 17 46 00 55点赞 459收藏 112评论 儿子现在突然爱上听歌写作业 难得是听歌品味居然跟我8分像 书桌空间有限 看来一圈蓝牙音箱 发现斐讯遗产R1 哈曼认证单元 但据说
  • Python 频繁请求问题: [Errno 104] Connection reset by peer

    记遇到的一个问题 Errno 104 Connection reset by peer 今天工作上有个需求 数据库有个表有将近3万条url记录 每条记录都是一个图片 我需要请求他们拿到每个图片存到本地 一开始我是这么写的 伪代码 impor
  • Java学习笔记16——抽象类

    抽象类 抽象类 什么是抽象类 抽象的关键字 抽象类的特点 抽象类的成员特点 抽象类 什么是抽象类 在Java中 一个没有方法体的方法 应该被定义为抽象方法 而类中如果有抽象方法 该类被定义为抽象类 抽象的关键字 abstract 抽象类的特
  • Spring 的基本用法之另外一种装配方式

    一 目的 了解 Spring 环境配置 掌握定义应用程序类 掌握编辑配置文件创建 bean 实例实现依赖注入 掌握编辑测试类创建 IoC 容器 通过容器获取 bean 实例 二 内容 创建一个Spring项目 完成主题为 订单信息通知 项目
  • 一些比较不错的资源网站

    阮一峰日志地址 Github上值得推荐的开源电子书
  • QT 5.15 源码windows下 msvc编译

    目录 1 下载 Qt 源代码 2 安装依赖项 3 配置命令行环境变量 4 构建 5 使用 1 下载 Qt 源代码 Index of archive qt 5 15 5 15 8 singlehttps download qt io arch
  • STM32F4XX/APM32F4XX USB OTA升级

    近期在研究USB CDC协议 使用USB Virtual Port Com功能与上位机通讯做了OTA功能 开发平台 MDK529开发硬件 APM32F411首先介绍一下程序执行逻辑 程序由两部分组成 Boot APP Flash由三部分组成
  • 485串口服务器协议,10/100M TCP/IP转1口RS-232/485/422串口服务器 - 宇泰(UTEK) - 全球领先智能通讯解决方案提供商!...

    gt gt 硬件特性 菜单配置界面 操作模式丰富 满足不同行业的应用 提供Windows 虚拟COM 驱动软件 灵活合理的UNIX 下Fixedtty 工作机制 具有1个串行端口 可以连接终端 Modem 条码机 收款机 ISDN 终端适配
  • 《网页设计基础——CSS的四种引入方式详解》

    网页设计基础 CSS的四种引入方式详解 一 行内式 规则 1 行内式是所有样式方法中最为直接的一种 它直接对HTML的标记使用style属性 然后将CSS代码直接写在其中 格式 p style color FF0000 font size
  • 用「渣男」心态去面试,爽翻!

    转载自博学谷公众号 面试是一场 销售 自己的考试 很多程序员掌握的技术 知识都非常过关 但在面试中却不能完全展现出来 屡屡发挥失常 同样是天选打工人 别人的offer 像猴子摘苞谷 应接不暇 而你的offer 像肉包子打狗 有去无回 究其根
  • python的环境变量配置

    一般会自己在安装时配置环境变量 但是也有小失误忘了打勾勾 这时我们则需要自己配置环境变量 Python的环境变量配置很简单 1 1 Windows配置环境变量 右击点击 我的电脑 点击 属性 2在弹出的界面中点击 高级系统设置 不同的win
  • 《MySQL实战45讲》——学习笔记33 MySQL Server查询结果的发送流程 / 一次查询大量数据对innoDB bufferPool的影响 / 内存淘汰算法LRU与innoDB改进的LRU

    本篇通过 大查询会不会把内存用光 这个问题 介绍了MySQL 的查询结果发送给客户端的过程 涉及的知识点包括 MySQL Server查询结果的发送流程 边读边发 MySQL线程状态Sending to client Sending dat
  • 面试题:软件测试工程师工作职责?

    软件测试工程师工作职责 工作职责 测试人员有不同的级别 或者说有不同的职位称呼 都有相对应不同的工作职责 如果你想了解现在企业里面最新的职位需求的话 最简单的一个方式就是直接去大型招聘网站上BOSS直聘或者前程无忧 赶集网去搜索软件测试工程
  • 前端表单验证 for循环验证 自定义表单验证

  • 关于Java的那些安全框架

    前言 在Java开发中 安全是一项至关重要的特性 不仅仅是因为它保护我们的数据和系统免受恶意攻击 还因为它保护着我们和我们的用户的隐私 因此 Java安全框架的选择至关重要 在本篇博客中 我们将探讨一些常见的Java安全框架 以及如何使用它
  • 微服务发展趋势

    目录 云原生网关逐步成型 服务网格回归理性 微服务架构分层逐渐清晰 微服务技术标准逐步形成 数据面 SidecarProxy 与 Proxyless 模式的融合 服务治理数据面透明化 控制面标准化 分布式事务从多样化到标准化 多语言解决方案
  • Android混合开发全解析

    现在的app都开始流行混合开发了 这是一个app开发的新技术 作为android程序猿的我们也应该要了解并且掌握他 那么在使用之前 我们一定要搞清楚 我们的哪些场景使用混合开发好一些呢 这个问题一定要搞清楚 因为现在的混合开发还不成熟 We
  • 测开基础知识02

    1 软件测试 软件测试 软件测试是软件研发的一部分 不止是找出软件错误的活动 是软件开发每一环节中一些列质量活动的总称 包括软件研发过程的改进 软件质量评定 需要参与到每一环关键的决策 发现程序中的错误 根据需求 分析执行软件的全过程 保证