APP下载

浅谈需求测试和用例设计思维模式的差异

2018-07-12陈梦珂戴平

现代信息科技 2018年4期

陈梦珂 戴平

摘 要:需求测试和用例设计都是软件测试活动中的重要环节。本文从思维模式的角度分析了二者在设计过程中的差别。需求测试需要用理性认知去分析,采用整体的思维模式,偏客观地思考。而用例設计更偏向细节,需要感性认知进行分析,采用细腻的思维模式,在设计过程中可以适当加入个人主观情绪。

关键词:需求测试;用例设计;理性和感性;整体思维

中图分类号:TP311.5 文献标识码:A 文章编号:2096-4706(2018)04-0091-02

Abstract:The requirement test and use case design are both important links in the software testing activities. This paper analyzes the differences in the design process from the perspective of thinking mode. Needs test needs to be analyzed by rational cognition,and the whole thinking mode should be adopted to think objectively. And the use case design is more specific to the details,the need for perceptual knowledge analysis,the need for delicate thinking mode,in the design process can be appropriately added to the individual subjective emotion.

Keywords:requirement testing;use case design;rationality and sensibility;holistic thinking

1 需求测试和用例设计在软件测试中的作用

测试人员在进行需求测试时,首先要了解需求的整体实现背景,分析需求的合理性,明确需求的范围,挖掘需求文档中隐藏的需求,然后通过需求交底的过程,确定开发的初步实现思路和方法。随着测试需求分析的深入,列出需求的框架,包括测试范围及各个功能点和测试的场景等。并确定一些可以提前介入的测试工作。需求中遇到有疑问的地方一定要记录下来,找需求人员确认,需求漏掉的或者存在问题的地方,开发和测试时会更容易漏掉,而且遗漏的需求很有可能会使项目整体业务逻辑发生变化。做好需求测试,要求测试人员熟悉产品软件开发的整个过程和业务流程,对产品的整体布局和规划也要有深入的了解和调研。

用例设计是测试设计阶段的重点产物。测试人员通过在测试计划阶段确定的测试方法和策略来编写测试用例。在编写测试用例的过程中,需要运行黑盒测试方法,包括等价类边界值法、因果图判定表法、场景法、正交法和错误推断法等,并结合系统测试类型及各种异常场景,从多个维度进行测试用例的补充。

一份好的测试用例能最大程度地找出软件隐藏的缺陷,可以提高找出软件缺陷的效率,并最大程度地满足测试覆盖要求。因此,测试人员在用例设计的过程中需要细化功能点,多角度和场景进行考虑,同时要发散思维才能完成高质量测试用例。

需求测试和用例设计是每个测试人员的必备技能和能力的体现,在设计和分析的过程中,二者的思考方式存在一定的区别,本文从思维模式的角度分析对此进行分析,帮助测试人员更好地理解二者的侧重点。

2 需求测试和用例设计在软件测试中的区别

2.1 理性认识进行需求测试,感性认识进行用例设计

引用一段情感学的名词解释,理性认识是对事物本质的、全面的、间接的和概括的反映。因而对事物的认识是深刻的和全面的。理性认识的三种形式为:概括——对事物本质属性的概括;判断——在概念的基础上对事物的各种关系进行区分、识别;推理——由一个已知的判断推出下一个判断。理性认识的这三种形式是认识的不断深化,具有递进性,理性认识依靠人类的思维模式及逻辑思维。

需求测试是对产品功能、性能、可靠性等特性的测试点进行抽象、概括和推理。测试需求通常是以待测对象的软件需求为原型进行分析而转变过来的。但测试需求并不等同于软件需求,它是以测试的角度,根据软件需求整理出一个列表,作为测试该软件的主要工作内容。测试人员首先要获取需求,获取需求的途径较多,可以通过与待测软件相关的各种文档资料来获取,如软件需求规格、Use case、界面设计、项目会议或与客户沟通时有关于需求信息的会议记录、其他技术文档等;也可以通过与客户或系统分析员进行沟通,查找待测试系统业务背景资料。在整个信息收集过程中,务必确保软件的功能与特性被正确理解,对需求进行概况和分析,然后通过掌握的业务知识来分析需求的合理性,整合评审小组的评审意见,采用理性的处理方式,对需求做出客观准确的判断。

感性认识是客观事物直接作用于人的感觉器官而产生的,它反映事物的具体特征和外部联系,具有直接性和形象性的特点,是对事物现象的认识。

测试用例设计的过程实际上是对测试执行过程的预演,是对测试用例的具体特性和外部联系进行直接形象地描述。当然测试用例设计的过程不仅依靠感性认识,只是相比需求测试而言,更偏重对待测系统功能、性能、界面的直接体验。首先根据设计规格、需求文档、功能规格及界面原型得出系统的主要功能点;然后根据功能点进行模块的合理划分;再针对每个具体模块功能进行基本功能用例的设计;在使用黑盒设计方法,对测试用例进行补充和完善。测试用例设计的过程是功能模拟测试的过程,也是初步感官体验的过程。特别是在体验测试中,拿到一个待测系统,测试人员一般通过对系统的感性认识结合个人测试经验进行体验测试用例的设计。

