牛跟什么生肖相冲| 雪燕是什么东西| 梦见蛇咬别人是什么意思| 邓超的公司叫什么名字| hoegaarden是什么啤酒| 夏至吃什么传统食物| 宫腔积液吃什么药效果最好| 落枕挂什么科| 国家能源局是什么级别| 媱字五行属什么| 医联体是什么意思| 女生流白带意味着什么| 传度是什么意思| 快递什么时候停运| 全自动洗衣机不排水是什么原因| 小二是什么意思| 骑驴找马是什么意思| 眉毛尾部有痣代表什么| 后腰出汗多是什么原因| 特应性皮炎用什么药膏| adivon是什么牌子| 鸡喜欢吃什么食物| 元宵节送什么| 抛光是什么意思| 花生属于什么类| 数字17代表什么意思| 可小刀是什么意思| 大作是什么意思| 小腿冰凉是什么原因| 岔气吃什么药| 什么的柳枝| 上不下大是什么字| nb什么意思| 阴蒂长什么样| 孕妇脚肿是什么原因引起的| 为什么今年夏天特别热| 低密度脂蛋白低是什么原因| 可乐鸡翅用什么可乐| 春秋鼎盛是什么意思| 83年属猪是什么命| 胚胎停育是什么原因造成的| 7月7号是什么节日| mice是什么意思| 追随是什么意思| 菩提子长什么样| 台风什么时候走| 脾胃气虚吃什么中成药| 为什么女生喜欢腹肌| jumper是什么衣服| 胰腺炎什么症状| 铁蛋白偏高是什么意思| 痱子是什么样的| 变应性鼻炎是什么意思| 骨头受伤了吃什么恢复的快| 红霉素软膏有什么作用| 饸饹是什么| 非萎缩性胃炎吃什么药| 寻常是什么意思| 心口痛是什么原因引起的| ys是什么意思| 皮肤炎症用什么药| 花椒是什么| 伤到什么程度打破伤风| 为什么会说梦话| 早晨起床口干口苦是什么原因| 女性为什么会感染hpv| 司仪是什么意思| 什么情况下要打破伤风| 一模一样的意思是什么| 监视居住是什么意思| 囊肿是什么意思| 小腿长痣代表什么意思| 牙齿痛吃什么药| 长期拉肚子是怎么回事什么原因造成| 环比是什么| 肺纤维化是什么症状| 丝瓜为什么会苦| 细菌性阴道炎用什么洗液| 蛋白质阴性是什么意思| 造影检查对身体有什么伤害| 苏铁属于什么植物| 什么是斜视| 社恐是什么意思| 面目狰狞是什么意思| 地势是什么意思| 三餐两点什么意思| 淡奶油是什么| 舌加氏念什么| 雏凤是什么意思| 什么是手足口病| 6月24日是什么日子| o型血与b型血生的孩子是什么血型| columbia是什么牌子| 护资成绩什么时候出| 冠心病喝什么茶最好| 女属蛇的和什么属相最配| 桃子什么时候成熟| 心脏舒张功能减低是什么意思| 725是什么意思| 浅绿色配什么颜色好看| 月经期间喝酒会有什么影响| 急性尿道炎吃什么药| 结核病是什么| 肺结核早期有什么症状| 你是电你是光是什么歌| 闽南语懒觉是什么意思| 肝火旺盛吃什么药效果最好| 人参果什么季节成熟| 腹泻肚子疼吃什么药| 母亲节什么时候| 脾胃不好吃什么食物可以调理| 梦见抱小女孩是什么意思| 维生素b5药店叫什么| 灵魂是什么意思| 爱吃酸的人是什么体质| 喉咙痛看什么科| 对偶句是什么意思| sicu是什么科室| mansory是什么车| 理疗和按摩有什么区别| 黍米是什么米| 牙周炎用什么药| 夫妻分房睡意味着什么| 什么的草坪| 这次台风叫什么| 关羽的武器叫什么| 7月15日是什么节日| 茶壶里煮饺子的歇后语是什么| 毛周角化症是什么原因引起的| 艾草治什么病| 什么样的心情| 未时属什么生肖| 生姜放肚脐眼有什么功效| 莲子心有什么作用| 房颤是什么意思| 腊肉炖什么好吃| 红色的海鱼是什么鱼| 7月八号是什么星座| 冬阴功是什么意思| 脚心出汗是什么原因| 什么尾巴长不了| 梦见自己掉牙齿是什么征兆| 老人双脚浮肿是什么原因| 意向什么意思| 1889年属什么生肖| 什么虫子咬了会起水泡| 女人吃什么越来越年轻| 中医学是什么| 食管炎吃什么药| 血压高吃什么| 什么叫代谢| 右眼睛跳是什么原因| 11月1号是什么星座| 不放屁是什么原因| 疤痕体质是什么| 兑卦五行属什么| asa是什么意思| 蓟什么意思| 真菌性外耳道炎用什么药| 旖旎是什么意思| 五四运动是什么| hcg低有什么补救的办法| 维生素b9是什么| 危险期是什么时候| 金字旁的字与什么有关| 过敏性咳嗽用什么药效果好| 五月二十一是什么星座| 三十年婚姻是什么婚| 东盟是什么意思| 太上皇是什么意思| 羊肉炖什么| 杨树林是什么牌子| 锰酸钾是什么颜色| 痔疮手术后可以吃什么水果| 囧是什么意思| pcp是什么意思| 移植后可以吃什么水果| 梦见情敌什么预兆| 梦见生了个儿子是什么意思| 关联词是什么意思| 试管都有什么方案| 测测你天生靠什么吃饭| 尿白细胞3十什么意思| 打葡萄糖点滴有什么用| 什么是高脂血症| 为什么有眼袋是什么原因引起的| 骨膜炎是什么症状| 愚蠢是什么意思| 梦见殡仪馆是什么意思| 旻什么意思| 姨妈量少是什么原因| 口腔异味是什么原因引起的| 胎记是什么| hisense是什么牌子| 胃阴不足吃什么中成药| 海市蜃楼是什么现象| tbs是什么意思| 上火吃什么| 闫和阎有什么区别| 什么是匝道图片| 当兵什么时候入伍| 办护照需要什么| 唇炎去药店买什么药| 牙齿遇冷热都痛是什么原因| 破伤风有什么作用| 谷雨是什么季节| 蓉字五行属什么| 女性头部出汗吃什么药| 1月21是什么星座| 肛门瘙痒用什么药膏好| 舌头发麻看什么科| 毕业证有什么用| 喉咙痒咳嗽吃什么药好| esd是什么| 人为什么会怕鬼| 4月29号是什么星座| 什么药降尿蛋白| 口腔溃疡吃什么药好| 咖啡对心脏有什么影响| 问加一笔是什么字| 苏联是什么国家| 结膜炎用什么眼药水| 胩是什么意思| 全身淋巴结肿大是什么原因| 工作室是干什么的| 属虎和什么属相最配| 大便为什么是黑色的是什么原因| 属兔本命佛是什么佛| 正气是什么意思| md是什么意思| 绿豆和什么不能一起吃| 苦命是什么意思| dn是什么| 人棉是什么面料| 身正不怕影子斜是什么意思| 刮骨疗毒的意思是什么| 菩提萨婆诃是什么意思| 后脑勺疼什么原因| 水奶是什么| 国防科技大学毕业是什么军衔| 什么是牙齿根管治疗| 梁伟文 为什么叫林夕| 天蝎座女和什么星座最配| 胃肠湿热吃什么中成药| 荨麻疹能吃什么食物| 尿血最坏的病是什么病| 元朝是什么民族| 99朵玫瑰花代表什么| 人体缺钾是什么原因引起的| 遥遥相望是什么意思| 出冷汗是什么原因| 狗女配什么属相最好| 拉不出来屎是什么原因| 老年人头晕是什么原因| 肌酐高是什么原因造成的| 真情流露是什么意思| 护理学什么| 丙球是什么| 画蛇添足告诉我们什么道理| 为什么排卵期会出血| 开口腔诊所需要什么条件| 眼睛总是干涩是什么原因| 中考送什么礼物| 白兰地属于什么酒| 百度
Skip to main content

