如何编写测试用例

2024-05-10 00:33

1. 如何编写测试用例

这边有一些测试用例的一些原则:
1.系统页面必须与照设计文档一致.测试时须检查的地方有:各页面的列名,提示信息等文字描述是否存在错别字.列宽长度是否合适,能否完全显示输入信息.(注意:页面如出现有变量,则须对这些变更的正确性进行验证)
2.测试基础信息录入,必填项必须测试数据录入范围,保证所有的信息能够有效的录入系统。可采用临界值测试法
3.测试与业务有关的功能,必须包证输入金额,日期格式正确,金额方向正确,。可采用先做业务,后做查询的方法验证
4.测试查询功能时必须保证录入查询条件即可查出相应的正确结果.
5.流程测试应保证流程流向能按设计的流程图走,如一个流程结束后才能出下个流程,这时应保证上个流程结束后才能出下个流程,而且上个流程的任务必须是结束状态.测试方法可以用列举法,把所有的情况列举出来后逐步测试.
6.对有可能引起纠纷的业务须重点测试,维护中心形象.(如:余额查询,个人明细查询结息等业务)
7.测试系统性能时应该制定性能测试计划,出具性能测试报告.

如何编写测试用例

2. 如何编写测试用例?

随着中国软件业的日益壮大和逐步走向成熟,软件测试也在不断发展。从最初的由软件编程人员兼职测试到软件公司组建独立专职测试部门。测试工作也从简单测试演变为包括:编制测试计划、编写测试用例、准备测试数据、编写测试脚本、实施测试、测试评估等多项内容的正规测试。我们公司一直使用日事清来完成软件测试的编写、执行等工作。通过日事清看板按照项目、部门、时间等维度组织团队工作清单,梳理团队任务,创建团队工作计划,让团队工作可视化。建立在看板的任务会落实到人,这些任务会自动分解至团队相关成员的个人日程中去,让个人的日程和团队的工作安排打通,实时跟进。通过这样的方式,使团队有计划、有反馈、有总结、有调整,基于此就形成一个完整的“戴明环”,保证了测试团队的效率和质量。
软件测试的重要性是毋庸置疑的。但如何以最少的人力、资源投入,在最短的时间内完成测试,发现软件系统的缺陷,保证软件的优良品质,则是软件公司探索和追求的目标。每个软件产品或软件开发项目都需要有一套优秀的测试方案和测试方法。
影响软件测试的因素很多,例如软件本身的复杂程度、开发人员(包括分析、设计、编程和测试的人员)的素质、测试方法和技术的运用等等。因为有些因素是客观存在的,无法避免。有些因素则是波动的、不稳定的,例如开发队伍是流动的,有经验的走了,新人不断补充进来;一个具体的人工作也受情绪等影响,等等。如何保障软件测试质量的稳定?有了测试用例,无论是谁来测试,参照测试用例实施,都能保障测试的质量。可以把人为因素的影响减少到最小。即便最初的测试用例考虑不周全,随着测试的进行和软件版本更新,也将日趋完善。
因此测试用例的设计和编制是软件测试活动中最重要的。测试用例是测试工作的指导,是软件测试的必须遵守的准则。更是软件测试质量稳定的根本保障。

3. 编写测试用例常用的五种方法

