prune-trace: added "sampling with fault expansion"

The FESamplingPruner implements the fault-expansion variance reduction
technique (FE-VRT) as described in: Smith, D. Todd and Johnson, Barry W. and
Andrianos, Nikos and Profeta, III, Joseph A., "A variance-reduction technique
via fault-expansion for fault-coverage estimation" (1997), 366--374.

Change-Id: I04a0c9bb2622974278bd8c73793e51451119e650
This commit is contained in:
Horst Schirmeier
2014-04-30 14:24:49 +02:00
parent 9a81ab4222
commit 0da8ba0dec
4 changed files with 212 additions and 0 deletions

View File

@ -0,0 +1,31 @@
#ifndef __FESAMPLING_PRUNER_H__
#define __FESAMPLING_PRUNER_H__
#include "Pruner.hpp"
#include "util/CommandLine.hpp"
///
/// FESamplingPruner: implements sampling with Fault Expansion
///
/// The FESamplingPruner implements the fault-expansion variance reduction
/// technique (FE-VRT) as described in: Smith, D. Todd and Johnson, Barry W.
/// and Andrianos, Nikos and Profeta, III, Joseph A., "A variance-reduction
/// technique via fault-expansion for fault-coverage estimation" (1997),
/// 366--374.
///
class FESamplingPruner : public Pruner {
fail::CommandLine::option_handle SAMPLESIZE;
unsigned m_samplesize;
public:
FESamplingPruner() : m_samplesize(0) { }
virtual std::string method_name() { return "FESampling"; }
virtual bool commandline_init();
virtual bool prune_all();
private:
bool sampling_prune(const fail::Database::Variant& variant);
};
#endif