ctf up怎么写 write_软件测试工程师要不要写工具?

Fintech概念正受到不少互联网金融公司的热捧,主要是指代那些可用于撕裂传统金融服务方式的高新技术。越来越多的企业开辟了新的部门去研究各种各样能让自己产品增值的科技类产品。尤其是在很多互联网金融公司,业务分析师BA(Business Analyst),又称产品经理受到大家的追捧,虽然身处西二旗等ITer聚集地,但是他们做的工作与金融街上的白领们并无不同,他们是无所不懂的金融达人,顶着各个海外名校金融数学系的Master光环,手持CFA,CPA,FRM,AFP/CFP,CIIA,ACCA等等。

既然是在IT公司做需求分析的工作,除了需要出具需求说明书,然后将需求翻译成程序员能够理解的说明文档,不可避免的也需要做一些测试的工作。现在各种工具琳琅满目,各种智能的自动化测试平台也在全面普及,越来越多的人工工作被取代,于是测试工程师经常会接到任务说:写个工具给BA用,让他们可以参与测试。说起来容易做起来难,对于大部分金融达人来说,代码对于他们无异于普通人看哥德巴赫猜想的手稿,如何让他们能够参与进来,能够更多地参与测试成为了测试工程师更多关注的问题。

前段时间正好接到了一个需求,由于业务需要计算期权费,BA需要计算出最优的数据组合,但是输入有3个参数,每个参数有40个数据,且数据是保留到小数点后15位,这样算下来的排列组合多到一个BA不可能在2周内找到最优解,更不要提在需求文档里明确写上排列组合的期望结果。如果BA写不出来,对于不懂金融的开发和测试,就更是一头雾水,无从下手,怎么能让BA自己算出来需要的数据呢?试了下Excel+Python的解决方案,基本满足了BA的需求,唯一需要BA支持的就是输入的excel需要按照规定的格式制作,以便程序读取。比如第一列是执行价,第二列是买入期权,第三列是卖出期权:

3b3bc1234ec9a8fcb914acb108d2214f.png

我们对应在代码里需要读取写入Excel里面的数据,依然使用最熟悉的xlrd和xlwt包。之所以把路径之类的都参数化,主要是为了生成UI之后,BA使用起来更方便。

# 获取文件
input_file_path = input.get()
print("Input File Path: " + input_file_path)
output_file_path = input_file_path.replace("option price caculator.xlsx", "new file.xls")
print("Output File Path: " + output_file_path)

在Java中我们一般会使用BigDecimal来进行金融数据的处理,但是在Python中,虽然也有BigDecimal包,但是处理起来会出现各种各样不明原因的报错,所以我们选择了float类型。

# 打开文件
workbook = xlrd.open_workbook(input_file_path)# 获取sheet内容
sheet1 = workbook.sheet_by_index(0)# 获取整列的值
orgstrike = sheet1.col_values(0)
orgcall = sheet1.col_values(1)
orgput = sheet1.col_values(2)# 更改格式
strike = [float(x) for x in orgstrike]
call = [float(x) for x in orgcall]
put = [float(x) for x in orgput]

计算完成后,然后生成新的excel来保存处理过的数据,在不同的Sheet中保存不同的计算结果以便查看。如果需要多次运行且结果可以被覆盖,则加上cell_overwirte_ok = True就可以了。

# 创建文件
file = xlwt.Workbook()
sheet1 = file.add_sheet("符合条件", cell_overwrite_ok=True)
sheet1.write(0, 0, 'call')
sheet1.write(0, 1, 'strike')
sheet1.write(0, 2, 'put')
sheet1.write(0, 3, 'strike')
sheet1.write(0, 4, 'callNeg')
sheet1.write(0, 5, 'strike')
sheet2 = file.add_sheet("不符合条件", cell_overwrite_ok=True)
sheet2.write(0, 0, 'call')
sheet2.write(0, 1, 'strike')
sheet2.write(0, 2, 'put')
sheet2.write(0, 3, 'strike')
sheet2.write(0, 4, 'callNeg')
sheet2.write(0, 5, 'strike')