2.2 整体思维分析需求测试,具体思维设计测试用例

整体思维又称系统思维,它认为整体是由各个局部按照一定的秩序组织起来的,要求以整体和全面的视角把握对象。整体思维方式就是让我们从多个角度分析待测的系统,试着以不同角色去看系统,分析其是否能够满足需求。这种思维模式是需求测试必需的。

测试人员在进行测试需求分析的过程中,需要站在整个产品体系之上来分析测试需求,只有从项目整体去看,才能更全面、精准地把握用户需求。如果在测试需求分析阶段,纠结于更多的细节,就容易造成细节很完美,需求却总有遗漏的情况。特别在需求测试评审时,需求评审设计项目组成员较多,评审工作关注的焦点往往是分散的,很难将偏离用户的需求检查出来,这个时候就需要测试人员把需求问题作为整体去研究,把握大的系统需求点,全面的分析需求问题。其实平常我们在软件开发过程中进行的各种评审,就是借助全局思维方式来让更多的人参与思考,尽可能全方位地审查某个解决方案的正确性以及其他特性。

而在测试用例设计阶段则刚好相反,我们需要把握更多的细节,不应该大而化之的去设计测试用例,需要采用具体的思维模式。根据测试需求分析得到需求框架,梳理细化测试点,并根据测试点细化出具体的测试用例。需要注意各个点的组合测试的情况,还要注意各个测试点的反向测试情况。要设计高效的测试用例,就需要对系统的变化、流程和场景有较深入的了解。为了理解各种联系、流程和相互关系,就需要借助系统开发过程中形成的各种文档,关注细节,并深入分析思考。对已有测试需求点的每一个细节要设计详尽地测试用例,并对测试用例的输入输出、前置条件、运行环境等细节作出清晰准确的描述,确保测试用例的可用性、准确性以及测试需求的覆盖率。在设计测试用例的过程中,还要设计测试数据,准备测试资源,如文本、图片、视频、代码等,编写测试脚本,这些测试资源必须精确到每一条用例中,测试用例覆盖率越全、测试数据和资源越充分,越能更好地执行测试工作,发现更多的缺陷,提高软件的质量。

2.3 客观化进行需求测试,情绪化补充用例设计

在测试需求分析过程中,我们应当尽量采用客观的思维特征,即减少“情绪”的影响,也就是说,在测试需求分析时应尽量实事求是,将行业标准、需求规格说明、用户访谈、竞争对手现状等真实存在的具体需求作为依据,不能根据个人的主观理解擅自修改数据。在需求变更时,同样需要进行客观地处理,及时对变更需求进行记录整理和反馈,必要时调整后续测试计划。不论通过何种方式得到的需求变更信息都要及时记录,以便以后测试。测试人员应该把需求变化当作是一种项目常态,以平常心应对。任何项目要完全按照预期规划发展是很难实现的,所以变更将是测试工作中的一个常态。

相反,在进行测试用例设计时,要尽可能地去怀疑、猜测,从不同角度设计,通过“情绪化”的方式补充和完善测试用例,有利于暴露更多的软件问题。在用例设计中,我们一般会使用错误推断法进行用例的补充。错误推测,就是列举出程序中所有可能有的错误和容易发生错误的特殊情况,根据它们选择测试用例。可选择这些容易发生错誤的情况作为测试用例。测试人员在进行用例设计时,要求秉持质疑精神,从各种正常和异常场景进行用例设计,增加测试用例的覆盖度。同时在设计用例的时候,也要运用比较的思维模式,比较思维是指认识事情时,人们往往都是通过和头脑中的某些概念进行比较,找出相同、相异之处,或进行归类,从而将其加入大脑中的知识体系,建立好的搜索方式,以便以后使用。在业务功能测试用例的设计中,要加入同类软件功能的比较测试,找出其优点和缺点,取长补短,才能在同类产品的竞争中提升自身竞争力。

3 结 论

需求测试和用例设计都是软件测试活动中的重要活动。测试人员要深入地掌握二者的设计过程和侧重点。在实际的项目中,需求测试为测试用例的设计提供测试所需的功能点信息,也会体现出测试用例设计方法。测试需求指出测什么,而用例指出怎么测。好的测试需求能发现需求中显性和隐性的测试焦点,从而更好地指导测试用例设计以及提高待测模块整体功能的覆盖率。

参考文献:

[1] 朱鸿,金凌紫.软件质量保障与测试 [M].北京:科学出版社,1997.

[2] 彭林.测试用例的设计与实现 [D].成都:电子科技大学,2007.

[3] 王轶辰.软件测试从入门到精通 [M].北京:电子工业出版社,2010.

作者简介:陈梦珂(1989.08-),女,汉族,讲师,毕业于安徽农业大学,本科。研究方向:软件工程。