【测开方法论】二次开发

二次开发,大多数情况下,我们的技术水平,精力时间,都不允许我们对源码进行深度解读。

想弄明白每一行代码的含义,每一个变量参数的含义,每一次调用和原作者每一次的意图,都非常困难。

所以我们需要用更加经济,实用,性价比高的方法去实现我们的二次开发需求,在这个理论下去用最高效率的方式实现需求,如果第一次不顺利,则一点点增加成本,扩大范围,到正好足够为止,此方法论会节省大量时间和精力。

第一步,找出源码中的运行流。  

(在庞大复杂的源码中,每个py脚本内大多有多个函数或类,那么我们应该找到我们使用这个源码库 的入口,也就是调用的方法是哪个,然后根据此方法,我们步步为营,多加一些打印语句print,这样既不会影响源码而引起bug,也会让我们测试出整个运行流,防止其他没有用到的函数干扰我们的视线。)  

第二步,权限。  

(如果涉及到一些官方源码库,比如python的一些依赖包,那么我们第一步的添加print,一定会引起权限系统的警告,此时我们要利用shell命令:sudo chmod 777 文件名 来将其权限释放。然后最好重启一遍你的ide,防止ide再次警告或修改不生效或保存报错。)

第三步,找关键字。

(虽然我们成功的找到了运行流,但是我们要确定我们此行的关键字,以便在茫茫如海的字段和变量中找到关键点,关键字比如是变量名,也可以是函数名等等,比如我要去修改unittest的teardown函数,想给它增加个入参,那么我进入unittest的庞大源码中,就去搜索关键字teardown。当然通过关键字搜索后,我们大概会搜索到十几处甚至更多,我们给它们按照嫌疑性大小进行排序。 )

第四步,找到可疑方法。

(在我们第一步,第三步的双重筛选下,结果范围其实已经小了很多,第四步就是在这个结果范围内,再根据函数名字的可疑程度来确定优先测试级。比如关键字出现且被运行的 几处中,有一处所在的方法函数叫做:run,那么这个地方就是最优先考虑测试的。诸如run,还有什么main, test, successs等等特殊方法名,都是可以优先测试的。)

第五步,开始按优先级进行测试。

(根据我们的需求,是增删改查,还是干什么,总是要实际的修改源码,那么到此,就可以按照之前的顺序逐个实验性测试了。这样可以最快的找到关键和正确的位置,实现需求。但是要注意,如果某处实验修改不成功,一定要迅速修改回原状,才能进行下一处实验。这个很重要,不然容易造成隐患。这里关于实验不成功,还有一点要强调,就是对于前面可疑性高的某处,若改动后失败了,不要着急放弃立马开始下一处的实验,而是最好尝试解决下,报错就修复下,不成功就研究下这里的代码逻辑,很多二次开发的结果并不是只修改一处代码就能办得到的,可能要多步,如果你半途而废,那么就永远不能成功了。而可疑性高的地方是值得我们多花费点心思的。)
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值