软件质量保证与测试
黑盒测试
黑盒测试是一种从用户观点出发,基于规格说明的测试。又叫功能测试﹑数据驱动测试
一般用于系统测试、验收测试
黑盒测试的优缺点
优点:
不需要源代码;测试简单易行;能够发现软件设计中的问题;除了功能之外,还可以测试性能﹑安全性等其他特性。
缺点:
无法对代码进行有针对性的测试,某些代码可能得不到测试;有时输出的结果可能碰巧正确,但软件内部在执行过程中可能已经出错了;黑盒测试以规格说明书为测试依据,如果规格说明书有误,黑盒测试是发现不了的。
一、等价类划分
1、等价类划分
简单地说,等价类是数据集的某个子集,等价类中的各个元素具有某种相同的特性。
总结:等价类就是有相同效果,作用是等价
于是等价类划分法就合理地假定:对于某个等价类而言,只需要测试其中的某个代表数据,就等于对这一等价类中所有数据的测试。
划分标准:
1、不能相同元素
2、所有之和为全集
等价类划分是最基本和最常用的黑盒测试方法。
等价类可以分为有效等价类和无效等价类。
有效等价类:合理、有意义的输入
无效等价类:不合理、无效、无意义的输入
在测试的流程中:
一个测试用例可覆盖多个有效等价类,而一般只能覆盖一个无效等价类。
除非是:一次覆盖一个无效等价类已经做完了,专门再来对多个变量做无效等价类的组合覆盖。
2、等价类组合
强:覆盖组合
弱:至少覆盖一次即可
一般:只覆盖有效等价类
健壮:覆盖有效和无效等价类
弱一般等价类:
强一般等价类:
设计若干测试用例,使其覆盖所有被测变量有效等价类的组合。
测试用例个数为:各个被测变量有效等价类数的乘积
弱健壮等价类:
设计若干测试用例,每个测试用例应尽可能多地覆盖尚未覆盖的有效等价类,对于无效等价类,每个测试用例只考虑一个被测变量的无效等价类。
测试用例个数为,各个被测变量中的最大有效等价类个数+>各个被测变量的无效等价类数。
强健壮等价类:
设计若干测试用例,使其覆盖所有被测变量的有效等价类和无效等价类的组合。
测试用例个数为,各个被测变量的等价类总数的乘积,各个被测变量的等价类总数等于其有效等价类数+无效等价类数。
总结:在一般工作中常用弱强壮等价类来进行测试
二、边界值分析法
边界值分析法就是对输入或输出数据的边界值进行测试的一种黑盒测试方法。边界值分析法可以和等价类划分法结合起来使用,在划分等价类的基础之上,选取输入等价类﹑输出等价类的边界数据来进行测试。
和等价类划分法的区别:把等价类的边界作为测试条件
边界值组合
一般: 只考虑在有效区间上的边界值
健壮:同时考虑有效和无效区间上的边界值
最坏情况:考虑边界值的组合
一般边界值:
仅考虑单个变量在有效取值区间上的边界值,包括最小值,略高于最小值,略低于最大值和最大值,如果被测变量个数为n ,则总的边界值有4n 个。
总结:就最大、最小、次大、次小
设计测试用例时每次只覆盖一个变量的边界值,其它变量应当用正常值,所以可以为每个变量再选取一个正常值,这样的话边界值和等价类划分相结合,总的测试用例个数为4n+l个。
总结:测试时在添加一个正常值测试
一般最坏情况边界值:
将多个变量在有效区间上的边界值的组合情况纳入测试范围,用各个变量的最小值,略高于最小值,正常值,略低于最大值和最大值的完全组合作为测试用例集.
总结:最坏情况考虑正常值也会不会坏
如果被测变量个数为n ,则总的测试用例个数为5的n次方
健壮边界值:
同时考虑单个变量在有效区间和无效区间上的边界值,除了选取最小值,略高于最小值,正常值,略低于最大值和最大值作为边界值之外,还要选取略超过最大值以及略小于最小值的值。
总结:超大(比最大大)、超小、最大、最小、次大、次小
如果被测变量个数为n ,则测试用例个数为6n+1
总结:测试的时候变量个数*6+正常情况
健壮最坏情况边界值:
同时考虑多个变量在有效区间和无效区间上的边界值的组合情况:用各个变量的略小于最小值,最小值,略高于最小值,正常值,略低于最大值,最大值和略超过大值这些边界值进行完全组合。
如果被测变量个数为n ,则测试用例个数为7的n次方
面向对象测试
面向对象的特点:
面向对象具有封装、继承、多态等特性,并且开发过程
是迭代的。
特点对测试的影响
封装
封装就是把对象的属性和方法结合成一个整体,尽可能掩盖其内部的细节。
优缺点:简化了对对象的使用,但同时也给测试结构的分析、测试路径的选取、测试数据的生成等带来了困难。
问题、封装对软件的测试的影响
给测试结构的分析、测试路径的选取、测试数据的生成等带来了困难
继承
继承是类之间的一种联系,类可以通过派生生成新类,派生出的新类称为子类。
问题、简要介绍面向对象中继承对软件测试的影响。
1、通过继承机制,子类可以继承父类的特点和功能,同时也会继承父类的缺陷,增加了缺陷的传播几率
2、父类和子类的存在环境不同,父类的正确性不能保证子类的正确性。
多态
多态是同一个操作作用于不同的对象,可以有不同的解释,产生不同的执行结果
影响:
多态性增强了软件的灵活性和重用性,同时也使得测试的工作量成倍增加。多态和动态绑定增加了软件运行中可能的执行路径,而且给面向对象软件带来了不确定性,给测试覆盖带来了困难。
面向对象技术开发出的软件如何进行测试呢?
面向对象软件测试是根据面向对象的软件开发过程结合面向对象的特点提出的。它包括:
- 分析与设计模型测试技术
- 类测试技术(用于单元测试)
- 对象交互测试技术(用于集成测试)
- 类层次结构测试技术(用于集成测试)
- 面向对象系统测试技术
测试方法
面向对象程序的结构不再是传统的功能模块结构,作为一个整体,原有集成测试所要求的逐步将开发的模块搭建在一起进行测试的方法已经不适用。而需要采用对象交互测试技术和类层次结构测试技术。
面向对象测试的环节和阶段
面向对象测试可分为:
OOA Test:面向对象分析的测试
OOD Test:面向对象设计的测试
OOP Test:面向对象编程的测试
三个环节。
OO Unit Test:面向对象单元测试
OO Integrate Test:面向对象集成测试
OO System Test:面向对象系统测试
三个阶段。
面向对象测试模型
Test:面向对象编程的测试
三个环节。
OO Unit Test:面向对象单元测试
OO Integrate Test:面向对象集成测试
OO System Test:面向对象系统测试
三个阶段。
面向对象测试模型
over!
版权归原作者 狂野的拉布拉多 所有, 如有侵权,请联系我们删除。