资源描述
,单击鼠标编辑大纲正文格式,第二个大纲级,第三个大纲级,第四个大纲级,第五个大纲级,第六个大纲级,第七个大纲级,第八个大纲级,第九个大纲级,单击鼠标编辑标题文的格式,NMT,测试培训手册,测试用例设计,文件修改控制,修改日期,批准人,审核人,修改人,修改页码及摘要,修改状,态,修改记录编号,1,、测试规格说明书的定义,2,、测试用例的定义,3,、测试用例的重要性及好处,4,、,测试用例设计考虑因素,5,、,测试用例的设计方法,6,、测试用例设计方法选择的综合策略,7,、测试用例的编写,目 录,Test Spec(Test Specification),测试规格说明书。主要包括,Function,介绍,,Log,等级设定和控件描述等,参考,FRS,或,UR,中的描述编写。,Function,介绍,Function Name:,模块名称,Function Description:,描述该模块的功能,Log,等级设定,HIGH:,影响整个系统测试进程的问题,MEDIUM:,影响单个界面功能测试的问题,LOW:,不影响测试,但需要开发人员与客户之间有一个约定的问题,控件描述,Data Usage:,对搜索面板和控件的描述,包括数据类型,输入限制,状态,特定输入及操作时的预期结果等,Function Usage:,对所有按钮进行描述,包括按钮的状态,颜色,快捷键及操作时的预期结果等,Ordering Sequence:,对查询结果排序的描述,1,、测试规格说明书的定义(一),Function,介绍,Project Name:,项目名称,Version:,测试用例更新的版本,Function Name:,模块名称,Function Description:,描述该模块的功能,Test Object:,测试对象,Pre-Condition:,前期准备条件,如这一模块需要调用另一模块的数据等,Reference:,参考信息,Special Remark:,特殊要求,备注等,1,、测试规格说明书的定义(二),测试数据,Test Case ID:,用例编号,Test Case Description:,用例描述,Input Data:,测试数据,Expected Result:,期望结果,Status:Active/Cancel,,如果是,cancel,的,在,Remark,中加上,(cancel reason,who,when),Created By:who create this case,Created Date:when create this case,Bug ID:,即,Timesheet,或,Log Report,中的,Log No.,Remark:,备注,1,、测试规格说明书的定义(三),测试,周期,(Cycle1,Cycle2,Cycle3),P-Pass/F-Fail:,测试结果,如果是,Fail,的,对应的,log,填写到,Timesheet,或,Log Report,中,Tested By:who execute this case,Tested Date:when execute this case,Note:,每个人第一轮测试的结果填在,Cycle 1,中,第二轮测,试结果填在,Cycle 2,中,以此,类推,,直到,Cycle N,.,1,、测试规格说明书的定义(四),工作量统计表,Executed Case:,统计每个人执行,case,的数量,(,各,cycle,的数量之和,与,Tested By,相关,),Created Case:,统计每个人,create case,的数量,(,与,Created By,相关,),Active Case:,统计每个人,active case,的数量,(,与,Created By,和,Status,相关,),Cancel Case:,统计每个人,cancel case,的数量,(,与,Created By,和,Status,相关,),Created Time-Consuming(h):,统计每个人,create case,花费的时间,Qty/Hours:,统计每个人每小时,create case,的数量,1,、测试规格说明书的定义(五),2,、测试用例的定义,测试用例就是设计一个情况,对所有控件的功能点和系统的,流程设计,case,包括测试环境、测试步骤、测试数据和预期结果,等,,,软件程序在这种情况下,必须能够正常运行并且达到程序所,设计的执行结果。为达到最佳的测试效果或高效的揭露隐藏的,错误而精心设计的少量测试数据,称之为测试用例。,3,、测试用例的重要性及好处,1,、测试用例是测试人员在测试过程中的重要参考依据。,2,、测试用例可以帮助实施有效的测试,所有被执行的测试都是有意义的,不要执行毫无意义的测试操作。,3,、良好的测试用例不断地被重复使用,使得测试过程事半功倍。,4,、测试用例是一个知识积累的过程。,5,、测试用例是一个知识传递的过程,能保持一定的、稳定的测试质量。,6,、测试用例可能在数月甚至几年的测试过程中被创建和使用,正确的测试计划将会很好地组织这些测试用例并给测试人员或其他项目的人提供参考和有效的使用方法。,7,、从项目管理角度来说,测试用例的通过率是检验代码质量保证效果最主要的指标之一。,8,、测试用例也可以作为评估测试人员进度、工作量以及跟踪,/,管理测试人员的工作效率的主要因素,从而更加合理地做出测试安排或调整。,9,、在开始实施测试之前设计好测试用例,可以避免盲目测试并提高测试效率。,10,、测试用例的使用令软件测试的实施重点突出、目的明确。,11,、降低工作强度,缩短项目周期。,12,、测试用例的通用化和复用化使软件测试易于开展,并随着测试用例的不断精化,其效率也不断攀升。,4,、测试用例设计考虑因素,测试用例设计的主要影响因素,1,、需求目标,是功能性的需求目标也是非功能性的需求目标。,2,、用户实际使用的场景。从用户的角度来模拟程序的输入,包括用户的操作习惯,使产品更能贴近用户的需求。,3,、软件功能需求规格说明书、产品设计文档等,是测试用例设计的主要参考文档。,4,、测试的方法对测试用例设计的影响非常大。,5,、测试的对象。,6,、软件实现所采用的技术。,测试用例设计的基本思想,1,、设计测试用例时,要寻求系统设计和功能设计的弱点。测试用例需要确切地反映功能设计中可能存在的问题,而不是简单拷贝产品规格设计说明书的内容。,2,、设计正确的测试用例,应该参照设计规格说明书,根据关联的功能、操作路径等设计。而对孤立的功能则直接按功能设计测试用例。,3,、设计负面的、异常的测试用例,如考虑错误的或者异常的输入,往往可以发现更多的软件缺陷。,5,、测试用例的设计方法,黑盒测试,等价类划分法,边界值分析法,错误推测法,因果图法,判定表驱动法,正交试验法,功能图法,场景法,白盒测试,逻辑覆盖法,基本路径测试法,1,、等价类划分法是指把程序的输入域划分成若干部分,然后从每个部分中选取,少量代表性的测试数据,作为测试用例。,2,、等价类是指某个输入域的子集合,可划分为,有效等价类和无效等价类,。,3,、有效等价类是指对于程序的规格说明来说是合理的,有意义的输入数据构成的集合,利用有效等价类可检验程序是否实现了规格说明中所规定的功能和性能;无效等价类则反之。,4,、,设计测试用例时,要同时考虑这两种等价类。因为软件不仅要能接收合理的数据,也要能经受意外的考验,这样的测试才能确保软件具有更高的可靠性。,等价类划分法(一),划分等价类的标准,完备测试、避免冗余;,划分等价类重要的是:集合的划分,划分为互不相交的一组子集,而子集的并是整个集合;,并是整个集合:完备性;,子集互不相交:保证一种形式的无冗余性;,同一类中标识(选择)一个测试用例,同一等价类中,往往处理相同,相同处理映射到相同的执行路径。,等价类划分法(二),确定等价类的原则,在输入条件规定了取值范围或值的个数的情况下,则可以确立一个有效等价类和两个无效等价类。如:输入值是学生成绩,范围是0100。,在输入条件规定了输入值的集合或者规定了“必须如何”的条件的情况下,可确立一个有效等价类和一个无效等价类。,在输入条件是一个,布尔量,的情况下,可确定一个有效等价类和一个无效等价类。,等价类划分法(三),在规定了输入数据的一组值(假定n 个),并且程序要对每一个输入值分别处理的情况下,可确立n 个有效等价类和一个无效等价类。例:输入条件说明学历可为:专科、本科、硕士、博士四种之一,则分别取这四种这四个值作为四个有效等价类,另外把四种学历之外的任何学历作为无效等价类。,在规定了输入数据必须遵守的规则的情况下,可确立一个有效等价类(符合规则)和若干个无效等价类(从不同角度违反规则)。,在确知已划分的等价类中,各元素在程序处理中的方式不同的情况下,则应再将该等价类进一步的划分为更小的等价类。,等价类划分法(四),等价类划分法实例,程序规定:输入三个整数 a、b、c 分别作为三边的边长构成三角形。通过程序判定所构成的三角形的类型,当此三角形为一般三角形、等腰三角形及等边三角形时,分别作计算 。用等价类划分方法为该程序进行测试用例设计。(三角形问题的复杂之处在于输入与输出之间的关系比较复杂。),等价类划分法(五),分析题目中给出和隐含的对输入条件的要求:,(1)整数,;,(2)三个数,;,(3)非零数,;,(4)正数,;,(5)两边之和大于第三边,;,(6)等腰,;,(7)等边,如果a、b、c满足条件(1)(4),则输出下列四种情况之一:,如果不满足条件(5),则程序输出为非三角形。,如果三条边相等即满足条件(7),则程序输出为等边三角形。,如果只有两条边相等、即满足条件(6),则程序输出为等腰三角形。,如果三条边都不相等,则程序输出为一般三角形。,等价类划分法(六),等价类划分法(七),等价类表,等价类划分法(八),测试用例,1,、边界值分析法就是对输入或输出的边界值进行测试的一种,黑盒,测试方法。通常边界值分析法是作为对等价类划分法的补,充,这种情况下,其测试用例来自等价类的边界。,2,、长期的测试工作经验告诉我们,大量的错误是发生在输入,或输,出范围的边界上,而不是发生在输入输出范围的内部。,这,里所说的边界是指相当于输入等价类和输出等价类而言,稍高,于其边界值及稍低于其边界值的一些特定情况。,边界值分析法(一),与等价类划分法的区别,边界值分析不是从某等价类中随便挑一个作为代表,而是使,这个等价类的每个边界都要作为测试条件。,边界值分析不仅考虑输入条件,还要考虑输出空间产生的测,试情况。,边界值分析法(二),常见的边界值:,对16-bit 的整数而言32767和-32768是边界,屏幕上光标在最左上、最右下位置,报表的第一行和最后一行,数组元素的第一个和最后一个,循环的第0次、第1次和倒数第2次、最后一次,边界值分析法(三),边界值附近数据的几种确定方法,次边界条件,2,的乘方,:,计算机和软件的计数基础是,2,进制数,用位来表示,0,和,1,,一个字节由,8,位组成,一个字由两个字节组成等。,边界值分析法(四),软件中,2,的乘方单位及其范围或值,次边界条件,ASCII,表,:,边界值分析法(五),部分,ASCII,值表,次边界条件,其他一些边界条件,:,一些特殊的值,如默认值、空值、空格、未输入值、零等的处理。,边界值,的选择方法,:,如果输入条件规定了值的范围,则应取刚达到这个范围的边界的值,以及刚刚超越这个范围边界的值作为测试数据。,如果输入条件规定了值的个数,则用最大个数、最小个数、比最小个数少,1,、比最大个数多,1,的数作为测试数据。,如果程序的规格说明给出的输入域或输出域是有序集合,则应选取集合的第一个元素和最后一个元素作为测试用例。,如果程序中使用了一个内部数据结构,则应当选择这个内部数据结构边界上的值作为测试用例。,分析规格说明,找出其他可能的边界条件。,边界值分析法(六),错误推测法(一),错误推测法就是基于经验和直觉推测程序中所有可能存在的各种错误,有针对性的设计测试用例的方法。,错误推测法的基本思想是列举出程序中所有可能有的错误和容易发生错误的特殊情况,根据它们选择测试用例。,设计一些非法、错误、不正确和垃圾数据进行输入测试,比如空值,空格等。,通常依据下列因素来进行判断和设计测试用例:,1,)客观因素:产品先前版本的问题,回归测试中发现新的问题。,2,)已知因素:语言、操作系统、浏览器的限制可能带来的问题。,3,)经验:由模块之间的关联所联想到的测试,由修复软件的错误推测会带来的问题。,因果图法(一),因果图设计方法,分析程序规格说明中,哪些是原因,哪些是结果。原因常常是输入条件或是输入条件的等价类,而结果是输出条件。,分析程序规格说明中语义的内容,并将其表示成连接各个原因与各个结果的“因果图”,标明约束条件或限制条件。,把因果图转换成判定表。,为判定表中每一列表示的情况设计测试用例。,因果图法示例,因果图法(二),因果图的基本图形符号,恒等:若原因出现,则结果出现;若原因不出现,则结果也不出现。,非,(),:若原因出现,则结果不出现;若原因不出现,则结果出现。,或,(,),:若几个原因中有一个出现,则结果出现;若几个原因都不出现,则结果不出现。,与,(,),:若几个原因都出现,结果才出现;若其中有一个原因不出现,则结果不出现。,因果图法(三),因果图举例,有一个处理单价为,1,元钱的盒装饮料的自动售货机软件。若投入,1,元硬币,按,“可乐”、“雪碧”、或“红茶”按钮,相应的饮料就送出来。若投入的是两元硬,币,在送出饮料的同时退还,1,元硬币。,分析:,原因:投入,1,元;投入,2,元;按“可乐”按钮;按“雪碧”按钮;按“红茶”按钮,结果:退还,1,元,硬币;送出“可乐”饮料;送出“雪碧”饮料;送出“红茶”饮料;,因果图法(四),因果图法(五),判定表驱动法(一),判定表组成,条件桩:列出了问题的所有条件。,动作桩:列出了问题规定可能采取的操作。,条件项:列出针对它所列条件的取值,在所有可能情况下的真假值。,动作项:列出在条件项的各种取值情况下应该采取的动作。,规则:任何一个条件组合的特定取值及其相应要执行的操作。在判定表中贯穿条件项和动作项的一列就是一条规则。,判定表驱动法(二),判定表建立,确定规则的个数。,列出所有的条件桩和动作桩。,填入条件项。,填入动作项。制定初始判定表。,简化。合并相似规则或相同动作。,判定表驱动法(三),适合使用判定表设计测试用例的条件,规格说明以判定表的形式给出,或很容易转换成判定表。,条件的排列顺序不影响执行哪些操作。,规则的排列顺序不影响执行哪些操作。,当某一规则的条件已经满足,并确定要执行的操作后,不必检验别的规则。,如果某一规则要执行多个操作,这些操作的执行顺序无关紧要。,场景法(一),现在的软件几乎都是用事件触发来控制流程的,事件触发时的情景便形成了场景,而同一事件不同的触发顺序和处理结果就形成事件流。这种在软件设计方面的思想也可以引入到软件测试中,可以比较生动地描绘出事件触发时的情景,有利于测试设计者设计测试用例,同时使测试用例更容易理解和执行。,场景法(二),用例场景是用来描述流经用例路径的过程,这个过程从开始到结束遍历用例中所有基本流和备选流。,场景法(三),举例:,ATM,机取款用例场景,基本流,1,、将银行卡插入,ATM,取款机,2,、,ATM,机从银行卡的磁条读取帐户代码,检查它是否是可接收的银行卡,3,、输入密码,4,、验证账户和密码,5,、输入金额,要从,ATM,机取款金额,6,、授权,ATM,机通过帐户、密码、金额以及帐户信息作为一笔交易发给银行系统来启动验证过程。对此事件,银行系统处理连机状态,并对授权请求给予答复,批准完成取款过程,同时更新帐户余额,7,、出钞,提供现金,8,、返回银行卡,银行卡被返还,场景法(四),举例:,ATM,机取款用例场景,备选流,2,ATM,机内没有现金,备选流,3,ATM,机内现金不足,备选流,4,密码有误,备选流,5,帐户不存在或帐户类型有误,备选流,6,帐面金额不足,6,、测试用例设计方法选择的综合策略,首先进行等价类划分,包括输入条件和输出条件的等价划分,将无限测试变为有限测试,这是减少工作量和提高测试效率最有效的方法;,在任何情况下都必须使用边界值分析方法;,可以用错误推测法追加一些测试用例,这需要依靠测试工程师的智慧和经验;,对照程序逻辑,检查已设计的测试用例的逻辑覆盖程度;,如果程序的功能说明书中含有输入条件和输出条件的组合情况,则一开始就可选用因果图法和判定表驱动法;,对于参数配置类的软件,要用正交试验法选择较少的组合方式达到最佳效果;,功能图法也是很好的测试用例设计方法,我们可以通过不同时期条件的有效性设计不同的测试数据;,对于业务流清晰的系统,可以利用场景法贯穿整个测试案例过程,在案例中综合使用各种测试方法。,7,、测试用例的编写,编写测试用例的唯一标准就是用户需求,具体的参考资料是,需求规格说明书,,但需要说明的是,用户需求不是一成不,变的,而是在一直变化的,这就需要我们根据不断调整变化的,需求,来修改和维护我们已写好的测试用例。,7,、测试用例的编写,测试用例计划的目的,仔细计划测试用例,是达成测试目标的必由之路。,在项目期间有必要多次执行同样的测试,以寻找新的软件缺陷,保证老的软件缺陷得以恢复。,有时候需要回答整个项目期间的重要问题:计划执行多少个测试用例;在软件最终版本上执行多少个测试用例;多少个通过;多少个失败,有忽略的测试用例吗等等。,Thank you!,
展开阅读全文