软件测试用例设计难在哪里?

用例设计测试过程中非常重要的一个活动,不管是文档化的设计输出,还是只是存在于他们脑海中的测试思想,其质量都会直接影响测试执行的质量。

  尽管每个测试人员都掌握了不少的测试用例设计技术与方法,例如:等价类划分、状态转换测试等,但是如何将它们应用到具体的测试对象测试中去,很多测试人员都会感觉有些力不从心,甚至有无从下手的感觉。

  下面是针对某个功能模块的一个简单的需求描述:该基本功能是为了创建某个条目,它的基本需求如下:


假如dataBit0 = 0, 并且cBPDU或者pBPDU的值不为1,那么创建请求会被拒绝。假如dataBit0 = 0, 并且cBPDU = 1或者pBPDU = 1,在满足下面条件下可以创建成功:

(1)其他的bit不能为1;

(2)TD的取值必须是Guranteed;

(3)VLANpop的取值必须是disabled;

  假如你得到这样的一个需求描述,你准备如何来设计该功能模块的测试用例?通常来说,测试人员拿到需求规格说明之后,会根据其中定义的需求条目设计测试用例,类似于如下过程。

图1 通常的测试用例设计

  针对上面的需求描述,根据图1直接设计测试用例,会不会觉得有些迷茫呢?即使测试人员设计了多个测试用例,覆盖了每条测试需求,是不是也会觉得评估测试覆盖率比较困难?

  实际上,需求规格说明通常是针对开发人员而写的,并不一定直接适合测试的要求。因此,假如测试人员希望能够更好的进行测试用例设计,需要将需求规格说明转化成为测试人员可以方便使用的语言很重要,即在需求规格说明和设计测试用例之间增加一个桥梁:模型。在建立模型的过程中,测试人员不仅需要学习需求规格说明,同时也需要了解各种测试设计技术与方法,并能将两者数量的结合起来。图2是增加了“模型”概念的测试用例设计过程。

图2 改进的测试用例设计

  还是以上面的需求描述为例,我通过学习该需求之后,发现它可能可以与决策表技术结合起来。因此,我将上述需求翻译为适合决策表技术的各种条件与输出,并根据它们的不同组合得到不同的结果。图3是我针对上述需求描述,基于决策表技术得到的初始决策表,然后可以基于此进行决策表优化,直至得到概要和详细的测试用例列表。

图3 初始决策表

  根据图2的过程得到的图3的结果,是否觉得整个测试设计过程更加清楚,而且更加容易进行测试覆盖率等方面的评估?注意:这里只是根据需求描述得到的一些测试用例,并没有考虑其他方面的测试用例,例如非功能测试用例等。

  需求规格说明对测试人员很重要,测试设计技术与方法也很重要,但更重要的是测试人员如何能够将两者有效的结合起来,并在此基础之上建立适合测试设计和评估的“模型”。而这通常是测试用例设计的难点所在,同时也是体现测试人员技术含量的地方。下面是测试人员在建立模型过程中可以参考的一些方向:

  1、基于黑盒测试技术,例如:决策表模型、状态转换模型、正交矩阵模型等;

  2、基于测试类型,例如:质量特性模型、缺陷分类模型等;

  3、基于全局因素的全局因素模型;

  4、基于功能交互的功能交互模型;

  测试设计过程中建立有效的“模型”,测试人员设计测试用例相对会比较容易,并且可以很好的提高测试覆盖率,从而帮助提升产品质量。另一方面,通过建立模型,也可以帮助测试人员有效的评审测试对象功能的描述,例如可以发现需求中定义不清楚、遗漏等方面的问题。

====================================分割线================================

最新内容请见作者的GitHub页:http://qaseven.github.io/

时间: 2024-09-20 16:43:11

软件测试用例设计难在哪里?的相关文章

浅谈手机软件测试用例设计方法

手机产品和用户交互非常紧密,手机的软件质量就显得尤其重要.要使最终用户对手机软件感到满意,必须要在手机软件发布之前进行充分的测试.而不完全.不彻底是软件测试的致命缺陷,但是我们又不可能进行穷举测试,任何程序只能进行少量而有限的测试.为了节省时间和资源,提高测试效率,我们必须要从数量极大的可用测试数据中精心挑选出具有代表性或者特殊性的测试数据进行测试.测试用例在此情况下产生.测试用例是为特定的目的而设计的一组测试输入.执行条件和预期的结果.简单地说,测试用例就是设计一个场景,使软件程序在这种场景下

手机软件测试用例设计实践

一.测试用例设计概述 测试伴随在整个手机软件开发的各个阶段中,测试质量的高低直接关系到手机软件的可用性,友好性,可靠性.可以说,测试环节是手机软件开发的重要环节,是整个开发过程的"中枢神经".同时,测试用例的设计在测试过程中是非常重要的一个环节,是重中之重. 一般来说,设计测试用例应该考虑如下几方面: 1)有效性:测试用例是测试人员测试过程中的重要参考依据.不同的测试人员依据相同的测试用例所得到的输出应该是一致的. 2)可复用性:良好的测试用例具有重复使用的功能,使得测试过程事半功倍,

