Fluxica Peregrine

Fluxica Peregrine is a software development tool for automated in vivo software testing without bias for C/C++ and Java. In vivo software testing is testing (embedded) computer source code at the execution level, it is the software equivalent of in-circuit hardware testing.

Key Goals

The results of a Fluxica Peregrine test are used to evaluate software system quality. The evaluation is based on functionality (the test reveals unexpected behavior) and statistics (the test confirms the probability for unexpexted behavior not to occur, it quantifies test uncertainty). The goal of the test is threefold:

  1. Increase the fault tolerance of the system.

  2. Reduce the time and labor needed for testing the system.

  3. Provide test output that is both empirically and statistically convincing.

Key Characteristics

Fluxica Peregrine allows for a hands-on workbench approach towards (embedded) software system testing. It has the following key characteristics:

  • Supports and encourages an iterative development process.

  • Scales from testing a single statement to the entire software system.

  • Generates tests without bias, notably without any human bias.

  • Does not require a specific IDE, a test is setup:
    • for processing through a dedicated GUI;
    • or for batch processing through a dedicated terminal application.

  • Runs locally and all functionality is built into the program, it does not connect over any computer network.

  • Has been developed in the field where computing science and electronic engineering meet.

Key Principle

Fluxica Peregrine is at its heart a smart fuzz tester. Smart fuzz testing is a method to discover unexpected program behavior by injecting (pseudo-)random data into the software program under test while matching the shape of the expected input. The smarter a fuzz tester is, the greater the code coverage of the test is.

A smart fuzz tester is a generation based tester. The input structure of the program under test is analyzed for its basic data type(s) and effective value range(s). Random data is then generated to match type(s) and range(s) and injected into the program to detect potential unexpected program behavior.

The outcome of the test can be used to quantify test uncertainty, which is the probability for unexpected behavior not to occur. Any software program written in C/C++ or Java can be tested with the Peregrine software testing tool.

Peregrine Example Application

The presentation available through the button below summarizes the business benefits of Fluxica Peregrine together with an example application the Peregrine testing tool.

© 2020-2022 Fluxica Computer Engineering. All rights reserved.