allenai / amti

A Mechanical Turk Interface (amti) 🤖
Apache License 2.0
55 stars 18 forks source link

Add automated tests #25

Open nalourie-ai2 opened 4 years ago

nalourie-ai2 commented 4 years ago

Until now, amti's testing has been entirely manual. There have been three reasons for this decision:

  1. amti began as a tool I built for myself. Originally, I wanted to demo the idea of reproducible, version controlled crowdsourcing pipelines and to make my own crowdsourcing research reproducible. I open sourced amti so that others could run my pipelines, to share the idea of reproducible crowdsourcing, and in case people found it helpful.
  2. amti is still in initial development (has not had a 1.0 release), and manual testing means less effort expended on maintaining automatic tests.
  3. Most good tests for amti require mocking the MTurk APIs or running against the MTurk sandbox; so, good tests are more work to write than in other situations (and thus it's more valuable to keep testing burden low during initial development).

That said, as adoption grows it's more important to ensure amti's reliability. Similarly, amti needs high quality automated tests before any possible 1.0 release.

Since amti will still undergo some major refactoring before 1.0 (see Issue #24 for example), it's worth discussing tests people plan to write here beforehand, to avoid wasting effort.

Here are my thoughts on how to increase test coverage: