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

1.测试用例的粒度
测试用例可以写得很简单,也可以写得很复杂。最简单的测试用例是测试的纲要,仅仅指出要测试的内容,如探索性测试(Exploratory Testing)中的测试设计,仅会指出需要测试产品的哪些要素、需要达到的质量目标、需要使用的测试方法等。而最复杂的测试用例就像飞机维修人员使用的工作指令卡一样,会指定输入的每项数据,期待的结果及检验的方法,具体到界面元素的操作步骤,指定测试的方法和工具等等。
测试用例写得过于复杂或过于详细,会带来两个问题:一个是效率问题,一个是维护成本问题。另外,测试用例设计得过于详细,留给测试执行人员的思考空间就比较少,容易限制测试人员的思维。
测试用例写得过于简单,则可能失去了测试用例的意义。过于简单的测试用例设计其实并没有进行“设计”,只是把需要测试的功能模块记录下来而已,它的作用仅仅是在测试过程中作为一个简单的测试计划,提醒测试人员测试的主要功能包括哪些而已。测试用例的设计的本质应该是在设计的过程中理解需求,检验需求,并把对软件系统的测试方法的思路记录下来,以便指导将来的测试。
大多数测试团队编写的测试用例的粒度介于两者之间。而如何把握好粒度是测试用例设计的关键,也将影响测试用例设计的效率和效果。我们应该根据项目的实际情况、测试资源情况来决定设计出怎样粒度的测试用例
软件是开发人员需要去努力实现敏捷化的对象,而测试用例则是测试人员需要去努力实现敏捷化的对象。要想在测试用例的设计方面应用“能工作的软件比全面的文档更有价值”这一敏捷原则,则关键是考虑怎样使设计出来的测试用例是能有效工作的。

2。 基于需求的测试用例设计
基于需求的用例场景来设计测试用例是最直接有效的方法,因为它直接覆盖了需求,而需求是软件的根本,验证对需求的覆盖是软件测试的根本目的。
要把测试用例当成“活”的文档(Effective Software Testing : 50 Specific Ways to Improve Your Testing – Elfriede Dustin),因为需求是“活”的、善变的。因此在设计测试用例方面应该把敏捷的“及时响应变更比遵循计划更有价值”这一原则
不要认为测试用例的设计是一个阶段,测试用例的设计也需要迭代,在软件开发的不同的阶段都要回来重新审视和完善测试用例

3。 测试用例的评审
测试用例设计出来了,质量如何,如何提高测试用例设计的质量?就像软件产品需要通过各种手段来保证质量一样,测试用例的质量保证也需要综合使用各种手段和方法。
测试用例的检查可以有多种方式,但是最敏捷的应当属临时的同行评审。我认为同行评审,尤其是临时的同行评审,应该演变成类似结对编程一样的方式。从而体现敏捷的“个体和交互比过程和工具更有价值”,要强调测试用例设计者之间的思想碰撞,通过讨论、协作来完成测试用例的设计,原因很简单,测试用例的目的是尽可能全面地覆盖需求,而测试人员总会存在某方面的思维缺陷,一个人的思维总是存在局限性。因此需要一起设计测试用例。
除了同行评审,还应该尽量引入用户参与到测试用例的设计中来,让他们参与评审,从而体现敏捷的“顾客的协作比合同谈判更有价值”这一原则。这里顾客的含义比较广泛,关键在于你怎样定义测试,如果测试是对产品的批判,则顾客应该指最终用户或顾客代表(在内部可以是市场人员或领域专家);如果测试是指对开发提供帮助和支持,那么顾客显然就是程序员了。
因此,参与到测试用例设计和评审中来的人除了测试人员自己和管理层外,还应该包括最终用户或顾客代表,还有开发人员。

4。 测试用例数据生成的自动化
在测试用例设计方面最有希望实现自动化的,要当属测试用例数据生成的自动化了。因为设计方面的自动化在可想象的将来估计都很难实现,但是数据则不同,数据的组合、数据的过滤筛选、大批量数据的生成等都是计算机擅长的工作。
很多时候,测试用例的输入参数有不同的类型、有不同的取值范围,我们需要得到测试用例的输入参数的不同组合,以便全面地覆盖各种可能的取值情况。但是全覆盖的值域可能会不可思议地广泛,我们又需要科学地筛选出一些有代表性的数据,以便减轻测试的工作量。在这方面可利用正交表设计数据或成对组合法设计数据。
可利用一些工具,例如TConfig、PICT等来产生这些数据。
在性能测试、容量测试方面,除了设计好测试用例考虑如何测试外,还要准备好大量的数据。大量数据的准备可以使用多种方式:编程生成、SQL语句生成(基于数据库的数据)、利用工具生成。
工具未必能生成所有满足要求的数据,但是却是最快速的,编程能生成所有需要的数据,但是可能是最复杂、最慢的方式。所以应该尽量考虑使用一些简单实用的工具,例如DataFactory等

原文地址:https://www.cnblogs.com/yinlili/p/10977560.html

时间: 2024-11-02 13:18:58

在敏捷测试中如何设计用例的相关文章

敏捷测试中发现的一些问题及改进办法

最近产品出现了几个不大不小的问题,时间点却偏偏是在距离产品发布不到一个月!!在解决完问题后,不禁要思考一下:到底哪里出了问题? 下面是对最近出现的问题的反思和一些改进办法: 问题 1:遗漏重要需求 敏捷团队中需求的获取有很多种方式,大体的来源分为: a. 最终客户(需求和反馈) b. 行业标准 c. 竞争产品 d. 团队贡献和创新 e. 其他 我们遇到的问题是有一部分客户对域里的用户权限限制很高,不是我们常用的有域管理员权限,这是我们没有考虑到也从来没接触过的的使用方式,以至于产品根本无法在一些