接下来就是完成BA需求里面逻辑计算,排列组合的部分了,由于需求不同,我就不展示这部分代码了,有个提示在这个地方,如果需要在console里面打印出浮点,请使用如下代码:

print("call: %04d(%18.14f); put: %04d(%18.14f); callneg: %04d(%18.14f)"% (i + 1, strike[i], j + 1, strike[j], k + 1, strike[k]))

这样我们逻辑部分就完成了,下面就要进行UI部分的设计和制作了,由于技(懒)术(惰)原因,我们还是使用Python来做,一气呵成。

import tkinter.font as tkFont

对于一般的BA的需求来说,一个输入文件,一个输出文件足够了,所以我们也本着极简的原则做一个UI,成品如下,贴入输入文件的路径,点击GO后,会显示输出文件的链接,点击链接可以打开生成的文件:

b82852250fdb837cdaab1389a17ad850.png

在Pycharm的Console里,我们可以看到打印出来的结果:

4990e2372c18981e8c3184829392a900.png

在文件夹里,我们会找到新生成的文件new file.xls:

3e0e4730954e0c5e3cae7e83ae38babf.png

在这个文件里,有我们需要的所有符合条件和不符合条件的排列组合:

fb9061595f15651a9841117905673a4c.png

想做出这样的效果,网上有很多tkFont的教程可以参考。有几点需要提示,tkFont在Python2和3中的使用方法不一样,请先确认自己使用的版本。部分代码如下:

# Title
root.title("Option Price Calculator")# Input File
labelFilePath = Label(root, text="   Input File: ")
labelFilePath.grid(row=0, sticky=E)# Textbox
input = StringVar()
entryFilePath = Entry(root, width=80, textvariable=input)
entryFilePath.grid(row=0, column=1)# Go
buttonGo = Button(root, text="GO", width=5)
buttonGo.bind("<Button-1>", lambda event: OptionPriceCalc.read_excel(event, input))
buttonGo.bind("<Button-1>", lambda event: show_output_file_path(event, input))
buttonGo.grid(row=0, column=3, padx=5, sticky=E+W)# Output File
labelOutput = Label(root, text="Output File: ")
labelOutput.grid(row=1, sticky=E)

完成需求后,BA提出了新的看法,对于点击连接后是否直接打开,我们是可以控制的:

def show_output_file_path(event, input):output = input.get().replace("option price caculator.xlsx", "new file.xls")ft = tkFont.Font(family="Calibri", size=11, underline=1)labelOutputFile = Label(root, text=output, fg="blue", font=ft)labelOutputFile.grid(row=1, column=1, sticky=W+N+S)# Click Go -> Click File NamelabelOutputFile.bind("<ButtonPress-1>", lambda event: open_file(output))# Click Go -> Open File Automatically# labelOutputFile.bind("<ButtonPress-1>", os.startfile(output))

有了这个模板,BA提出新需求后,我们只需要更改UI文件中调用的方法名,就可以了!


需要测试资料?2020年软件测试基础视频+软件测试资料,点击下面卡片领取:

2020 软件测试讲义+视频+面试题集锦资料​kbyx0011.mikecrm.com

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/507100.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

th标签能包裹select吗_电影《八佰》过后,他能摘掉马思纯前男友标签了吗?

文/温青青提到欧豪&#xff0c;大多数人第一时间想到的还是“马思纯前男友”、“快乐男声选秀出道歌手”这些身份。原因嘛很简单&#xff0c;只因为男方在娱乐圈的名气地位暂时还不如女方。类似情况分手的情侣还有很多&#xff0c;杨紫的前男友秦俊杰&#xff0c;蓝盈莹的前男友…

h3c防火墙u200配置命令_h3c 防火墙清除配置

reset saved-configuration 重置配置文件。The saved configuration file will be erased. Are you sure? [Y/N]:YConfiguration file in cfa0 is being cleared. Please wait ...Configuration file is cleared.reboot 重新防火墙Start to check configuration with next sta…

android 自定义 popupwindow,Android自定义弹出窗口PopupWindow使用技巧

