`
kuwoleft
  • 浏览: 1075182 次
文章分类
社区版块
存档分类
最新评论

敏捷测试用例设计

 
阅读更多

敏捷测试用例设计

陈能技

2007-9-20

敏捷宣言:

个体和交互比过程和工具更有价值;

能工作的软件比全面的文档更有价值;

顾客的协作比合同谈判更有价值;

及时响应变更比遵循计划更有价值。

- www.agilemanifesto.org

并非每个企业都能严格按敏捷的相关开发方法进行项目管理,例如测试驱动、XPSCRUM等。也并非都需要按这些方式管理才能实现敏捷。只要我们理解了敏捷的原则和精髓,我认为很多方法、很多地方都可以应用敏捷的思想,实现敏捷的管理。

测试用例的设计是其中一项。

测试用例的粒度

测试用例可以写得很简单,也可以写得很复杂。最简单的测试用例是测试的纲要,仅仅指出要测试的内容,如探索性测试(Exploratory Testing)中的测试设计,仅会指出需要测试产品的哪些要素、需要达到的质量目标、需要使用的测试方法等。而最复杂的测试用例就像飞机维修人员使用的工作指令卡一样,会指定输入的每项数据,期待的结果及检验的方法,具体到界面元素的操作步骤,指定测试的方法和工具等等。

测试用例写得过于复杂或过于详细,会带来两个问题:一个是效率问题,一个是维护成本问题。另外,测试用例设计得过于详细,留给测试执行人员的思考空间就比较少,容易限制测试人员的思维。

测试用例写得过于简单,则可能失去了测试用例的意义。过于简单的测试用例设计其实并没有进行“设计”,只是把需要测试的功能模块记录下来而已,它的作用仅仅是在测试过程中作为一个简单的测试计划,提醒测试人员测试的主要功能包括哪些而已。测试用例的设计的本质应该是在设计的过程中理解需求,检验需求,并把对软件系统的测试方法的思路记录下来,以便指导将来的测试。

大多数测试团队编写的测试用例的粒度介于两者之间。而如何把握好粒度是测试用例设计的关键,也将影响测试用例设计的效率和效果。我们应该根据项目的实际情况、测试资源情况来决定设计出怎样粒度的测试用例。

软件是开发人员需要去努力实现敏捷化的对象,而测试用例则是测试人员需要去努力实现敏捷化的对象。要想在测试用例的设计方面应用“能工作的软件比全面的文档更有价值”这一敏捷原则,则关键是考虑怎样使设计出来的测试用例是能有效工作的。

基于需求的测试用例设计

基于需求的用例场景来设计测试用例是最直接有效的方法,因为它直接覆盖了需求,而需求是软件的根本,验证对需求的覆盖是软件测试的根本目的。

要把测试用例当成“活”的文档(Effective Software Testing : 50 Specific Ways to Improve Your Testing – Elfriede Dustin),因为需求是“活”的、善变的。因此在设计测试用例方面应该把敏捷的“及时响应变更比遵循计划更有价值”这一原则。

不要认为测试用例的设计是一个阶段,测试用例的设计也需要迭代,在软件开发的不同的阶段都要回来重新审视和完善测试用例。

测试用例的评价

测试用例设计出来了,质量如何,如何提高测试用例设计的质量?就像软件产品需要通过各种手段来保证质量一样,测试用例的质量保证也需要综合使用各种手段和方法。

测试用例的检查可以有多种方式,但是最敏捷的应当属临时的同行评审。我认为同行评审,尤其是临时的同行评审,应该演变成类似结对编程一样的方式。从而体现敏捷的“个体和交互比过程和工具更有价值”,要强调测试用例设计者之间的思想碰撞,通过讨论、协作来完成测试用例的设计,原因很简单,测试用例的目的是尽可能全面地覆盖需求,而测试人员总会存在某方面的思维缺陷,一个人的思维总是存在局限性。因此需要一起设计测试用例。

除了同行评审,还应该尽量引入用户参与到测试用例的设计中来,让他们参与评审,从而体现敏捷的“顾客的协作比合同谈判更有价值”这一原则。这里顾客的含义比较广泛,关键在于你怎样定义测试,如果测试是对产品的批判,则顾客应该指最终用户或顾客代表(在内部可以是市场人员或领域专家);如果测试是指对开发提供帮助和支持,那么顾客显然就是程序员了。

因此,参与到测试用例设计和评审中来的人除了测试人员自己和管理层外,还应该包括最终用户或顾客代表,还有开发人员。

测试用例数据生成的自动化

在测试用例设计方面最有希望实现自动化的,要当属测试用例数据生成的自动化了。因为设计方面的自动化在可想象的将来估计都很难实现,但是数据则不同,数据的组合、数据的过滤筛选、大批量数据的生成等都是计算机擅长的工作。

很多时候,测试用例的输入参数有不同的类型、有不同的取值范围,我们需要得到测试用例的输入参数的不同组合,以便全面地覆盖各种可能的取值情况。但是全覆盖的值域可能会不可思议地广泛,我们又需要科学地筛选出一些有代表性的数据,以便减轻测试的工作量。在这方面可利用正交表设计数据或成对组合法设计数据。

可利用一些工具,例如TConfig、PICT等来产生这些数据。

在性能测试、容量测试方面,除了设计好测试用例考虑如何测试外,还要准备好大量的数据。大量数据的准备可以使用多种方式:编程生成、SQL语句生成(基于数据库的数据)、利用工具生成。

工具未必能生成所有满足要求的数据,但是却是最快速的,编程能生成所有需要的数据,但是可能是最复杂、最慢的方式。所以应该尽量考虑使用一些简单实用的工具,例如DataFactory等。

分享到:
评论

相关推荐

    XMind2TestCase基于python实现,提供了一个高效测试用例设计的解决方案+源代码+文档说明

    > **XMind2TestCase** 工具,提供了一个高效测试用例设计的解决方案! ### 一、背景 软件测试过程中,最重要、最核心就是测试用例的设计,也是测试童鞋、测试团队日常投入最多时间的工作内容之一。 然而,传统的...

    问题驱动的软件测试设计:第1章测试用例设计面临的挑战

    测试用例设计是整个软件测试过程中非常重要的测试活动,需求规格说明是测试人员开展测试设计的主要参考输入。而在测试实践中基于需求规格说明得到的测试用例,在测试覆盖率、测试效率、测试有效性和测试质量等方面的...

    在敏捷测试中如何设计软件测试用例

    敏捷宣言:个体和交互比过程和工具更有价值;能工作的软件比全面的文档更有价值;顾客的协作比合同谈判更有价值;...  测试用例的设计是其中一项。  测试用例的粒度  测试用例可以写得很简单,也可以写得很复杂

    TMQ第四十期沙龙活动-接口测试用例设计

    [The.Pragmatic.Bookshelf开发丛书-敏捷开发回顾:使团队更强大].Agile.Retrospectives.Making.Good.Teams.Great.Esther.Derby.and.Diana.Larsen.文字版[www.ed2kers.com]

    问题驱动的软件测试设计:第5章基于风险的测试设计

    测试用例设计是整个软件测试过程中非常重要的测试活动,需求规格说明是测试人员开展测试设计的主要参考输入。而在测试实践中基于需求规格说明得到的测试用例,在测试覆盖率、测试效率、测试有效性和测试质量等方面的...

    问题驱动的软件测试设计:第4章基于经验的测试设计

    测试用例设计是整个软件测试过程中非常重要的测试活动,需求规格说明是测试人员开展测试设计的主要参考输入。而在测试实践中基于需求规格说明得到的测试用例,在测试覆盖率、测试效率、测试有效性和测试质量等方面的...

    问题驱动的软件测试设计:第2章基于规格说明的测试设计

    测试用例设计是整个软件测试过程中非常重要的测试活动,需求规格说明是测试人员开展测试设计的主要参考输入。而在测试实践中基于需求规格说明得到的测试用例,在测试覆盖率、测试效率、测试有效性和测试质量等方面的...

    问题驱动的软件测试设计:第3章基于质量特性的测试设计

    测试用例设计是整个软件测试过程中非常重要的测试活动,需求规格说明是测试人员开展测试设计的主要参考输入。而在测试实践中基于需求规格说明得到的测试用例,在测试覆盖率、测试效率、测试有效性和测试质量等方面的...

    问题驱动的软件测试设计:第0章前言

    测试用例设计是整个软件测试过程中非常重要的测试活动,需求规格说明是测试人员开展测试设计的主要参考输入。而在测试实践中基于需求规格说明得到的测试用例,在测试覆盖率、测试效率、测试有效性和测试质量等方面的...

    敏捷开发编写高质量Java代码(下)

    设计阶段需要具 体考虑要对哪些代码单元进行测试,被测单元之间的关系,测试策略,以及单元测试用例设计等,并终输出《单元测试用例设计》文档,用来指导具体的单元测试 执行。在用例设计中,通过对代码单元输入和...

    敏捷开发模式下的利刃:探索性测试(ET)--测试用例如何设计?

    本文来自于51testing,文章主要...这是一种强调个人自由与责任的测试方法,让独立测试人员可以借用不断的学习来改善测试的规划与测试的执行,而在测试的过程中也会同时改善测试案例达到相辅相成的效果。它的本质是测试

    软件测试之前的“战略部署”

    软件测试之前的“战略部署”软件测试... 但是,仍然有不少的测试团队和测试人员认为没有必要编写和设计测试用例,尤其是当敏捷开始盛行后,很多人更是认为编写和设计测试用例是浪费时间。 为什么要写测试用例? 测试

    一Google中国测试经理谈敏捷测试

    对于测试组织来说,敏捷方法带来的快速迭代却让测试本身变得困难起来:缺乏“足够详细的文档”,缺乏“仔细设计用例的时间”等等。在本演讲中,段念将与大家探讨如何在敏捷过程中进行测试。 作者介绍: 段念,...

    接口自动化测试

    (1)能够胜任测试工程师日常工作的职责:测试计划的书写、测试用例的设计/编写、测试过程管理、缺陷管理与维护、每日构建、测试验收、测试报告的书写等。 (2)站在测试的角度,从测试驱动角度驱动管理项目。满足...

    测试之前的“战略部署”

    但是,仍然有不少的测试团队和测试人员认为没有必要编写和设计测试用例,尤其是当敏捷开始盛行后,很多人更是认为编写和设计测试用例是浪费时间。为什么要写测试用例?测试用例的创建至少会有两个用途或目的:(1)...

    软件测试技术与实践培训班

    擅长自动化测试、测试用例设计等。 课程安排 第一天 提高业务功能测试能力 案例设计方法实践 等价类划分 边界值分析 场景法等 因果图 测试过程文档 测试计划 测试说明 问题报告 测试报告 测试需求分析 学院派功能...

Global site tag (gtag.js) - Google Analytics