黑盒测试用例设计方法
黑盒测试用例设计方法,主要包括等价类划分法、边界值分析法、错误推测法、因果图法、正交试验分析法、状态迁移图法、流程分析法
1、等价类划分法
等价类划分法是把程序的输入域分成若干部分,然后从每个部分中选取少数代表性数据作为测试用例。每一类的代表性数据在测试中的作用等价于这一类中的其他值。
2、边界值分析法
边界值分析法就是对输入或输出的边界值进行测试的一种黑盒测试方法,是作为等价类划分法的补充,使用边界值分析方法设计测试用例,首先应该确定边界情况,通常输入和输出等价类的边界,就是应着重测试的边界情况,应当选取正好等于,刚刚大于或者刚刚小于边界的值作为测试数据。
通常情况下,软件测试所包含的边界检验有几种类型:数字,字符,位置,重量,大小,速度,方位,尺寸,空间等。
3、错误推断法
基于经验和直觉推测程序中所有可能存在的各种错误,从而有针对性的设计测试用例的方法
4、因果图法
一种利用图解法分析输入的各种组合情况,从而设计测试用例的方法
5、判定表驱动法
① 条件桩:列出了问题得所有条件.通常认为列出的条件的次序无关紧要
② 动作桩:列出了问题规定可能采取的操作.这些操作的排列顺序没有约束
③ 条件项:列出针对它左列条件的取值.在所有可能情况下的真假值.
④ 动作项:列出在条件项的各种取值情况下应该采取的动作.
判定表的建立步骤:
① 确定规则的个数.加入有n个条件.每个条件有两个取值(0,1),故有2n种规则.
② 列出所有的条件桩和动作桩
③ 填入条件项
④ 填人动作项
⑤ 简化合并相似规则
6、正交实验法
根据galois理论,从大量(实验)数据(测试列)中挑选适量的,有代表性的点(例),从而合理地安排实验(测试)的一种科学实验设计方法
6、功能图法
7、功能图由状态迁移图和布尔函数组成。迁移状态图用状态和迁移来描述。一个状态指出数据输入的位置或时间,而迁移则指明状态的改变,同时要依靠判定表或因果图表示逻辑功能
8、场景法
事件触发时的情景便形成了场景,二同一时间不同的的触发顺序和处理结果就形成事件流。
黑盒测试:
特点:不考虑程序的内部结构和特性的情况下,通过一些相关暴露出来的接口,来进行测试,只检查功能
关注输入输出
主要关注用户需求
以事件为驱动
优点:
容易实施,不需要关注内部的实现
更贴近用户的使用角度
缺点:
测试覆盖率低,一般只能覆盖到代码量的不到40%
针对黑盒的自动化测试,复用率低,维护成本高,基本只关注功能
主要关注点:
是否有不正确或遗漏的功能
在接口上,输入能否正确接受,能否输出正确的结果
是否有数据结构的错误或外部信息访问错误
性能上能否满足要求
白盒测试:针对程序逻辑结构
优点:
迫使测试人员去仔细思考软件的实现,理解原理
可以检测代码中的每条分支和路径
揭示隐藏在代码中的错误
对代码的测试比较彻底
缺点:
昂贵
无法检测代码中遗漏的路径个数据敏感性错误
不能直接验证需求的正确性
主要测试方法:
代码检测法:代码检查法主要检查代码和程序设计的一致性,代码结构的合理性,代码编写的标准性、可读性,代码逻辑表达的正确性等方面。检查方式包括桌面检查、代码走查、代码审查三种
静态结构分析法:主要是以图形的方式表现程序的内部结构。
质量度量法:根据ISO/IEC 9126质量模型作为基础,我们可以构造质量度量模型,用于评估软件的各个方面。
逻辑覆盖法:语句覆盖就是设计若干个测试用例,运行被测程序,使得每一可执行语句至少执行一次。这种覆盖又称为点覆盖,它使得程序中每个可执行语句都得到执行,但它是最弱的逻辑覆盖准,效果有限,必须与其他方法交互使用。
基本路径测试法:基本路径测试法是在程序控制流图的基础上,通过分析控制构造的环路复杂性,导出基本可执行路径集合,从而设计测试用例的方法。设计出的测试用例要保证在测试中程序的每个可执行语句至少执行一次。(最广泛)
灰盒测试:介于两者之间,既检查功能又检查代码逻辑
按状态分为:静态测试和动态测试
静态测试定义:务虚执行被测程序,通过评审的文档或代码,度量程序的静态复杂度,检查软件是否符合编程标准
特点:不运行程序,只看文档的测试手段
方式:互审、走查、会议
根据测试执行方式分为手工测试和自动化测试
手工测试:有专门的测试人员从用户视角来验证软件是否满足设计要求的行为。
自动化测试:使用单独的测试工具软件控制测试的自动化执行以及对预期和结果自动检查
性能测试:可以延生出负载测试、压力测试、稳定性测试
性能指标:并发用户数VU,每秒事物数TPS、系统响应时间、设备性能
静态性能评估:开发web应用时,基于一系列web应用页面性能优化的最佳时间对web应用的页面进行静态分析,
并给出评估结果的性能分析方法
工具、标准:yslow、pagespeed
应用性能管理(APM):提供对系统的实时监控以实现性能管理、故障管理的解决方案
动态测试:运行被检测的软件,对比运行结果和预计结果。(写测试用例,运行程序,对比结果)
动态测试流程:单元 集成 系统 验收 回归
单元测试:(模块测试)测试和验证软件中最小可测单元
集成测试:将通过的单元组装成一个系统,检测单元之间的接口
系统测试:将通过集成测试的系统当作计算机系统的一部分进行测试,检测软件的功能和性能 运行的软硬件环境是不是满足预计结果(发现软件潜在问题,保护系统的正常运行)
回归测试:对运行结果进行验证和修复(多次测试和多次修复)
系统测试主要内容:功能性测试和健壮性测试
功能性测试:测试软件功能是否正确
健壮性测试:测试软件异常情况下是否能正常运行(容错能力和恢复能力)
系统测试分类(常见的):恢复 安全 压力
恢复测试:主要测试软件运行的失败条件,并验证恢复过程是否能正确执行
安全测试:测试软件内的保护机制,以防非法入侵
压力测试:正常资源下使用异常访问量 数据和频率来运行软件
静态测试:不运行被检测的软件,通过分析或检查软件的语法 结构 过程 接口来检测软件的正确性。(静态地检查软件代码、界面或文档可能存在的错误的过程)
静态测试包括:(代码走查 代码审查 技术审评)
对于代码测试,主要是测试代码是否符合相应的标准和规范。
对于界面测试,主要测试软件的实际界面与需求中的说明是否相符。
对于文档测试,主要测试用户手册和需求说明是否真正符合用户的实际需求
兼容测试:指对所设计程序与硬件、软件之间的兼容性的测试
兼容测试分类
硬件兼容性测试 与整机兼容 与外设兼容
软件兼容性测试 操作系统/平台 应用软件之间的兼容 不同浏览器的兼容 数据库的兼容 软硬件配合兼容
数据兼容性测试 不同版本间的数据兼容 不同软件间的数据兼容
兼容性测试的意义 兼容性测试主要目的是为了兼容第三方软件,确保第三方软件能正常运行不受影响
UI测试:用户界面测试
UI测试的意义:主要是测试用户界面的色彩搭配、整体布局、行距、对齐,样式统一等等。还有就是一些控件是否合理,提示信息和页面信息是否有语法错误等等
UI测试的方法:动态 静态 导航 图形 内容 表格 整体界面测试
接口测试
测试系统组件间接口的 一种测试 主要检查外部系统和系统间和内部各个子系统之间的交互点 重点是检查数据的交换,传递和控制管理过程及系统间相互逻辑依赖关系
接口的种类 1外部接口 2内部接口(上层服务、下层服务 同级服务)
接口分类 : post get delete put
接口类型差异:参数提交方式 请求数据大小 安全性
接口测试好处:1节约时间 2提高效率 3提高系统健壮性