A股三大指数跌幅进一步扩大 深成指、创业板指大跌超5%

Sapienz Logo
Sapienz Logo

It can take 15 years or more for research to transfer from academia to full industrial deployment. For the founders of Majicke, an automated software testing startup created out of University College London (UCL), it took not much over a year.

In September 2016, a trio of UCL researchers founded Majicke with the idea of building on decades of search-based software engineering (SBSE) research to create tools that?automate the process of finding test cases.?Traditionally designed by humans, test cases are used to determine whether software will function correctly under different circumstances.?Majicke’s core product was Sapienz, a tool that leverages SBSE to automatically generate test sequences and find crashes.

In January 2017, Facebook announced that it was acqui-hiring Majicke’s founders, Professor Mark Harman (scientific advisor), Ke Mao (CTO), and Yue Jia (CEO), alongside some of the company’s assets — while?Majicke itself was wound down.

Above: Sapienz: Ke Mao (CTO), Mark Harman (scientific advisor), and Yue Jia (CEO)

Today,?Harman is an engineering manager at Facebook, where he is able to test the impact of his research on products used by billions of people — though he also maintains a part-time academic position at UCL. Mao and Jia are also now software engineers at Facebook.

Facebook already uses artificially intelligent software across its suite of public-facing products to automate myriad processes, from?detecting illegal content?to assisting with?translations.?Behind the scenes, the company has also been pushing to scale automated software testing and verification across its products in order to detect glitches long?before they hit Google’s or Apple’s app stores.

