《测开方法论》之 二次开发

简介: 《测开方法论》之 二次开发

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

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


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


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

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


   第二步,权限。

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


   第三步,找关键字。

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


   第四步,找到可疑方法。

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


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

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



   好了,二次开发方法论 到这里就结束了,欢迎小伙伴们反馈!


相关文章
|
9月前
|
监控 测试技术 API
系统开发经验总结
系统开发经验总结
72 0
|
前端开发 算法 搜索推荐
《饭谈》测开领域的“二次开发”
《饭谈》测开领域的“二次开发”
《饭谈》测开领域的“二次开发”
|
架构师 容灾 应用服务中间件
阿里毕玄:系统架构师如何做好系统设计?
阿里妹导读:毕玄是阿里巴巴资深技术专家,07年加入阿里,一手打造了HSF,十多年来更见证参与了阿里在基础技术上的演进与发展。他觉得系统设计是远比 Java 编程技能更难的培训,很容易变成务虚课。为了挑战难题,毕玄决定大胆尝试在内部搞了个民间培训。
11877 0
|
应用服务中间件 程序员 数据库
|
9月前
|
新零售 搜索推荐 UED
九星创客互助排位系统开发|技术成熟|源码搭建
新零售模式是一种融合线上、线下商业以及物流,打破传统零售业的边界,通过技术创新和数据驱动来改善用户体验和效率的零售模式。
|
JSON API 区块链
什么是互助公排系统开发丨互助公排系统开发(详细及逻辑)丨互助公排开发源码案例部署
 Smart contract is a computer protocol designed to spread,verify or execute contracts in an information-based manner.
|
Web App开发 缓存 前端开发

热门文章

最新文章