Skip to content

Quality Assurance  #303

@MarkoPaasila

Description

@MarkoPaasila

What can and should we do to ensure quality? Of primary importance is making sure keys are secure and that strategies do nothing stupid. This isn't any fun, but it really is very important. Of secondary importance is software stability.

Here's my idea for ensuring strategy sanity

  1. A strategy with the sole purpose to do all kinds of stuff in the specified market. Stupid things, normal things, insane things, unexpected things. This would be used to create conditions that indirectly stress-test a strategy that's running in another bot. After all, unanticipated market actions are what most likely will trigger unexpected behavior in the production case. This strategy could include sending assets to another account - the account of the strategy to be tested. This, or even several instances of it, should be run in a separate instance of DEXBot to maximize "load". It could be limited to cli. Creators of strategies should think out how to manipulate their strategies to make a loss, and how to crash them; then add those procedures to this stupidity-strategy. Indirect testing like this will cover all future strategies without knowing exactly what the strategy to be tested is supposed to do.
  2. A method which instantiates a strategy, then arbitrarily pauses it, resumes it, stops it, causes a connection error, restarts, etc, all pseudorandomly for as long as it is left on. This could be used separately or in conjunction with the crazy-insane-strategy.

This won't cover key security stuff, and I don't have any ideas for that.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions