您现在的位置是:首页 >其他 >功能测试用例编写规范网站首页其他
功能测试用例编写规范
一、总则
1. 背景
-
为保证测试用例对需求的覆盖率,即对一个系统从整体功能到单个功能,都尽可能的高的覆盖。而单个功能点主要强调的是不同的输入及其组合所带来的各种输入动作,系统是否都做了处理;
-
测试用例设计首先要明确该系统存在多少功能点,要通过各种常用的测试方法来保证用例的完整性,然后再对各功能点的边界范围进行考虑。
-
所以要保证测试用例的设计按照一种合理的结构组织进行,这样才能够更有效的保证系统所有功能点的覆盖率。
2. 目的
-
为测试用例的质量负责,使测试工作能有序、合理化的进行,从而提高实施测试时对所测产品、系统或者模块的测试质量,也是作为各测试人员在设计用例时的一种规范,使之设计的用例能有效的被管理。
3. 概念
-
是指为了实施测试而编写的一组有规范性、有据可依的输入数据与输出数据的组合,也指为了实施测试而向被测对象提供的一组输入、输出数据以及由各种执行条件和期望结果相组合的一个特定集合,以便测试某个程序路径或者来核实是否满足某个特定的需求。
4. 适用范围
-
本文档适用于测试人员
-
本文档适用于系统进行测试时的测试案例设计
-
本文档适用于案例补充时的测试案例
二、用例用途
-
指导测试工作有序进行,使实施测试的数据有据可依
-
确保所实现的功能与客户预期的需求相符合
-
完善软件不同版本之间的重复性测试
-
跟踪测试进度,确定测试重点
-
评估测试结果的度量标准
-
增强软件的可信任度
-
分析缺陷的标准。
三、编写依据
-
需求说明书
-
产品测试需求功能点
-
所属行业的业务知识掌握程度
-
测试工程师本人的理解程度(个人经验)
四、编写原则
-
系统性:对系统业务流程要完整说明整个系统的业务需求、系统由几个子系统组成以及它们之间的关系;对模块业务流程要说明子系统内部功能、重点功能以及它们之间的关系
-
连贯性:对系统业务流程要说明各个子系统之间是如何连接在一起,若需要接口,各子系统之间是否有正确的接口,若是依靠页面链接,则页面的链接是否正确;对模块业务流程要说明同级模块以及上下级模块是如何构成一个子系统,其内部功能接口是否连贯
-
全面性:应尽可能覆盖各种路径、尽可能覆盖各个业务点,并要考虑跨年、跨月的数据以及大数据量并发测试的准备
-
正确性:输入界面后的数据应与测试文档所记录的数据一致,而预期结果也应与测试数据发生的业务吻合
-
符合正常业务规则:测试数据要符合用户实际工作中的业务流程,同时也要兼顾各种业务的变化以及当前该业务行业的法律、法规、人名、地名、电话号码等应具有模拟功能,符合一般的命名惯例;不允许出现与知名人士、小说中人物名等雷同情况。
-
可操作性:测试用例中要写清楚测试的操作步骤,以及不同的操作步骤相对应的测试结果
五、用例标准
-
测试案例编写应该制订统一的模板进行,并约定模板的使用方法;
-
测试案例编写应当根据项目实际情况编写测试案例编写手册,包括案例编号规则、案例编写方法、案例编写内容、案例维护等内容;
-
案例编写应根据手册中约定的编写方法、内容等进行编写;
-
案例编写要步骤明确,输入输出要素清晰,并且与需求和缺陷相对应;
-
案例编写应严格根据需求规格说明书及测试需求功能分析点进行,要求覆盖全部需求功能点;
-
注重案例的可复用性,即在以后相似系统的测试过程中可以重复使用,减少测试设计工作量。
六、用例内容
1 | 用例编号 | 唯一标识。规则“根据公司用例模板为准“ | |
2 | 用例实际内容 | 模块名称 | 模块名称 |
3 | 编号 | 可系统生成也可自定编号”V6-12-3-001“ | |
4 | 用例标题 | 对测试项简短的描述 | |
5 | 维护人 | 用例编写人 | |
6 | 用例类型 | 根据系统中分类进行填写【模板有说明】 | |
7 | 重要程度 | 确定用例执行的级别【P0,P1,P2】 | |
8 | 测试类型 | 手动测试与自动测试 | |
9 | 关联项目 | 可复制故事编号放入其中 | |
10 | 前提条件 | 执行用例时需要的预置条件 | |
11 | 操作步骤 | 执行该动作需要完成的操作,需要明确输入数据。 | |
12 | 预期结果 | 执行完该动作后程序的表现结果 | |
13 | 备注 | 测试用例的备注说明 | |
14 | 执行结果 | 执行状态 | 点击选择用例的执行结果[通过,失败,阻塞] |
15 | 实际结果 | 实际输出的结果 | |
16 | 缺陷 | 执行该用例出现后系统显示的错误应建立缺陷 | |
17 | 执行人 | 按照该用例执行测试的人员 | |
18 | 结果附件 | 可上传截图 |
七、设计步骤
1、测试需求分析:
-
从软件需求分析文档中,找出待测软件/模块的需求,通过自己的分析、理解,整理成为测试需求,要清楚被测对象具体包含哪些功能点。
2、业务流程分析:
-
对所在行业的业务知识要熟悉,然后对被测软件/模块的业务流程要进行全盘的整理(可画简单的流程图或思维图作为参考),主要包含该业务流程的主流程、备选流程、数据流向、关键判断条件以及完成该操作的非必要条件。
3、测试用例设计:
-
测试用例设计的类型主要包括功能测试、边界测试、异常测试、性能测试、压力测试等,在设计用例时要尽量考虑边界、异常等情况。
4、测试用例评审:
-
由测试用例设计者发起,参加的人员需包括测试负责人、开发人员及其他相关的测试人员。
5、测试用例完善:
-
测试用例编写完成之后需不断完善,软件产品新增功能或更新需求后,测试用例必须配套修改更新;
-
在测试过程中发现设计测试用例时考虑不周,需要对测试用例进行修改完善;
-
在软件交付使用后客户反馈的软件缺陷,而缺陷又是因测试用例存在漏洞造成,也需要对测试用例进行完善;
八、级别划分
-
P0:确保系统基本功能及主要功能的测试用例
-
P1:确保系统功能的完善方面的测试用例
-
P2:关于用户体验,输入输出的验证;较少使用或辅助功能的测试用例。
P0(优先执行):
-
即关键路径的测试用例,包括最常执行的功能、基本流程的输入以及界面数据有效性校验作为高级别的测试用例;若该级别的测试用例完全执行通过,则表示该软件功能渐趋稳定;
P1(次级执行):
-
即可接收级测试的用例,包括不常执行的功能、异常流程的输入、边界值以及异常数据的输入作为中等级别的测试用例;若该级别的测试用例完全执行通过,则表示该软件可以进行发布了;
P2(最后执行):
-
即建议执行的测试用例,也就是说该级别的测试用例不是不重要,而是该级别的用例在整个项目的生命周期内不是常常被运行,包括:GUI、界面显示、错误信息提示不统一、可用性、压力和性能测试等。
九、用例的维护
1、删除过时的测试用例
-
因为需求的改变等原因可能会使一个基线测试用例不再适合被测系统,那么这些测试用例就会过时,需要对这些测试用例进行及时的删除,在删除过程中,不能将所有用例删除,仅将计划中用例去除,将用例评审状态置为废弃状态;
2、修改的测试用例
-
随着软件项目的进展,测试需求可能会有部分变更,甚至大范围的变更,这个时候我们就会根据需求的变化相应的对测试用例进行维护,修改已经不符合目前需求的内容,并在备注栏中加以说明【原则上测试用例执行三分之二后不允许变更及新增新的开发需求】
3、删除冗余的测试用例
-
如果存在两个或更多测试用例对一组相同的输入和输入进行测试,则需要对其进行删除,只需留下其中的一个
4、增添新的测试用例
-
对新增的功能、在评审过程及测试过程中发现缺少测试用例或者系统出现BUG但是没有与之对应的测试用例,需要按照测试用例的设计标准进行增添【不含新增的开发任务】,增加测试用例时,需要在相应功能模块的最下方插入新增的测试用例,并在备注栏中加以说明
十、设计方法
测试用例要包括欲测试的功能、应输入的数据和预期的输出结果。
测试数据选择时不应是具体数据,只能包含数据类型;基本目标是:设计一组发现某个错误或某类错误的测试数据,测试用例应覆盖方面:
-
等价划分:将所有可能的输入数据(有效的和无效的)划分成若干个等价类。
-
边界值分析法:确定边界情况(刚好等于、稍小于和稍大于和刚刚大于等价类边界值),针对我们的系统在测试过程中主要输入一些合法数据/非法数据,主要在边界值附近选取。
-
场景法:通过运用场景来对系统的功能点或业务流程的描述,从而提高测试效果的一种方法。用例场景来测试需求是指模拟特定场景边界发生的事情,通过事件来触发某个动作的发生,观察事件的最终结果,从而用来发现需求中存在的问题。
-
基本流:是经过用例的最简单的路径(无任何差错,程序从开始直接执行到结束)
-
备选流:一个备选流可能从基本流开始,在某个特定条件下执行,然后重新加入基本流中,也可以起源于另一个备选流,或终止用例,不在加入到基本流中;(各种错误情况)
-
因果图:利用图解法分析输入的各种组合情况,设计测试用例,检查程序输入条件的各种组合情况。
-
正交表:在界面中有多个控件,控件之间有多种组合关系,如果组合的数量巨大(一般超过20种),没有必要将所有组合都测试,可以通过正交排列法将组合中最优,最少的组合进行测试。
-
正确性测试:输入用户实际数据以验证系统是满足需求规格说明书的要求;测试用例中的测试点应首先保证要至少覆盖需求规格说明书中的各项功能,并且正常。
-
容错性(健壮性)测试:程序能够接收正确数据输入并且产生正确(预期)的输出;输入非法数据(非法类型、不符合要求的数据、溢出数据等),程序应能给出提示并进行相应处理。把自己想象成一名对产品操作一点也不懂的客户,在进行任意操作。
-
完整(安全)性测试:对未经授权的人使用软件系统或数据的企图,系统能够控制的程度,程序的数据处理能够保持外部信息(数据库或文件)的完整。
-
接口间测试:测试各个模块相互间的协调和通信情况,数据输入输出的一致性和正确性。
-
数据库测试:依据数据库设计规范对软件系统的数据库结构、数据表及其之间的数据调用关系进行测试。
-
压力测试:输入10条记录运行各个功能,输入30条记录运行,输入50条记录运行,进行测试。
-
错误推测:主要是根据测试经验和直觉,参照以往的软件系统出现错误之处。
-
效率:完成预定的功能,系统的运行时间(主要是针对数据库而言)。
-
可理解(操作)性:理解和使用该系统的难易程度(界面友好性)。
-
可移植性:在不同操作系统及硬件配置情况下的运行性。
-
回归测试:按照测试用例将所有的测试点测试完毕后,回归开发人员修正的内容,主要是失败、阻塞状态的测试用例。
-
比较测试:将已经发版的类似产品或原有的老产品与测试的产品同时运行比较,或与已往的测试结果比较。
-
兼容性测试:操作系统的兼容性测试内容不仅包括软件的安装,还需对关键流程和功能点进行检查。而需要测试哪些操作系统的兼容性,首先取决于软件用户文档上对用户的承诺,其次就需要对一些常用操作系统兼容的检查
-
历史版本兼容性测试:某些功能存在新版本和历史版本数据显示、页面展示不一致的问题。需要不同版本进行测试。