1.如何写测试用例
测试用例设计和执行是测试工作的核心,也是工作量最大的任务之一。
测试用例(Test Case)目前没有经典的定义。比较通常的说法是:指对一项特定的软件产品进行测试任务的描述,体现测试方案、方法、技术和策略。内容包括测试目标、测试环境、输入数据、测试步骤、预期结果、测试脚本等,并形成文档。
测试用例编写准备
1
从配置管理员处申请软件配置:《需求规格说明书》和《设计说明书》;
2
根据需求规格说明书和设计说明书,详细理解用户的真正需求,并且对软件所实现的功能已经准确理解,然后着手制订测试用例。
测试用例制定的原则
1测试用例要包括欲测试的功能、应输入的数据和预期的输出结果。
2测试数据应该选用少量、高效的测试数据进行尽可能完备的测试。
用例覆盖
1正确性测试:输入用户实际数据以验证系统是满足需求规格说明书的要求;测试用 例中的测试点应首先保证要至少覆盖需求规格说明书中的各项功能,并且正常。
2容错性(健壮性)测试:程序能够接收正确数据输入并且产生正确(预期)的输出, 输入非法数据(非法类型、不符合要求的数据、溢出数据等),程序应能给出提示 并进行相应处理。把自己想象成一名对产品操作一点也不懂的客户,在进行任意操作。
3完整(安全)性测试:对未经授权的人使用软件系统或数据的企图,系统能够控制的程度,程序的数据处理能够保持外部信息(数据库或文件)的完整。
4接口间测试:测试各个模块相互间的协调和通信情况,数据输入输出的一致性和正确性。
5压力测试:输入10条记录运行各个功能,输入30条记录运行,输入50条记录进行测试。
6性能:完成预定的功能,系统的运行时间(主要是针对数据库而言)。
7可理解(操作)性:理解和使用该系统的难易程度(界面友好性)。
8可移植性:在不同操作系统及硬件配置情况下的运行性。
测试方法
1边界值分析法:确定边界情况(刚好等于、稍小于和稍大于和刚刚大于等价类边界值),针对我们的系统在测试过程中主要输入一些合法数据/非法数据,主要在边界值附近选取。
2等价划分:将所有可能的输入数据(有效的和无效的)划分成若干个等价类。
3错误推测:主要是根据测试经验和直觉,参照以往的软件系统出现错误之处。
测试用例的填写
1一个软件系统或项目共用一套完整的测试用例,整个系统测试过程测试完毕,将实际测试结果填写到测试用例中,操作步骤应尽可能的详细,测试结论是指最终的测试结果(结论为:通过或不通过)。
2.怎么写测试用例
核心业务:测试函数int ReadFile(char *pszFileName)
● 测试标题
规则:重要程度介于高和低之间的测试用例,是后续步骤的先决条件
● 输入
规则:测试用例的概括简单的描述用例的出发点。
● 重要级别
规则
高、界面的响应结果:软件需求项 如。
● 预置条件
规则,由数字和字符组合成的字符串
◇ 约定:保证系统基本功能、重要特性,可以拨打紧急电话
集成测试用例测试项目、关注点,包括返回值的内容:当前测试用例所属测试大类:实际使用频率不高:集成后的模块名或接口名 如:执行当前测试用例需要的前提条件:用例执行过程中需要加工的外部信息:被测试的函数名 如、文件、被测需求、易识别性:产品编号-UT-单元测试项名-单元测试子项名-XXX
● 测试项目
◇ 规则。
● 预期输出
规则:当前测试用例的预期输出结果:测试手机在没有SIM卡的情况下:编号具有唯一性,输入,保证操作步骤的完整性、被测模块:
系统测试用例测试项目● 测试用例编号
◇ 规则:产品编号-ST-系统测试项名-系统测试子项名-XXX
集成测试用例:执行当前测试用例需要经过的操作步骤、实际使用频率高的测试用例、对系统业务功能影响不大的模块或功能的测试用例:产品编号-IT-集成测试项名-集成测试子项名-XXX
单元测试用例;
中、被测单元等
◇ 约定:
系统测试用例:测试模块A提供的文件接口
单元测试用例测试项目、数据库等
● 操作步骤
规则;
低,原则上不能重复
3.怎么写测试用例,测试用例的定义
黑盒测试根据详细设计说明书规定的功能来设计测试用例,检查程序的功能是否符合规格说明的要求。编写有效的测试用例能检验出测试人员的测试水平。
1.根据用户需求所要求的产品特性写出黑盒功能测试用例。客户通过使用测试用例以确认是否达到了期望的要求。还要从测试用例追溯回功能需求以确保没有需求被疏忽,并且确保所有测试结果与测试用例相一致。同时,要使用测试用例来验证需求模型的正确性,如对话框图和原型等。·
2.测试用例的代表性:
a.能够代表各种合理和不合理的、合法的和非法的、边界和越界的,以及极限的输入数据、操作和环境设置等;
b.测试结果的可判定性:即测试执行结果的正确性是可判定的或可评估的;
c.测试结果的可再现性:即对同样的测试用例,系统的执行结果应当是相同的。
英等[-]对此都有研究,笔者在北京地区
4.如何编写测试用例
这边有一些测试用例的一些原则:
1.系统页面必须与照设计文档一致.测试时须检查的地方有:各页面的列名,提示信息等文字描述是否存在错别字.列宽长度是否合适,能否完全显示输入信息.(注意:页面如出现有变量,则须对这些变更的正确性进行验证)
2.测试基础信息录入,必填项必须测试数据录入范围,保证所有的信息能够有效的录入系统。可采用临界值测试法
3.测试与业务有关的功能,必须包证输入金额,日期格式正确,金额方向正确,。可采用先做业务,后做查询的方法验证
4.测试查询功能时必须保证录入查询条件即可查出相应的正确结果.
5.流程测试应保证流程流向能按设计的流程图走,如一个流程结束后才能出下个流程,这时应保证上个流程结束后才能出下个流程,而且上个流程的任务必须是结束状态.测试方法可以用列举法,把所有的情况列举出来后逐步测试.
6.对有可能引起纠纷的业务须重点测试,维护中心形象.(如:余额查询,个人明细查询结息等业务)
7.测试系统性能时应该制定性能测试计划,出具性能测试报告.
5.测试用例怎样编写才能尽量做到完全覆盖
家都知道,测试用例的一个核心作用就覆盖测试需求,尽可能的减少漏测,同时提高测试效率。再细想想,这种核心作用的本质也就是一种“提醒”作用。
你可能会说“对呀,本来就是这样的呀,没啥问题呀”。我也觉得这个本身没错,那关键的问题是什么呢? 问题在于时间和可执行性。
话说,写用例、设计用例是需要时间的,而在追求速度的时代,似乎连这点时间都给不起。这不是我吹的,特别是互联网,大部分公司都采用敏捷开发模式,讲究快速,所以,时间往往是有限的,再加上很多公司对敏捷仅停留在概念阶段,以为“敏捷=快速”,把时间花在用例设计上简直就是一种浪费….这样一来,用来设计用例的时间有时候,真是少之又少。如果按传统方式,把用例写得很详细,各种前提条件,步骤,说明,预期结果,编写人,日期啥的,这个时间成本是很高的。
再说可执行性。经常看到一些人写用例写得很认真,很详细、具体,把每一步的操作都写了,还有一些人一个用例下来,十几个步骤,包含了n个验证点。这种用例的可执行性咋样呢?按我的经历来看,这种类型用例,在测试的时候,用例编写人自己都懒得看用例,完全是按自己的当前时间的想法来测试,而非用例编写人呢?同样的,他也不会完全按照上面的步骤来执行,人嘛,都喜欢按自己的方式来做事,谁会看一下用例步骤,然后操作一下呢?所以,最后的结果是,用例文档就是摆设,放在那里,没人看。
怎么破?
我的观点是:测试用例必须写,而且还要“精炼”:能不写的尽量不写,能“简写”的尽量简写----“精简”的思维->;简而言之,当前面的部分,已经起到了足够的提醒作用时,后面部分就可以不写。这样做的好处是,不仅可以节省时间,而且还给执行用例的人留下一定的思考空间,有利于TA的成长。
思维导图编写用例为例:
1. 一看用例名,就知道步骤及预期结果的,仅写用例名
这里的用例名,也就是我们的测试点、需求验证点。
这里对编写测试用例的人有个要求:语言组织能力+思维能力,尽量做到划分合理,且见名知意。
2. 仅看用例名,不能预知操作步骤的,还须把操作步骤写出来
3. 仅看用例名,不能预知预期结果的,还须把预期结果写出来
4. 预期结果、操作步骤有时候都可简写:直接以备注、说明、提醒点替代
对比上面的,这样写可能会给人有点“乱”的感觉,但是换个思路想,
这里实际是把预期结果、操作步骤当作是子验证点(即子用例),采用第一条规则,这里的子用例仅写了用例名,即提醒点,验证点。也就是说,这条用例是由一组子用例构成的。
注:用例粒度可粗可细,结合时间成本考虑,做到合理的划分即可。
5. 针对一些步骤比较复杂的用例,步骤和预期结果都要写出来。
复杂情况下,一个用例包含多个操作步骤,这些操作步骤中,每个步骤可能都对应一个子测试点(预期结果)。如上,可以新增一个结点,填写预期结果,也可以和操作步骤写在同一个结点,以括号等不同方式进行区分,具体根据个人喜好或者大家达成共识的统一风格。
6. 技巧
根据具体情况,可以适当做些备注(可以是一些业务逻辑、规则、需求、预期结果等),让人看得更明白
为了避免模块层级过多,可以不进行模块划分就不划分,当然也可以采用其它技巧,比如模块名称写成“大模块-子模块”的形式 例子