Spelling suggestions: "subject:"detection"" "subject:"biodetection""
1 |
Automatic novice program comprehension for semantic bug detectionAde-Ibijola, Abejide Olu January 2016 (has links)
A thesis submitted to the Faculty of Science,
University of the Witwatersrand, Johannesburg,
in fulfillment of the requirements
for the Degree of
Doctor of Philosophy in Computer Science
April 2016 / Automatically comprehending novice programs with the aim of giving useful feedback has been an Artificial Intelligence problem for over four decades. Solving this problem basically entails manipulating the underlying program plans; i.e. extracting and comparing the novice's plan to the expert's plan and inferring where the novice's bug is from. The bugs of interest in this domain are often semantic bugs as all syntactic bugs are handled by automatic debuggers --- built in most compilers. Hence, a program that debugs like the human expert should understand the problem and know the expected solution(s) in order to detect semantic bugs. This work proposes a new approach to comprehending novice programs using: regular expressions for the recognition of plans in program text, principles from formal language theory for defining the space of program plan variations, and automata-based algorithms for the detection of semantic bugs. The new approach is tested with a repository of novice programs with known semantic bugs and specific bugs were detected. As a proof of concept, the theories presented in this work are further implemented in software prototypes. If the new idea is implemented in a robust software tool, it will find applications in comprehending first year students' programs, thereby supporting the human expert in teaching programming.
|
2 |
Dynamic Bug Detection in TinyOS Operating EnvironmentsWei, Pihui 26 June 2009 (has links)
No description available.
|
3 |
Libra: Detecting Unbalance MPI Collective CallsZhang, Wenbin 27 September 2011 (has links)
No description available.
|
4 |
Strip-Miner: Automatic Bug Detection in Large Software Code with Low False Positive RateIbrar, Fahad 28 April 2020 (has links)
There are a number of techniques for automatic bug detection, most of them have a high false positive rate when used in practice. This work proposes an approach, named Strip-Miner, that combines simple dependency analysis of code with a data mining technique "frequent itemset mining" to reduce the false positive rate. We adopt a two phase approach 1) finding the potential bugs and 2) filtering the false positive ones. In the first phase we extract code elements and dependencies among them using static analysis and frequent itemset mining to find programming patterns where a deviation from these patterns is considered as a potential bug. In the second phase, we use the extracted dependencies to build dependency chains between program elements in a programming pattern and a lack of such a chain potentially makes a bug false positive.
Our evaluation on a set of 7 benchmarks consisting of large software code including OpenSSL, PostgreSQL, Git, FFMPEG, SQLite, Binutils and Putty shows that combining simple de- pendency analysis with pattern mining can significantly decrease the number of generated bugs. Using our approach we are able to reduce the number of generated bugs by up to 99.9% with a false positive rate of 65.19% and true positive rate of 34.18% on average as compared to an earlier frequent itemset mining based approach "PR-Miner". / Master of Science / Every software code has bugs in it that can change its expected behavior. There have been a lot of efforts to automate the process of bug detection but most of the techniques proposed have a high rate of false alarms. Some of these techniques leverage the information available in software code to extract programming patterns that can be used to find potential bugs. Although such an approach has proved to be fruitful for finding bugs but large number of false alarms makes it almost useless in software development.
The elements present in a software code have relationships among them formally known as dependencies and the process of finding them is known as dependency analysis. There is a technique known as market basket analysis used by large retailers to find association between items. It works by looking for combinations of items that occur together frequently in transactions. Similarly, in a software code combinations of elements that occur together, can be used to find association between them. This technique is formally known as frequent itemset mining in the data mining domain. This work proposes an approach, named Strip- Miner, that combines dependency analysis with frequent itemset mining to reduce the rate of false alarms. We adopt a two phase approach 1)finding the potential bugs in code and 2)filtering the false alarms. In the first phase we extract code elements and dependencies among them and use frequent itemset mining to find programming patterns where a deviation from these patterns is considered as a potential bug. In the second phase, we use the extracted dependencies to build dependency chains between program elements present in a programming pattern and lack of such a chain is an indication of false alarm.
Our evaluation on a set of 7 benchmarks consisting of large software code including version control systems, database management systems, software security libraries and utility software like media players shows that combining simple dependency analysis with frequent itemset mining can significantly decrease the rate of false alarms. Using our approach we are able to reduce the number of generated bugs by up to 99.9% with a false alarms rate of 65.19% and real bugs rate of 34.18% on average as compared to an earlier frequent itemset mining based approach "PR-Miner".
|
5 |
DASE: Document-Assisted Symbolic Execution for Improving Automated Test GenerationZhang, Lei 17 June 2015 (has links)
Software testing is crucial for uncovering software defects and ensuring software reliability. Symbolic execution has been utilized for automatic test generation to improve testing effectiveness. However, existing test generation techniques based on symbolic execution fail to take full advantage of programs’ rich amount of documentation specifying their input constraints, which can further enhance the effectiveness of test generation.
In this paper we present a general approach, Document-Assisted Symbolic Execution (DASE), to improve automated test generation and bug detection. DASE leverages natural language processing techniques and heuristics to analyze programs’ readily available documentation and extract input constraints. The input constraints are then used as pruning criteria; inputs far from being valid are trimmed off. In this way, DASE guides symbolic execution to focus on those inputs that are semantically more important.
We evaluated DASE on 88 programs from 5 mature real-world software suites: GNU Coreutils, GNU findutils, GNU grep, GNU Binutils, and elftoolchain. Compared to symbolic execution without input constraints, DASE increases line coverage, branch coverage, and call coverage by 5.27–22.10%, 5.83–21.25% and 2.81–21.43% respectively. In addition, DASE detected 13 previously unknown bugs, 6 of which have already been confirmed by the developers.
|
6 |
Combating Fault Tolerance Bugs in Cloud SystemsChen, Haicheng 04 October 2021 (has links)
No description available.
|
7 |
Cross project Just-In-Time bug detectionPettersson, Axel January 2024 (has links)
Software is present in almost all aspects of our lives, and with more parts of life beingdriven by code, the importance of limiting bugs is critical. Studies have shown that thelonger a bug is present in a system increases the complexity of finding and handlingthe bug. Tools aimed to find bugs before they enter a system exist, but usually requiressignificant amount of data before working. This thesis aims to investigate if the stateof-the-art bug detection tool, JITLine, can be used on projects from the start. Thiswas investigated by performing cross project bug predictions, by training on an alreadyexisting system and then using the trained model on a new system. Different iterationswere done to simulate varying scenarios. It was quickly shown that a good matchbetween the project where data was gathered from and JITLine was crucial. But evenfor the best match that was evaluated, the result was significantly lower than what isto be considered a good result in the Machine Learning (ML) world. Therefor it wasconcluded that JITLine was not suited for cross project bug predictions, and therefornot suited for new projects
|
8 |
Efficient, Practical Dynamic Program Analyses for Concurrency CorrectnessCao, Man 15 August 2017 (has links)
No description available.
|
9 |
System Support for Improving the Reliability of MPI Applications and LibrariesChen, Zhezhe 19 December 2013 (has links)
No description available.
|
10 |
Runtime Support for Improving Reliability in System SoftwareGao, Qi 23 August 2010 (has links)
No description available.
|
Page generated in 0.0765 seconds