用开发的思想做测试--分层(一)

2017-03-19  浮生若梦 

项目中角色与定位

产品经理,在项目中产品经理基本可以定位为领头羊的角色,产出文档主要为项目需求及交互设,同时做一些项目验证测试,使项目形成一个闭环。

设计师,根据产品交互做一些UI设计,切图,视觉还原等工作,使得项目在视觉设计上形成闭环。

前端开发,根据项目交互、设计输出、与后台交互协议等内容,实现界面布局及与后台之间交互。

后台开发,根据项目需求、与前端交互协议等内容,实现产品业务底层逻辑。

测试,根据项目需求及交互,验证项目系统的正确性与完整性。

分层测试的概念及其特点

分层是复杂软件系统常见的设计思路。通过分层、解耦,可以简化问题,易于维护,便于扩展的效果。

分层测试的核心思想是:针对有明确分层设计的软件系统,采用白盒/灰盒测试的技术,在层与层之间验证接口的正确性。

1、精准。我们都知道,离问题产生的地方越近,就越容易触发问题。分层测试的切入点就是层与层之间的接口,从机制上更接近出问题的地方,因此也更容易命中目标。

2、低成本。这个优势源于可测试性。以项目单线程改多线程为例,正常的测试方法是通过项目流程构造测试数据,如果需要100条测试数据需要跑100次项目流程;如果用分层测试的方式,不考虑数据是如何生成的,只考虑什么样的数据符合要求即可进行测试,也就是说不需要重复跑流程,只构造符合要求的数据就可以验证这部分改动对项目是否有影响。

3、高效。这里是指用例执行速度快。首先自动化测试的速度就明显优于手工测试,基于API调用的自动化又比UI自动化要快,分层测试的高效就建立在API调用高效的基础上。从我们收集的数据来看,相同的用例,手工执行的耗时平均在5-8分钟,UI自动化一般也需要1-2分钟,而分层测试通常10-20秒就完成了,效率提升达10倍。

4、易定位。易定位其实是和精准对应的。在用例设计的时候就考虑到用例所针对的代码实现,一旦出现问题,自然就容易定位了。

5、稳定。客户需求是易变的,内部实现也是易变的,但是层与层之间的接口是不同开发人员之间的约定,通常会尽量保持稳定。可以通过服务端与客户端协议来分析。

6、尽早测试。尽早测试是所有项目都提倡的,目的是把问题拦截在前期,降低问题修复成本。由于分层测试不依赖于完整系统,可以通过直接调用底层接口进行测试,就不需要等到整个系统开发完成。其实分层测试的思想和自底向上的系统开发模式也是不谋而合的。

介绍了这么多分层测试的优势,那么它是万能的银弹吗?首先,分层测试不是端到端的测试,接口之上的部分无法覆盖,因此无法替代验收测试。另外,分层测试依赖于被测系统良好的分层设计,如果被测系统的结构不清晰,耦合严重,分层测试就不合适了。

 

在系统功能测试中如何体现

1.系统架构的分析

2.针对服务架构设计分层测试策略

展示层:UI

业务逻辑:业务流、数据流

以注册流程为例,注册流程图如下:

在以往测试案例设计过程中,流程箭头是我们检查的内容,但是未关注过括号内的内容。在分层测试策略中,需要关注括号内的内容及端与端之间协议的检查。

注册流程的测试案例如何去设计?设计案例过程要体现分层的概念,每个步骤端到端的协议是否正确;每个步骤获取信息是否正确;上一步销毁信息是否正确;关键步骤的落地信息是否正确。这里不对案例设计进行详细描述。


下期讲述自动化在分层中的应用

337°/3342 人阅读/3 条评论 发表评论

邓智群  2017-03-20

期待下期


张丽丽  2017-04-06

期待二期呀


登录 后发表评论