如何搭建测试平台体系

一个健康的测试平台体系,对测试人员的职责分工、协做模式会有不一样的要求。数据库

测试平台核心的职责是完成高质量的交付已知足业务需求。测试活动包括单元测试、集成测试、接口测试、性能测试等,都是经过这些测试手段,协同整个测试平台来完成高质量交付的管理工做。安全

 

 

测试平台的核心目的是提高测试效率,从而提高产品质量,其设计关键就是自动化。传统的测试方式是测试人员手工执行测试用例,测试效率低,重复的工做多。经过测试平台提供的自动化能力,测试用例可以重复执行,无须人工参与,大大提高了测试效率。服务器

为了达到“自动化”的目标,测试平台的基本架构以下图所示。架构

经过对象库的封装-业务的封装-驱动的封装,这些封装体系的协做,咱们能够搭建一系列的自动化测试平台。固然,这只是一小部分,由于整个测试平台的搭建,绝对不是单纯的自动化测试就能够完成,须要业务人员、开发人员和测试人员共同合做来完成整个测试平台。运维

 

 

1. 用例管理机器学习

测试自动化的主要手段就是经过脚本或者代码来进行测试,例如单元测试用例是代码、接口测试用例能够用Python来写、可靠性测试用例能够用Shell来写。为了可以重复执行这些测试用例,测试平台须要将用例管理起来,管理的维度包括业务、系统、测试类型、用例代码。例如,网购业务的订单系统的接口测试用例。性能

2. 资源管理单元测试

测试用例要放到具体的运行环境中才能真正执行,运行环境包括硬件(服务器、手机、平板电脑等)、软件(操做系统、数据库、Java虚拟机等)、业务系统(被测试的系统)。学习

除了性能测试,通常的自动化测试对性能要求不高,因此为了提高资源利用率,大部分的测试平台都会使用虚拟技术来充分利用硬件资源,如虚拟机、Docker等技术。测试

3. 任务管理

任务管理的主要职责是将测试用例分配到具体的资源上执行,跟踪任务的执行状况。任务管理是测试平台设计的核心,它将测试平台的各个部分串联起来从而完成自动化测试。

4. 数据管理

测试任务执行完成后,须要记录各类相关的数据(例如,执行时间、执行结果、用例执行期间的CPU、内存占用状况等),这些数据具有下面这些做用:

o 展示当前用例的执行状况。

o 做为历史数据,方便后续的测试与历史数据进行对比,从而发现明显的变化趋势。例如,某个版本后单元测试覆盖率从90%降低到70%

o    做为大数据的一部分,能够基于测试的任务数据进行一些数据挖掘。例如,某个业务一年执行了10000个用例测试,另一个业务只执行了1000个用例测试,两个业务规模和复杂度差很少,为什么差别这么大?

 

数据平台

数据平台的核心职责主要包括三部分:数据管理、数据分析和数据应用。每一部分又包含更多的细分领域,详细的数据平台架构以下图所示。

1. 数据管理

数据管理包含数据采集、数据存储、数据访问和数据安全四个核心职责,是数据平台的基础功能。

    • 数据采集:从业务系统搜集各种数据。例如,日志、用户行为、业务数据等,将这些数据传送到数据平台。
    • 数据存储:将从业务系统采集的数据存储到数据平台,用于后续数据分析。
    • 数据访问:负责对外提供各类协议用于读写数据。例如,SQLHiveKey-Value等读写协议。
    • 数据安全:一般状况下数据平台都是多个业务共享的,部分业务敏感数据须要加以保护,防止被其余业务读取甚至修改,所以须要设计数据安全策略来保护数据。

 

2. 数据分析

数据分析包括数据统计、数据挖掘、机器学习、深度学习等几个细分领域。

    • 数据统计:根据原始数据统计出相关的总览数据。例如,PVUV、交易额等。
    • 数据挖掘:数据挖掘这个概念自己含义能够很广,为了与机器学习和深度学习区分开,这里的数据挖掘主要是指传统的数据挖掘方式。例如,有经验的数据分析人员基于数据仓库构建一系列规则来对数据进行分析从而发现一些隐含的规律、现象、问题等,经典的数据挖掘案例就是沃尔玛的啤酒与尿布的关联关系的发现。
    • 机器学习、深度学习:机器学习和深度学习属于数据挖掘的一种具体实现方式,因为其实现方式与传统的数据挖掘方式差别较大,所以数据平台在实现机器学习和深度学习时,须要针对机器学习和深度学习独立进行设

3. 数据应用 数据应用很普遍,既包括在线业务,也包括离线业务。例如,推荐、广告等属于在线应用,报表、欺诈检测、异常检测等属于离线应用。

  • 数据应用可以发挥价值的前提是须要有大数据,只有当数据的规模达到必定程度,基于数据的分析、挖掘才能发现有价值的规律、现象、问题等。若是数据没有达到必定规模,一般状况下作好数据统计就足够了,尤为是不少初创企业,无须一开始就参考BAT来构建本身的数据平台。

管理平台

管理平台的核心职责就是权限管理,不管是业务系统(例如,淘宝网)、中间件系统(例如,消息队列MQ、Kafka),仍是平台系统(例如,运维平台),都须要进行管理。若是每一个系统都本身来实现权限管理,效率过低,重复工做不少,所以须要统一的管理平台来管理全部的系统的权限。

权限管理主要分为两部分:身份认证、权限控制,

 

 

 

1.身份认证

肯定当前的操做人员身份,防止非法人员进入系统。例如,不容许匿名用户进入系统。为了不每一个系统都本身来管理用户,一般状况下都会使用企业帐号来作统一认证和登陆。

2.权限控制

根据操做人员的身份肯定操做权限,防止未经受权的人员进行操做。例如,不容许研发人员进入财务系统查看别人的工资。

相关文章
相关标签/搜索