towards test driven development for mobile robots
play

Towards Test-Driven Development for Mobile Robots @SDIR - ICRA - - PowerPoint PPT Presentation

Towards Test-Driven Development for Mobile Robots @SDIR - ICRA - May 2013 Luc Fabresse, Jannik Laval and Noury Bouraqadi http://car.mines-douai.fr Outline 1. Test-driven Development (TDD) 2. TDD for Mobile Software Robotics 3. BoTest 4.


  1. Towards Test-Driven Development for Mobile Robots @SDIR - ICRA - May 2013 Luc Fabresse, Jannik Laval and Noury Bouraqadi http://car.mines-douai.fr

  2. Outline 1. Test-driven Development (TDD) 2. TDD for Mobile Software Robotics 3. BoTest 4. Report on an Experiment 5. Summary & Future Work !""#$%%&'()*+,-./012'+)3( 2 4'56789:;6<=>?@6/6?A@B

  3. CAIRE Project • Coodinator: Luc Fabresse • Partners: INRIA Lille RMoD, IEMN Telice • 2012-2014 • Nord-Pas de Calais Council funding (France) • Indoor Exploration and Mapping • Agile methodology for Robotic Software !""#$%%&'()*+,-./012'+)3( 3 4'56789:;6<=>?@6/6?A@B

  4. Software Development Software Specifications / Requirements !""#$%%&'()*+,-./012'+)3( 4 4'56789:;6<=>?@6/6?A@B

  5. Software Development Software Specifications / Requirements !""#$%%&'()*+,-./012'+)3( 5 4'56789:;6<=>?@6/6?A@B

  6. Software Development complies with? Software Specifications / Requirements !""#$%%&'()*+,-./012'+)3( 6 4'56789:;6<=>?@6/6?A@B

  7. Test-driven Development Software Specifications / Requirements !""#$%%&'()*+,-./012'+)3( 7 4'56789:;6<=>?@6/6?A@B

  8. Test-driven Development Tests Software Specifications / Requirements !""#$%%&'()*+,-./012'+)3( 8 4'56789:;6<=>?@6/6?A@B

  9. Test-driven Development Tests Software Specifications / Requirements !""#$%%&'()*+,-./012'+)3( 9 4'56789:;6<=>?@6/6?A@B

  10. Test-driven Development complies with? Tests Software Specifications / Requirements !""#$%%&'()*+,-./012'+)3( 10 4'56789:;6<=>?@6/6?A@B

  11. Benefits of TDD • Requirements as executable units: Tests • Ensure Software compliance with Tests • Short development cycles • Detecting regressions • ... !""#$%%&'()*+,-./012'+)3( 11 4'56789:;6<=>?@6/6?A@B

  12. TDD for Mobile Robotics Software Development Tests Control Specifications / Software Requirements !""#$%%&'()*+,-./012'+)3( 12 4'56789:;6<=>?@6/6?A@B

  13. Why TDD for Mobile Robotics Software Tests Control Specifications / Software Requirements !""#$%%&'()*+,-./012'+)3( 13 4'56789:;6<=>?@6/6?A@B

  14. Why TDD for Mobile Robotics Software Tests Control Specifications / Software Requirements for one product line !""#$%%&'()*+,-./012'+)3( 14 4'56789:;6<=>?@6/6?A@B

  15. Why TDD for Mobile Robotics Software Tests Control Specifications / Software Requirements • Quality written once for one Assurance • Maintenance product line !""#$%%&'()*+,-./012'+)3( 15 4'56789:;6<=>?@6/6?A@B

  16. Challenges of TDD for Mobile Software Robotics • Hardware in the loop • `` identical’’ hardware in production lines • Physical constraints • ... !""#$%%&'()*+,-./012'+)3( 16 4'56789:;6<=>?@6/6?A@B

  17. Requirements for Robot Test • Repeatability • Reuse • Safety • Automation !""#$%%&'()*+,-./012'+)3( 17 4'56789:;6<=>?@6/6?A@B

  18. A Tool for Robotics TDD • BoTest ( http://car.mines-douai.fr/software/ ) • Implemented in as an extension of SUnit ( http://www.pharo-project.org ) • Helps to write tests for robots • Support expressing dependencies between tests • Run tests in a specific order !""#$%%&'()*+,-./012'+)3( 18 4'56789:;6<=>?@6/6?A@B

  19. Example the robot should move straight 4m with 3% of error at most Specifications / Requirements !""#$%%&'()*+,-./012'+)3( 19 4'56789:;6<=>?@6/6?A@B

  20. A Motion Test Test !""#$%%&'()*+,-./012'+)3( 20 4'56789:;6<=>?@6/6?A@B

  21. A Motion Test Test name Test !""#$%%&'()*+,-./012'+)3( 21 4'56789:;6<=>?@6/6?A@B

  22. A Motion Test Test Tester action requested to setup the robot name !""#$%%&'()*+,-./012'+)3( 22 4'56789:;6<=>?@6/6?A@B

  23. A Motion Test Test Tested code !""#$%%&'()*+,-./012'+)3( 23 4'56789:;6<=>?@6/6?A@B

  24. A Motion Test Test Assertion verified by the tester !""#$%%&'()*+,-./012'+)3( 24 4'56789:;6<=>?@6/6?A@B

  25. A Motion Test But the robot should not hit walls ! !""#$%%&'()*+,-./012'+)3( 25 4'56789:;6<=>?@6/6?A@B

  26. A Motion Test But the robot should not hit walls ! Add collision detection using Laser !""#$%%&'()*+,-./012'+)3( 26 4'56789:;6<=>?@6/6?A@B

  27. A Motion Test Collision detection using Laser !""#$%%&'()*+,-./012'+)3( 27 4'56789:;6<=>?@6/6?A@B

  28. A Motion Test Add required Tests !""#$%%&'()*+,-./012'+)3( 28 4'56789:;6<=>?@6/6?A@B

  29. A Motion Test !""#$%%&'()*+,-./012'+)3( 29 4'56789:;6<=>?@6/6?A@B

  30. Laser Tests PBLaserTest !""#$%%&'()*+,-./012'+)3( 30 4'56789:;6<=>?@6/6?A@B

  31. Laser Tests !""#$%%&'()*+,-./012'+)3( 31 4'56789:;6<=>?@6/6?A@B

  32. Laser Tests !""#$%%&'()*+,-./012'+)3( 32 4'56789:;6<=>?@6/6?A@B

  33. Laser Tests !""#$%%&'()*+,-./012'+)3( 33 4'56789:;6<=>?@6/6?A@B

  34. Laser Tests !""#$%%&'()*+,-./012'+)3( 34 4'56789:;6<=>?@6/6?A@B

  35. Running a Test the robot testStraightLineMotion should move ... straight 4m with 3% of error Specifications / at most Requirements !""#$%%&'()*+,-./012'+)3( 35 4'56789:;6<=>?@6/6?A@B

  36. Running a Test the robot testStraightLineMotion should move ... straight 4m with 3% of error Specifications / at most Requirements !""#$%%&'()*+,-./012'+)3( 36 4'56789:;6<=>?@6/6?A@B

  37. Running a Test the robot testStraightLineMotion should move ... straight 4m with 3% of error Specifications / at most Requirements 1 run, 1 passes !""#$%%&'()*+,-./012'+)3( 37 4'56789:;6<=>?@6/6?A@B

  38. Running a Test the robot testStraightLineMotion should move ... straight 4m with 3% of error Specifications / at most Requirements 1 run, 0 passes, 1 run, 1 passes 1 requirementFailure !""#$%%&'()*+,-./012'+)3( 38 4'56789:;6<=>?@6/6?A@B

  39. Running a Test the robot testStraightLineMotion should move ... straight 4m with 3% of error Specifications / at most Requirements 1 run, 0 passes, 1 run, 1 passes 1 requirementFailure !""#$%%&'()*+,-./012'+)3( 39 4'56789:;6<=>?@6/6?A@B

  40. Running a Test Requirements are executed first !""#$%%&'()*+,-./012'+)3( 40 4'56789:;6<=>?@6/6?A@B

  41. Running a Test !""#$%%&'()*+,-./012'+)3( 41 4'56789:;6<=>?@6/6?A@B

  42. Running a Test 1 run, 0 passes, 1 requirementFailure !""#$%%&'()*+,-./012'+)3( 42 4'56789:;6<=>?@6/6?A@B

  43. Summary Robotics Software Tool support is development would needed benefit from TDD !""#$%%&'()*+,-./012'+)3( 43 4'56789:;6<=>?@6/6?A@B

  44. Summary Write repeatable and reusable tests Testers in the loop BoTest Support expressing dependencies between tests Run tests based on dependencies !""#$%%&'()*+,-./012'+)3( 43 4'56789:;6<=>?@6/6?A@B

  45. Future Work • Automatic test dependencies extraction • Improve tests automation • Continuous integration for non-interactive tests • Specialized development tools !""#$%%&'()*+,-./012'+)3( 44 4'56789:;6<=>?@6/6?A@B

  46. Towards Test-Driven Development for Mobile Robots @SDIR - ICRA - May 2013 Luc Fabresse, Jannik Laval and Noury Bouraqadi !"#$%&'()*&#$%&'(+',-(#./01&,)2" Looking for a 18 months PostDoc http://car.mines-douai.fr/2013/03/postdoc-position/ More infos: Starting: ~Sept 2013 Keywords: Robotics Software, Agile development, Dynamic Languages, ...

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend