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 小米 华为 单反 装机 图拉丁
 
   -> 开发测试 -> 软件测试基础 -> 正文阅读

[开发测试]软件测试基础


第一章

软件:软件 = 程序 + 数据库 + 文档 + 服务

什么是软件测试:

使用人工自动的手段来运行或测试某个系统的过程,目的在于检验其是否满足规定的需要,或是弄清楚预期结果实际结果之间的差别。

原则和误区

软件缺陷的概念;

1、软件测试员认为软件难以理解、不易使用、运行速度缓慢,或者最终用户认为不好

2 、软件未达到需求规格说明书中指明的功能

3 、软件出现了需求规格说明书中指明不应出现的错误

4 、软件功能超出需求规格说明书中指明的范围

5 、软件未达到需求规格说明书中虽未指出但应达到的目标

软件测试分类(不同的角度)

是否关心内部结构角度:黑盒测试;白盒测试

是否运行被测程序角度:静态测试;动态测试

静态测试:不运行代码进行的测试

动态测试:运行代码进行的测试

执行时是否需要人工干预角度:人工测试;自动化测试

软件的开发的过程的角度:单元测试;集成测试;系统测试;验收测试

测试实施组织的角度划分:开发方测试,用户测试,第三方测试

第二章 软件开发及测试的模型

开发模型

瀑布模型,大爆炸模型,边写边改模型,

大爆炸模型:

优点:思路简单, 通常可能是开发者的“突发奇想”

缺点:开发过程是非工程化的,随意性大,结果不可预知

测试:开发任务完成后,修复较困难

边写边改模型

优点:简单考虑到了软件的需求,产品周期短

缺点:没有计划和文档的编制

测试:由于新的版本不断产生,测试工作长期循环

瀑布模型(重要)

需求分析,概要设计,详细设计,编码,测试,上线运行及维护

优点

1、如同瀑布流水,逐级下落——样式

2、将软件生存周期各活动规定为依线性顺序联接的若干阶段的模型

3、易理解,阶段明显,强调需求分析,明确测试阶段,提供了一套模板

4、文档驱动

缺点

1、线性严格——成果晚出——风险大

2、阶段固定——反复&迭代不适合——灵活性差

3、单次需求——需求变更多——适应性差

4、测试滞后——缺陷晚查——代价大

螺旋模型

每一个螺旋包括5个步骤

确定目标,选择方案 , 评估方案,解决风险

敏捷模型

敏捷开发以用户的需求进化为核心,采用迭代、循序渐进的方法进行软件开发

测试模型

V模型

在这里插入图片描述

动态测试行为应与开发行为对应,每个测试阶段的基础是对应开发阶段的提交物,并通过低层测试确保源代码正确,通过高层测试保证整个系统满足用户需求

局限性

W模型

在这里插入图片描述

静态测试和动态测试行为伴随整个开发阶段,并与开发行为对应,有助于早期发现缺陷、了解项目难度、评估测试风险,并加快项目进度,降低项目成本

W模型局限性

  • 将软件开发看成需求分析、设计和编码等一系列串行的活动
  • 开发、测试之间保持着线性的前后关系,无法支持迭代的开发模型,无法支持变更调整
  • 未体现测试流程的完整性

H模型

在这里插入图片描述

测试流程应独立于其他流程,且应保持自身的完整性,即测试是一个独立的流程,与其他流程并发进行,且其本身的测试准备和执行活动是分离的,不同测试活动可按某个次序先后进行,也可能是重复的,只要测试准备工作完成,就可以开始测试执行

X模型

在这里插入图片描述

清晰地体现了单元测试→集成测试→系统测试的过程,该模型还能处理开发中包括交接、频繁重复的集成等工作,更加贴合实际的项目开发流程

测试用例:

为实施测试而向被测试系统提供的输入数据、操作或各种环境设置以及期望结果等信息的一个特定集合

第三章 测试方法

黑盒各方法的步骤及使用场景

1、等价类测试

定义:依据需求对输入域/输出域进行细分,然后在分出的每一个子集内选取一个有代表性的测试数据开展测试

3个约束:分而不交、合而不变、类内等价

划分等价类:

1、根据被测对象的特性,针对整体输入域进行等价划分,也可将整体输入域分成由各个输入条件分别构成的个体输入域进行等价划分。

2、既可以对输入域进行划分,有时候还需要对输出域进行等价划分

有效等价类:对于SRS而言,合理、有意义的输入数据构成的集合,即被测对象能接受的数据,用于考查软件的正常工作能力

无效等价类:对于SRS而言,不合理、无意义的输入数据构成的集合,即被测对象不能接受的数据,用于考查软件的容错能力

弱组合

测试用例仅需覆盖所有输入条件的有效等价类即可

强组合

最终得到的测试用例完全覆盖所有输入条件的有效等价类的所有组合情况

实质是构成有效等价类数量的笛卡儿积,即完全组合

2、边界值

定义:

在被测对象的边界及边界附近设计测试用例

边界值分析—测试难点

  • 输入域(被测数据)的确定

  • 边界的确定

  • 边界点附近邻域的设置

  • 测试用例的设计

整体输入域:多个输入条件共同构成的具有一定实际意义的输入域

个体输入域:输入条件分别构成的单个输入域的集合

边界点:可能导致被测系统内部处理机制发生变化的点

在这里插入图片描述

3、正交试验法

4、状态转化法

5、因果图

6、决策表

基本原理

也称判定表法,是分析和表达多种逻辑条件下执行不同操作情况的工具。

在一些数据处理当中,某些操作的实施依赖与多个逻辑条件的组合,即对不同逻辑条件的组合值,分别执行不同的操作,决策表适合于处理这种问题。

7、场景法

白盒

计算环复杂度

1、数数:封闭的区域加一

2、判定节点数加一

3、e - n + 2(单入口单出口)

条件覆盖

判定条件覆盖

条件组合覆盖

修正判定覆盖

独立路径覆盖

基于循环的测试(单个,串联,嵌套)

基于变量的测试/数据流的测试(步骤,定义节点,使用节点,定义使用节点对,高风险路径,定义清楚路径)

第四章 软件测试阶段

单元测试

集成测试

功能测试

性能测试

  开发测试 最新文章
pytest系列——allure之生成测试报告(Wind
某大厂软件测试岗一面笔试题+二面问答题面试
iperf 学习笔记
关于Python中使用selenium八大定位方法
【软件测试】为什么提升不了?8年测试总结再
软件测试复习
PHP笔记-Smarty模板引擎的使用
C++Test使用入门
【Java】单元测试
Net core 3.x 获取客户端地址
上一篇文章      下一篇文章      查看所有文章
加:2021-12-13 13:09:53  更:2021-12-13 13:09:57 
 
开发: 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年11日历 -2024/11/18 6:17:54-

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