正所谓,熟能生巧。
在你没有什么经验的前提下,想有理有据的 有条有理得开发出一套测试平台其实很困难。大多数同学盲目的直接开干,最终就会引发各种问题,当问题多了,就会反思,在反思的过程中,不断的纠错。最终形成一套行之有效的方法论。
不要怀疑我上面的结论,因为作者自己就是这样的经历。亲自开发的测试平台没有30个也有29个了.... 其中有失败的,也有成功的。成功有成功的经验,失败也吸取了失败的经验,只要数量堆得大,加上喜欢反思和总结就可以了。
那么,我们现在来讨论下,领导给你这个任务的时候,你要先做哪些准备,从哪开始入手的实际问题吧...
1. 确定平台预期(目的/交互/功能/流程),质量颗粒度,质量和速度的平衡点!
这些事情,要你和领导和同事去沟通的。不要上来就开干,最终你干出来的平台可能和领导预期的相去甚远,作者很多年前就吃过这种亏。所以先沟通清楚再下手,磨刀不误砍柴工。
平台预期:领导到底要个什么样的测试平台,要有哪些主功能?要能解决什么事情?要做多大?是个什么样的使用流程?
质量颗粒度:领导的预期中是否能容忍一些细微bug和缺陷,比如页面是不是要特别高大上,流程要特别丝滑。还是能用就行?
质量和速度的平衡点:自古以来,忠孝两难全。质量和速度的取舍一直是个深坑!如果不提前确定,那么最终领导肯定会找你毛病。你为了质量开发的慢了,领导说你磨蹭。你为了赶速度,质量差了,领导又说你没有匠人精神。好家伙,话都让领导说了?所以这个一定要一开始就跟领导坦白,是追求开发速度还是追求绝对的质量,有了领导的肯定后,之后出了事你也能甩锅了。
2. 跟领导要足开发工时,人力物力成本!
如果你不提前跟领导要足,最终延期的责任就全在你了。时间不够,人手不够,你要懂得张嘴,千万别不好意思,最终真延期了引发严重损失。
当然,领导很可能对这个平台开发项目的预估也不足,毕竟很多领导自己都没有真正写过多少代码,他作为产品的角度给你提需求,可能你需要一个月的时间,但是领导觉得这个功能很简单只给你1周。如果你不把这个平台按照你自己专业的角度进行评估后,然后再晓之以理动之以情。那么大概率最后要背锅!
3. 对平台进行分层架构设计!
千万千万不要上来就开始做,很多同学都是上来就django-admin startproject 创建了项目,然后就迅速开始实现起来了... 结果做完之后,各种不合理,易用性,易改变性什么的iso9126质量体系通通扔在脑后。最后各种重构.... 浪费时间。
大家可以随便找个在线脑图工具,先大体的设计一下这个平台的分层。比如数据层用什么数据库,业务层都有哪些模块,视图逻辑层要起到什么作用,前端分为几个大部分等等.... 具体的你可以参考网络七层协议呀! 平时就知道背这七层然后去面试?真正到了实际用的时候都联想不到这个?
设计过程中除了要遵守高内聚 低耦合等主流标准,还要考虑一些其他的设计,比如一个安卓自动化测试平台,那么你的物理手机要怎么链接和控制,平台要部署到哪个服务器?脚本和测试报告要存放在哪里? 同学使用的时候本地调试 怎么解决?等等设计上的问题,在一开始要想好,别做到一半了,发现解决不了,白做了....
4. 对平台的技术进行选型 !
平台的前后端代码要用什么技术来实现,从大到小都要考虑。比如确定是python3.7+django2.2 来写后端。前端用vue-cli + bootstrap + 原生 来做。中间件用什么,缓存用radis?操作数据库用orm?
服务器用什么系统,代码仓库用gitlab?细微的一些技术,比如增删改查统一用get+post请求 还是 restful? 安装卸载apk 用adb命令?操作shell用subprocess?等等大的小的技术提前确定一下,这个过程也要跟其他参与的测开同事一起讨论...
5. 确定平台UI设计风格偏重!
作者曾经见到不少平台,一个页面一个风格,宛如一个拼接怪。不同开发人员的ui设计一般我们不重视,所以就会导致 八仙过海各显神通的 混乱局面。
ui上一会儿黑白灰色调,一会儿又大红大紫的,一会又闪闪发光的非主流上来了。使用者们还没来得及使用,心里就会怀疑这个平台的专业性了。
所以最好就是大家确定一个风格,比如小清新风格..... 或者黑白传统风格 ... 或者密集数据显示风格 ..... 或者高大上简洁风格 .... 总之只要统一起来,看着就会很舒服。
6. 数据埋点统计!
这个功能很多同学觉得没啥鸟用,一般都会在投入使用很久很久之后没什么做了或者需要用了才想起来统计。
比如突然到了年终述职,领导让你出一份测试平台的业绩报告,你怎么出?那些各种数据难道你去随便乱猜?所以大概你会损失掉之前那段时间的使用状况。
当然还有其他情况也会用到数据统计,比如针对性漏斗优化。你要是一点数据量化都没有,那么你怎么知道你的哪些功能别人爱用,哪些功能没人使用呢?那你下一期怎么进行针对性优化呢?
要知道,这个社会最重要的是什么?技术?解决方案?不.... 最重要的是数据啊.... 谁掌握了数据,谁就知道那些别人永远也不知道的情况,就会先人一步。你做个平台,连数据都没有,后面八成要报废了...
再说,你的领导拿着你的平台给其他领导显摆的时候,跟大boss邀功的时候,你这上面有点数据也好看,也有说服力对不对?
而且数据统计真的不难做,要是嫌麻烦,直接就存到数据库的一张统计表即可,然后前端直接显示表中数据就完事了,前后不过10分钟就开发完毕。
好了,今天要说的关于测试平台搭建的准备工作就到这里了。