Project Requirements
The current set of known requirements for the GenTest software is outlined in the table below. It provides a brief requirement description to the best of our knowledge. All of the requirements represent a good-faith attempt to compile system requirements as described in the Project Overview document and gained from discussions with Dr. Groce regarding DeepState. Any or all of the requirements above are subject to change and are not in any way final. As we continue forward in discussing design solutions, these requirements will serve as the foundation for design considerations and other important details to come.
Requirement ID | Requirement Name | Description |
REQ#1 | Command Line Interface | The GenTest software shall provide a command line interface tool that:
|
REQ#2 | Test Harness Conversion | The GenTest software shall be able to convert test harness C++ (test.cpp) files into a standalone unit test. |
REQ#3 | Binary Insertion | The GenTest software shall be able to insert binaries from Fuzzing and Symbolic Execution written in generated binary files (foo.test) into standalone unit tests. |
REQ#4 | Low-Level Primitives | The GenTest software shall be able to convert all low-level primitives supported by DeepState into the output unit testing framework. This include the following C primitives:
|
REQ#5 | Nested Structure Support | The GenTest software shall be able to convert all nested-structures in C to the appropriate format in the Unit Testing framework. (nested-structures to be defined at a later date). |
REQ#6 | Capture and Response | The GenTest software shall be able to capture and respond to called functions and/or chosen values from a finite set. |
REQ#7 | Creation of Pointer Structures based on DeepState harness | The GenTest software must be able to create pointers to store information on decisions made in DeepState harnesses. |
REQ #8 | C Compatibility | The GenTest software will provide compatibility with C. |
REQ#9 | Documentation | All GenTest software will be thoroughly documented and provide real-world integration tutorials. |