Back in 2013, Facebook announced it was acquiring Monoidics, the?London-based developer behind a static automated code verification tool called Infer Static Analyzer, which was designed to identify buggy mobile code early on and then demonstrate that the bug had been fixed.?Around the same time, Harman and his team at UCL were doing research on generating test cases, a technique related to verification. “In testing, you try to find the presence of bugs so you can get rid of them, and in verification you prove the absence of bugs,” Harman said?in a Q&A session held at Facebook’s London HQ.

The Monoidics acquisition, ultimately, was to be the genesis for Harman’s startup.

“We thought we should have a startup, too, if we were going to have an impact with this research,” Harman continued. “So we set up a startup called Majicke.”

Breaking things

Facebook has been known for its “move fast and break things”?mantra since it first launched on the web 14 years ago. But with the advent of native mobile phone apps, rolling out fixes for bugs isn’t quite so easy. If a bug is found on the web, an update can be rolled out immediately, but mobile apps require the user to physically update their app to get a fix, which makes it all the more important to find bugs well before the app ships.

Above: Infer at work

A widely accepted principle in the software engineering realm is that the later a bug is caught, the more effort — and cost — goes into fixing it. This is where both Infer and Sapienz come into play.

Infer is actually complementary to Sapienz, and both teams still work from Facebook’s engineering hub in London. Together, the products let programmers build code without spending too much time testing for bugs.

Infer is what is known as a “static” analysis tool that is useful earlier in the development process, before the code is executed, while Sapienz is a dynamic analysis tool, which means it’s designed for an executable “runtime” environment. Infer basically pinpoints code that it?think looks dodgy, while Sapienz confirms it by running the code and finding a crash.

“Sapienz’ job is to run the code in a realistic environment to see if it can cause a failure in practice,” Harman said. “If Sapienz finds a real problem, and Infer had a likely possible cause, then if we connect those two up we’ve got all the path between cause and effect.”

Sapienz runs on a whole bunch of emulators rather than the live version of an app — remember, the goal is to catch bugs before they ship. Here you can see an example of various instances of Facebook’s apps being tested by Sapienz — basically creating test sequences to try to catch problems in the code.

