第二章,平台开发规划

    从写了第一章 测试平台开发简介,到如今开始写第二章的内容,差很少有三个月了。中间遇上过春节,而后春节回来以后一边要冲刺第一季度的绩效,一边忙着其余的事情,几乎没有闲的时间。如今抽空继续咱们的系列教程,不过提早说明,咱们的相关文档不会介绍实现细节代码,而是从更高的层次来进行分析,介绍。具体的代码实现是比较初级的内容,若是你不能实现,仍是先去作自动化测试,不要入手平台开发,结合自身状况有计划地来提高本身。数据库

2.1 如何产生出平台需求

       任何一个测试平台,说小了就是完成一系列功能的综合系统,说大了就是一个产品,和你一般在网上看到的如百度,腾讯等网站相似,是为大众服务的。而咱们可能客户群体会小一些,是普通的测试人员,或许只是大家部门的测试人员,而其与大型的平台从原则上是一致的,麻雀虽小,五脏俱全嘛!后端

       一个好的测试平台,是须要根据测试人员在平时的测试过程当中,遇到取繁琐的问题,或是不太容易操做的地方,可是能借助工具来解决,为了聚合各类资源,达到简化操做,流程化工做等目的来产生出来的。不能为了开发平台而开发平台,就算你开发的平台功能再强大,不能解决实际问题,或是使用起来要求比较高,操做复杂的话,也是没有任何意义的。服务器

   艺术来源于生活而高于生活;平台需求来源于测试工做,而简于测试工做。架构

2.2 平台需求规划

       在咱们搞清楚了需求的来源后,就须要对需求进行全面的规划。由于咱们要开发的是一个平台,一个生态系统,不是解决特定问题的代码集合;因此在考虑问题的时候,就须要有更高的视角和眼界。下面咱们从一个需求入后,介绍一下如何分析需求,以及如何产生出平台。app

 一,测试需求框架

目前不少产品都在转向以app为主,这就要求后端的服务或是接口质量比较可靠,即便出现了问题,也能及时发现。而测试采起的办法是,编写接口自动化测试,进行监控回归测试。可是不管以什么语言编写接口自动化,都有技术门槛,而不会技术的同窗没有办法参与进来,参与的同窗比较少,维护起来比较麻烦。如何下降技术门槛,提升可维护性,人员的传承和培训等问题比较明显。工具

二,问题分析测试

       针对测试人员有上面这个需求,咱们测试开发的同窗就要分析问题,而后产生出解决具体问题的方法,进而产生出平台需求。而这个需求的主要问题以下:优化

(1)技术门槛,不能使全部的同窗都参与进来。而若是只有那么一两个同窗参与开发接口自动化测试的话,周期比较长,维护成本也比较高。网站

(2)运行成果不直观。无论使用任何语言作接口自动化测试,最好的效果就是测试用例执行完成后,产生测试报告。而没有对测试报告进行管理和统计的工做。

(3)测试用例管理不便。在执行测试用例的时候,通常是经过测试用例集来进行管理测试用例的,不能灵活地组合须要的测试用例。

(4)监控的时候须要借助于jenkins, 或是服务器的定时任务,都不方便管理。

三,规划需求

既然分析出上面的问题后,咱们就能够详细规划需求了,也就是咱们要怎么解决上面的这些问题。主要方法以下:

(1)下降使用成本,经过技术手段将编写接口自动化测试进行可视化,不须要写任何代码,只须要填写测试数据,便可生成接口自动化测试用例。

(2)管理测试用例,测试用例包含测试对象,测试数据,预期结果等,要进行合理的管理,以便减小维护成本。

(3)管理测试用例集,方面咱们自由组合测试用例,以适合不一样的测试须要。

(4)测试用例集的运行方法控制,抛开第三方工具Jenkins,来进行合理的管理。

(5)统计测试报告,清晰的展现每次运行的结果,并能进行必要的统计功能。

(6)错误记录功能,一旦测试用例出错,须要记录错误发现的现场环境,方便进行错误排查。

因此具体化成为平台开发的功能后,就应该是下面这样的功能:

(1)接口文档管理功能:管理接口信息,包括增,删,改,查等。

(2)用例管理功能:新建,展现,查询,删除,运行测试用例。

(3)测试用例集管理:新增,修改,删除,查找,运行测试用例集。

(4)任务管理:管理定时任务,或者其余任务触发机制。

(5)测试报告管理功能:展现,查找测试报告,对测试报告进行统计和分析。

(6)日志管理功能:记录错误日志,对日志进行过滤及分析。

(7)用户管理功用:以便对测试用例,测试计划,任务,报告和日志的相关操做进行权限控制。

2.3 其余更加细致的规划

经过测试人员的具体困难,分析产生困难的缘由或是问题,而后再根据问题提高出具体的需求。这是很是重要的一步,也是由问题到平台的关键。可是有了具体的需求后,尚未办法马上去开发平台,还有许多其余的问题须要考虑。

一,    技术考虑

要完成咱们须要的功能,目前有哪些成熟的技术?Java和Python选哪一种语言比较好?数据库用什么?业界有没有对应的开源框架,或是公司其余人或部门有没有这方面的尝试?若是有现成的经验可供参考,将减小咱们的开发成本,少走不少弯路。

二,    开发资源配置

若是咱们投入了相应的平台的开发,人员如何配置:是你本身全面开发,仍是团队开发?团队的人员是什么水平,他们能投入多少时间到平台开发中?平台开发时代码如何管理?平台能部署到哪里?相应的软硬件资源容易协调吗?

三,    需求细化

若是上面的资源没有问题,就须要细化咱们的需求了。每一项功能必须细化一下,出一个详细的需求文档。细化到显示接口文档的时候,应该显示哪些信息?新增的时候须要填写什么字段等等。若是不如此细化出需求文档,开发的时候就没有依据。平时在咱们的正常工做中,是由产品来进行相关的工做的,但是若是咱们本身开发平台的话,这就是咱们须要作的工做。

四,    代码架构分析

细化完成需求后,就须要编写代码实现主要的功能。在写代码以前须要进行详细的代码架构设计,不能写一段程序完成一个功能,而后都堆放在一块儿,眉毛胡子一把抓,后期维护成本至关大的。若是是团队开发的话,没有前期的代码架构设计与分析,参与的人员越多,灾难就会越大,合并代码和维护会令人疯掉的。

五,    实施维护和管理

在平台开发初具规模的时候,就须要合理的维护和管理了。以便能使平台更好地为测试人员服务,此时的影响时间,问题排查,功能扩展等就会变成更加剧要了。无论你前期如何作需求调研,代码如何规划,功能如何强大,在投入使用后会出现各类问题。修改问题,优化代码,新增功能将会持续很久的。

2.4 总结

   本章咱们从了解了测试平台后,应该投入的下一个阶段:平台开发规划,来简单地介绍了相关须要规划的内容,并以简单的接口自动化平台为例进行了分析。固然若是测试平台功能比较强大的话,须要考虑的内容更多,不过总体方向也是这几个。但愿经过这方面的介绍能给想作平台开发的同窗带来一些帮助,后面我会详细介绍上面提到的各项规划,请你们多多关注!