黑盒测试用例设计方法
黑盒测试用例设计方法,主要包括等价类划分法、边界值分析法、错误推测法、因果图法、正交试验分析法、状态迁移图法、流程分析法
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):提供对系统的实时监控以实现性能管理、故障管理的解决方案