个人介绍
Hi,我是程序员客栈的xiaoandi,一名测试开发工程师。
毕业于华东理工大学,现就任欢聚时代公司的测试开发工程师职位
熟练使用C++、Java、Python。
熟练于静态/动态代码分析,精准测试、白盒测试等方向。
了解一些自然语言处理领域的算法模型。
工作经历
2021-07-16 -至今欢聚时代测试开发工程师
1. 负责基于 SHOPLINE 主站业务的数据仓库平台的测试,针对底层 flink 架构进行全链路测试,包括 CDC 采集、 flink 任务实时计算、入库等。数据开发人员可通过数据仓库平台实现统一部署实时和离线作业,解决数据计算作业 混乱。 2. 负责实时数据作业及离线数据作业的数据逻辑、准确性测试,包括行为域、店铺域、交易域等。 3. 负责 Shoplytics 数据分析中心的白盒测试,主要针对 service 层方法构建白盒测试,覆盖各个代码分支,截至目前 代码覆盖率 70%+。 4. 从 0-1 搭建数据测试团队的自动化测试项目,构建 UI 自动化项目及离线任务自动化校验工具的建设。 为能够拦截并检查前端发出的请求,基于 Java+PlayWright 搭建 UI 自动化项目,实现对核心场景前端请求的 校验; 为解决离线自动化的延时断言问题,开发离线自动化校验工具,为数据测试团队提供了离线场景自动化的基 础能力; 5. 独立开发数据测试效率提升工具。 为合理且精准评估数据仓库平台代码改动涉及的测试范围,开发基于字节码静态分析工具,用于精准分析 Java 项目代码改
教育经历
2013-09-01 - 2017-07-01华东理工大学电气工程及其自动化本科
技能
二次开发,添加了支持udp的部分。 tun2socks是一个基于tun设备的部分TCP/UDP流量代理工具。 在使用过程中,通过抓取本地IP流量,识别需要代理的流量,再通过tun设备将识别出的流量处理后发送至socks代理服务器。 使用tun2socks可以实现多个应用程序共享代理服务,而无需修改各个应用程序的代理设置。
一个简单的闲聊机器人,基于transformer堆叠而成的模型,tokenizer取自hugging face网站的DIalogGPT的tokenizer(因为自己弄实在太麻烦),语料用的是小黄鸡的语料。
https://github.com/F-JH/static-chain-analysis 这是一个用于静态分析Java工程的调用链,对比新老分支代码的差异,并给出受到影响的接口作为建议,通俗一点地说:能够通过一段修改过的代码,推断出哪些接口有改动。 设计思想: 调用关系:在A方法中调用了B方法,则形成一条调用关系 A->B 调用链:从方法A开始,一层层追溯其所有调用关系,如:A->B->C->D,这样一条完整的调用关系链,在此称之为调用链 抽象语法树:是源代码语法结构的一种抽象表示。 它以树状的形式表现编程语言的语法结构,树上的每个节点都表示源代码中的一种结构。 核心原理: 通过字节码工具,检索工程项目内的所有编译好的字节码文件(.class),获取项目内所有方法的「调用关系」; 定义项目内的Controller类的方法为入口,由「调用关系」递归或循环,得到每一个api的「调用链」 通过语法树工具,将项目内的源码文件(.java)解析为语法树,可以很容易地对比两个分支的语法树,并得到新分支内被修改过,或者新增的方法; 遍历所有「调用链」,检查每一条调用链内是否存在被修改或更新的方法,若存在则认为本次代码更新影响到了此条调用链; 收集所有被影响到的「调用链」,我们有理由认为,这些调用链的入口,也就是对应的Controller类的api在本次需求迭代中有更新,需要参与测试或回归测试