25,399 research outputs found
Constraint programming for random testing of a trading system
Financial markets use complex computer trading systems whose failures can
cause serious economic damage, making reliability a major concern. Automated
random testing has been shown to be useful in nding defects in these systems,
but its inherent test oracle problem (automatic generation of the expected system
output) is a drawback that has typically prevented its application on a larger scale.
Two main tasks have been carried out in this thesis as a solution to the test
oracle problem. First, an independent model of a real trading system based on
constraint programming, a method for solving combinatorial problems, has been
created. Then, the model has been integrated as a true test oracle in automated random
tests. The test oracle maintains the expected state of an order book throughout
a sequence of random trade order actions, and provides the expected output of every
auction triggered in the order book by generating a corresponding constraint
program that is solved with the aid of a constraint programming system.
Constraint programming has allowed the development of an inexpensive, yet
reliable test oracle. In 500 random test cases, the test oracle has detected two
system failures. These failures correspond to defects that had been present for
several years without being discovered neither by less complete oracles nor by the
application of more systematic testing approaches.
The main contributions of this thesis are: (1) empirical evidence of both the
suitability of applying constraint programming to solve the test oracle problem and
the e ectiveness of true test oracles in random testing, and (2) a rst attempt, as
far as the author is aware, to model a non-theoretical continuous double auction
using constraint programming.Castañeda Lozano, R. (2010). Constraint programming for random testing of a trading system. http://hdl.handle.net/10251/8928.Archivo delegad
Multiple-Implementation Testing of Supervised Learning Software
Machine learning (ML) software, used to implement an ML algorithm, is widely used in many application domains such as financial, business, and engineering domains. Faults in ML software can cause substantial losses in these application domains. Thus, it is very critical to conduct effective testing of ML software to detect and eliminate its faults. However, testing ML software is difficult, especially on producing test oracles used for checking behavior correctness (such as using expected properties or expected test outputs).
To tackle the test-oracle issue, in this paper, we present a novel black-box approach of multiple-implementation testing for supervised learning software. The insight underlying our approach is that there can be multiple implementations (independently written) for a supervised learning algorithm, and majority of them may produce the expected output for a test input (even if none of these implementations are fault-free). In particular, our approach derives a pseudo-oracle for a test input by running the test input on n implementations of the supervised learning
algorithm, and then using the common test output produced by a majority (determined by a percentage threshold) of these n implementations. Our approach includes techniques to address challenges in multiple-implementation testing (or generally testing) of supervised learning software: definition of a test case in testing supervised learning software, along with resolution of inconsistent algorithm configurations across implementations. The evaluations on our approach show that our multiple-implementation testing is effective in detecting real faults in
real-world ML software (even popularly used ones), including 5 faults from 10 NaiveBayes implementations and 4 faults from 20 k-nearest neighbor implementations.Ope
Automatic Software Repair: a Bibliography
This article presents a survey on automatic software repair. Automatic
software repair consists of automatically finding a solution to software bugs
without human intervention. This article considers all kinds of repairs. First,
it discusses behavioral repair where test suites, contracts, models, and
crashing inputs are taken as oracle. Second, it discusses state repair, also
known as runtime repair or runtime recovery, with techniques such as checkpoint
and restart, reconfiguration, and invariant restoration. The uniqueness of this
article is that it spans the research communities that contribute to this body
of knowledge: software engineering, dependability, operating systems,
programming languages, and security. It provides a novel and structured
overview of the diversity of bug oracles and repair operators used in the
literature
KISS: Stochastic Packet Inspection Classifier for UDP Traffic
This paper proposes KISS, a novel Internet classifica- tion engine. Motivated by the expected raise of UDP traffic, which stems from the momentum of Peer-to-Peer (P2P) streaming appli- cations, we propose a novel classification framework that leverages on statistical characterization of payload. Statistical signatures are derived by the means of a Chi-Square-like test, which extracts the protocol "format," but ignores the protocol "semantic" and "synchronization" rules. The signatures feed a decision process based either on the geometric distance among samples, or on Sup- port Vector Machines. KISS is very accurate, and its signatures are intrinsically robust to packet sampling, reordering, and flow asym- metry, so that it can be used on almost any network. KISS is tested in different scenarios, considering traditional client-server proto- cols, VoIP, and both traditional and new P2P Internet applications. Results are astonishing. The average True Positive percentage is 99.6%, with the worst case equal to 98.1,% while results are al- most perfect when dealing with new P2P streaming applications
- …