Automatically identifying critical input regions and code in applications

@inproceedings{Carbin2010AutomaticallyIC,
  title={Automatically identifying critical input regions and code in applications},
  author={Michael Carbin and Martin C. Rinard},
  booktitle={ISSTA '10},
  year={2010}
}
Applications that process complex inputs often react in different ways to changes in different regions of the input. Small changes to forgiving regions induce correspondingly small changes in the behavior and output. Small changes to critical regions, on the other hand, can induce disproportionally large changes in the behavior or output. Identifying the critical and forgiving regions in the input and the corresponding critical and forgiving regions of code is directly relevant to many software… 
LLFI : An Intermediate Code Level Fault Injector For Soft Computing Applications
Hardware errors are on the rise with reducing chip sizes. However, a certain class of applications called soft computing applications, (e.g., multimedia applications) can tolerate most hardware
ML-PipeDebugger: A Debugging Tool for Data Processing Pipelines
TLDR
A tool is presented that can help identify critical data processing steps, allowing to “debug” or improve data pre-processing and model generation, and gives a view of how different data instances behave in relation to each other throughout a pipeline.
Map ( b ) Delta Debugging ( c ) Data Provenance
Developing Big Data Analytics workloads often involves trial and error debugging, due to the unclean nature of datasets or wrong assumptions made about data. When errors (e.g., program crash, outlier
ApproxSymate: path sensitive program approximation using symbolic execution
TLDR
ApproxSymate is a framework for automatically identifying program approximations using symbolic execution that first statically computes symbolic error expressions for program components and then uses a dynamic sensitivity analysis to compute their approximability.
Invariant detection meets Random test case generation
Full fledged verification of software ensures correction to a level that no other technique can reach. However it requires precise and unambiguous specifications of requirements, functionality and
Automated debugging in data-intensive scalable computing
TLDR
BigSift is a new faulty data localization approach that combines insights from automated fault isolation in software engineering and data provenance in database systems to find a minimum set of failure-inducing inputs to solve the iterative nature of automated debugging workloads.
Verifying quantitative reliability for programs that execute on unreliable hardware
TLDR
A static quantitative reliability analysis is presented that verifies quantitative requirements on the reliability of an application, enabling a developer to perform sound and verified reliability engineering.
AutoSense: A Framework for Automated Sensitivity Analysis of Program Data
TLDR
AutoSense is presented, a framework to automatically classify resilient (insensitive) program data versus the sensitive ones with probabilistic reliability guarantee, and achieves promising reliability results compared to manual annotations and earlier methods.
Minotaur: Adapting Software Testing Techniques for Hardware Errors
With the end of conventional CMOS scaling, efficient resiliency solutions are needed to address the increased likelihood of hardware errors. Silent data corruptions (SDCs) are especially harmful
Architecture-Aware Approximate Computing
TLDR
This paper presents a program slicing-based approach that identifies the set of data accesses to drop and results indicate 8.8% performance improvement and 13.7% energy saving are possible when the error bound is set to 2%, and the corresponding improvements jump to 15% and 25%, respectively, when theerror bound is raised to 4%.
...
1
2
3
4
5
...

References

SHOWING 1-10 OF 34 REFERENCES
Taint-based directed whitebox fuzzing
TLDR
The results indicate that the new directed fuzzing technique can effectively expose errors located deep within large programs, especially appropriate for testing programs that have complex, highly structured input file formats.
Penumbra: automatically identifying failure-relevant inputs using dynamic tainting
TLDR
The results are promising, as they show that PENUMBRA can point developers to inputs that are actually relevant for investigating a failure and can be more practical than existing alternative approaches.
Automatically patching errors in deployed software
TLDR
Aspects of ClearView that make it particularly appropriate for this context include its ability to generate patches without human intervention, apply and remove patchesto and from running applications without requiring restarts or otherwise perturbing the execution, and identify and discard ineffective or damaging patches by evaluating the continued behavior of patched applications.
Feedback-Directed Random Test Generation
TLDR
Experimental results indicate that feedback-directed random test generation can outperform systematic and undirectedrandom test generation, in terms of coverage and error detection.
Prospex: Protocol Specification Extraction
TLDR
This paper presents a system that is capable of automatically inferring state machines, and introduces techniques for identifying and clustering different types of messages not only based on their structure, but also according to the impact of each message on server behavior.
Flayer: Exposing Application Internals
TLDR
This paper presents an effective fault injection testing technique and an automation library, LibFlayer, which explores techniques for vulnerability patch analysis and guided source code auditing.
Tupni: automatic reverse engineering of input formats
TLDR
Tupni is presented, a tool that can reverse engineer an input format with a rich set of information, including record sequences, record types, and input constraints, and can generalize the format specification over multiple inputs.
Automatic Protocol Format Reverse Engineering through Context-Aware Monitored Execution
TLDR
The results show that AutoFormat can not only identify individual message fields automatically and with high accuracy, but also unveil the structure of the protocol format by revealing possible relations among the message fields.
An empirical study of the reliability of UNIX utilities
The following section describes the tools we built to test the utilities. These tools include the fuzz (random character) generator, ptyjig (to test interactive utilities), and scripts to automate
Dynamic Taint Analysis for Automatic Detection, Analysis, and SignatureGeneration of Exploits on Commodity Software
Software vulnerabilities have had a devastating effect on the Internet. Worms such as CodeRed and Slammer can compromise hundreds of thousands of hosts within hours or even minutes, and cause
...
1
2
3
4
...