一,等价类法。
  
       此方法多适用于输入的参数存在有效规则和无效规则;
  
 其运用步骤1,罗列有效无效规则,绘制有效无效规则表;如下图注册用户时用户名的有效无效规则表:
                                          
 第2步,构造数据,根据有效无效规则构造一些测试数据;
  
 其中构造数据需遵从两个规则:
  
 1,一条有效数据尽可能多的包含有效规则,目的是为了减少用例的冗余;
  
 2,一条无效数据只能包含一条无效规则,目的是精确定位问题。
  
 第3步,编写测试用例。
  
 用到等价类法通常考虑:长度、组成(数字字母符号等)、是否区分大小写、是否含有空格、是否为空、是否重复、是否检验空格、全角半角输入。
  
 二,边界值法
  
     此种方法适用范围是输入的参数存在边界;比如密码规定长度6到18位;
  
 在这应注意三个点:上点、内点和离点。
  
 上点指边界上的点(比如6或者18);
  
 内点指范围内的点(比如9就在6到18这个范围内);
  
 离点指离边界最近的点(比如5或者7)。
  
 其中取点规则是闭外开内;也就是说闭区间取外面的点,开区间取里面的点。
  
 三,判定表法
  
 适用范围输入的参数存在约束关系,不同的逻辑组合形成不同的结果;比如注册时密码与确认密码之间。
  
 步骤1,将输入的参数转化为条件桩,
  
      2,将输出的结果转化为动作桩,
                                          
     3,会形成2的n次方个条件项(n指条件桩的个数),
  
     4,其中表格中的每一列就是一条测试用例。
  
 四,正交试验法
  
 适用范围:1,输入的参数之间不存在约束关系,
  
             2,输入的参数全部都是正确有效的,
  
             3,不同的逻辑组合形成不同的结果,
  
 其运用步骤,1,将输入的参数转化为因子状态表:
                                          
 2,用字母替换因子状态表中的状态:
                                          
 3,在allpairs文件夹中创建一个新的文本文档xxx.txt;
  
 4.把步骤2中生成字母的因子状态表拷贝到xxx.txt中保存;
  
 5,Ctrl(Windows)/command(Mac本)+R ☞输入cmd回车打开doc窗口;
  
 6,进去allpairs所在路径(cd allpairs的路径 回车);
  
 7,执行allpairs.exe(allpairs xxx.txt>xxx01.txt);
  
 8,打开xxx01.txt把其中Test case的内容拷贝到Excel中;
  
 9,用文字把字母替换回去:
                                          
 10,其中每一行就是一条用例。
  
 五,流程分析法
  
 这类方法先把流程图画出来,然后根据里面的判定框编写测试用例。

编写测试用例常用的五种方法

4. 如何写测试用例

对各个功能模块进行测试点分析,提取测试点再堆测试点进行用例编写。

比如对PC端QQ账号的登录模块,提取测试点就有:
①正常登陆;
②账号为空时点击登录;
③密码为空时点击登录;
④账号密码都为空时点击登录;
⑤密码错误时点击登录 ;
⑥找回密码功能是否有效;
⑦记住密码功能是否有效;
⑧自动登录功能是否有效。


编写测试用例该注意:
①根据项目的实际情况设计测试用例表格;
②用例格式不要生搬硬套;
③根据具体情况编写。

5. 如何写测试用例

编写测试用例需要有以下几点:
1、 测试用例编号
  ◇ 规则:编号具有唯一性、易识别性,由数字和字符组合成的字符串
  ◇ 约定:
  系统测试用例:产品编号-ST-系统测试项名-系统测试子项名-XXX
  集成测试用例:产品编号-IT-集成测试项名-集成测试子项名-XXX
  单元测试用例:产品编号-UT-单元测试项名-单元测试子项名-XXX
 2、测试项目
  ◇ 规则:当前测试用例所属测试大类、被测需求、被测模块、被测单元等
  ◇ 约定:
  系统测试用例测试项目:软件需求项 如:测试手机在没有SIM卡的情况下,可以拨打紧急电话
  集成测试用例测试项目:集成后的模块名或接口名 如:测试模块A提供的文件接口
  单元测试用例测试项目:被测试的函数名 如:测试函数int ReadFile(char *pszFileName)
 3、 测试标题
  规则:测试用例的概括简单的描述用例的出发点、关注点,原则上不能重复。
 4、重要级别
  规则
  高:保证系统基本功能、核心业务、重要特性、实际使用频率高的测试用例;
  中:重要程度介于高和低之间的测试用例;
  低:实际使用频率不高、对系统业务功能影响不大的模块或功能的测试用例。
 5、预置条件
  规则:执行当前测试用例需要的前提条件,是后续步骤的先决条件
 6、输入
  规则:用例执行过程中需要加工的外部信息,输入、文件、数据库等
 7、操作步骤
  规则:执行当前测试用例需要经过的操作步骤,保证操作步骤的完整性。
 8、预期输出
  规则:当前测试用例的预期输出结果,包括返回值的内容、界面的响应结果、输出结果的规则符合度等

如何写测试用例

6. 如何写测试用例