关于自动化软件测试用例设计的几点分析

1.手工测试用例和自动化测试用例功能定位的区别. a)手工测试用例 i.较好的异常处理能力,能通过人为的逻辑判断校验当前步骤的功能实现正确与否. ii.人工执行用例具有一定的步骤跳跃性. iii.人工测试步步跟踪,能够细致的定位问题. iv.主要用来发现功能缺陷 b)自动化测试用例 i.执行对象是脚本,任何一个判断都需要编码定义. ii.用例步骤之间关联性强. iii.主要用来保证产品主体功能正确完整和让测试人员从繁琐重复的工作中解脱出来. iv.目前自动化测试阶段定位在冒烟测试和回归测试. 2

软件测试用例设计方法

前面有曰:测试结果的准确性取决于测试用例的设计,故测试用例设计显得尤为重要.今天就好好梳理下,测试用例的相关内容. 重要性:Test Case贯穿整个测试执行过程,分两大类:数值计算类和数据处理类 概述:编写一组前提条件,输入,执行条件,预期结果的组合方案.完成对某个特定需求或目标的测试,体现测试方案,方法,技术和策略的文档. 1.什么是测试用例,为什么要编写? 测试用例就是编写一组条件,输入,执行条件,预期结果的并完成对特定需求或目标的测试,体现测试方案,方法,技术和策略的文档. 由于测试用例

软件测试用例设计需要参考哪些输入?

不管是文档化的测试用例,还是存在于测试人员头脑中的测试想法和思维,针对测试对象的分析和设计都是整个测试过程的重要测试活动之一.在进行测试分析和设计之前,测试人员首先需要确定测试的需求来源,即测试用例设计需要参考哪些测试依据文档? 测试用例设计的输入文档是什么?测试人员头脑中第一个蹦出的参考依据就是需求规格说明.确实,需求文档是我们测试设计的最主要参考文档.但是,由于时间限制.成本限制和个人能力限制等方面的原因,提供完备的需求规格说明几乎是不可能的.现实情况是,需求规格说明常常是不全的.模糊的,甚

从场景软件测试用例设计谈业务测试

作为测试人员,编写测试用例是我们的核心,他最重要的作用就是让我们跟着测试用例测试,不会遗忘一个测试的功能点.在现实的设计用例环节来说,做到很好的测试用例对我个人来说是很难的.尤其是场景测试用例设计. 本文不以概念和一些教科书似的例子来讲解场景测试和业务测试的相互关系.以一个轻松交流的方式来总结场景测试的流程.当今很多产品不再是单一的互联网或者是独立产品作为测试的对象,往往跟多个模块进行配合测试.即使有严格的规格说明书,事件流的测试也是不能忽视. 为什么要用场景测试用例: 因为用等价,边界等设计方

软件测试用例设计生命周期

测试用例分析与设计是整个测试生命周期中非常重要的一个活动,该测试活动的输出是后续测试执行的主要输入,其质量直接影响后续测试效率.有效性及测试质量.测试用例分析与设计的过程,采用的技术与方法,以及测试人员的测试经验与技能等,都会影响最终的测试用例质量. 图1是测试用例设计生命周期示意图.在该示意图中,包括了测试用例设计相关的主要测试活动,可能可以采用的技术与方法等.主要的测试活动包括: 1)确认测试用例设计的参考输入来源: 2)识别初始测试条件(测试点): 3)采用测试类型分析与功能交互分析细化测

软件测试用例的设计

一个测试用例,就是设定输入数据,运行被测试函数,然后判断实际输出是否符合预期.输入数据是测试用例的核心,输入数据的定义是:被测试函数所读取的外部数据及这些数据的初始值. 1.自动测试工具的选择 目前通过使用自动化工具对于软件的质量进行保障已经司空见惯,我们可以通过在测试中应用自动化工具来大幅度提高软件测试的效率和质量.常用的白盒测试自动化工具有Telelogic公司的Logiscope软件.Compuware公司的DevPartner软件和IBM公司的Rational Purify等:而黑盒测试

如何设计软件测试用例

设计测试用例是个很大的主题,而且其中所需要的方法也很多.我计划一点一点的总结并记录下来.我这次讨论的不是针对一个软件的测试用例设计,而是针对一个模块或多个模块用例的设计. 今天我要写的主要是我自己在工作中所用的一些方法,当然不是最好用的.但我一直在研究最高效,最实用的方法. 首先我们要了解一下为什么要设计测试用例以及它在软件测试中的地位. 影响软件测试的因素很多,软件本身的复杂程度,开发人员的素质(包括分析,设计,编程和测试),测试方法和技术的应用.那么如何保证测试质量的稳定呢?测试用例就可以把