IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Python知识库 -> 软件测试鸾音鹤信 -> 正文阅读

[Python知识库]软件测试鸾音鹤信

软件测试


参考资料
《软件测试方法与技术 朱少民主编 第3版》


音信导航


前言

??软件业的发展在中国走过了很多年了,对于软件的开发过程,有了许多的开发规范和开发流程。在软件开发的发展过程中,开发人员积累了大量的经验,同时,通过软件开发过程中出现的各种各样的问题经验的总结,产生了软件测试这个软件开发的伴随品。

??软件测试是为发现错误而执行的一个程序或者系统的过程,总的说来软件测试需要实现的目标包括:
???1、测试是为了证明程序有错,而不是证明程序无错误;
???2、发现在软件开发以及软件实施过程中没有发现的错误;
???3、对软件开发以及实施过程中没有发现的错误进行有效的测试。
??由此可见,软件测试对于软件开发的最终作用就是保证软件的质量。

??软件测试可以划分为三个阶段,第一个阶段是找出已经运行的或者正在开发的软件的bug,第二个阶段是除开找出软件中的bug外,对软件进行度量,明确把握对软件质量的度量,第三个阶段是提出对软件质量度量的标准,提高被测试软件的质量,这中间将软件测试作为一个工程来看待,也就是说测试也是一个开发过程。

??软件测试是软件开发过程中的一个重要的步骤,或者可以说软件测试应该是贯穿于软件开发过程每一个阶段,以确保在软件开发的过程中,随时发现问题,方便软件开发人员及时进行修改


一、学习路线

请添加图片描述

二、技能树

2.1 总技能树

请添加图片描述

2.2 黑马技能树

在这里插入图片描述


请添加图片描述


在这里插入图片描述


在这里插入图片描述


三、理论导图

请添加图片描述

四、软件测试引论

1、软件测试的定义

??软件测试的定义(方式+目的,它是一个过程)
??IEEE对软件测试下了一个标准的定义,如下:使用人工或者自动手段运行或者测定某个系统的过程,其目的在于检验它是否满足规定的需求或者弄清楚预期结果和实际结果之间的差别

2、必要性

2.1 软件总存在缺陷

??只有通过测试,才可以发现软件缺陷。也只有发现了缺陷,才可以将软件缺陷从软件产品或者软件系统清理出去。

2.2 缺陷带给我们的损失巨大

??软件中存在的缺陷给我们带来的损失是巨大的,这也说明了软件测试的必要性重要性

2.3 测试是基本组成单元

??测试是所有工程学科的基本组成单元,自然也是软件开发重要组成部分

2.4 产品稳定性和产品收益

??测试人员水平越,找到软件问题的时间就越,软件就越容易更正,产品发布之后就越稳定,公司赚的钱就越。(微软的例子)

3、软件测试与质量保证的关系

3.1 质量保证的定义

??软件质量保证(Software Quality Assurance SQA)活动是通过对软件产品有计划的进行评审审计来验证软件是否合乎标准的系统工程,通过协调、审查和跟踪以获取有用信息,形成分析结果以指导软件过程

3.2 软件测试与质量保证的关系

3.2.1 测试是一项技术性的工作,侧重于对产品进行评估和验证

??软件测试是SQA重要手段之一,为SQA提供所需的数据,作为质量评价的客观依据

3.2.2 SQA是一项管理工作,侧重于对流程的评审和监控

??SQA指导、监督软件测试的计划执行督促测试工作的结果客观、准确和有效,并协助测试流程改进。(指导执行、督促结果、协助改进)

五、基本概念

1、软件缺陷

1.1 定义

??(是什么+后果)
??指计算机系统或者程序中存在的任何一种破坏正常运行能力问题错误或者隐藏的功能缺陷、瑕疵,其结果会导致软件产品在某种程度不能满足用户需求

1.2 表现

  • 实际结果和预期结果不一致
  • 运行出错,包括运行中断、系统崩溃、界面混乱
  • 功能、特性没有实现或者部分实现
  • 数据结果不正确、精度不够
  • 设计不合理,存在缺陷
  • 用户不能接受的其它问题,如存取时间长、界面不美观

2、软件测试的分类

--

在这里插入图片描述

  • 测试阶段划分有单元测试、集成测试、确认测试、系统测试、验收测试
  • 是否运行程序划分有静态测试动态测试
  • 是否查看源代码划分有白盒测试和黑盒测试
  • 测试目的划分有功能测试性能测试压力测试、可用性测试、安全性测试、可靠性测试)
  • 其它回归测试和随机测试

