作为一个入职证券行业三年的小白,一直和IT技术打交道,这里想浅谈一下我所接触到的交易业务的测试技术和目前的情况。
证券行业IT技术非常的古老,作为证券交易的核心系统,集中交易、融资融券系统在很多券商想必都是老古董,老家伙,年龄20多年,但是又不敢轻举妄动,任何变动都会影响日间交易,从而引起证监局和客户的投诉处罚等。
针对这种老古董交易系统的测试,往往很多公司还采用功能测试这种铺张人力的方式。测试组几个人每次新业务来的时候,要么对接交易所进行仿真测试,要么不对接交易所自己进行手工测试,基本上完全依赖于人员自身的能力和经验。
往往经验丰富的测试人员在定位问题的时候,依靠的是自己的经验,也很自豪的说,这些问题是经验问题,不是技术问题,你不知道原因那是因为你没有这个经验。这句话着实让我郁闷很久,因为很多东西非常简单,但是由于缺乏经验,对我而言就很困难,部门也没有培训和传承,所以只有懂的那个人懂,没有文档和记录,没有你可以获取信息的渠道,所以只能依赖于经验丰富的老员工提供问题的原因。一旦老员工离开岗位,新员工时间不长,遇到的问题不多的话,那么很难继续这些东西。这些都是传统IT非常不好的地方。没有文档、没有培训、没有传承、全靠自己摸索,不懂的人始终不懂,没人教。
至于证券行业的业务,其实是非常有套路的。半年熟悉期过去后会发现,每次测试按着套路来,就会很顺利。
首先是行情的转入,对接交易所测试,行情非常重要,行情要是转入不对,那么证券的价格、手数、涨跌幅都不对,测了也白测。
其次,委托的时候一定要多看交易所的规则,详细了解规则的每一个细节,比如委托时间、成交时间、是否实时成交、委托数量、涨跌幅、价格限定等等。然后要实时关注交易所的老师发布的信息,否则你很难知道自己测得对还是不对。
然后,要注意时间问题,本机时间和交易所的时间不一定对的上,每次开盘收盘时间非常紧张,委托下单要迅速,但是鉴于老古董软件,不停的卡住死机,也是很无奈的事情。建议直接用报文串下单。提前做好sql,下单就很方便了。
再次,清算也是一个大型模块,要多关注登记公司的文旦,熟悉清算的套路和文件的内容,熟悉清算的流程和每个步骤报错的原因。遇到报错只能看代码解决问题了。
最后,一次业务测试短则几天,长则几个月,随时做好总结,因为白天像打仗一样忙碌。
接下来,我想谈谈自动化测试技术。
适合证券行业的自动化测试技术很多。ROBOTFRAMEWORK可以实现接口测试和UI测试,通过sql进行关键字驱动完成接口测试用例。JMETER可以实现压力测试,也是各种sql封装拼接。对于开发人员来说,做JMETER和ROBOTFRAMEWORK并没有任何难度,唯一的难点就是工作量太大。几乎所有业务都要由一两个人完成用例的设计和实现。
就我个人而言,RF用例我做了一千多个,JM用例还没开始实现。用例的难点无非是熟悉业务规则,熟悉数据库表结构,然后根据业务规则在工具里实现,RF的难点在于计算公式要根据交易系统代码来做,JM的难点在于流程和逻辑控制。
这些自动化的工具都是和持续集成JENKINS结合使用的,通过JENKINS来自动运行自动部署之类的。
不得不吐槽一下,周围其他测试同志的水平,业务懂得挺多,但是sql确实水平低下,普通工具的用例都做不出来或者不愿意去做。但是工资拿的不少。这点在国企确实是看资历而不是看能力的。
总之证券IT测试相较于互联网行业的测试真的是非常的弱了。证券行业里业务非常复杂,当然业务也是第一位的,懂业务和交易所的东西,懂清算的钱和股份的变动,在证券it里就算大拿了。所以才会有很多领导说出来,在这里要先做人才做事,做事很棒但是做人不行,不会讨上级欢心,不会揣摩领导的心思,那么永远就原地踏步吧。
证券IT行业需要的能力真的不多,只要你有心学习,非IT相关专业都能学会这些东西。所以对人的能力要求不高的地方自然对其他软性的东西要求高。
总之,做好自己吧,这也是领导所说的话,多学习,主动点,多想想解决办法和下一步的方向。主动去做一些事情,完成一些想做的事情,也许会对自己有很大的帮助,至少思维上培养了分析问题和解决问题的能力。
至于未来的发展,可以往自动化测试方向发展,可以去做需求,可以去做手工测试往业务大牛方向发展。但是总体而言证券IT行业并不太适合有志于技术的朋友。这边比较稳定,工作量也是视不同组而定,学到的东西就看你平时自己的积累和水平。新员工如果比较有上进心和责任感的往往会分配很多工作,但是做久了发现都是苦力活,没太多技术含量,都是别人不想做的分给你,可能会有一种被压榨的感觉。其余的路就是自己走了,想往哪方面发展就多去学习努力,即使无法跳槽到相关领域,也丰富了自己的知识。人生就是不断的摸索前行的。