功能性测试回顾_第1页
功能性测试回顾_第2页
功能性测试回顾_第3页
功能性测试回顾_第4页
功能性测试回顾_第5页
已阅读5页,还剩44页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、功能性测试回顾1内容测试工作量测试效率测试的有效性指南案例研究 2功能性测试回顾 我们学习了很多测试技术,这些方法的共同之处就是将程序看作是将输入映射到输出的数学函数。根据研究输入值的属性演变成基于边界值的方法,等价类的方法和判定表的方法、因果图、正交测试等。3四种有代表性的功能性测试方法 边界值分析 等价类划分 判定表因果图 4边界值分析基于边界的方法是通过标识输入程序输入变量的边界值域,确定四种技术:边界值分析:单缺陷、正常值健壮性测试:单缺陷、有异常情况最坏情况测试:多缺陷、正常值健壮最坏情况测试:多缺陷、有异常情况5等价类划分相似的输入、输出和操作,我们定义了等价类:弱一般:单缺陷、正

2、常值强一般:多缺陷、正常值弱健壮:单缺陷、异常值强健壮:多缺陷、异常值6判定(决策)表判定表解决了程序函数的逻辑依赖关系判定表保证我们考虑了所有可能的条件值组合判定表的完备性能够保证一种完备的测试7因果图根据需求规格说明书,分析因果关系有助于用一个系统的方法选择出高效的测试用例集额外的好处,就是可以指出规格说明的不完整性和不明确之处因果图是一种形式语言,实际上是一种数字逻辑电路,但没有使用标准的电子学符号,而是使用了稍微简单点的符号8每种测试方法的测试用例数曲线9每种测试方法的精细程度边界值分析不识别数据或逻辑依赖关系,采用非常机械的方式生成测试用例,很容易被自动化等价类划分注意到数据依赖关系

3、和函数本身使用这些手段需要更多的考虑,还需要更多的判断和技巧首先要考虑如何标识等价类,之后的处理也是机械的判定表要求测试人员既要考虑数据,又要考虑逻辑依赖关系通常通过一遍尝试可能不能得到决策表的条件,但是如果有了一个良好的条件集合,所得到的测试用例就是完备的,在一定意义上还是最少的 10每种测试方法的测试用例标识工作量趋势线11测试标识工作量和测试执行工作量的折衷容易使用的方法会生成大量测试用例,因此执行时间很长如果将工作量投入到更精细的测试方法,则执行时间就会缩短 12每种测试方法的测试用例数趋势线图8-3 三角形问题的测试用例数趋势线13图8-4 次日问题的测试用例数趋势线14图8-5 佣

4、金问题的测试用例数趋势线15图8-6 三个问题的测试用例数趋势线16内容测试工作量测试效率测试的有效性指南案例研究 17功能性测试的基本局限未测试的功能漏洞冗余测试降低测试的效率(efficiency)18次日问题最坏情况边界值分析page79表5-3中125个测试用例冗余测试用例1到5通过5个不同年份中的1月1日检查次日问题年对日历的这个部分没有关系,因此我们预期这种测试用例有一个就足够的如果大致估计有“10倍”的冗余,那么可以预期压缩到25个测试用例漏洞有多个2月测试,但是都没有涉及28和29日,并且与闰年也没有联系围绕2月底和闰年,测试还有严重漏洞19等价类划分和判定表方法对边界值分析方

5、法的提高page94次日问题的强等价类测试用例向正确的方向前进page110表7-16判定表方法的测试用例测试了强等价类测试用例遗漏的可能性所有这些分析支持两点结论功能性测试有漏洞使用更精细的手段能够缩小这些漏洞20内容测试工作量测试效率测试的有效性指南案例研究 21测试的有效性(效果,effectiveness)给定一个程序P,给定一种测试方法,用这种测试方法设计测试用例,研究所设计的测试用例能够怎样有效地找出程序P中的缺陷22研究测试有效性的困难这要假定我们知道程序中的所有缺陷形成死循环的是,如果我们知道程序中的所有缺陷,就会采取有针对性的措施由于我们不知道程序中的所有缺陷,因此永远也不会