问题一:如何才能写好一个软件的测试用例  写好一个软件的测试用例的建议有: 
  1、测试用例名称,也叫测试用例标题,一定要写得简洁、明了,需要用概括的语言描述该用例的出发点和关注点,使得测试人员第一眼看到测试用例名称就能够明白测试用例的目的。用例名称中一般要求不能存在假设性的语句,并且原则上每个用例的名称不能重复。 
  2、预置条件要明确,包括测试环境、测试数据、测试场景。因为许多BUG只有在特定的环境、特定的场景下才可以重现。没有正确的前提条件,就无法进行后面的测试步骤或无法得到预期的结果。 
  3、测试步骤描述要简单、清晰,并且要清楚每一个步骤的描述,比如:第一步,输入用户姓名;第二步,输入登录密码;第三步,用户点击登录。步骤写的明确时就利于提高用例的可操作性。 
  4、用例的预期结果要完整而且清晰,并且要将各个输出的结果写出来,包括:返回值的内容、数据库相关字段的记录、界面的响应结果、输出结果的规则符合度、日志的检查和对其它业务影响的检查。 
  5、测试用例级别要划分清楚,这样在测试执行时有主次之分。 
  6、测试用例的划分也要单一,一个测试用例只检查功能点的一种情况。一个用例检查的情况太多,会导致用例的目的不明确。而且这样组织用例,有利于需求覆盖率的统计。一个功能点我们测试了哪些情况,以及哪些功能点我们在重点测试,一目了然。 
  
   问题二:如何写好一份测试用例  写好一个软件的测试用例的建议有: 1、测试用例名称,也叫测试用例标题,一定要写得简洁、明了,需要用概括的语言描述该用例的出发点和关注点,使得测试人员第一眼看到测试用例名称就能够明白测试用例的目的。 
  
   问题三:写测试用例应该怎么写?我想知道具体的模式。谢谢!  假设一下吧。现在要求你测试一下百度知道的提交回答功能。 
  用例编号:提交问题001(编号通常会根据功能或模块编写) 
  测试目的:验证当用户回答完问题后,可以正常提交答案。(多数是会写需求规格的说明,总之要让人看明白你这条用例是想测什么) 
  测试标题:这个有时候就包含了测试目的,目的是可以不写的,但测试用例标题是必须的。 
  重要级别:像提交回答这条用例,多数会被列为最高级别用例,因为是最基本的功能。往往越是基本的,级别越高。原因在于,如果基本功能都有缺陷,那根本不用测别的功能,版本直接打回。预制条件:1、百度知道运转正常。2、用户已登陆。3、进入了自己想要回答的问题页面。(也就是你做这条测试前必须要有的前提条件) 
  操作步骤:1、将光标点入“我来帮他解答”下的输入栏。 
  2、输入想提交的答案 
  3、点击提交回答 
  4、验证提交后答案是否能显示到当前问题下 
  (输入数据多数时候是合并到操作步骤中的,比如这条里的输入数据就是“答案”) 
  预期结果:1点击提交回答后,页面提示回答成功。2再次查看该问题时,刚刚的答案可以正确显示…… 
  
   问题四:编写测试用例有哪些方法?  你好! 
  1.等价类 
  2.边界值 
  3.错误推测 
  4.因果图 
  5.判定表 
  6.正交实验 
  7.功能图 
  等等,个人感觉前三个最常用了,正交表偶尔用下! 
  复杂业务可能会用到因果图! 
  你可以参考: 360doc/....shtml 
  
   问题五:如何高效编写测试用例  测试用例设计和执行是测试工作的核心,也是工作量最大的任务之一。 
  测试用例(Test Case)目前没有经典的定义。比较通常的说法是:指对一项特定的软件产品进行测试任务的描述,体现测试方案、方法、技术和策略。内容包括测试目标、测试环境、输入数据、测试步骤、预期结果、测试脚本等,并形成文档。 
  测试用例编写准备 
  1 
  从配置管理员处申请软件配置:《需求规格说明书》和《设计说明书》; 
  2 
  根据需求规格说明书和设计说明书,详细理解用户的真正需求,并且对软件所实现的功能已经准确理解,然后着手制订测试用例。 
  测试用例制定的原则 
  1测试用例要包括欲测试的功能、应输入的数据和预期的输出结果。 
  2测试数据应该选用少量、高效的测试数据进行尽可能完备的测试。 
  用例覆盖 
  1正确性测试:输入用户实际数据以验证系统是满足需求规格说明书的要求;测试用 例中的测试点应首先保证要至少覆盖需求规格说明书中的各项功能,并且正常。 
  2容错性(健壮性)测试:程序能够接收正确数据输入并且产生正确(预期)的输出, 输入非法数据(非法类型、不符合要求的数据、溢出数据等),程序应能给出提示 并进行相应处理。把自己想象成一名对产品操作一点也不懂的客户,在进行任意操作。 
  3完整(安全)性测试:对未经授权的人使用软件系统或数据的企图,系统能够控制的程度,程序的数据处理能够保持外部信息(数据库或文件)的完整。 
  4接口间测试:测试各个模块相互间的协调和通信情况,数据输入输出的一致性和正确性。 
  5压力测试:输入10条记录运行各个功能,输入30条记录运行,输入50条记录进行测试。 
  6性能:完成预定的功能,系统的运行时间(主要是针对数据库而言)。 
  7可理解(操作)性:理解和使用该系统的难易程度(界面友好性)。 
  8可移植性:在不同操作系统及硬件配置情况下的运行性。 
  测试方法 
  1边界值分析法:确定边界情况(刚好等于、稍小于和稍大于和刚刚大于等价类边界值),针对我们的系统在测试过程中主要输入一些合法数据/非法数据,主要在边界值附近选取。 
  2等价划分:将所有可能的输入数据(有效的和无效的)划分成若干个等价类。 
  3错误推测:主要是根据测试经验和直觉,参照以往的软件系统出现错误之处。 
  测试用例的填写 
  1一个软件系统或项目共用一套完整的测试用例,整个系统测试过程测试完毕,将实际测试结果填写到测试用例中,操作步骤应尽可能的详细,测试结论是指最终的测试结果(结论为:通过或不通过)。 
  
   问题六:如何编写一个完整全面的测试用例  一、编写测试用例的原则 
  测试用例的重要性是毋庸置疑的,它是软件测试全部过程的核心,是测试执行环节的基本依据。测试用例编写应该遵循的原则: 
  1、测试用例要达到最大覆盖软件系统的功能点。测试工程师应该测试计划编写完成之后,在开发阶段编写测试用例,参考需求规格说明书和软件功能点对每个功能点进行操作上的细化,尽可能趋向最大需求覆盖率。 
  2、测试用例对测试功能点、测试条件、测试步骤、输入值和预期结果应该有准确的定义。 
  3、 测试用例的设计应包括各种类型的测试用例。在设计测试用例的时候,除了满足系统基本功能需求外,还应该考虑各种异常情况、边界情况和承受压力的能力等。 
  4、 测试用例的管理。使用测试用例管理系统对测试用例进行管理。 
  一个好的测试用例应该具有较高的发现某个尚未发现的错误的可能性,而一个成功的测试案例能够发现某个尚未发现的错误,通常一个好的测试案例有以下特性: 
  1、具有高的发现错误的概率 
  2、没有冗余测试和冗余的步骤 
  3、测试是“最佳类别” 
  4、既不太简单也不太复杂 
  5、案例是可重用和易于跟踪的. 
  6、确保系统能够满足功能需求 
  测试用例不可能设计得天衣无缝,也不可能完全满足软件需求的覆盖率,测试执行过程里肯定会发现有些测试路径或数据在用例里没有体现,那么事后该将其补充到用例库里,以方便他人和后续版本的测试。 
  二、如何编写测试用例 
  测试用例的信息有很多,可以根据实际的情况进行增删,一般来说一个优秀的测试用例应该包含以下信息: 
  1、产品相关信息 
  (1)软件产品或项目的名称 
  (2)软件产品或项目的版本 
  (3)功能模块名 
  (4)功能描述 
  (5)测试平台 
  这些信息建议可以在测试案例手工选择。 
  2、基本记录信息 
  (1)测试用例入库者 
  (2)测试用例入库时间 
  (3)测试用例更新者 
  (4)测试用例更新时间 
  这些信息建议可以由测试案例自动生成。 
  3、测试用例的属性 
  (1)测试用例ID:测试用例的ID(由案例管理系统自动生成,方便跟踪管理) 
  (2)测试用例名称:测试用例的名称 
  (3)测试功能点:测试的功能检查点 
  (4)测试目的:该测试功能点的测试目的 
  (5)测试级别:主路径测试、烟雾测试、基本功能测试、详细功能测试。 
  下面对这几个测试级别进行说明: 
  A、主路径测试:对照需求中重要模块和功能的最主要功能路径,主路径测试为设计探针模块,快速检查程序的可测试性(可测试性还包括安装测试是否成功)的主要依据的测试案例 
  B、烟雾测试:对照需求中所有模块的主要功能路径,主路径测试案例为烟雾测试案例的子集,烟雾测试为做回归测试的主要依据的测试案例。 
  C、基本功能测试:对照需求和总体设计中所有模块和功能的基本功能路径,基本功能测试为测试软件产品的非重要级别模块,书写完全的自动测试脚本的主要依据。 
  D、详细功能测试:对照总体设计中所有模块和功能的功能路径,测试各个模块及功能各个层次,各种类型。详细功能测试案例为对重点模块,易发生错误的模块的主要依据。 
  (6)测试类型:功能测试、边界测试、异常测试、性能测试、压力测试、兼容测试、安全测试、恢复测试、安装测试、界面测试、启动/停止测试、文档测试、配置测试、可靠性测试、易用性测试、多语言测试。 
  (7)预置条件:对测试的特殊条件或配置进行说明 
  (8)测试步骤:详细描述测试过程,案例的操作步骤建议少于15个。 
  (9)预期结果:预期的测试结果 
  三、测试用例设计过程 
  对一个全新的产品来说,首先需要了解的是产品需求文档和产品模块之间的关系。然后需要从需求文档中书写与所有需求相对应的主路径测试案例和烟雾测试案例,这个时......>> 
  
   问题七:如何编写单元测试用例  一、 单元测试的概念 
  单元通俗的说就是指一个实现简单功能的函数。单元测试就是只用一组特定的输入(测试用例)测试函数是否功能正常,并且返回了正确的输出。 
  测试的覆盖种类 
  1.语句覆盖:语句覆盖就是设计若干个测试用例,运行被测试程序,使得每一条可执行语句至少执行一次。 
  2.判定覆盖(也叫分支覆盖):设计若干个测试用例,运行所测程序,使程序中每个判断的取真分支和取假分支至少执行一次。 
  3.条件覆盖:设计足够的测试用例,运行所测程序,使程序中每个判断的每个条件的每个可能取值至少执行一次。 
  4.判定――条件覆盖:设计足够的测试用例,运行所测程序,使程序中每个判断的每个条件的每个可能取值至少执行一次,并且每个可能的判断结果也至少执行一次。 
  5.条件组合测试:设计足够的测试用例,运行所测程序,使程序中每个判断的所有条件取值组合至少执行一次。 
  6.路径测试:设计足够的测试用例,运行所测程序,要覆盖程序中所有可能的路径。 
  用例的设计方案主要的有下面几种:条件测试,基本路径测试,循环测试。通过上面的方法可以实现测试用例对程序的逻辑覆盖,和路径覆盖。 
  二、开始测试前的准备 
  在开始测试时,要先声明一下,无论你设计多少测试用例,无论你的测试方案多么完美,都不可能完全100%的发现所有BUG,我们所需要做的是用最少的资源,做最多测试检查,寻找一个平衡点保证程序的正确性。穷举测试是不可能的。所以现在进行单元测试我选用的是现在一般用的比较多的基本路径测试法。 
  三、开始测试 
  基本路径测试法:设计出的测试用例要保证每一个基本独立路径至少要执行一次。 
  函数说明 :当i_flag=0;返回 i_count+100 
  当i_flag=1;返回 i_count *10 
  否则 返回 i_count *20 
  输入参数:int i_count , 
  int i_flag 
  输出参数: int i_return; 
  代码: 
  1 int Test(int i_count, int i_flag) 
  2 { 
  3 int i_temp = 0; 
  4 while (i_count>0) 
  5 { 
  6 if (0 == i_flag) 
  7 { 
  8 i_temp = i_count + 100; 
  9 break; 
  10 } 
  11 else 
  12 { 
  13 if (1 == i_flag) 
  14 { 
  15 i_temp = i_temp + 10; 
  16 } 
  17 else 
  18 { 
  19 i_temp = i_temp + 20; 
  20 } 
  21 } 
  22 i_count--; 
  23 } 
  21 } 
  22 i_count--; 
  23 } 
  24 return i_temp; 
  25 } 
  1.画出程序控制流程图 
  圈中的数字代表的是语句的行号,也许有人问为什么选4,6,13,8......作为结点,第2行,第3行为什么不是结点,因为选择结点是有规律的。让我们看程序中;第2行,第3行是按顺序执行下来的。直到第4行才出现了循环操作。而2,3行没有什么判断,选择等分支操作,所以我们把2,3,4全部合并成一个结点。其他的也是照这个规则合并,然后就有了上面的流程图。 
  2.计算圈复杂度 
  有了图以后我们要知道到底我们有写多少个测试用例,才能满足基本路径测试。 
  这里有有了一个新概念――圈复杂度 
  圈复杂度是一种为程序逻辑复杂性提供定量测试的软件度量。将该度量用于计算程序的基本独立路径数目。为确保所有语句至少......>> 
  
   问题八:如何写好测试用例的设计心得  先分测试类型,再根据数据流设计测试模块,整理好测试检查点,最后设计点诡异的测试用例 
  
   问题九:测试用例如何写  用例1,输入正确的手机号码,点击获取验证码 预期结果:手机收到验证码 
  用例2,输入错误的手机号码,点击获取验证码 预期结果:提示输入正确的手机号码 
  用例3,输入英文字母,点击获取验证码 预期结果:提示输入正确的手机号码 
  用例4,输入特殊字符,点击获取验证码 预期结果:提示输入正确的手机号码 
  用例5,输入超长字符,点击获取验证码 预期结果:提示输入正确的手机号码 
  用例6,输入正确的验证码,点击确定 预期结果:验证通过 
  用例7,输入错误的验证码,点击确定 预期结果:验证不通过,提示验证码错误 
  用例8,输入特殊字符的验证码,点击确定 预期结果:验证不通过,提示验证码错误 
  用例8,输入超长的验证码,点击确定 预期结果:验证不通过,提示验证码错误 
  纯手打,忘采纳,可以联系854155141继续沟通。

