Unlock instant, AI-driven research and patent intelligence for your innovation.

Fuzz testing of asynchronous program code

A technology of fuzzing and programming, applied in software testing/debugging, error detection/correction, and responding to errors, etc., and can solve problems such as difficulty in reliability, loss, etc.

Active Publication Date: 2015-09-23
MICROSOFT TECH LICENSING LLC
View PDF4 Cites 0 Cited by
  • Summary
  • Abstract
  • Description
  • Claims
  • Application Information

AI Technical Summary

Problems solved by technology

Other times, it is easy to generate certain types of input (e.g., calling a registered event handler), but difficult to reliably generate the sequence of events to test for logged, delayed, duplicated, and / or lost events

Method used

the structure of the environmentally friendly knitted fabric provided by the present invention; figure 2 Flow chart of the yarn wrapping machine for environmentally friendly knitted fabrics and storage devices; image 3 Is the parameter map of the yarn covering machine
View more

Image

Smart Image Click on the blue labels to locate them in the text.
Viewing Examples
Smart Image
  • Fuzz testing of asynchronous program code
  • Fuzz testing of asynchronous program code
  • Fuzz testing of asynchronous program code

Examples

Experimental program
Comparison scheme
Effect test

Embodiment Construction

[0012] A fuzzing system that represents event sources, channels, handlers, and event sinks as first-level entities in an application is described here. All event handling in the application requires these abstractions. Abstracting event-related entities allows obfuscation by inserting, dropping, reordering, and delaying events from within the application. This translates into the ability to locate the area under test and perform blurring in a symmetrical fashion. In some embodiments, a fuzzing system can test concurrent asynchronous and event-based code by fuzzing a set of observations and can generate event streams based on a given statistical distribution.

[0013] An event source generates a stream of first-level events. For example, a button raises an event each time it is pressed; similarly, a network receiver raises an event each time a network packet arrives. A fuzzing system connects event sources to event filters. Each filter generates an event stream by applying ...

the structure of the environmentally friendly knitted fabric provided by the present invention; figure 2 Flow chart of the yarn wrapping machine for environmentally friendly knitted fabrics and storage devices; image 3 Is the parameter map of the yarn covering machine
Login to View More

PUM

No PUM Login to View More

Abstract

A fuzz testing system is described herein that represents event sources, channels, processors, and consumers as first-class entities in an application. Abstracting event-related entities allows fuzzing through injecting, dropping, reordering, and delaying events from within the application. This translates into the ability to localize the areas under test and perform fuzzing in a systematic manner. In some embodiments, the fuzz testing system tests concurrent asynchronous and event-based code, and can generate event streams based on a given statistical distribution. Representing events, event sources, processors, and sinks as first-class objects provides easy access to the event handlers and facilitates implementing fuzzing by introducing event processors between the source and the sink. Thus, the fuzz testing system improves the testability of applications and APIs with asynchronous behavior and provides a uniform framework for introducing fuzz testing into such applications.

Description

technical field [0001] This application relates to fuzz testing, in particular to fuzz testing of asynchronous program codes. Background technique [0002] Modern software development often involves asynchronous programming. Multi-core central processing units (CPUs), networks, distributed systems, sensors, and more all contribute to asynchrony. This corresponds to an increased level of event-based programming, where each asynchronous entity interacts with other entities by raising events. For example, mouse movement generates a graphical user interface (GUI) event that encapsulates the position of the cursor; the completion of an XmlHttpRequest call generates an event that signals the availability of results; and the publication of a blog post generates an event that notifies interested parties that new content is available. Usually, these events are unrelated. For example, a GUI event corresponding to moving the mouse is raised independently of the event signaling compl...

Claims

the structure of the environmentally friendly knitted fabric provided by the present invention; figure 2 Flow chart of the yarn wrapping machine for environmentally friendly knitted fabrics and storage devices; image 3 Is the parameter map of the yarn covering machine
Login to View More

Application Information

Patent Timeline
no application Login to View More
Patent Type & Authority Patents(China)
IPC IPC(8): G06F11/36
CPCG06F11/3684G06F11/3692G06F11/076
Inventor E·梅杰D·A·马诺列斯库J·W·戴尔J·范 格格
Owner MICROSOFT TECH LICENSING LLC