2010-12-14睢雅软件测试方法与项目流程介绍金鹰培训计划(一)2培训流程•开场•介绍/日程/参与原则•课程讲授–(一)测试基础知识简述–(二)常用测试方法介绍–(三)电信业务基本流程简介–(四)常见的测试阶段简介•回顾3参与原则•当自己的老师•为错误欢呼•偷取他人的妙点子•Yes,and……测试基础知识简述56测试基本知识简述•问题1:为什么要做软件测试,测试的目的是什么?•问题2:调试和测试的区别?测试人员主要工作有哪些?•问题3:什么是缺陷?产生缺陷的原因有哪些?•问题4:怎么才能发现更多的缺陷?7问题1:•WHY:最大限度的减少缺陷修复的成本•软件测试的目的:验证→检测→防范→反映•验证:与SRS的符合程度,软件可能完成的特定任务•检测:发现错误,不管在产品中还是过程中•防范:在潜在问题出现之前鉴别它们•反映:追溯问题并分析bug在产品中是如何产生的,学会如何在今后提高过程问题2调试:•为开发人员•调试是一个随时的不可重新的过程•它用于隔离和确认问题发生的原因,然后修改软件来纠正问题测试:•为测试人员•测试是一个有计划的,可重新的过程•它用于发现与预先定义的规格和标准不符合的问题8问题2•a.检视代码,评审开发文档;•b.进行测试设计,写作测试文档(测试计划、测试方案、测试用例等);•c.执行测试,发现软件缺陷,提交缺陷报告,并确认缺陷最终得到了修正;•d.通过测试度量软件质量。等等……910问题3•缺陷:既指静态存在与软件工作产品(文档、代码)中的错误,也指软件运行时由于这些错误被激发引起的和软件产品预期属性的偏离现象。•常见的引入缺陷的原因:•a.开发过程缺乏有效的沟通,或者没有进行沟通;•b.软件复杂度越来越高;•c.编程中产生错误;•d.需求不断变更;•e.项目进度的压力;•f.不重视开发文档;•g.软件开发工具本身隐藏的问题。等等……11问题4•1、明确需求中单一的功能点•2、明确功能的输入、处理和输出不同层次的状态,更多的关注单功能点在输入、处理和输出过程中的异常情况•3、构造业务场景,进行功能和功能之间的组合,只考虑正常组合•4、隐式需求的覆盖、数据库的分析与测试需求和需求规格•需求:用户期望实现的功能•需求规格:用户预期实现的功能有怎样的输入、处理、输出•输入:参数个数、参数类型、参数长度、参数规则、参数来源、参数默认值、参数是否重复、参数是否允许为空(合法和非法)•处理(正常和异常)•输出:位置、内容、表现形式(将需求所描述的输出都有相应的输入和处理的覆盖)12(二)常用测试方法介绍14黑盒测试什么是黑盒测试:•黑盒测试把被测对象看成一个黑盒,只考虑其整体特性,不考虑其内部具体实现;•黑盒测试针对的被测对象可以是一个系统、一个子系统、一个模块、一个子模块、一个函数等。•黑盒测试又可以被称为基于规格的测试常见的黑盒测试类型:•功能性测试;容量测试;负载测试;恢复性测试。15黑盒测试优缺点黑盒测试的优点:·对于更大的代码单元来说(子系统甚至系统级)比白盒测试效率要高;·测试人员不需要了解实现的细节,包括特定的编程语言;·从用户的视角进行测试,很容易被大家理解和接受;·有助于暴露任何规格不一致或有歧义的问题。黑盒测试的缺点:·没有清晰的和简明的规格,测试用例是很难设计·不能控制内部执行路径,会有很多内部程序路径没有被测试到;·能直接针对特定的程序段,这些程序可能非常复杂(因此可能隐藏更多的问题)。16常见的11种黑盒测试用例设计方法•1、等价类划分法•2、边界值分析法•3、判定表法•4、因果图法•5、状态迁移法•6、流程分析法•7、正交试验法•8、输入域测试法•9、输出域测试法•10、异常分析法•11、错误猜测法前四种方法介绍17•1、等价类划分法•2、边界值分析法•3、判定表法•4、因果图•首先看是否存在独立的输入,然后用等价类、边界值将输入分为有效和无效•若输入之间存在组合关系,则用判定表和因果图。181、等价类划分法•问题1:等价类划分法能够解决什么问题?•问题2:等价类划分法的优缺点是什么?•答1:解决了如何对若干个独立的输入进行分析的问题•答2:优点是简单易用,用尽量少的用例覆盖尽可能多的输入可能性;缺点是不考虑输入之间的组合,代表选取的不确定性使得缺陷被发现的可能演变的不准确191、等价类划分法步骤•步骤:•1、确认当前功能输入的个数•2、对于每个输入单独构造等价类树•3、设计一个测试用例要覆盖尽量多的有效等价类•4、一个无效等价类只能对应一个测试用例•注意:•1、等价类划分法主要针对输入数据进行分析•2、等价类针对每一个独立的输入进行有效和无效的划分•3、等价类方法不考虑输入之间的组合202、边界值分析法•问题1:边界值分析法能够解决什么问题?•问题2:使用边界值分析法的条件是什么?•答1:解决了等价类选取代表不明确的问题•答2:该输入要存在边界,对输入已经做了等价类的划分212、边界值分析法原则•1、输入(输出)条件规定了取值范围,则应该以该范围边界内以及边界附近的值作为测试用例;•2、规定了值的个数,则用最大个数,最小个数,比min-1,max+1的数作为测试用例;•3、输入或输出是一个有序的集合,选取有序集合的第一个和最后一个元素作为测试用例;•4、如果程序使用了一个内部数据结构,则应当选择这个内部数据结构的边界上的值作为测试用例223、判定表法•例1:如果金额超过500元,且未过期则发批准单、发提货单,过期则发通知单;如果不超过500元,则无论是否过期都发通知单,未过期另发提货单•例2:GUI测试中的父选框和子选框(思考)3、判定表•适用范围:•1、输入之间存在关系•2、输入的不同组合会导致不同的输出结果•适用条件:•1、条件以及动作之间不存在顺序•2、条件以及动作之间不存在约束关系23244、因果图•What:因果图是一种利用图解法分析输入的各种组合情况,从而设计测试用例的方法,它适合于检查程序输入条件的各种组合情况。•Why:等价类划分法和边界值分析方法都是着重考虑输入条件,但没有考虑输入条件的各种组合、输入条件之间的相互制约关系。这样虽然各种输入条件可能出错的情况已经测试到了,但多个输入条件组合起来可能出错的情况却被忽视了。•When:1、判定表中条件及动作之间的约束关系无法表法;2、当条件过多时,判定表构造用例的效率低254、因果图-约束符号•条件异:条件a和条件b不能同时为真或为假•条件或:条件a和条件b不能同时为假•条件唯一:多个条件同时同一时刻当且仅当只有一个为真•条件要求:要使条件b成立则必须满足条件a•强制:要执行动作b必须先去执行动作a264、因果图-约束符号274、因果图符号•恒等:当条件c成立时,执行动作e•非:当条件c不成立时,执行动作e•或:当多个条件其中一个条件满足时,执行动作e•与:当多个条件其中每个条件都满足时,执行动作e284、因果图符号29•有一个处理单价为5角钱的饮料的自动售货机软件测试用例的设计。•其规格说明如下:若投入5角钱或1元钱的硬币,押下〖橙汁〗或〖啤酒〗的按钮,则相应的饮料就送出来。若售货机没有零钱找,则一个显示〖零钱找完〗的红灯亮,这时在投入1元硬币并押下按钮后,饮料不送出来而且1元硬币也退出来;若有零钱找,则显示〖零钱找完〗的红灯灭,在送出饮料的同时退还5角硬币。4、因果图举例304、因果图基于因果图的测试用例设计制作人:等待花开2004/10/14小结31•等价类针对输入进行有效和无效的划分,对每一个独立的输入进行所有可能性的取值;•但等价类划分选取的代表不明确,就要用边界值法来用更有效的去发现问题;•前两种方法不考虑输入的组合,不同输入的组合会导致不同的结果,这就要考虑判定表法,它针对输入之间的组合以及不同的输入对应不同的输出结果进行覆盖;•但是判定表的输入或输出是独立的,因果图法对于输入或输出中间对应的约束关系进行覆盖。状态迁移图和流程分析法32•判断业务的处理过程存在某个对象状态的变化时,可以首先选取状态迁移图法进行用例的设计•判断业务的处理过程不存在某个对象状态的变化时,可以选取流程分析法进行用例的设计335、状态迁移图•★1、列出所有的状态•★2、列出状态之间的变化—写出事件•★3、列出起点和终点•4、从状态树画出测试路径•5、根据测试路径设计测试用例•6、编写非法测试用例345、状态迁移图法步骤35状态迁移图6、流程分析法•流程分析法是将软件系统的某个流程看成路径,用路径分析方法来设计测试用例•根据流程的顺序依次进行组合,使得流程的各个分支都走到。这是从白盒测试中路径覆盖分析法中推广到黑盒测试中来的测试分析方法36376、流程分析法步骤•1、画出业务流程图•2、设置功能路径优先级•3、确定测试路径•4、选取测试数据•5、构造测试用例分为:基本事件流和备选事件流、特殊需求7、正交试验法举例38•例1:Google查询:•1、语言:英语、汉语、日语、韩语、法语•2、区域:中国大陆、中国台湾、中国香港、中国澳门•3、文件格式:pdf、word、excel•4、时间:任意时间、过去一周内•例2:PowerPoint软件打印功能描述如下:•打印范围分:全部、当前幻灯片、给定范围共三种情况;•打印内容分:幻灯片、讲义、备注页、大纲视图共四种方式;•打印颜色/灰度分:颜色、灰度、黑白共三种设置;•打印效果分:幻灯片加框和幻灯片不加框两种方式。397、正交试验法•正交分析法针对输入多,输入之间独立,输入内容的不同导致不同的结果,若完全覆盖全部的组合,则用例数目大。用正交试验法来降低用例数,用例数在有限的范围内覆盖尽量多的需求407、正交试验法由来(了解)•正交矩阵是任意两个输入的两两组合。如果在一个图中任意两个节点都是可达的,则这个图就是连通的。任意两个输入进行组合得到的测试用例没有发现缺陷,则三三,四四输入的组合发现问题的可能性极低。•正交试验法,是从大量的试验点中挑选适量的,有代表的点,应用伽罗瓦理论导出的“正交表”,合理的安排试验的一种科学的试验设计方法。417、正交试验法-正交表正交表:多因子二状态427、正交试验法-正交表正交表:四因子三状态437、正交试验法步骤•具体案例分析步骤:•1、明确因子和状态•2、经过加权筛选,得到因素分析表•3、明确所使用的正交表(四四、四三、多二)•4、构造因子布朗图,使实际功能对应的因子和正交表一致(多的合并、少的任取一个)448、输入域覆盖法•1、极端测试•需要选择测试数据覆盖输入域的极端情况•2、中间范围测试•选择域内部的数据进行测试•3、特殊值测试•根据要计算的功能特性的基础来选择测试数据。尤其适用于数学计算。例:Sin()函数的周期459、输出域覆盖法•1、前提:对业务一定要非常熟悉•2、分析各输出的等价类,通过选择那些会导致各个输出的等价类被达到的输入点来执行测试期望达到输出域等价类的覆盖;•3、分析各输出的边界,通过选择那些会导致各个输出的边界值被达到的输入点来执行测试。•这保证了系统功能已经被检查了最大和最小的输出条件,并且如果可能的话,所有错误信息的分类都已经被产生过了。4610、异常分析法•异常分析法就是针对系统可能存在的异常操作,软硬件缺陷引起的故障进行分析。•主要针对系统的容错能力,故障恢复能力进行测试4711、错误猜测法•错误猜测法是根据经验猜想可能有什么问题,并以此设计测试用例•错误猜测法只能作为测试设计的补充而不能单独用来设计测试用例,否能会造成测试的不充分4811、错误猜测法•1、查看历次项目的缺陷库•2、了解程序开发易犯错的地方•3、需求变更频繁的地方•4、代码走读,语言易于犯错的地方•1)使用了未被初始化的内存(系统崩溃)•2)读取越界(返回不正确)•3)程序中的数字,未被定义为常量(魔鬼数字)•4)内存泄漏(文件打开未关闭、内存申请未释放、临界资源的占用)(三)电信业务基本流程简介开户_openNewPhone5051个人业务套餐变更_换基本产品52普通缴费_Pay(四)常见的测试阶段简介常见的测试阶段单元测试集成测试系统测试