`

(转)优秀的测试用例1

阅读更多
http://www.searchtb.com/2011/03/good_test_cases.html

测试工程师有一样很重要的工作就编写测试用例。测试用例是对需求的另一种描述,它能引导大家进一步加深对系统的理解和对特性的全面关注,从而帮助产品和开发重新审核需求的合理性和一致性,所以应该是测试工程师最重要的一项产出。一般的测试用例分为输入,行为,和希望结果三个部分。这三个部分通常的测试用例都能满足,但是怎样的测试用例才能算上优秀的测试用例呢?基于以往之测试经验,我总结了优秀测试用例的几个特点。

1:正确性:毫无疑问,测试用例必须是需求的正确描述。但是我们往往忘记了多想一步:这是用户正确需要的吗?我曾经有个一个失败的testcase,当一个条件输入异常的时候系统返回-1给前端接口,然后前端返回错误信息,这是当时对异常的处理需求,可是如果多想一步,当一个条件异常的时候难道我们不能返回满足部分条件的结果给用户吗?让用户的体验更加良好吗?

2:完整性:就测试用例本身而言,是无穷尽的,只要是键盘的任意组合都可以算作测试用例。而一个优秀的测试工程师就是从无穷中找到最能保证质量,最能发现bug的测试用例出来,发现无穷的最小集,通常功能测试用例的找寻方法有等价类和边界值是最简单的方法,建议结合使用,先划分等价类,再把等价类中的边界值找出来。我见过很多在=和>=之间徘徊的bug。正交法出来的用例一般太多,所以需要测试工程师在正交法的结果中再做组合,建议结合错误定位法减少用例的执行。状态图在数据统计,结算中的使用概率最高。每个状态和流程都需要一一考虑正常和异常的分支,正常的流程一个靠谱的开发能自己保证,但是异常的分支很少有开发考虑清楚,这就是体现测试工程师价值的地方了。但是完整性绝不仅仅是功能测试,除了功能测试之外,常见的还有性能测试,安全测试,兼容性测试,安装友好测试,地域语言测试和用户体验测试(usability)。

3:输入具体:对于这三个部分我们都希望它是固定的,具体的,比如输入框的输入,我们可以写成具体“诺基亚”,但是不要写“正确的输入”,或者“中文的输入”,这些都会导致测试用例的不确定性。模糊的输入应该在具体输入的上一级结构,作为测试的思路和分类使用。

4:用词无歧义:很多词在不同场景会有不同的含义,比如价格一词在不同的表中就代表不同的价格,甚至在同一表中也有原始价格和卖出价格,所以应该尽量具体的描述关键词的具体信息,如果能贴上专用的id和原始表中的item会对避免歧义有很大的帮助。

5:用例细化:输入的一种组合,或者一条流程线对应一个测试用例,尽量不要在一个用例中融和多种情况,在自动化测试的脚本中为了提高效率我们会在一个自动化脚本中融入各种情况的输入,然后一个动作,所有的输出一次生成,针对这种情况,建议在脚本中对各种输入对应的案例一一备注说明,运行失败的时候也方便新人定位问题。

6:判断点准确无歧义:我经常看到这样的检查点:“结果正确”,“速度合理”,这些检查点对其他人没有丝毫的帮助。所以应该尽量做出让机器也能识别的检查点,比如输出“8”,或者“rt<30m”。

7:合理区分优先级:在Bugfree中有4个级别的优先级,从1到4,1表示最重要的测试用例,4表示最不重要的测试用例。不同的缺陷管理平台对优先级的定义会有不同,但是都会有优先级的概念。在时间紧张的情况下,优先级的作用会特别大,我们会优先执行比较重要,对系统功能,用户体验影响大的测试用例,将级别比较低的测试用例留在后期或者指派给一些新人来执行。

加分点:

1:用例自动化:有自动化脚本的地址能够一一对应,对于淘宝的bugfree就已经和自动化框架mmt打通,通过测试用例可以直接链接到脚本,方便对用例的理解。

2:记录每轮的测试结果:对于有些功能的测试用例,结果只是简单的pass我们不需要记录,但是对于性能测试这些结果不确定的测试用例,如果能保留每次测试的结果对于之后的测试是很有帮助的。对于fail的部分用例,如果能和bug产生一一对应关系对之后的回归也产生很大的便利。

3:对检查点进行逻辑说明:很多用例有了结果的检查点,但是为什么是这个结果,对于新人来说必须重新翻看需求或者设计文档才能理解。尤其对于算法的测试,理解需求和逻辑是一个比较痛苦的过程,如果能够对每个结果进行一些备注和逻辑上的说明,会和方便自己今后以及新人对用例的理解。

以上是对测试用例特性的一些总结,真正编写测试用例的时候,mm图由上到下的树形结构会对测试用例的结构和思路提供很大的帮助,在测试用例评审的时候也方便展示和说明,所以强烈推荐作为附件上传。而且对系统越加深入的了解越能写出完善的测试用例,很多开发错误的理解测试工程师只需要知道需求就可以了,不需要对程序有代码级别的了解,但是无数的实践证明测试工程师越了解系统的设计,编码的逻辑越能发现潜在的bug和风险。Unit test通常由开发完成比较高效,但是Integration Test开始就必须有测试工程师开始真正介入,这期间能发现很多潜在的问题,如果把风险全部留到System Test的阶段风险是很大的,大量case的回归和问题的定位都会变得更加复杂,成本更加的巨大。所以在时间允许的情况下毫无疑问是前期的测试越完善整体效率越高
分享到:
评论

相关推荐

    测试用例实例++非常详细

    测试用例示例测试用例示例测试用例示例测试用例示例测试用例示例测试用例示例测试用例示例测试用例示例测试用例示例测试用例示例测试用例示例

    软件测试+测试用例+测试用例精讲+测试用例实战+教学实例研究+经典用例举例

    对于测试工程师而言,一个优秀的测试用例资源合集就像是一把锋利的剑,能够助力他们披荆斩棘,高效地完成测试任务。这份合集不仅包含了丰富多样的测试用例,还提供了清晰的测试步骤和预期结果,使得测试工作更加系统...

    测试用例设计

    如果问测试工程师测试用例如何编写,就好象是问程序员如何编写代码一样,每个人都会给出不同的方法,但是实用的测试用例却象优秀的程序一样困难。 本章针对上面的问题,主要讲解在企业实际工作中,如何有效...

    测试用例的书写方式和测试模板大全

    一个优秀的测试用例,应该包含以下信息: 1 ) 软件或项目的名称 2 ) 软件或项目的版本(内部版本号) 3 ) 功能模块名 4 ) 测试用例的简单描述,即该用例执行的目的或方法 5 ) 测试用例的参考信息(便于跟踪和...

    软件测试用例,用例写法

    如果问测试工程师测试用例如何编写,就好象是问程序员如何编写代码一样,每个人都会给出不同的方法,但是实用的测试用例却象优秀的程序一样困难。 本章针对上面的问题,主要讲解在企业实际工作中,如何有效划分测试...

    软件测试用例的编写设计方法

    如果问测试工程师测试用例如何编写,就好象是问程序员如何编写代码一样,每个人都会给出不同的方法,但是实用的测试用例却象优秀的程序一样困难。 本章针对上面的问题,主要讲解在企业实际工作中,如何有效划分测试...

    软件测试用例之性能测试用例

     如果问测试工程师测试用例如何编写,就象是问程序员如何编写代码得到的答案一样,每个人都会给出不同的编写方法,但实用的测试用例却象优秀的程序一样难以编写。 目前国内,测试工程师却时常要面对“已经延期几倍...

    第-章-软件自动测试和测试用例生成优秀文档.ppt

    第-章-软件自动测试和测试用例生成优秀文档.ppt

    Web登录界面测试用例设计

    设计登录Web登录界面测试用例设计软件测试1、一个好的用例的表述要点,即用例中应当包含的信息一个优秀的测试用例,应该包含以下信息:1)软件或项目的名称2)软件或项目的版本(内部版本号)3)功能模块名4)测试用例的...

    测试用例模板和书籍等

    集成测试用例的模板,设计方法,本资源主要介绍了如何设计一个优秀的单元测试用例

    软件测试中如何来评价一个测试用例是好的

    但没有一个测试用例在任何方面都很优秀。人们软件测试中如何来评价一个测试用例是好的设计好的测试用例是一门复杂的艺术。其复杂性有三个原因:测试用例能帮我们发现信息。不同类型的测试对不同类型的信息有效。可以...

    第-章-软件测试用例的设计优秀文档.ppt

    第-章-软件测试用例的设计优秀文档.ppt

    单元测试的代码覆盖率至少80%

    一大早,一个年轻的程序员问大师:“我准备写一些单元测试用例。代码覆盖率应该达到多少为好?”大师回答道:“不要考虑代码覆盖率,只要写出一些好的测试用例即可。”  一大早,一个年轻的程序员问大师:  “我准备...

    测试用例编写规范----超级经典

    详细的叙述了设计测试用例时所需要了解的知识,以便能写出优秀的测试用例。

    测试用例之性能测试用例

    如果问测试工程师测试用例如何编写,就象是问程序员如何编写代码得到的答案一样,每个人都会给出不同的编写方法,但实用的测试用例却象优秀的程序一样难以编写。目前国内,测试工程师却时常要面对“已经延期几倍计划...

    软件测试中如何设计编制软件测试用例

    软件测试中如何设计编制软件测试用例一、测试用例是软件测试的核心软件测试的重要性是毋庸置疑的。但如何以最少的人力、资源投入,在最短的时间内完成测试,发现软件系统的缺陷,保证软件的优良品质,则是软件公司...

    如何设计编制软件测试用例

    一、测试用例是软件测试的核心 软件测试的重要性是毋庸置疑的。但如何以最少的人力、资源投入,在最短的时间内完成测试,发现软件系统的缺陷,保证软件的优良品质,则是软件公司探索和追求的目标。每个软件产品或...

    如何编写干净的单元测试用例

    火龙果软件工程技术中心 篇首语本文假设读者已经熟悉单元测试及JUnit工具的使用,如果对单元测试及JUnit尚不了解请先学习单元测试及...纵览网上流行的优秀开源框架,无一不提供完整的单元测试用例。Spring框架便是

    对于软件测试用例的设计和编写

    测试工作也从简单测试演变为包括:编制测试计划、编写测试用例、准备测试数据、编写测试脚本、实施测试、测试评估等多项内容的正规测试。测试方式则由单纯手工测试发展为手工、自动兼之,并有向第三方专业测试公司...

Global site tag (gtag.js) - Google Analytics