7. 测试用例编写

1.用例编号 
  
   从1开始,按顺序排列下去  
  
  2.测试项目 
  
   当前编写的用例的项目名,可以是测试用例所属大类,被测需求、被测模块、或被测单元。如:编写登录功能的用例时,此处可以填 “登录”
  
  *当前测试用例所属项目,可以区分的更细 
  
  3.用例标题 
  
    对测试用例的简单描述
  
  4.重要级别 
  
 划分三个等级,高、中、低
  
  *一般重要级别高的用例,在一个测试项里不宜出现太多 
  
  5.预置条件 
  
 执行当前用例的需要满足的前提条件。如:修改用户信息,预置条件是:当前用户处于登录状态
  
  6.测试输入 
  
 用例执行时,需要外部的输入信息
  
  7.操作步骤 
  
 用例执行时的具体步骤,要求每一步都描写详细,保证测试人员可以按照此步骤,顺利的执行用例
  
  8.预期结果 
  
 指按操作步骤执行时,预期应该出现的结果,用来与测试结果作比对
  
  9.测试结果 
  
 指按操作步骤,在实际的产品环境(一般是测试环境)中,执行用例时出现的结果与预期结果的对比,若一致,则写OK,否则NG
  
  10.测试人员 
  
 测试用例的执行人员
  
  11.bugID 
  
 用例在实际的产品环境(一般是测试环境)执行时,出现的bug,在bug跟踪系统上记录后,记录在此,便于以后重点测试
  
  1.等价类划分法 
  
 将测试的范围划分为几个互不相交的子集,这几个子集的并集是全集。再分别从每个子集里选取若干的代表作为测试的输入
  
 如:测试商品的价格输入是否有效,限制为不大于9位的全数字。可以用等价类划分为空、输入1到9位数字、输入大于9位数字、输入1到9位的非数字
  
 输入为空:“”(无效等价类)
  
 输入1-9位数字:“0”(有效等价类),“2300”(有效等价类),“000000000”(有效等价类),“120333520”(有效等价类)
  
 输入大于9位数字:“00000000000”(无效等价类)
  
 输入1到9位非数字:“aaa!”(无效等价类)
  
 上面抽取的7个值就是通过等价类划分选出的测试用例。在输入1-9位数字中,选取了多个输入值,因为“0”作为价格有特定的含义。“2300”和“120333520”本质上是一样的,在时间紧的情况下,可只选其一
  
  2.边界值分析法 
  
 边界值分析法一般作为对等价类划分法的补充,边界值来源等价类划分的边界。处于边界附近很容易发生错误,用边界值分析法设计测试用例,对比处于中间范围的值,可以发现更多的问题。
  
 边界值分析法,测试用例的选取为:等于边界值,刚刚大于边界值,刚刚小于边界值,作为完整的测试,还应选取一个中间的值作为测试用例。
  
 如:某项值的输入范围为1≤X≤10,可选取1,2,4,9,10作为测试用例
  
  *用边界值分析法可以对等价类划分法进行补充,在这种情况下,边界值来源等价类划分的边界 
  
  3.错误推测法 
  
 指基于经验或直觉推测出的程序中可能出现的错误,从而有针对性的设计用例
  
 如:可以根据经验推测,支付时,一些支付失败的情况。1.支付时,网络中断 2.支付时,账户余额不足 3.支付时,超过支付时限
  
  4.判定表法 
  
 该方法适用于逻辑判断复杂的场景,通过穷举法列举所有条件组合下可能出现的结果,再对结果进行优化整合
  
 条件桩:列出问题所有条件,不受次序的影响
  
 动作桩:列出所有的可能动作
  
 条件项:列出针对它左列条件的取值。在所有可能情况下的真假值
  
 动作项:列出在条件项的各种取值情况下应该采取的动作
  
 判定表法的一般设计步骤:
  
 1. 确定规则的个数。假如有n个条件,每个条件有两个取值(0,1),故2^n种规则。
  
 2.  列出所有的条件桩和动作桩
  
 3.  填入条件项
  
 4. 填入动作项,得到初始判定表
  
 5.  简化,合并相似规则(相同动作)
  
 如:功率大于50马力且维修记录不全的机器,或已运行10年以上的机器,应给予优先的维修处理。假定,“维修记录不全”和“优先维修处理”均已在别处有更严格的定义,建立判定表
                                          
  *根据给出的例题进行仿写,可加深理解 
  
  5.正交试验法 
  
 在一项试验中,把影响试验结果的量称为试验因素(因子),简称因素。因素可以理解为试验过程中的自变量,试验结果可以看成因素的函数。在试验过程中,每一个因素可以处于不同的状态或状况,把因素所处的状态或状况,称为因素的水平,简称水平。
  
 正交试验法适用于多因素、多水平试验,是一种高效率的试验设计方法。
  
 用正交试验设计方法设计测试用例时主要包括以下步骤:
  
 1. 确定因素
  
 因素是指对待测功能点有影响的变量。如:判定表法中的条件桩。
  
 2. 确定因素的取值范围或集合(该步是为步骤3做准备的)
  
 因素的取值范围是指确定每个因素的可能取值,为每个因素的水平数确定作准备。
  
 3. 确定每个因素的水平
  
 根据因素的取值范围或集合,采用等价类划分、边界值分析以及其他软件测试技术,在每个因素的取值范围或集合内挑选出有有代表性的测试值。
  
 (4)  选择正交表
  
 根据确定的因素k和水平m ,计算出行数L,再选择适合的正交表。
  
 行数的计算:
  
   (1)各因素的水平数相等 ,称作单一水平正交表   L=K*(m-1)+1,如3因素,2水平,L=4,表示为:L4(2^3)
  
   (2)因素有多种水平数,称作混合水平正交表     L=∑(m-1)+1,如3因素3水平,2因素2水平,L=3*(3-1)+2*(2-1)+1=9,表示为:L9(3^3*2^2)
  
 正交表的选择:
  
  (1)单一水平正交表:
  
 如果存在试验次数等于L,并且水平数大于等于m、因素数大于等于k的正交表,那刚好可以套用现有的正交表。如果不存在试验次数等于L的正交表,那就得找出满足试验次数大于L,并且水平数大于等于m、因素数大于等于k的正交表。如:行数(1)的计算,可选择L4(3因素2水平)
  
  (2)混合水平正交表:
  
 如果存在试验次数等于L,并且水平数大于等于max(m1,m2,m3…)、因素数大于等于(k1+k2+k3+…)的正交表,刚好也可以套用现有的正交表
  
 如果不存在试验次数等于L的正交表,就要找出满足试验次数大于L,并且水平数大于等于max(m1,m2,m3…)、因素数大于等于(k1+k2+k3+…)的正交表。如:行数(2)的计算,可选择L16b(5因素4水平)
  
 当有2个或2个以上正交表可以被选择时,选取原则是选试验次数最少的那个正交表。
  
  练习: 
                                                                                  
 Dr. Genichi Taguchi 设计的正交表: Orthogonal Arrays 
  
  测试用例的几种常见设计方法 - 51Testing软件测试网 
  
  测试用例设计方法 
  
  测试用例设计方法--正交试验法详解(三) - cmriqa的个人空间  
  
  测试用例设计之正交法 - CSDN博客 
  
  测试用例设计方法 - Molrang - 博客园