PopupWindow是Android上自定义弹出窗口&#xff0c;使用起来很方便。PopupWindow的构造函数为public PopupWindow(View contentView, int width, int height, boolean focusable)contentView为要显示的view&#xff0c;width和height为宽和高&#xff0c;值为像素值&#xff0c…

android lottie字体json,Android 动画深入Lottie

image.png如果现在有需求,让这个小人做出拳击动作你应该如何做? 传统方法会写一大堆的路径值做路径动画&#xff0c;不好调试代码臃肿并且麻烦&#xff0c;那么有简单方法吗 有&#xff01; SVG 和 Lottie 可以胜任 SVG编辑麻烦美工不太会弄&#xff0c;那么我们用Lottie 下面…

android 搜索工具栏,Android记事本在菜单栏添加搜索按钮方法

效果图这个app结构和我之前将记事本开发的博客基本一致&#xff0c;我这里直接讲一下怎样添加使用的开发软件为android studio首先在res目录下新建文件夹menu&#xff0c;添加目录布局文件main_menu之后在main_menu中添加如下代码xmlns:app"http://schemas.android.com/ap…

5分钟k线数据 存储_成功率极高的“分时K线战法”:15分钟K线战法+30分钟K线战法...

实战看盘最常用的就是日、周、月等K线图。这些图形对于我们分析个股走势的确帮助很大&#xff0c;然而遇到调整时&#xff0c;就显示了其宏观有余、微观不足的缺点。但假如我们用分时K线图进行微观的观察与分析&#xff0c;就可以找到一些个股在调整中的规律&#xff0c;比如15…

nfc卡模式与标准模式_张家口市环卫进入首都标准“京环模式”

“路上看不见垃圾&#xff0c;垃圾箱更卫生了&#xff0c;路边公共设施齐全了。”喜欢晨练的王先生最近格外喜欢在河边便道上散步&#xff0c;切身感受城市环境面貌改善带来的获得感。而这背后&#xff0c;除了环卫工作者的付出&#xff0c;也见证了张家口市城乡环卫一体化项目…

pyqt 取鼠标处文字_爱剪辑:炫彩的动态标题文字特效,这招让视频片头LOGO更酷炫...

爱剪辑学习委员会提醒您&#xff1a;道路千万条&#xff0c;学习第一条。教程不学会&#xff0c;制作两行泪。今天教大家制作炫彩的动态标题文字特效&#xff0c;3步即可快速学会&#xff0c;让你立马不再流泪。爱剪辑官网下载&#xff1a;http://www.aijianji.com/爱剪辑LOGO效…

android studio 搭建环境,Android studio搭建xposed环境

一、环境准备xposed&#xff1a;https://repo.xposed.info/module/de.robv.android.xposed.installerxposed-api&#xff1a;https://forum.xda-developers.com/xposed/xposed-api-changelog-developer-news-t2714067二、环境搭建Android studio选择->Empty Actvity将api.ja…

强化学习原理与python实现原理pdf_纯Python实现!Facebook发布PyTorch分布式强化学习库...

图灵TOPIA来源&#xff1a;Facebook编译&#xff1a;刘静图灵联邦编辑部出品Facebook于近日发布了PyTorch中用于强化学习(RL)研究的平台&#xff1a;TorchBeast。TorchBeast实现了流行的IMPALA算法的一个版本&#xff0c;用于RL代理的快速、异步、并行训练。另外&#xff0c;To…

鸿蒙开发还可以用安卓,华为鸿蒙2.0可以替代安卓吗,华为鸿蒙2.0优势在哪

在华为开发者大会上&#xff0c;华为消费业务CEO 余承东&#xff0c;正式发布鸿蒙OS2.0&#xff0c;并宣布华为鸿蒙OS将全面启用全场景生态&#xff0c;并将于2020年12月发布手机版。余承东还表示&#xff0c;明年&#xff0c;华为的智能手机将全面升级&#xff0c;以支持鸿蒙操…

深入浅出强化学习_直播 | 深入浅出理解 A3C 强化学习

