OmniTesting

OmniTesting is a package containing new browsers that very closely integrate unit testing with the development process. Any browser includes an additional button panel providing actions for testing, debugging and profiling. Tests a re marked with a colored bar - succedding ones with green, failures with orange/yellow and errors with red. Moreover the browsers include a "jump" actions which will open a browser showing you the test for the selected source (vice versa) and provide additional some additional queries for senders and implementors.

Downloads

  • All-inclusive Squeak-Image (AllTesting-xxxx-xx-xx.zip). Everything inside this image is supposed to be working, but sources are probably not up-to-date.
  • Public MC packages on SqueakSource (SR): "OmniTesting2"

Most Recent Changes

  • Test-First-Development
    • automatic source-code generation from the test(s) using dynamic analysis of test-runtime
    • PROBLEMS NOT FIXED YET:
      • in case of NonBooleanReceiverException -> step back undo last change, produce code with a boolean
      • always return self in the stub except in the case above
  • actions refactored
  • tests (classes, methods, ....) get directly annotated with a color in the browser -> needs the latest BrowserSupport package
  • test history saving test-source version, time of test-run, result
  • browser adapted to the latest ob changes (update-mechanism)

Todo / Not Implemented Yet

Todo / Known Bugs

  • weak performance for
    • packages containig many tests -> query the test cache

Ideas / New Inputs

  • user supervision = intelligent/responsive tests
    • on each accept: store the relation of "testcode/code" added to the system. If the relation is near 0, the the user doesn’t test enough (?)
    • save order of interactions - does the developer test-first or code-first (?)
    • save the last 5 suites (quick history), so the user can quickly execute them (?)
  • ...

Done / Implemented Features

  • persistency of test results
    • history for each test/result
    • each testcase has its own testresult, results are composable
    • cache is a simple singleton-dictionary
  • system notification
    • a testresult is removed as soon as the source changes
  • colored bars to show the status of the test (rectangle)
  • new status morph
    • faster, only updates if necessary
    • shows only the relevant information
    • shows all tests in the image if the browser is opend on no-node
  • deep testing removed (to slow)
  • additional actions added to the browser
  • ...
Last changed by admin on 21 April 2009