DamlCov: Test coverage analysis tool for Daml smart contracts#323
DamlCov: Test coverage analysis tool for Daml smart contracts#323mderka wants to merge 7 commits into
Conversation
Updated references from 'daml' to 'dpm' in the documentation for the DamlCov and DamlFuzz tools. Added a Go-to-Market strategy section outlining distribution, onboarding, and community evangelism plans. Signed-off-by: Martin Derka <martin@quantstamp.com>
Added responses to reviews regarding the test coverage and fuzzing framework proposal, detailing ecosystem demand, scope, adoption expectations, and integration with existing workflows. Signed-off-by: Martin Derka <martin@quantstamp.com>
- Removed test coverage (separate PR) - Added deliverable to M3 - Added total funding - Adjusted allocation to M3 - Clarified support
- Removed fuzzer (separate PR) - Added total funding - Clarified support
Delete proposals/fuzzing-framework-damlfuzz.md Signed-off-by: Martin Derka <martin@quantstamp.com>
|
@monsieurleberre This PR now contains the You asked whether the approach of marking taken branches in a smart contract could make the system independent of the client, and serve also as coverage data for service implementations. I believe that both items are possible, and I would treat them individually. We can mark the multi-client support as an item that is important for developer adoption, and specifically focus on it. For the service coverage, the underlying requirement is that the coverage tool must be able export the coverage data as an artifact after the run, so that they can be consumed in the subsequent pipeline steps. We can certainly make that happen. Regarding the observer and privacy comment, there definitely won't be any changed to the privacy model of production systems. All the logic modification must involve local and simulated environments only. The developers should remain unaffected and to a great extent unaware. We agree that this will be one of the implementation challenges to overcome, but we also consider it just that - an implementation challenge. We will be happy to provide early designs and consult our solutions while addressing it, if there is interest to be involved! |
Development Fund Proposal Submission
Proposal file:
proposals/test-coverage-damlcov.md
Summary
We propose developing a test coverage tool for Daml smart contracts. Such a tool is currently not available for Daml, meanwhile it belongs to the basic toolbox expected by developers. The tool will be designed from the ground up for Daml's unique authorization model, UTXO-like state, and multi-party privacy semantics. It will be developed as open-source, free to use, executable locally, will integrate with the current Daml tooling, and will provide reports usable in CI/CD pipelines.
Checklist
/proposals/Notes for Reviewers
This proposal separates our
DamlCovinto an independent proposal from PR#52.