强化学习是一种比较传统的人工智能手段&#xff0c;在近年来随着深度学习的发展&#xff0c;强化学习和深度学习逐渐结合在了一起。这种结合使得很多原来无法想象的工作有了可能&#xff0c;最令我们瞩目的莫过于 AlphaGo 战胜李世石&#xff0c;以及 OpenAI 团队的机器人可以在…

鸿蒙os2.0公测机型,鸿蒙OS2.0第二期第三期公测机型陆续公布 麒麟980和麒麟820将登场...

继官方透露鸿蒙OS2.0将开始大规模推送之后&#xff0c;在第一批为华为Mate X2&#xff0c;Mate40系列等系列机型推送后&#xff0c;近期官方再次开启了鸿蒙系统(HarmonyOS 20开发者Beta)的第二期公测&#xff0c;在原有机型的基础上再次增加了nova系列的6款机型&#xff0c;根据…

如何截取_【实用技巧】如何截取网页长图

最近需要截取一个网页长图&#xff0c;搜了下发现 Chrome 浏览器实现起来比较简单&#xff0c;顺便记录分享下。准备&#xff1a;Chrome 浏览器【1】用 Chrome 浏览器打开网页【2】按下 F12 进入开发者工具页面【3】点击工具栏中“切换设备”选项(图标看着像手机/Pad)【4】左侧…

三星升级android9,没买的不必看!三星手机各机升级Android 9.0 时间表

原标题&#xff1a;没买的不必看&#xff01;三星手机各机升级Android 9.0 时间表在此之前Samsung 在Samsung 的会员应用程序中给我们公布了旗下设备在什么时间节点升级至Android 9.0系统的路线图。用户更新至最新的Android 9.0之后&#xff0c;用户将会得到全新的One UI&#…

js微信监听返回_微信小程序(2)- 框架结构amp;运行环境

一、小程序框架结构小程序框架分场景获取、逻辑层和视图层场景获取&#xff1a;场景值是用来描述用户进入小程序的路径&#xff0c;可以在小程序的生命周期onLaunch 或 onShow 里获取。也可以通过wx.getLaunchOptionsSync来获取场景值。详细的场景列表可以在下面文档查看。微信…

html中怎样播放本地视频教程,【Axure9基础教程】内联框架如何引入本地音频 视频 HTML PDF等本地文件...

在【在讲解如何插入本地文件之前需要先讲两个概念&#xff0c;相对路径和绝对路径&#xff0c;了解了这两个概览后&#xff0c;才能顺利的插入本地文件并识别成功绝对路径和相对路径是什么?相对路径&#xff1a;相对路径就是相对于当前文件的路径&#xff0c;以引用文件之网页…

oralce load的时候使用触发器会导致load慢吗_你真的了解性能压测中的SLA吗?

作者简介&#xff1a;襄玲(花名)&#xff0c;阿里巴巴技术专家&#xff0c;PTS 研发&#xff0c;近期主导整理和推动云时代性能压测的思想和标准,云计算性能测试国标项目组成员&#xff0c;内部稳定性保障系统之预热系统负责人。本文是《Performance Test Together》(简称PTT)系…

arduino 停止程序_极路由1S OpenWrt开机自启程序及串口调试

如何给openwrt添加启动项&#xff1f;首先在/etc/init.d中创建一个文件&#xff0c;在CRT终端中直接用vi命令即可&#xff0c;自行创建startCamera文件&#xff0c;如下图所示。vi编辑器中输入下图所示内容&#xff0c;START50表示系统启动的优先顺序&#xff0c;数字越小越优先…

隐藏鼠标指针_Mac鼠标光标消失怎么办?苹果电脑鼠标指针不显示的解决方法

在小编使用mac电脑的过程中发现&#xff0c;鼠标光标会偶尔在Mac上消失。这种情况完全是随机的&#xff0c;任何时候都有可能发生。经过几次之后小编发现&#xff0c;当使用诸如Photoshop之类的大型软件并连接多个显示器时&#xff0c;鼠标光标可能消失的几率最大。或者使用Saf…