【tool】报表测试中测试数据设计

在报表测试用例设计中,测试数据是关键.正如Jackie在<进销存系统中的报表测试>中所言,如果希望更有效.更高质量地完成报表测试,就要重视并增加对于数据准备的关注.其实,测试数据也是为测试场景服务的,一个或者一组的测试数据往往是为了验证在某个测试场景下报表是否 能正确的展现统计值.归根结底,测试场景的设计才是关键的关键.在之前的报表分析后,测试用例的基本框架已经完成.接下来我们需要在这个框架上,细化和补 充场景设计,然后通过场景,设计出对应的测试数据. 对于测试数据的设计,我将其粗略地分为3大

敏捷测试的方法和实践

文 / 朱少民 有一次,当开发人员完成当前Sprint 任务的代码之后,测试人员.开发人员和产品经理一起来浏览产品.从头到尾走一遍,产品经理发现了问题,认为需要对功能进行比较大的修改.这时开发人员估计需要两天时间才能完成代码,但测试人员反对这样做,我们本来只有5天测试时间,加上这次新做的功能比较多.开发代码质量不高,验收测试已经很紧张.如果再延迟两天,测试没法完成.产品经理说,你们不是在用敏捷测试方法,应该测得很快,三天应该能完成测试工作啊! 什么是敏捷测试呢?敏捷测试当然不能简单地理解为测得更

探索式测试中的几种误区

探索式测试(Exploratory Testing)是敏捷测试中的重要组成部分,其价值与一般性测试如用户故事测试或者自动化测试不同,它所关注的是“意料之外”的软件缺陷,探索式测试作 为一个研究性.启发性和严肃性并存的测试方法,是一般性测试的重要补充.随着敏捷测试的推广,探索式测试逐渐受到大家的关注和重视.本文主要探讨了测试工 程师在探索式测试方面的一些误区,并尝试纠正这些问题. 误区1:探索式测试是一种测试技术. 探索式测试本身不是一种测试技术,相反,它是一种可以应用于广泛测试技术的方式或态度.

我在华为做敏捷测试的那些流程

一.开发和测试的通性困扰? 面对复杂性(客户):不断地修改计划.不断地增加预算.低劣的产品质量…… 面对复杂性(项目组成员):经常加班到深夜.提交的产品不合格…… 二.敏捷开发中的敏捷测试目的: 敏捷宣言 个体和交互比过程和工具更有价值:能工作的软件比全面的文档更有价值:顾客的协作比合同谈判更有价值:及时响应变更比遵循计划更有价值. 其核心是:以人为本,发挥人的主观能动性. 三.传统测试和华为敏捷测试区分: 3.1.传统的测试 1.守门员:质量保证者,阻止那些不可靠的.无效的.充满BUG的版本发

究竟什么是敏捷测试

时至今日,还讨论这样一个老话题,是否感觉老调重弹?因为两年前(2010年底)时任谷歌中国测试经理的段念先生就写了一篇文章<什么是敏捷软件测试>, 就已经谈到这个话题,“敏捷软件测试更多的是一种理念,而非过程”.在2011年,我自己也写了一篇文章<敏捷测试的思考和新发展>,谈到“在BDD.ATDD和TDD最根本的.共同的思想基础上,构成一个全新的.更完善的敏捷测试框架”.而更早的时候(2010年10月),写了一篇<敏捷测试的方法和实践>,开始的那一小节就在讨论 “什么是敏

自动化测试——敏捷测试的基石

作为被冠以敏捷名称的测试,敏捷测试同样以快为目标.在敏捷测试中,快有三个方面的含义: 团队能够通过测试快速获知系统当前所处的状态,了解距离可工作的软件还有多远: 能够在一个迭代周期中快速完成回归测试和对新功能的测试: 开发工程师能够从持续的测试中得到快速的关于提交代码反馈. 简而言之,敏捷测试要求测试能够测试在短的时间间隔内持续发生且能够在短时间内完成.考虑到纯粹的依赖人工测试基本不可能达到短的时间间隔内持续发生和短时间内完成这两个目标,而自动化测试在执行效率方面具有天然的优势,在敏捷测试中使用

转:你不可不知的敏捷测试-定义,原则,方法和生命周期

随着软件开发过程复杂性的不断增加,客户希望得到新软件的期望周期也越来越短,所以软件测试方法需要不断的发展快速适应新的开发模式,敏捷测试的呼声越来越高,以下是CC先生对敏捷测试的一些思考. 敏捷测试的定义 在CC先生初次遇到敏捷的时候,认为敏捷只是有关于流程和工具,学习了一系列有关于敏捷的流程和自动化测试的工具,随着对敏捷理解的深入,越发能体会到敏捷不仅仅是关于流程和工具,它是关于人和文化的! 受到这种认识的启发,CC先生开始深入了解敏捷的历史 - 事实证明,人和文化一直是敏捷的核心.敏捷测试也是

测试人员在敏捷团队中扮演的角色

对于开发模式,现在大部分互联网公司都完成了从传统瀑布开发模式到敏捷开发模式的转型,这种转型相对传统的测试人员来说,不论是在角色定位还是在技能栈方面都提出了更大的挑战,那么测试人员应该如何应对呢?下面根据我平时工作的一些总结体会来说说测试人员应该发力的方向,供大家参考: 角色 1: 培训人员 在转型初期,测试人员应该针对开发人员的薄弱环节(即业务技能)进行培训和指导.由于工作任务的差别,开发人员对负责的模块业务和具体实现细节非常了解,但是对周边模块或者业务并不是非常清楚,主要体现在配置和使用方面.