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

towards test driven development for mobile robots
SMART_READER_LITE
LIVE PREVIEW

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.


slide-1
SLIDE 1

Towards Test-Driven Development for Mobile Robots

Luc Fabresse, Jannik Laval and Noury Bouraqadi http://car.mines-douai.fr

@SDIR - ICRA - May 2013

slide-2
SLIDE 2

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

Outline

  • 1. Test-driven Development (TDD)
  • 2. TDD for Mobile Software Robotics
  • 3. BoTest
  • 4. Report on an Experiment
  • 5. Summary & Future Work

2

slide-3
SLIDE 3

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

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

3

slide-4
SLIDE 4

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

Software Development

4

Specifications / Requirements Software

slide-5
SLIDE 5

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

Software Development

5

Specifications / Requirements Software

slide-6
SLIDE 6

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

Software Development

6

Specifications / Requirements Software complies with?

slide-7
SLIDE 7

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

Test-driven Development

7

Specifications / Requirements Software

slide-8
SLIDE 8

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

Test-driven Development

8

Specifications / Requirements Software Tests

slide-9
SLIDE 9

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

Test-driven Development

9

Specifications / Requirements Software Tests

slide-10
SLIDE 10

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

Test-driven Development

10

Specifications / Requirements Software Tests complies with?

slide-11
SLIDE 11

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

Benefits of TDD

  • Requirements as executable units: Tests
  • Ensure Software compliance with Tests
  • Short development cycles
  • Detecting regressions
  • ...

11

slide-12
SLIDE 12

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

TDD for Mobile Robotics Software Development

12

Control Software Specifications / Requirements Tests

slide-13
SLIDE 13

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

Why TDD for Mobile Robotics Software

13

Control Software Specifications / Requirements Tests

slide-14
SLIDE 14

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

Why TDD for Mobile Robotics Software

14

Control Software Specifications / Requirements Tests for one product line

slide-15
SLIDE 15

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

Why TDD for Mobile Robotics Software

15

Specifications / Requirements Tests for one product line written once

  • Quality

Assurance

  • Maintenance

Control Software

slide-16
SLIDE 16

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

Challenges of TDD for Mobile Software Robotics

  • Hardware in the loop
  • ``identical’’ hardware in production lines
  • Physical constraints
  • ...

16

slide-17
SLIDE 17

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

Requirements for Robot Test

  • Repeatability
  • Reuse
  • Safety
  • Automation

17

slide-18
SLIDE 18

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

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

18

slide-19
SLIDE 19

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

Example

19

the robot should move straight 4m with 3% of error at most

Specifications / Requirements

slide-20
SLIDE 20

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

A Motion Test

20

Test

slide-21
SLIDE 21

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

Test

A Motion Test

21

Test name

slide-22
SLIDE 22

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

Test

A Motion Test

22

Tester action requested to setup the robot name

slide-23
SLIDE 23

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

Test

A Motion Test

23

Tested code

slide-24
SLIDE 24

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

Test

A Motion Test

24

Assertion verified by the tester

slide-25
SLIDE 25

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

A Motion Test

25

But the robot should not hit walls !

slide-26
SLIDE 26

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

A Motion Test

26

Add collision detection using Laser

But the robot should not hit walls !

slide-27
SLIDE 27

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

A Motion Test

27

Collision detection using Laser

slide-28
SLIDE 28

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

A Motion Test

28

Add required Tests

slide-29
SLIDE 29

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

A Motion Test

29

slide-30
SLIDE 30

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

Laser Tests

30

PBLaserTest

slide-31
SLIDE 31

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

Laser Tests

31

slide-32
SLIDE 32

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

Laser Tests

32

slide-33
SLIDE 33

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

Laser Tests

33

slide-34
SLIDE 34

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

Laser Tests

34

slide-35
SLIDE 35

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

Running a Test

35

the robot should move straight 4m with 3% of error at most

Specifications / Requirements

testStraightLineMotion

...

slide-36
SLIDE 36

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

Running a Test

36

the robot should move straight 4m with 3% of error at most

Specifications / Requirements

testStraightLineMotion

...

slide-37
SLIDE 37

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

Running a Test

37

the robot should move straight 4m with 3% of error at most

Specifications / Requirements

testStraightLineMotion

...

1 run, 1 passes

slide-38
SLIDE 38

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

Running a Test

38

the robot should move straight 4m with 3% of error at most

Specifications / Requirements

testStraightLineMotion

...

1 run, 1 passes

1 run, 0 passes, 1 requirementFailure

slide-39
SLIDE 39

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

Running a Test

39

the robot should move straight 4m with 3% of error at most

Specifications / Requirements

testStraightLineMotion

...

1 run, 1 passes

1 run, 0 passes, 1 requirementFailure

slide-40
SLIDE 40

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

Running a Test

40

Requirements are executed first

slide-41
SLIDE 41

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

Running a Test

41

slide-42
SLIDE 42

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

Running a Test

42

1 run, 0 passes, 1 requirementFailure

slide-43
SLIDE 43

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

Summary

43

Robotics Software development would benefit from TDD Tool support is needed

slide-44
SLIDE 44

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

Summary

43

BoTest Write repeatable and reusable tests Testers in the loop Support expressing dependencies between tests Run tests based on dependencies

slide-45
SLIDE 45

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

Future Work

  • Automatic test dependencies extraction
  • Improve tests automation
  • Continuous integration for non-interactive tests
  • Specialized development tools

44

slide-46
SLIDE 46

Towards Test-Driven Development for Mobile Robots

Luc Fabresse, Jannik Laval and Noury Bouraqadi

!"#$%&'()*&#$%&'(+',-(#./01&,)2" @SDIR - ICRA - May 2013

Looking for a 18 months PostDoc

http://car.mines-douai.fr/2013/03/postdoc-position/

More infos:

Keywords: Robotics Software, Agile development, Dynamic Languages, ...

Starting: ~Sept 2013