
功能测试分析设计基本要求.doc
8页功能测试分析设计基本要求--功能测试用例分析设计部分探讨1 概述按照功能操作的一些特点分成条件组合、状态转换、业务流程、录入检查、增删改读、业务操作等类型,但总体归纳来说,功能测试应熟悉被测对象,并分别从不同的质量特性来思考如何覆盖,有效设计测试用例而功能测试容易出现问题: 1. 完全按照需求文档去测试,一般的文档都是不全的;2. 不愿意在测试前从不同角度(例如质量特性、子特性)进行一个基本的测试设计,对某些重要方面有遗漏,常见的如某些特定场景、一些少见情况、应用安全等;3. 对潜在的范围、状态、边界等提取和分析,例如初始数据、初始状态、初始运行环境等不考虑;在设计不到位情况下,测试也相应对一些内部的等价类分析不到位,在没有显式提到的情况下出现遗漏;4. 关注点放在界面有效性检查上,而对实际功能实现是否完整、可靠等投入关注度很低,没有真正将好钢用在刀刃上2 条件组合类2.1 测试分析功能:使用不同条件进行查询、过滤等对象:通常为系统应用类软件难点:多个条件项情况下,如何合理选择、组合,保存测试覆盖充分测试点:1)条件内容的一致性和完整性:l 处理条件是否包括需求要求的所有条件项(通过设计审查、界面测试可以验证)l 通过下拉项输入处理条件,对应列项和实际数据列项的一致性(通过设计审查、界面测试可以验证)2)处理正确性:l (TJZH-GNCL)单个/组合处理条件编码和处理正确性l (TJZH-TJGX)组合条件对And/or等关系的处理正确与否l (TJZH-LJGX)处理条件相互之间存在先后、范围、大小等逻辑关系情况下,逻辑关系的处理情况(例如,起始时间、结束时间)3)处理情况的边界l (TJZH-SRBJ)输入处理条件在边界情况下的处理(处理条件全部不存在、部分不存在、全部存在)l (TJZH-SCBJ)输出结果边界情况(查询输出结果为空或全部)4)附加:(TJZH-SJAQ)扩展情况下,应对SQL注入等情况进行测试。
通过应用安全测试或设计特殊输入数据验证)2.2 测试设计表 1 条件组合类测试设计编号输入输出数据覆盖范围备注1.1单个条件的处理1.1.1单个条件普通值(典型值)TJZH-GNCL1.2单个条件边界值TJZH-GNCL、TJZH-SRBJ、TJZH-SCBJ1.1.3单个条件非法值TJZH-GNCL 、TJZH-SJAQ1.1.4单个条件无效值TJZH-SJAQ1.2组合条件的处理1.2.1组合条件普通值(典型值)TJZH-GNCL、TJZH-TJGX1.2.2组合条件边界值TJZH-SRBJ、TJZH-SCBJ1.2.3条件间逻辑关系TJZH-LJGX1.3应用安全1.3.1应用安全测试TJZH-SJAQ设计说明(实施要求):1. 通常测试条件以SQL语句组合运行,因此如果具备条件,最佳方法为检查代码2. 通常可以通过执行编号1.2下面的所有测试设计来完成对编号1.1下要求的覆盖条件1.2.2应优先于条件1.2.13. 编号1.3.1一般通过渗透测试工具测试应用,特殊情况下通过人工输入进行简单检查,人工输入一般应注意输入对应关键字等特殊字和字符,例如SQL语句中的单引号,VBA中的单引号,脚本语言中的井号等。
3 状态转换类3.1 测试分析功能:业务处理按照不同情况在设计的状态之间转换对象:通常为控制类软件难点:转换路径难以完整覆盖,特殊情况下状态分析和覆盖不到测试点:1) (ZTZH-GNCL)状态的转换方式和设计是否一致2) (ZTZH-ZTBJ)状态转换条件边界分析3) (ZTZH-YCQK)异常情况下状态维持和状态转换是否稳定3.2 测试设计表 2 状态转换类测试设计编号输入/输出数据覆盖范围备注2.1状态转换条件(包括组合)ZTZH-GNCL2.2状态转换条件边界值ZTZH-ZTBJ2.3异常情况下状态维持和状态转换ZTZH-YCQK设计说明(实施要求):1. 通常关注点集中在显式标识出来的条件中,往往忽略了电源故障、网络中断、CPU被占用、长时间无响应、接收次序错乱等环境条件、运行依赖资源等对状态变换的影响,不过,这类问题通常是与设计问题半生的2. 除各类显式地采用状态机设计软件,在各类业务处理测试中应关注动态的状态变化,例如网络信息交互的初始化、空闲、接收等待、上传、等都可以按照状态转换的思维来考虑4 业务流程类4.1 测试分析功能:通过不同部分流程交互的方式完成一个功能对象:系统软件。
难点:环境搭建和流程模拟测试点:1) (YWLC-LCFG)业务流程分支覆盖(包括所有成功、失败流程)4.2 测试设计表 3 业务流程类测试设计编号输入输出数据覆盖范围备注3.1业务流程分支覆盖TJZH-SJAQ设计说明(实施要求):1. 业务流程分支覆盖成功、失败情况的分析属于正常情况各类基本异常情况应该在单个部分中进行测试2. 通常业务流程测试是针对系统的,可能存在需要针对不同的系统配置(包括物理设备、物理资源、不同配置数据)进行覆盖设计,例如典型配置、最大配置、最小配置5 录入检查类5.1 测试分析功能:界面输入、保存功能对象:通常为系统应用类软件难点:数量大,找出内部存在的隐含逻辑关系测试点:1) 已限制输入集l (LRJC-YJXZ)输入的编码和处理正确性2) 未限制输入集l (LRJC-DXSR)单个输入的编码和处理正确性l (LRJC-YXJC)输入本身的有效性检查l (LRJC-LJJC)输入数据逻辑符合性检查5.2 测试设计表 4 录入检查类测试设计编号输入输出数据覆盖范围备注4.1单个数据-已限制输入集4.1.1输入数据典型值LRJC-YJXZ4.1.2不输入数据LRJC-YJXZ4.2单个数据-已限制输入集4.2.1输入数据典型值LRJC-DXSR、LRJC-LJJC4.2.2输入数据边界值LRJC-DXSR4.2.3输入数据非法值LRJC-YXJC例如对允许输入范围1~100,输入-1994.2.4输入数据无效值LRJC-YXJC例如对数字输入字符4.2.5输入数据必填、选填要求LRJC-BTXT4.2.6输入数据逻辑关系异常LRJC-LJJC设计说明(实施要求):1. 一般测试对于4.1一类只要覆盖4.1.1中一个数值即可,对于特别重要的才需要完整覆盖。
2. 4.2.6的逻辑检查应该是有效性检查的一个特例对于存在组合关系的,应该按照1条件组合类综合考虑组合情况测试6 增删改读类6.1 测试分析功能:记录的增加、删除、修改、读取等对象:通常为系统应用类尤其是数据库类软件难点:对象状态变化改变的时效性、数据关联关系的相关影响、对象内部数据状态测试点:1)(ZSGD-ZJJL)增加2)(ZSGD-SCJL)删除:对设计允许删除和不允许删除的各种状态3)(ZSGD-XGJL)修改4)(ZSGD-DQJL)读取6.2 测试设计表 5 增删改读类测试设计编号输入输出数据覆盖范围备注5.1增加5.1.1正常增加ZSGD-ZJJL5.1.2增加异常值ZSGD-ZJJL通常包括:不完整、已存在(重名)、特殊定义(不允许)5.2删除5.2.1删除普通对象ZSGD-SCJL按照设计定义的进行单个、多个5.2.2删除当前在用对象ZSGD-SCJL(挂有下级数据的、与其他有关联的)5.2.3删除全体对象ZSGD-SCJL边界情况5.3修改5.3.1修改成功ZSGD-SCJL5.3.2修改失败ZSGD-SCJL修改为异常值5.3.3修改当前在用对象ZSGD-SCJL(挂有下级数据的、与其他有关联的)关注数据关联关系5.3.4多个对象同时修改ZSGD-SCJL5.4读取5.3.1对象获取ZSGD-SCJL5.3.2对象变化时更新ZSGD-SCJL时效性设计说明(实施要求):1. 增删改读类操作容易测试,但是在大型分布式数据库情况下,数据之间的互斥性、数据的锁定、保护等属于数据库范畴的设计内容可能是非常困难的。
7 业务操作类7.1 测试分析功能:各类业务功能实现对象:应用类软件难点:潜在的范围、状态、边界等提取和分析测试点:1) (YWCZ-SRFW)操作输入范围从输入角度按照等价类分析,实现与设计一致,包括内部不同输入对应的范围(含边界),外部非法和无效值(例如规定XXX级别才可以操作,对此进行验证)2) (YWCZ-DXZT)操作对象状态针对被操作对象处在不同状态来考虑业务操作设计3) (YWCZ-YHBJ)操作涉及的外部环境资源限制、潜在隐含的要求等进行边界分析4) (YWCZ-LJGX)操作对象与其他对象之间的竞争关系、比较关系等逻辑关系7.2 测试设计表 6 业务操作类测试设计编号输入输出数据覆盖范围备注6.1操作输入范围6.1.1操作输入范围有效无效边界等价类YWCZ-SRFW6.2操作对象状态6.2.1操作对象在不同运行时间处于的状态分析覆盖YWCZ-DXZT6.3操作功能边界分析6.3.1操作输入范围有效无效边界等价类YWCZ-YHBJ例如使用到的网络带宽、char的自然边界256、显式屏幕宽度320*240等6.4操作对象逻辑关系6.4.1竞争关系YWCZ-LJGX例如与系统中其他设备配合情况、替换情况6.4.2比较关系YWCZ-LJGX例如多个同类实例、设备情况设计说明(实施要求):1. 输入范围尤其需要关注初始配置数据、外部环境状态、操作者的权限等潜在隐含的输入。
2. 测试设计应将被操作对象放在动态交互环境下来考虑,可能对象状态会对其业务操作有影响8 小结功能测试易学难精,谁都会,但真正做好很难,而在测试从业人员里往往更重视性能测试、安全测试等对专业知识和专业工具门槛较高的行当,再者就是更重视测试工具开发等岗位,忽视黑盒功能测试这样关键的基本功的训练和模式提炼学习,希望我们加强理论研究,如探索式测试的探讨,并注意各种模式的总结,把测试工作做好,而不是总以不存在完全的测试等为借口 / 文档可自由编辑打印。
