摘要:目前市面使用的软件大多都是由事件触发来控制流程的,事件触发时的情景便形成了场景,而同一事件不同的触发顺序和处理结果形成事件流。这种在软件设计方面的思想被引入到软件测试中,生动的描绘出事件触发时的情景,有利于测试设计者设计测试用例,同时测试用例也更容易的得到理解和执行,从而最大程度上覆盖用户需求,这就是我们通常所说的基于场景的测试方法。
关键词:软件测试;环境;场景;用例
一、软件测试用例设计的环节
1、需求分析
需求分析(Requirment Analyzing)应该说是软件测试的一个重要环节,测试开发人员对这一环节的理解程度如何将直接影响到接下来有关测试工作的开展。可能有些人认为测试需求分析无关紧要,这种想法是有误的,需求分析不但重要,而且至关重要。一般而言,需求分析包括软件功能需求分析、测试环境需求分析、测试资源需求分析等。其中最基本的是软件功能需求分析,测一款软件首先要知道软件能实现哪些功能以及是怎样实现的。比如一款Smartphone包括VoIP、Wi-Fi以及Bluetooth等功能。那我们就应该知道软件是怎样来实现这些功能的,为了实现这些功能需要哪些测试设备以及如何搭建相应测试环境等,否则测试就无从谈起!既然谈了需求分析,那么我们根据什么来分析呢?总得说来,做测试需求分析的依据有软件需求文档、软件规格书以及开发人员的设计文档等,相信管理一些规范的公司在软件开发过程中都有这些文档。
2、测试计划
测试计划(Test Plan)一般由测试负责人来编写,测试计划的依据主要是项目开发计划和测试需求分析结果而制定。测试计划一般包括以下一些方面:
(1)测试背景
a.软件项目介绍;b.项目涉及人员(如软硬件项目负责人等)介绍以及相应联系方式等。
(2)测试依据
a.软件需求文档;b.软件规格书;c.软件设计文档;d.其他,如参考产品等。
(3)测试资源
a.测试设备需求;b.测试人员需求;c.测试环境需求;d.其他。
(4)测试策略
a.采取测试方法;b.搭建哪些测试环境;c.采取哪些测试工具以测试管理工具;d.对测试人员进行培训等。
(5)测试日程
a.测试需求分析;b.测试用例编写;c.测试实施,根据项目计划,测试分成哪些测试阶段(如单元测试、集成测试、系统测试阶段,α、β测试阶段等),每个阶段的工作重点以及投入资源等。
测试计划还要包括测试计划编写的日期、作者等信息,计划越详细越好了。计划赶不上变化,一份计划做的再好,当实际实施的时候就会发现往往很难按照原有计划开展。如在软件开发过程中资源匮乏、人员流动等都会对测试造成一定的影响。所以,这些就要求测试负责人能够从宏观上来调控了。
期刊文章分类查询,尽在期刊图书馆在变化面前能够做到应对自如、处乱不惊那是最好不过了。
二、软件测试用例设计--场景分析方法
我们的现实生活是由一幅幅生动的场景画面所组合而成的,软件测试的工作要交付到用户进行使用,整个系统要获得用户的认可,所以我们必须站在用户的角度,以用户的使用逻辑及操作习惯为出发点,结合功能用例的设计方法,使用例设计更贴近实际,从而最大程度上满足用户的需求。
一般情况下我们会比较关注场景测试适用于什么样的项目,个人认为对于业务流程或事件比较复杂的程序,主要用来探索对于比较有经验的用户是怎么来使用软件的,并查找出更加有说服力的bug。不同的触发顺序和处理结果形成事务流,通过设计足够多的测试用例来覆盖基本流和各种备选流。流程性比较强,显然一个一个模块测试是不明智的,他的模块之间需要有数据流的流动才能运转,这是可以采用场景法确定数据流的大致情况。有些软件有明确的但是复杂的各种输入(原因),他们会导出许多复杂的输出,这个时候用因果图方法理清因、果之间的关系。但是光用这两个方法显然是不够的,针对每一个输入,有无数种情况,我们要用等价类的方法把无限测试变为有限测试。当然边界值、错误测试都是很有用也必要的测试案例的补充。对于一个软件,如果没有很明确的流程,也不需要使用因果图、场景法等方法,但是它依然需要等价类、边界值与错误输入等技术。对于这类软件我们可以分模块来进行功能的“扫菜单”方式组织案例的编写。
谈到场景测试,首先要知道什么是场景,场景是从用户的角度来描述系统的运行行为,反映系统的期望运行方式,是由一系列的相关活动组成的,是演绎系统未来预期的使用过程。场景可以看作是用户需求的内容,完全站在用户的视角来描述用户与系统的交互,之后的功能需求说明,则是用户需求分解的结果,定义了必须实现的软件功能。场景描述是一个迭代细化的过程,一般以故事叙述的方式描述如何帮助用户解决问题,辅以系统的交互草图。场景需要有清晰、明确的上下文环境,说明这个场景发生在什么背景下,何时会发生,从用户的角度出发,描述用户做什么,与系统的交互行为,以及用户对出现问题的反应。设置场景的目的是让所有人员明白用户的目标是什么,以及用户希望怎样做,不涉及具体的界面展现是怎样的,也不关注具体的实现方式是怎样的。
结语
不同软件产品对测试环境有着不同的要求,如C/S及B/S架构相关的软件产品,那么对不同操作系统,如Windows系列、unix、linux甚至苹果OS等,这些测试环境都是必须的。而对于一些嵌入式软件,如手机软件,如果我们想测试一下有关功能模块的耗电情况,手机待机时间等,那么我们可能就需要搭建相应的电流测试环境了。当然测试中对于如手机网络等环境都有所要求,符合要求的测试环境能够帮助我们准确的测出软件问题,并且做出正确的判断。为了测试一款软件,我们可能根据不同的需求点要使用很多不同的测试环境,有些测试环境我们是可以搭建的,有些环境我们无法搭建或者搭建成本很高。从测试的角度而言,测试执行包括一个量和度的问题,也就是测试范围和测试程度的问题;从管理的角度而言,在有限的时间内,在人员有限甚至短缺的情况下,要考虑如何分工,如何合理地利用资源来开展测试。总之,测试执行过程中会遇到很多复杂的问题,最重要的还是要具体问题具体解决,灵活应对。
参考文献:
[1]曹华珠. 插件技术、分层技术应用于计算机软件技术测试中的价值探讨[J].信息与电脑(理论版).2018(15)
[2]孙护军. 插件技术、分层技术在计算机软件测试技术中的运用[J].农村经济与科技.2018(14)
[3]赵迅. 计算机软件插件技术的运用[J].电子技术与软件工程.2019(01)
[4]苏畅. 探究插件技术在计算机软件中的应用[J].时代农机.2018(06)
论文作者:刘志龙
论文发表刊物:《基层建设》2019年第8期
论文发表时间:2019/6/20
标签:测试论文; 需求论文; 软件论文; 用户论文; 场景论文; 环境论文; 计划论文; 《基层建设》2019年第8期论文;