2.1 静态测试和动态测试

2.1.1 静态测试

  • 静态测试是对软件产品需求设计规格说明书进行评审、对程序代码复审
  • 静态分析的查错和分析功能是其它方法所不能替代的,越来越多地采用工具进行自动化分析

2.1.2 动态测试

  • 动态测试就是通过真正运行程序发现错误,通过观察代码运行过程,获取系统信息,对系统行为进行验证

2.2 白盒测试和黑盒测试

2.2.1 白盒测试

  • 又称结构化测试或逻辑驱动测试
  • 已知产品内部工作过程(程序的结构语句
  • 按照内部的结构测试程序,检查程序的每条通路是否都能按预定要求工作

2.2.2 黑盒测试

  • 又称为数据驱动测试,将程序看做一个黑盒子
  • 不知程序内部的结构特性
  • 直接进行测试,检查系统功能是否能按照需求规格说明书的规定正常使用

2.3 测试计划和测试用例

2.3.1 测试用例的定义

??测试用例是为了特定的测试目的而设计的测试条件测试数据与其相关的测试规程的一个特定的使用实例或者场景

六、主要方法

1、基于输入域的方法

1.1 等价类划分法

1.1.1 定义

??等价类划分法就是解决如何选择适当的数据子集来代表整个数据集的问题,通过降低测试的数目去实现“合理的”覆盖,覆盖了更多的可能数据,发现更多的软件缺陷。

1.1.2 有效等价类

  • 对程序规格说明是有意义的、合理的输入数据构成的集合
  • 利用有效等价类,可以检验程序是否实现了规格说明预先预定的功能和性能
  • 有效等价类可以是一个,也可以是多个

1.1.3 无效等价类

  • 对程序规格说明是无意义、不合理的输入数据构成的集合
  • 利用无效等价类,可以检验程序功能和性能的实现是否有不符合规格说明要求的地方
  • 无效等价类至少有一个,也可能有多个

1.1.4 计算

1.2 边界值划分法

1.2.1 定义

很多错误发生在输入或输出范围的边界上,因此针对各种边界情况设置测试用例,可以更有效地发现缺陷。

主要是计算

1.2.2 计算

2、基于组合的方法

2.1 判定表法

2.1.1 定义

??借助表格方式完成对输入条件组合设计,以达到完成组合覆盖的测试效果。

  • 条件桩:列出问题的所有条件
  • 动作桩:列出可能针对问题所采取的操作
  • 条件项:针对所列条件的具体赋值,即每个条件可以取真值和假值
  • 动作项:列出在条件项组合情况下应该采取的动作
  • 规则:任何一个条件组合的特定取值及其相应要执行的操作。在判定表中贯穿条件项和动作项的一列就是一条规则。

2.1.2 步骤

  • 列出所有的条件桩和动作桩
  • 填入条件项
  • 填入动作项,指定初始判定表
  • 简化、合并相似规则或者相同条件

2.1.3 计算

2.2 因果图法

2.2.1 定义

??利用图解法分析输入的各种组合情况,写出判定表,从而设计相应的测试用例。

2.2.2 步骤

  • 分析出等价类,将输入输出赋予标识符,分析语义,找出关系
  • 关系关联,并将其不可能的组合情况标注成约束或者限制条件,形成因果图
  • 因果图转化成判定表
  • 判定表的每一列可以作为设计测试用例的依据

2.2.3 计算

3、基于逻辑覆盖的方法

??逻辑覆盖是一种使用最广泛的结构测试方法,逻辑覆盖以程序内部的逻辑结构为基础设计测试用例。要求对被测程序的逻辑结构有清楚的了解,甚至能掌握源程序的所有细节。

3.1 判定覆盖

3.1.1 定义

??基本思想是设计若干测试用例,运行被测程序,使程序中每个判断的取真分支和假分支至少经历一次,即判断真假均曾被满足。
??一个判定代表程序的一个分支,判定覆盖又叫做分支覆盖。

3.2 条件覆盖

3.2.1 定义

??基本思想是设计若干测试用例,运行被测程序,使得每个判断每个条件的取值至少满足一次。

3.3 判定条件覆盖

3.3.1 定义

??判定条件覆盖是判定覆盖和条件覆盖的交集,即设计足够的测试用例,使得所有判断的可能结果至少执行一次,同时,判断条件中的所有条件可能取值至少执行一次。

3.4 条件组合覆盖

3.4.1 定义

??基本思想是设计若干测试用例,运行被测程序,使得判断中每个条件的所有可能至少出现一次,并且每个判断本身的判定结果也至少出现一次。
??求这些结果所有可能的组合都至少出现一次。

3.5 基本路径覆盖

3.5.1 定义

??基本思想是设计所有的测试用例,覆盖程序中所有可能执行路径

3.5.2 计算环形复杂度的三种方法

  • 流图中的区域数等于环形复杂度
  • 流图G中的环形复杂度V(G)=E-N+2,其中E是流图中边的条数,N是流图中节点数。
  • 流图G中的环形复杂度V(G)=P+1,其中P是流图中判定节点的数目。

3.5.3 计算

七、系统测试

1、功能测试

1.1 定义

  • 考虑模块间的相互作用
  • 考虑系统的应用环境
  • 衡量标准是实现产品规格说明书上所要求的功能
  • 模拟用户完成从头到尾的业务测试,确保满足用户的实际业务需求

1.2 例子

  • WEB图形测试
  • 表单测试
  • 页面链接测试需要验证的问题
  • HTTP认证、SSL、TLS
  • 虚拟主机,通用网关接口
  • 脚本语言集成
  • 数据库测试
  • 设计语言测试
  • Cookies测试

1.3 回归测试

??回归测试有两个目的

  • 所做的修改达到了预定的目的,如错误得到了改正、新功能得到了实现、能够适应新的运行环境等
  • 不影响软件原有功能的正确性

2、性能测试

??就是为了发现系统性能问题获取系统性能相关指标而进行的测试。
??一般在真实情况特定负载条件下,通过工具模拟实际软件系统的运行及其操作,同时监控性能各项指标,最后对测试结果进行分析来确定系统的性能状况。

2.1 性能指标

  • 服务器的各项指标(CPU、内存占用率等)
  • 后台数据库的各项指标
  • 网络流量
  • 响应时间

具体指标

  • 数据传输的吞吐量
  • 数据处理效率
  • 数据请求的响应时间
  • 内存和CPU使用率
  • 连接时间、发送时间
  • 处理时间、页面下载时间
  • 第一次缓冲时间
  • 每秒连接数
  • 每秒事务总数、每秒下载页面数
  • 每秒点击次数、每秒HTTP响应数
  • 每秒重试次数

2.2 压力测试

2.2.1 定义

??在一种需要反常(如长时间的峰值)数量、频率或者资源的方式下,执行可重复的负载测试,以检查程序对异常情况抵抗能力,找出性能瓶颈或者其它不稳定性问题

2.3 安全性测试

2.3.1 定义

??全面检验软件在需求规格说明中规定的防止危险状态措施的有效性和在每一个危险状态下的反应,对软件设计中用于提高安全性的结构、算法、容错、冗余、中断处理等方案进行针对性测试,并对安全性关键的软件单元和软件部件,单独进行加强的测试,以确认其满足安全性的需求。

2.4 可靠性测试

2.4.1 定义

??可靠性是产品在规定的条件下和规定的时间内完成规定功能的能力。理论上,可靠的软件系统应该是正确的、完整的、一致的、健壮的。

八、验收测试

1、定义

??在软件产品完成了系统功能和非功能测试之后、产品发布之前所进行的软件测试活动。它是技术测试的最后一个阶段,也称为交付测试。

九、自动化测试

1、定义

??是相对于手工测试而存在的一个概念,由手工逐个地运行测试用例的操作过程被测试工具自动执行的过程所取代。
??测试工具的使用时自动化测试的主要特征。

十、补充

1、缺陷报告的主要组成部分

标题、操作步骤、期望结果、实际结果

2、测试需求分析

  • 详细了解并深挖需求
  • 确定测试范围

3、软件缺陷按严重性等级划分

在这里插入图片描述

4、接口测试的作用

??接口测试是测试系统组件间接口的一种测试。主要用于测试系统与外部系统之间的接口,以及系统内部各子模块之间的接口。
??重点是接口参数传递的正确性、接口功能实现的正确性、输出结果的正确性、以及对各种异常情况的容错的完整性和合理性。

5、冒烟测试

指在对一个新版本的软件进行系统的大规模的测试之前,先验证一下软件的基本功能是否实现,是否有可测性

6、什么是测试报告,由哪些组成

  • 软件缺陷的基本信息
  • 缺陷的详细描述
  • 可跟踪信息
  • 测试环境说明
  • 必要的附件

7、测试的分类

  • 按测试层次分
  • 按测试对象分
  • 按测试阶段分
  • 按测试目的分
  • 其它
  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2022-06-01 15:11:50  更:2022-06-01 15:13:09 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年12日历 -2024/12/27 16:15:25-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码
数据统计