6、知道给定方法所产生的测试用例是否能够发现这些缺陷23解决方法根据不同类型的缺陷反向研究给出特定的一种缺陷,我们可以选择最有可能发现这种缺陷的测试方法(功能性测试和结构性测试)如果结合最可能出现的缺陷种类的知识,最终会得到可提高措施有效性的实用方法通过跟踪所开发软件中的缺陷的种类(和密度),还可以改进这种方法24内容测试工作量测试效率测试的有效性指南案例研究 25与软件测试有关的故事有一个醉汉在路灯下的人行道上爬行。当警察问他在干嘛时,他说他在找汽车钥匙。“你是在这里丢的吗?”警察问。“不,我是在停车场丢的,但这里光线更亮。”刻舟求剑26故事对测试人员的重要启示测试不大可能存在的缺陷是没有意义的

7、很好地了解最有可能发生的缺陷(或损害)种类,然后选择最有可能发现这类缺陷的测试方法,要更有效得多27对可能存在的缺陷无法预知时的解决方法利用程序的已知属性,选择处理这种属性的方法在选择功能性测试方法时很有用的属性包括:变量是否表示物理量或逻辑量?在变量之间是否存在依赖关系?是假设单缺陷,还是假设多缺陷?是否有大量异常处理?28选择功能性测试方法的初步的“专家系统” 如果变量引用的是物理量,可采用定义域测试和等价类测试 如果变量是独立的,可采用定义域测试和等价类测试 如果变量不是独立的,可采用判定表测试 如果单缺陷假设可保证,可采用边界值分析和健壮性测试 如果多缺陷假设可保证,可采用最坏情况测试

8、、健壮最坏情况测试和判定表测试 如果程序包含大量异常处理,可采用健壮性测试和判定表测试如果变量引用的是逻辑量,可采用等价类测试用例和判定表测试 29选择功能性测试的判定表30内容测试工作量测试效率测试的有效性指南案例研究 31假想的保险金计算程序根据两个因素计算半年保险金投保人的年龄驾驶历史记录保险金基本保险费率年龄系数安全驾驶折扣年龄系数是投保人年龄的函数如果投保人驾驶执照上的当前点数(根据交通违规次数确定)低于与年龄有关的门限,则给予安全驾驶折扣驾驶人年龄范围为从16岁到100岁如果投保人有12点,则驾驶人的执照就会被吊销(因此不需要保险)基本保险费率随时间变化,对于这个例子,是每半年50

9、0美元 32年龄系数、门限点数与安全驾驶折扣的对应关系33年龄和点数在最坏情况边界值测试下的取值34保险金计算程序的最坏情况边界值测试图8-7 35最坏情况边界值测试的缺点与改进遗漏了太多的问题描述没有测试各种年龄门限也没有测试点数门限改进方法通过更仔细地考虑年龄范围和点数范围,可以改进测试用例集合36年龄和点数的集合A1年龄:16年龄 25A2年龄:25年龄 35A3年龄:35年龄 45A4年龄:45年龄 60A5年龄:60年龄 100P1点数0,1P2点数2,3P3点数4,5P4点数6,7P5点数8,9,10,11,1237表8-2 最坏情况值38图8.8 保险金计算程序的最坏情况边界值测

10、试用例39每个竖向集合(其中,年龄变量保持不变)有13个点,年龄变量的每个值(共有21个值)都有这样的一列,因此共有273个最坏情况边界值测试用例这显然会存在严重冗余,因此需要引入等价类测试40图8-9 保险金计算程序的弱和强等价类测试用例41年龄集合A1到A5和点数集合P1到P5,是等价类的自然选择相应的等价类测试用例如图8-9所示空心圆点对应强一般测试用例(多缺陷)实心圆点对应弱一般测试用例(单缺陷)42等价类测试的改进:判定表等价类测试明显可以缓解冗余问题,但是看起来仍然还有改进余地为什么要针对A1测试所有点数类P2到P5?一旦超过点数门限,安全驾驶折扣就没有了可以通过表8-3所示的扩展条目决策表解决这类依赖关系43表8-3 保险金计算程序的判定表44图8-10 保险金计算程序的判定表测试用例45比较图8-8和图8-10,一个过多,一个不足希望找到某种折衷,而这正是醉汉找钥匙故事的意义思考46保险金计算程序容易出现错误的地方年龄范围的端点可能是很好的切入点,而这又把我们带回边界值模式没有考虑16岁以下和100岁以上的年龄,这说明要考虑健壮边界值

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论