当前位置:文档之家› 7 软件测试:黑盒测试方法(其它)解析

7 软件测试:黑盒测试方法(其它)解析


错误推测法:练习
打开文件的可能错误。
✓打开文件不存在:指定的文件路径、指定的文件盘符 ✓文件名中含有无效字符 ✓文件属性与文件打开方式不匹配 ✓文件打开方式与用户对文件所具备的权限不匹配 ✓文件打开方式与文件格式类型不匹配 ✓文件句柄用完 ✓文件加密 ✓…
错误推测法:练习
微博相同内容10分钟内不允许重发
Intelligent fuzzing 研究目标应用程序的协议或文件格式、功能配置,了解各类漏洞的 成因,编写fuzzer ,有目的地生成随机数据 防护性编码带来的问题:校验和 对某些感兴趣的部分集中测试
满足一定规则的随机数据
数据文件的模糊测试
准备一份正确的数据文件。 用随机数据替换该文件的某些部分 用程序打开文件 观察破坏了什么
WEB页面2
打开WEB页面1 点击”发布”操作
打开WEB页面2 点击”发布”操作
【测试经验提取】WEB测试,多页面并发。
进一步地:多客户端并发、多用户并发
错误经验的复制
问题 发生过程
测试经验提取
BUG特征分析
测试条件 测试数据 测试标准
缺陷模式
测试经验应用
测试设计
测试执行
BUG
通过质量改进过程: 没有经历过,也可以复制。
//in: 正确文件,fuzz: 替换部分数据 public void fuzz(byte[] in, int start, int length) {
byte[] fuzz = new byte[length]; random.nextBytes(fuzz); System.arraycopy(fuzz, 0, in, start, fuzz.length); }
流程图 用例图 状态图 因果图 判定表
Step2
Create base test cases
模型覆盖
图覆盖 逻辑覆盖 输入域覆盖
……
Step3
Suppement with test data
填充数据
典型值 边…界…值
Step4
Advanced testing
Model外的
错误推测 Ad hoc测试
……
问题:数据穷尽不可能,理论上也无法知道等不等价
测试word对各种不同数据文件的容错。文件名/大小/内容不尽相同。 测试网络工具对各种不同协议格式的解析 tcp/udp/igmp/ftp/smtp… 测试http客户端的各种不同请求。
还有其它数据输入:数据库、数据文件、共享内存等
数据的随机性!
来源:Ryber《Essential test design》
测试方法分类
基于结构
语句
判定
条件 判定-条件
路径
独立路径
动态测试 基于经验 错误推测 探索性测试 模糊测试
基于规格
等价类
边界值
状态转换 判定表
用例测试 数据组合
…… …… ……
白盒测试
……
静态分析
模型检查
代码走读
检查表 评审技术 检查表
错误推测法:各种可能性
输入框只能输入大写的ON
大小写、不输、多输、少输、空格、相似字符、全角字符…
✓ ON ✓ on ✓ On ✓ oN ✓ ONE ✓ O_N ✓ _ON_ ✓ NO ✓ 0N ✓ ON
错误推测法:各种可能性
“投币错误”(自动售货机案例)
✓投入其它币:1角、分币 ✓投入不同版的硬币 ✓投入游戏币 ✓投入外币:港币、美币 ✓投入假币 ✓投入…
模型走读
黑盒测试
……
静态测试
目录
1 2 3 4
错误推测法 模糊测试 探索性测试 测试设计方法总结
看几个例子
【示例1】输入数据为整数的等价类划分
有效等价类:整数 无效等价类:非整数(浮点数、字母、……)
【示例2】发布微博字数统计正确性验证
中文/英文(数字/字母/标点符号…) 不同字符集 特殊字符(XML转义等) URL链接 含空格(前面/中间/空面)等
模糊测试Fuzzing test的概念
名词术语
定义:构造一组随机数据作为系统的输入,从而检验系统
在各种数据情况下是否会出现异常。
基本思想:输入尽可能多的杂乱数据、畴形数据
较多应用:海量生成杂乱数据、黑客无目的攻击。 坏数据的味道 覆盖率未知
是否数据愈随机愈好?
模糊测试分类
dumb fuzzing 无需了解协议或文件本身格式,通过提供完全随机的输入或简单改 变某些字节去发现问题。 实现起来较简单,容易快速触发错误,但它的完全随机性会导致产 生大量无效的输入或格式
错误推测法的概念
名词术语
定义:根据 经验、知识和直觉 来发现软件错误,推测程序
中可能存在的各种错误。(由Myers第一次提出)
基本思想:列举出可能有的错误和容易发生的错误
特点:
属于基于经验的测试技术,非系统化的测试方法 优点:快速切入、集思广益、 缺点:测试覆盖率难以衡量,主观性与人的经验相关。
与边界值分析的区别?
错误推测法:了解错误
怎么知道 哪些错误 可能出现、容易发生?
知识。基于对被测对象的分析、了解。 经验。曾经发生的错误或问题。
别人发现 以前自己发现的 产品以前版本曾经发生的
直觉。发散思维、各种可能性、测试灵感
错误推测法示例:知识
排序程序的测试
✓排序序列为空 ✓排序序列仅有一个数据 ✓排序序列为最长序列
软件测试方法
黑盒测试方法(其它)
本章教学要点
教学目标:
通过本章学习,掌握基于经验的黑盒测试方法,并能应用到ቤተ መጻሕፍቲ ባይዱ个 测试中去。
教学重点与难点:
错误推测法等测试设计方法的基本思想 探索性测试的基本过程 各种测试设计方法的选择与应用
测试分析设计过程:四步法
Step1
Models
测试对象分析
控制流图 数据流图
✓排序序列的顺序与要求的排序恰好相反 ✓排序序列的所有数据全部相等 ✓。。。。
错误推测法:经验
【问题发生过程】某系统业务数据应只可以“发布”一次,WEB页面在
第一次发布后就自动变灰。
但是:如果同时打开2个WEB页面,在第一个页面发布成功后,第二个 页面仍然可以发布成功,二次发布后引发数据错乱。
WEB页面1
✓内容完全相同,细节细微处不同 (例:标点符号不同、大小写不同、加些空格等)
✓完全相同内容,采用图片方式发布 ✓同一条微博内容10分钟内非连续重发(将拿2条微博交 错发布)
目录
1 2 3 4
错误推测法 模糊测试 探索性测试 测试设计方法总结
Word的错误报告
Word文档的错误有办法测出来吗?
模糊测试:面临问题
相关主题