您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 质量控制/管理 > 随机数据法,判定表法
随机数据法判定表法张晓燕计算机学院软工教研室回顾边界值分析法的概念典型的边界类型边界值分析法的设计思想本章学习内容随机数据法的基本概念随机数据法的测试原理随机数据法的优缺点回顾•由测试工作的经验得知,大量的错误是发生在输入或输出范围的边界上,而不是在输入范围的内部。因此针对各种边界情况设计测试用例,可以查出更多的错误。•边界值分析是一种补充等价划分的测试用例设计技术,它不是选择等价类的任意元素,而是选择等价类边界的测试用例。实践证明为检验边界附近的处理专门设计测试用例,常常取得良好的测试效果。边界值设计原则对边界值设计测试用例,应遵循以下几条原则:1.如果输入条件规定了值的范围,则应取刚达到这个范围的边界的值,以及刚刚超越这个范围边界的值作为测试输入数据。2.如果输入条件规定了值的个数,则用最大个数、最小个数、比最小个数少一、比最大个数多一的数作为测试数据。3.根据规格说明的每个输出条件,使用前面的原则1。4.根据规格说明的每个输出条件,应用前面的原则2。5.如果程序的规格说明给出的输入域或输出域是有序集合,则应选取集合的第一个元素和最后一个元素作为测试用例。6.如果程序中使用了一个内部数据结构,则应当选择这个内部数据结构的边界上的值作为测试用例。7.分析规格说明,找出其他可能的边界条件。其他一些边界条件•另一种看起来很明显的软件缺陷来源是当软件要求输入时(比如在文本框中),不是没有输入正确的信息,而是根本没有输入任何内容,单单按了Enter键。这种情况在产品说明书中常常忽视,程序员也可能经常遗忘,但是在实际使用中却时有发生。程序员总会习惯性的认为用户要么输入信息,不管是看起来合法的或非法的信息,要不就会选择Cancel键放弃输入,如果没有对空值进行好的处理的话,恐怕程序员自己都不知道程序会引向何方。•正确的软件通常应该将输入内容默认为合法边界内的最小值或者合法区间内某个合理值,否则返回错误提示信息。•因为这些值通常在软件中进行特殊处理,所以不要把它们与合法情况和非法情况混在一起,而要建立单独的等价区间。随机数据法•基本概念随机数据法是通过构造随机数据来进行测试的一种方法。使用等价类分法进行测试时,需要将所有的等价类找出来,为各个等价类设计用例;而随机数法则不进行等价类划分,采用随机数据覆盖所有等价类的方法进行测试。随机数据法优点:采用随机数据进行测试的好处是每次执行时输入的数据都可能不相同,测试时数据的覆盖面很大;特别是当某个等价类并不是真的等价时,随机数据很容易将问题暴露出来。问题解决:采用随机数来测试时的一个重要问题就是结果的校验问题,最好能有不同于程序实现的另外的经过验证的计算方法将结果计算出来。比如要测试一个快速排序程序,为了验证排序后的结果是否正确,可以调用另外写的冒泡排序函数将生成的随机数的一个拷贝先排序一次,然后再调用被测的快速排序函数来排序,将两种排好序的结果进行对比看是否一致。随机数据法先调用系统排序函数将生成随机数的拷贝排好序再调用被测的排序函数将已生成的随机数排好序比较两次排序的结果是否一致随机数据法的优缺点优点1.可以不用设计等价类的测试用例,将多个等价类的测试合并成了一个随机测试,可以以较少代码实现测试代码的编写。2.当等价类设计不确切或不完全时,测试会产生遗漏,而使用随机数据法则是按概率进行等价类覆盖的,不论存在多少个等价类,只要随机数据个数足够,则可以保证各个等价类被覆盖的概率足够高,能够有效弥补等价类分法设计不充分的缺陷。3.采用随机数据法进行测试,每次执行测试时,测试的样本数据可能都不相同,执行次数多,错误暴露的概率愈大。缺点1.随机数据法中的随机数据很难覆盖到边界值。因此对于非等价类中的测试,要另外设计测试用例,随机数据法无法保证将这些情况测试充分。2.进行自动化测试的难度较大。3.当存在多个不同的等价类时,有些等价类的范围较小,这些范围较小的等价类被覆盖的概率也是很小的,难以测试到。判定表法•概念判定表法是一种分析多种输入条件的组合情况的方法,多种输入条件可以通过判定表来完整地进行排列组合,从而不出现遗漏。比如以下一个判断表达式:If((a0)||(b0)||(c0&&c100)){…}这段程序中的判定条件可以用判定表如何表示?判定表法a=0a0b=0c=00c100c=100b0c=0条件为假条件为真条件为假条件为真0c100条件为真c=100条件为真b=0b0c=0条件为真0c100c=100c=00c100c=100条件为真条件为真条件为真条件为真条件为真判定表的表示方法a0?YYYYYYNNNNNNb0?YYYNNNYYYNNNc=0?YNNYNNYNNYNN0c100?NYNNYNNYNNYNc=100?NNYNNYNNYNNY表达式的值真真真真真真真真真假真假判定表的表示方法表中的c=0?0c100?c=100?是3个排他性条件,即其中同时只有一个条件会满足,也就是在同一列中只能有一个为Y,其他两个均为N。根据判定表,我们可以输出测试用例如下:用例编号abc预期输出110-5真251050真5用例编号abc预期输出3510200真4510-5真55-850真65-8200真7-2020-5真8-202050真9-2020200真10-20-10-5假11-20-1050真12-20-10200假判定表的表示方法上面是没有考虑边界情况的测试用例,那么当考虑边界条件后,需要增加几个边界条件?a=0?b=0?c=0?c=100?a的取值变成了a0,a=0,a0等3种排他性组合;b的取值和a一样变成了3种排他性组合;c的取值共有c0,c=0,0c100,c=100,c100等5种排他性组合,总共将有3*3*5=45种,这时可以将判定表分成多个子表来书写。采用判定表法来设计测试用例,最重要的好处是可以充分考虑各种条件的所有组合,不会遗漏。但是如何寻找判定表中的所有条件以及可能的动作和结果却需要使用其他方法,如元素分析法和因果图法就是用来构造判定表条件的方法。“阅读指南”判定表12345678问题觉得疲倦?YYYYNNNN感兴趣吗?YYNNYYNN糊涂吗?YNYNYNYN建议重读√√继续√√跳下一章√√休息√√判定表的组成•判定表通常由以下4部分组成:条件桩—列出问题的所有条件条件项—针对条件桩给出的条件列出所有可能的取值动作桩—列出问题规定的可能采取的操作动作项—指出在条件项的各组取值情况下应采取的动作条件桩动作桩条件项动作项规则将任何一个条件组合的特定取值及相应要执行的动作称为一条规则。在决策表中贯穿条件项和动作项的一列就是一条规则。判定表的生成•构造判定表的5个步骤:(1)确定规则的个数。有n个条件的判定表有2n个规则(每个条件取真、假值)。(2)列出所有的条件桩和动作桩。(3)填入条件项。(4)填入动作项,得到初始判定表。(5)简化判定表,合并相似规则。若表中有两条以上规则具有相同的动作,并且在条件项之间存在极为相似的关系,便可以合并。合并后的条件项用符号“-”表示,说明执行的动作与该条件的取值无关,称为无关条件。化简后的读书指南判定表1234问题你觉得疲倦吗?--YN你对内容感兴趣吗?YYNN书中内容使你胡涂吗?YN--建议请回到本章开头重读√继续读下去√跳到下一章去读√停止阅读,请休息√作业问题要求:”……对功率大于50马力的机器、维修记录不全或已运行10年以上的机器,应给予优先的维修处理……”。这里假定,“维修记录不全”和“优先维修处理”均已在别处有更严格的定义。请建立判定表。
本文标题:随机数据法,判定表法
链接地址:https://www.777doc.com/doc-4059341 .html