我们需要解决两个问题:1、什么是场景测试?2、什么是核心场景?
1.什么是场景测试?
1)什么是场景?
事件触发时的情景形成了场景。场景必不可少的几个要素:环境、人、时间、行为。简而言之:xx人在xx时间xx环境下进行了xx行为。划分场景的意义在于:我们想通过场景知道“人”“行为”的目的是什么。
2)什么是测试场景?
测试场景是指模拟真实环境下的一系列测试活动,以观察系统在这种环境下的表现。注意:模拟真实环境。我们所有测试行为都应该是有意义的,而不应该是想当然的。
我们一般如何定义测试场景?
· 从需求的角度来说,测试场景通常是可以从需求描述中获取到的
用户故事(userstory)在软件开发过程中被作为描述需求的一种表达形式,并着重描述角色(谁要用这个功能)、功能(需要完成什么样子的功能)和价值(为什么需要这个功能,这个功能带来什么样的价值)。简单理解,即:xx人想用xx功能实现xx价值。
以目前我们特性模板为例(如下图所示),其实是涵盖了用户故事想要表述的几个元素。所以,如果产品同学认真写的话,我们是能够获取到我们要的信息的。
值得注意的是:从需求描述获取测试场景,可以预见的是,我们会强依赖产品的需求拆分粒度、需求描述清晰度。所以,因为需求拆分粒度不同,我们的测试场景也会有大小(不要恐惧,这是正常的。没有谁规定一定要是一个大的场景,难道小舞台就不能表演了吗?)再者,如果只是一句话需求怎么办(这是大部分情况)?还能怎么办?多交流呗。
· 从测试分层的角度来说,测试场景是由小到大、由简到复的
测试分层的定义和意义毋庸赘述。在不同层级测试,我们应该有不同粒度的测试场景。比如:单元测试,我们测试场景大多着眼于单功能交付;集成测试,则关注于模块交互;验收测试,则强调系统功能的完善。
可以试想一个汽车生产商,生产汽车的过程。是不是先零部件(轮胎、方向盘)生成,然后再是局部功能组合调式(引擎、仪表盘),最后才是整车交付?大致如此道理。
· 从交付的角度来说,对内交付和对外交付的测试场景不同
对内交付(可以是团队内、项目内),关注的更多是单功能和交互功能场景测试;对外交付(项目外),更关注的是系统场景测试。
所以,又回到了“你的用户是谁”的话题,仔细思考?
本文节选自第七十四期《51测试天地》
《如何定义核心场景用例?》一文
想继续阅读全文或查看更多精彩内容,请点击下载: