《一种测试覆盖分析方法与系统》的实践和思考一

随着年纪增长,记性越来越差,现在把之前写的专利《一种测试覆盖分析方法与系统》的实践、思考和技术实现过程记录下来,以便思考和学习,继续深入。

PS:想法基于“冲天炮”,主要逻辑写在Oracle Procedure存过,具有一定的独特(约束)性,但是实现的想法涉及很多方面的工具和技术。)

想法来源于一些项目需要:

1. 由于需求变更,需要表变更或者调整存过,需手工梳理存过和修改的配置文件;

2. 由于“冲天炮”技术升级,配合程序修改,需提供测试入口菜单;

3. 根据服务接口的登记情况,通知上下游修改;

4. 自动化的测试脚本关联程序。

“冲天炮”是一个非常棒(非前后端分离)的框架,易学好使实用,愧于本人水平所限,把基于“冲天炮”搭建的系统想象为这样:

菜单程序链路图.jpeg

然后根据XML的信息、程序内容嵌套的“调用”关键字(forward、include、form等等),生成菜单程序链路。

开始的实现,通过启发式的双向宽度优先搜索,发现程序链路图的规模很大,菜单-程序-程序之间——多对多的网络关系,当时通过内存和文件方式存储,一直无法满足日常使用的需要。后来采用NoSQL的Neo4j存储链路节点,去重写链路生成和遍历,效果满足日常使用的需求。

此时得到一份菜单为入口的菜单程序链路图,生成了所有菜单经过的程序、存储过程和涉及的表的关联图。该方法有局限性,纯文本分析和XML解析,容易把多余的程序链路生成,改进想法通过系统运行的日志,还原菜单运行过程中的程序链路。

为了实现测试覆盖分析,想法是基于各种Guard系列(PageObject 模式)的自动化测试框架,自动生成自动化脚本(Velocity实现),人工只需配置数据和断言:

1)Oracle Procedure的存过单元测试;

2)底层是Java程序的系统内部和外部调用接口;

3)菜单页面的UI是基于Selenium和SikuliX的封fuzzer先建立测试案例,自动化测试脚本与程序链路的关系(手动),然后
捕捉到代码变化(Java git tool)或者表结构变化,便可完成通过菜单链路调用自动化测试,同时测试覆盖的统计依赖冲天炮自带,jacoco,还有利器antrl。
实践中,自动化测试的能力得到扩展:ui帮助实现ie兼容性测试;基于owasp的 top10 payloads实现接口测试和存过单元测试的安全能力;基于覆盖率反馈和鲁棒性的思考,引入了fuzzer data generator,提升测试覆盖率,fuzzer的断言非常不易,做过基于机器学习做数据分类和结果聚类,在小的接口测试结果样本没有较好的准确率, 大神指导过有深度学习的方法还没尝试;一直没有了解基于AFL的测试覆盖反馈做fuzz 也没完整用oss-fuzz做0day。
过程中,观察到测试问题反馈,需求描述,开发进度,项目质量,测试覆盖的关系,用jieba做了这些内容的NLP,然后暴力knn,发现一些有趣的东西,但是模型是有问题的,跟项目其他特征如工作量,人数,关联系统等特征来重建模型。
既然需要更多资源和语聊,特意用scrapy写了spider,基于itchat搭了一个基于规则的应答机器人,本意是作为入口查看爬虫数据,结果发现如果基于常见开发测试运维问题做智能应答,岂不美事,规则易建,智能难做。
待续…

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 220,367评论 6 512
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,959评论 3 396
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 166,750评论 0 357
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 59,226评论 1 295
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 68,252评论 6 397
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,975评论 1 308
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,592评论 3 420
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,497评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 46,027评论 1 319
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 38,147评论 3 340
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,274评论 1 352
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,953评论 5 347
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,623评论 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 32,143评论 0 23
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,260评论 1 272
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,607评论 3 375
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 45,271评论 2 358

推荐阅读更多精彩内容

  • 曾经有个朋友告诉我:在对的时间来到对的地方遇见对的人就是幸福。 小李去年在利群超市地下开了个卖衣服的小店。她以前...
    木子果儿阅读 173评论 0 2
  • 十二月,南方的冬天来得很慢,像是贪玩的孩童流连在色彩斑斓的糖果店铺,结果一转头才发现被时间远远地落在了后头。亚热带...
    影落青苔阅读 849评论 7 7
  • 2018年1月8号 这场雪期待了好久。 去年12月的某一天,下雪了,但不是我所想象中的那场雪,那场雪下...
    沐沐子手摄记阅读 247评论 0 0