软件测试-3-随机测试
随机测试
- 资源有限:判定覆盖
- 资源充足:条件组合覆盖
- 黑盒测试和白盒测试不同的
1. 随机测试
- 比较简单的实现测试的自动化
- 使用随机数来进行测试(随机行为)
- 降低程序测试的效率
- 软件错误测试用例往往体现出聚集的特性
- 矩形分布
- 条带分布
- 散点分布
1.1. 输入域
- 通过分析文档,确定程序的输入域。
1.2. 随机数生成
- 很难获得真正的随机数
- 伪随机数算法:
- 平方取中法
- 随机数种子:random.org网站上的种子生成
1.3. 模糊测试(Fuzz testing)
- 主要用于软件安全性检测的部分。
- 使用一些非法的测试输入使得软件发生崩溃。
1.4. 随机测试原则
- 没有出现错误的测试用例附近出现错误的可能性相对低
- 出现错误的测试用例的附近出现错误的可能性相对高
- 我们应该尽量分散的选择测试用例
1.5. 自适应测试用例
- 选择一个测试用例
- 无误后,在大于指定距离的地方选择第二个测试用例
- 之后按照这种情况向下自动选择测试用例
1.6. FSCS-ART算法 固定候选集的自适应测试算法
生成第一个测试用例
while(测试终止条件为满足)随机生成k个一组测试用例计算上述生成测试用例的距离是否达标选择满足达标的测试用例里面距离最远的执行选择出来的测试用例
测试成功
1.7. 自适应测试用例问题
- 距离的决定
- 测试用例的分布问题(测试用例往往会聚集在边界上)
- 解决方案是扩大输入域,之后进行裁剪
1.8. 反随机测试用例
随机选择一个测试用例
while(测试资源未耗尽)在找到一个距离当前的所有已有测试用例的海明距离最大的测试用例执行测试用例
2. 等价类划分
- 按照一定标准将输入域进行划分成几个对应的子集,然后在对应的子集上进行选择
- 分类:
- 不同处理数据格式
- 不同控制流数据流
- 数据合法/非法
- 原则:
- 完备性原则:每个点都应该输入一个等价类
- 无冗余性:等价类之间不应该有重复的部分
2.1. 划分方法
- 综合使用一下的方式组合
2.1.1. 数据输入范围
- 10 < x < 100 :2 个有效,1 个无效
2.1.2. 程序对于不同数据处理方式
- n 个有效 + 1 个无效
2.1.3. 根据判断条件
- 简单条件:奇数与否
- 多个条件
3. 边界值分析
- 在等价类边缘的边界进行的划分(在等价类的边缘进行测试)
- 划分出来的不同的等价类
- 有效等价类
- 无效等价类
- 计算机本身的限制和约束需要注意
3.1. 边界值的选取
- 首先要找到边界值,再在其周围进行处理
- 非法错误的输入,软件的处理
4. 组合测试
- 考虑和输入和输出之间的逻辑关系
- 决策表:使用起来比较复杂,提取和描述的困难
- 不同输入变量之间的关系
4.1. 完全组合
- 代价太高
- 测试资源需要过大
4.2. Pair-wise testing
- 覆盖任意两个变量之间的所有情况
- 完全组合的抽样
4.3. T-wise/T-way combinatorial testing
- 覆盖任意T个变量之间的所有情况
- 完全组合的抽样
4.4. Variable strength combinatorial testing
- 根据不同的影响关系进行测试
5. Selenium的使用
- Selenium IDE 是 firefox 中的一个插件。
- 进行测试用例的记录和回放,首先要选择进入录制状态(记录网页上的行为),点击红色的点
- 回放就可以自动完成一系列的操作
- 使用checkpoint来完成是否成功。(选择网页元素选择未进行检测)
6. PICT的使用
- 组合测试用例的存储和使用
- 我们首先在model.txt中定义好了环境
- 在控制台运行PICT:
pict.exe model.txt > target.txt
:重定向到target,生成对应的组合测试用例(二维组合测试覆盖)
- 其他进行测试:我们需要修改参数
- 描述在model文件中
- 有的测试用例可能是无效的测试用例
- 生成组合用例值的时候需要考虑约束
软件测试-3-随机测试相关推荐
- 使用Monkey进行软件测试(随机测试+脚本测试)
文章目录 一.基础概念 二.monkey测试的优缺点 2.1 优点 2.2缺点 2.3 解决方案 2.3.1 二次开发 2.3.2 指定测试页面 2.3.3 调整各种事件的比例 2.3.3 编写自定义 ...
- 软件测试(一)-黑盒测试 随机测试技巧
黑盒测试(一)-随机测试 一.随机测试一些小技巧 平方取中法 随机数生成服务: https://www.random.org/ 推荐一个随机数生成网站 模糊测试技术: 安全性领域,非法输入,让软 ...
- coverity代码检测工具介绍_FOREPOST:一种使用反馈驱动学习软件测试的性能检测工具...
FOREPOST:一种使用反馈驱动学习软件测试的性能检测工具 摘要 性能测试的一个目标是找出某些特定情况,在这些情况下对于某些输入值组合,应用程序意外地展示出更糟糕的特性.性能测试的一个基本问题是如何 ...
- 如何确定软件测试结束的标准
在软件消亡之前,如果没有测试的结束点,那么软件测试就永无休止,永远不可能结束.软件测试的结束点,要依据自己公司具体情况来制定,不能一概而论!个人认为测试结束点由以下几个条件决定: 1.基于" ...
- 软件测试面试总结——常见的面试问题
前言 在这里还分享一波我在B站看到面试相关的视频吧!感兴趣的小伙伴可以去看看 https://www.bilibili.com/video/BV1p44y1H7Nc [2022最新软测面试合集]备战金 ...
- 备战 ‘金三银四’ 必备超多软件测试面试题全在这里
下面小编为大家整理了18个常见的问题,一起来学习吧!记得点击收藏哦 自己还整理了一些面试合集有需要的可以查看文章最后 1.问:你在测试中发现了一个bug,但是开发经理认为这不是一个bug,你应该怎样解 ...
- 面向对象的软件测试技术
相关知识点-面象对象(=Object Oriented)技术 1. 对象和类 l 面象对象的编程语言:以对象为中心,以消息为驱动,程序=对象+消息 l 类是一种新的数据类型,是设计的核心,是通过抽象数 ...
- 软件测试基础知识——适合初学者
软件测试基本概念 1.软件=程序+文档,软件测试=程序测试+文档测试. "程序"是指能够实现某种功能的指令的集合,"文档"是指软件在开发.使用和维护过程中产生的 ...
- 测试系列之六---软件测试分类
软件测试是一项复杂的系统工程,从不同的角度考虑可以有不同的划分方法,对测试进行分类是为了更好的明确测试的过程,了解测试究竟要完成哪些工作,尽量做到全面测试. 1,按是否需要执行被测软件的角度 按是否需 ...
- 如何确认软件测试结束的标准(系统可以上线)转
如何确定软件测试结束的标准 **************************** 在软件消亡之前,如果没有测试的结束点,那么软件测试就永无休止,永远不可能结束.软件测试的结束点,要依据自己公司具体 ...
最新文章
- Nature:MIT团队造全新声感织物,这件“毛衣”可以听到你的心跳
- 安卓之页面跳转与传值和按钮事件
- [转载]婚姻不只是娶一个女人那么简单
- Qt Creator加States
- oracle 用户表、字段信息
- 飞翔(风吹)的flash文字
- 全国计算机大学排名2019最新排名,2019全国大学最新排名 中国最好大学排行榜
- python爬虫获取下一页_Python爬虫怎么获取下一页的URL和网页内容?
- 什么是全栈工程师 摘自360
- php base64保存为图片
- Android原生插件开发-开发篇
- html根据地点名称查坐标,根据地址查询经纬度Js
- 求解斐波那契数列模$p$意义下最短循环节
- java连接高斯数据库,高斯数据库 (gaussDB) - 基于 JDBC 开发 (9)
- 有源代码就可以自行开发通达信交易接口了吗?
- 艾永亮:国产运动品牌巨头一一倒下,被抛弃的品牌该如何自救?
- sweet home 3d 免费的家居设计软件
- linux ntp时钟服务器地址_linux中ntp时钟服务器怎么配
- 简单、好用的免费在线文字转语音软件
- 枚举类的value方法