QA Release Minimal Test Plan

It's been a long time coming, I think now that MRLComm has been refactored and greatly improved,  it's time to start testing in preperation for release.  I wanted to start this conversation for the minimal release check list / test plan with a ideals in mind.  

  • Keep it simple.  
  • There's too many edge cases to test.  
  • Trust but verify the unit tests.
  • Nothing replaces manual testing
  • We can continue to fix things after it's been released.

So with that in mind,  I think we need to have a minimal test to say that we are ok to cut a release of MRL. 

They goal will be that when people download and install MRL the first time, and they want to do something simple to see cause & effect that it should be worky.  


I'm pretty happy to say of all the videos that I've posted to YouTube, the most popular one is the "MyRobotLab - Arduino with Servo tutorial". 

This tutoral in it's simplest case gets you to download MRL, plug an arduino in, attach a servo to it, and make it move with the swing GUI.

I consider this the most basic smoke test that we should do in order to release.  (The steps have changed and will change from build to build, but we should keep tutorials like this as up to date as possible.)

So, I think if we can make a new tutorial that shows how to do this with the latest building then we have passed enough tests that we should make a release  (And release the tutorial video at the same time with the release.)

The basic steps of the tutorial should cover the following

  1. system requirements (install java 64 bit, if you're on 64 bit!)
  2. download MRL into a clean directory and install all services  (maybe from the command line?)
  3. start MRL and navigate to (swing? or webgui?)
  4. start the arduino service
  5. upload the sketch
  6. start a servo service
  7. attach the servo to the arduino to the arduino
  8. move the servo with the slider
  9. watch the servo physically move and rejoice!




Check list for Release

  1. myrobotlab.jar starts up without a problem and can install all the services
  2. myrobotlab.jar has usage options printed when passed -h --help or -help
  3. javadocs published
  4. code coverage publised
  5. All junit tests in the build are passing (or commented out with some comments in the code as to what is not working.)
  6. repo is updated to be in sync with the release and IVY files are updated to use the proper locations
  7. Tutorial video for quick start with arduino + servo is posted


Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.
GroG's picture

Great ! .. I would add

Great ! ..

I would add :

  • press a couple of Oscope analog pin buttons - watch the trace - watch the trace change with 2 reading pins - cause Heisenberg was right - and observing causes change :) - have a wire in the analog pin socket - bring your hand near - see the change
  • press status - whatch the mrlcomm status come back 

I often do these things even before I bother hooking a servo up - as they require no hardware (not even a wire necessarily) except an Arduino

calamity's picture

Look great, we did make very

Look great, we did make very good progress

a few thing

Servo speed control: To have the current speed control work, the servo service need to be "calibrated" with setMaxVelocity(degree/sec). So the MaxVelocity = (servo speed =1). I can provide my setting as default, but each InMoov build can have slighty different setting influenced by how hard the gear are to turn and/or servo model etc. It's easy to find the setting with a timer to see how much time it take to move from a position to another one. I'm awaiting feedback from Gael to see if it's need some change


One thing that annoy me when using the webgui is that you can't open python script that are ouside the .myrobotlab folder. I have all my script in a main folder that stay when I install a new version of myrobotlab to avoid having different versions of my script. With the swing GUI that work fine, but with the webgui, I need to copy/paste the script in