Releases: emarteca/nessie
Releases · emarteca/nessie
v1.0.0-beta
Implemented all planned features on this test generator.
This corresponds to the following list of additional features on top of the original test generator presented at ICSE 2022:
- merging of API discovery mode and test generation mode, so the test execution feedback is parsed to learn more signatures and valid argument values
- addition of support for generation of chained methods, both to learn the function properties of the
Object
return values of other API calls, and to generate signatures and test calls to them (notably: now we generate promise chains to use the results of asynchronous functions) - support for generation of constructor calls
- support for libraries that need to be invoked before being used
- addition of option to inform the test generator of API calls signatures/valid argument values via mined data (
--mined-call-data
) - addition of back-support for older versions of the test generator (via
--test-gen-mode
argument, that enables/disables the various relevant features) -- this is to allow experiments comparing the effectiveness of different modes - tracking and use of the types of primitive arguments in signature discovery
- inclusion of evaluation scripts for coverage and regression testing experiments (relevant for those wishing to replicate the experiments in the associated publication)
- implementation of abstract representation of objects via access paths, both in the mined data and in the API discovery (to be able to amalgamate discovery results of non-root function call signatures, i.e. functions that can't be represented as just the name of the library's property and that can have different variable name representations depending on the test they are generated in)
- various minor bug fixes
This needs more stress-testing before it can be a full release.
Note: This corresponds to the test generator described in my dissertation.
v0.1.1: merge disc/gen phases and track primitive args
Changelog from original nessie
:
- merged the discovery and test generation phases, for double feedback between the tests and the function signatures
- using the (previously tracked but not used) primitive types for function arguments in the tracked functions as part of the signatures; now tracking correctness of calls in terms of these types
Utility scripts:
- added automated script for computing sequential coverage of a test suite, resetting the fs environment between runs
v0.1.0
Re-implementation of the test generator nessie
presented at ICSE 2022, with the following changes:
- rewritten in Rust
- can generate multiple callback arguments
- considers a rejected promise return value as an API usage error
- extends tests by only one function call at a time
- extended instrumentation (although this feedback is not used to inform future tests yet)