测试用例编写

8. 如何编写有效的测试用例

 测试用例是测试执行的指导;是测试执行的实体,是测试方法、测试质量、测试覆盖率的重要依据和表现形式;是团队内部交流以及交叉测试的依据,便于测试工作的跟踪管理,包括测试执行的进度跟踪,测试质量的跟踪,以及测试人员的工作量的跟踪和考核;在测试执行工作开展前完成测试用例的编写,可以避免测试工作开展的盲目性;测试用例是说服用户相信产品质量的最佳依据,同时也可以提供给客户作为项目验收的依据。以上可以看出测试用例在整个测试工作中的地位和作用,以下编写了关于如何写好测试用例的一些个人建议:
  1、要参与需求评审,评审需求的过程实际也是熟悉业务需求的过程。只有对业务比较熟悉了,才能更好的,更充分的设计出高质量的测试用例。
  2、要多阅读文档,其中包括产品策划书、规格说明书、需求文档,接口文档等,我们可以收集一切相关的文档来帮助理解所要测试的产品需要完成的目标。
  3、尽量多参加项目组内的会议。比如需求讨论、设计讨论、计划讨论等会议,这样在讨论过程中也能加深对产品的理解。
  4、要善于沟通,多和客户、开发、测试人员进行沟通。遇到不明确的问题、有疑问的需求,可以咨询项目负责人或者客户等。这样才能提前解决需求理解偏差等。
  5、测试用例名称,也叫测试用例标题,一定要写得简洁、明了,需要用概括的语言描述该用例的出发点和关注点,使得测试人员第一眼看到测试用例名称就能够明白测试用例的目的。用例名称中一般要求不能存在假设性的语句,并且原则上每个用例的名称不能重复。
  6、预置条件要明确,包括测试环境、测试数据、测试场景。因为许多BUG只有在特定的环境、特定的场景下才可以重现。没有正确的前提条件,就无法进行后面的测试步骤或无法得到预期的结果。
  7、测试步骤描述要简单、清晰,并且要清楚每一个步骤的描述,我们平常的鼠标和键盘的每一动作都代表一个操作步骤。比如:第一步,输入用户姓名;第二步,输入登录密码;第三步,用户点击登录。步骤写的明确时就利于提高用例的可操作性。
  8、用例的预期结果要完整而且清晰,并且要将各个输出的结果写出来,包括:返回值的内容、数据库相关字段的记录、界面的响应结果、输出结果的规则符合度、日志的检查和对其它业务影响的检查。
  9、测试用例级别要划分清楚,这样在测试执行时有主次之分。
  11、评审用例很关键,因为经过测试用例的评审可以发现:用例设计的结构安排是否清晰、合理;是否覆盖所有的需求功能点;是否存在冗余的用例;是否具有很好的可执行性;是否存在对需求理解上的差异等。评审需要项目经理、需求分析人员、架构设计人员、开发人员和测试人员都参与,也需要客户方的开发人员和测试人员。
  12、召开测试用例评审会议,在会议上大家可以提问互答,对模糊不清的地方可以进行讨论。这样可以站在不同的角度,站在很多人的思维和思考方式下设计用例。
  13、站在用户的角度来设计用例,以用户的使用逻辑及操作习惯为出发点,从用户实际可能的操作场景考虑,一定要脱离系统提供功能。
  14、测试用例需要不断更新和维护,不要认为测试用例的设计是一个阶段,测试用例的设计也需要迭代,在软件开发的不同的阶段都要回来重新审视和完善测试用例。并且需要在测试执行时利用发散思维不断的构造和完善测试用例。
  总的来说,写出好的测试用例需要我们不断的积累和完善,需要我们不断的在工作中去总结。写出好的测试用例没有简单的公式或规定可以遵循。即使是多年以来在测试方面感兴趣的人也很难做到这一点。