Above: Examples of Facebook apps being tested in emulators.

The most common bug identified by Sapienz is what is known in the industry as a null pointer, in which a referenced object in a line of code is invalid.

The ultimate goal of Sapienz is, of course, to expedite crash fixes so the final version of an app update is as polished as possible. But it’s also about allowing developers to move faster on the actual writing of new code, and to work on things that are more interesting.

“They [developers] would much rather be creative and create new products than try to work out why this particular pointer here was referencing something it shouldn’t or was a null,” Harman said.

Deployed

Sapienz was deployed for the first time in Facebook’s main Android app in September 2017. This represented a?rapid rise in fortunes for Sapienz’ creators, in particular CTO Ke Mao, who worked as chief developer of the first incarnation of Sapienz while he was a PhD student.

“He was able to go from being a PhD student to joining Facebook and seeing the work in his PhD deployed … I mean, it was starting to be deployed even before he’d submitted his thesis,” Harman added. “There’s research that shows how long it takes for an idea to go from conception to practice — 15 to 17 years it can take to go from academic research to industrial deployment. This PhD student did it in 17 months, if not fewer.”

In the months since its first deployment, Sapienz has been expanded to cover Facebook’s other Android apps, including those for Messenger, Instagram, and Workplace, as well as the main Facebook iOS app.

So what induces an esteemed computer engineering professor to join a company such as Facebook? Well, it all comes down to application at scale — the ability to see the impact of their work on more than 2 billion people.

“One of the things that attracts scholars to come work here [at Facebook] is that the biggest challenge in software engineering is scalability — how do you scale up the techniques you’re applying?,” Harman said. “In a university, you can work on fairly small-scale examples in laboratory conditions, but what you really want to be able to do is see ‘Can my ideas apply at very big scale?'”

According to Harman, around 100,000 changes are made to Facebook’s various products each week, which affords a significant opportunity to test Sapienz at scale.

“That kind of scale, as an academic … we can’t find that in very many other places,” he added.

Fixer upper

According to Harman, 75 percent of reported crashes end up getting fixed, which means that Sapienz — more often than not — is flagging genuine issues in the code.

“For an automated technique to have a fix rate of 75 percent is pretty impressive, because it’s very easy for an automated technique to generate all sorts of irrelevant noise for engineers,” he said.

As Facebook continues honing its bug-finding smarts, it’s simultaneously working on automated technology that will?fix the code.?“Our dream is a world in which we can automatically find faults in software and then automatically fix them, as well,” Harman added.

A few months back, Facebook unveiled SapFix, which is already in the early stages of deployment in the Facebook Android app. SapFix?automatically generates fixes for specific bugs, though the final call on whether to accept the fix is made by a human engineer.

Underpinning this is a tool called Getafix, which provides fixes for bugs found by both Infer and Sapienz,?and which learns from previous fixes conducted by engineers — so any recommendations it makes “are intuitive for engineers to review,” according to Facebook.

What we’re now seeing is a situation in which Infer and Sapienz are used to find and flag bugs and crashes, which will then trigger a patch generator via SapFix to fix the issues.

“This is very much bleeding edge, and it’s also a very current hot topic in the research community internationally,” Harman said. “We wanted to take all this technology, and the unique position we find ourselves in with both static and dynamic analysis, and see whether we can combine all these techniques to automatically fix some of the bugs we’re finding.”

As noted, 75 percent of bugs reported by Sapienz are fixed, but only a small portion of those are currently being fixed by SapFix — and yes, most of those are null pointers.

“About half of those that SapFix tries to fix, they actually work out to be good fixes and are accepted once checked [by an engineer],” Harman added.

Redundant?

To the casual observer, it may appear that we’re fast heading to a world in which developers will be redundant? — or, at least, a significant chunk of them. But Harman doesn’t think that will be the case. For now, human developers still review the final code before it’s catapulted into the main codebase, and of course they have to generate the code in the first place.

“We wouldn’t let an automated technology loose on our codebase without having developer oversight,” Harman said.

But what about years into the future — does Harman every envisage a day when software engineers are sidelined?

“Theoretically, you could get to that place, but I’m not sure practically whether we would want to do that,” he continued.?“Psychologists have studied for a long time the difference between ‘generating’ and ‘checking’, and checking is usually an order of magnitude easier than generating.”

A good analogy here would perhaps be that of a spell-check program on a computer. Though machines are getting better at generating meaningful text, for example in sports reporting, it’s not clear that they will ever be able to rival humans at generating prose and other creative works. But most people now use spell-checking systems to spot errors in their text, and desktop publishing has allowed anyone to produce professional-grade publications without complex equipment.

Could automated software testing and debugging have a similar impact and open up programming to more people? Harman thinks that could be one potential outcome in the future — “because coding becomes more exciting and creative, and less about the nitty gritty that puts a lot of people off,” he said.

In other words, programming becomes more about making than fixing.

Open-sourcing

In 2015, Facebook announced?it was open-sourcing Infer to improve its efficacy, something the company is also planning for both Sapienz and SapFix — though it hasn’t provided a timescale for either. We are probably looking at years rather than months, though.

“Ultimately, we can make this technology available to the whole community, and it can also have just as much impact on software in general as it does on Facebook here,” Harman said. “We can make the technology open source and the community can work on this, develop it, and apply it to their problems.”

Facebook has a history of?open-sourcing its technology, and the company is among the top contributors on GitHub. But it’s not purely an altruistic endeavor — open-sourcing also benefits Facebook, as the more projects?Sapienz and SapFix are exposed to, the better the tools will become. The practice also plays an important role in attracting top technical talent to the company.

“One of the appeals for me, as an academic coming to Facebook, was the fact that Facebook has a good track record of making its code for infrastructural work on software engineering available,” Harman added.

Automation and AI are infiltrating just about every facet of society, so it makes sense that we’re also seeing such advances in the software engineering sphere. A few months back, Alphabet’s investment arm, GV,?led a $20 million investment in automated software-testing startup Mabl, while San Francisco-based Sauce Labs has also raised big bucks for automated app testing smarts.

It seems that this concerted effort is part of a joint push to get engineers to a point where they can spend more time on creative stuff, rather than being bogged down in the?nitty gritty of null pointers.

子宫肌瘤是什么原因造成的 什么万 现役是什么意思 营养性贫血是什么意思 小狗感冒吃什么药
冰释前嫌是什么意思 什么是机制 投诉护士找什么部门 cla是什么 小麦粉可以做什么吃的
什么的风雨 什么是微单相机 神经衰弱吃什么好 天年是什么意思 去年的树告诉我们什么
四级警长是什么级别 医美是什么意思 玉屏风颗粒治什么病 总动员是什么意思 中老年人喝什么奶粉好
肉炒什么好吃hcv9jop3ns6r.cn 梦见看房子是什么预兆hcv8jop8ns7r.cn ctp是什么意思hcv8jop1ns9r.cn nfl是什么意思beikeqingting.com 齁不住是什么意思hcv8jop9ns2r.cn
hpa是什么病tiangongnft.com 手被辣椒辣了用什么方法解辣hcv7jop6ns4r.cn 子宫内膜单纯性增生是什么意思dayuxmw.com 木瓜什么味道inbungee.com 病毒为什么会变异hcv9jop6ns6r.cn
欧皇什么意思hcv8jop9ns4r.cn 湿疹什么症状hcv7jop6ns6r.cn 星月菩提是什么xinjiangjialails.com 专情是什么意思hcv8jop4ns5r.cn 王维被称为什么hcv8jop7ns7r.cn
膝盖疼痛吃什么药好hcv8jop8ns5r.cn 十月份是什么星座的hcv8jop7ns8r.cn 血压测不出来什么原因hcv8jop4ns7r.cn 丁目是什么意思hcv8jop0ns0r.cn 一个口一个犬读什么hcv8jop3ns8r.cn
百度