combinatorial methods for modelling composed software
play

Combinatorial Methods for Modelling Composed Software Systems - PowerPoint PPT Presentation

Combinatorial Methods for Modelling Composed Software Systems Ludwig Kampel, Bernhard Garn and Dimitris E. Simos SBA Research, Austria 6th International Workshop on Combinatorial Testing (IWCT 2017) Waseda University, Nishiwaseda Campus,


  1. Combinatorial Methods for Modelling Composed Software Systems Ludwig Kampel, Bernhard Garn and Dimitris E. Simos SBA Research, Austria 6th International Workshop on Combinatorial Testing (IWCT 2017) Waseda University, Nishiwaseda Campus, Tokyo, Japan March 13, 2017 powerful innovations

  2. Outline of the Talk Composed SUTs Motivation for Combinatorial Methods Nested Test Suites from Nested Models 2/30

  3. Outline of the Talk Composed SUTs Motivation for Combinatorial Methods Nested Test Suites from Nested Models Modelling Composed SUTs The Case of Automotive Industry The Case of Linux Kernel API 2/30

  4. Outline of the Talk Composed SUTs Motivation for Combinatorial Methods Nested Test Suites from Nested Models Modelling Composed SUTs The Case of Automotive Industry The Case of Linux Kernel API Extending Bounds of Usability of CT Nested CA Construction Construction of Large CAs 2/30

  5. Composed SUT C 4 C 3 C 1 C 2 Figure: Composed SUT, with components C 1 , C 2 , C 3 , C 4 C 1 C 2 C 3 C 4 Table: Corresponding IPM: 4 parameters 3/30

  6. Composed SUT C 4 C 3 C 1 C 2 Figure: Composed SUT, with components C 1 , C 2 , C 3 , C 4 C 1 C 2 C 3 C 4 Table: Corresponding IPM: 4 parameters 3/30

  7. Composed SUT C 4 C 3 C 1 C 2 Figure: Composed SUT, with components C 1 , C 2 , C 3 , C 4 C 1 C 2 C 3 C 4 Table: Corresponding IPM: 4 parameters 3/30

  8. Composed SUT C 4 C 3 C 1 C 2 Figure: Composed SUT, with components C 1 , C 2 , C 3 , C 4 C 1 C 2 C 3 C 4 Table: Corresponding IPM: 4 parameters 3/30

  9. Composed SUT C 4 C 3 C 1 C 2 Figure: Composed SUT, with components C 1 , C 2 , C 3 , C 4 C 1 C 2 C 3 C 4 Table: Corresponding IPM: 4 parameters 3/30

  10. Composed SUT C 4 C 3 C 1 C 2 Figure: Composed SUT, with components C 1 , C 2 , C 3 , C 4 C 1 C 2 C 3 C 4 a 1 a 2 b 1 b 2 b 3 c 1 c 2 c 3 d 1 d 2 d 3 Table: Corresponding IPM: 4 vs. 11 parameters 4/30

  11. Motivation for Combinatorial Methods Modular Software Everywhere! Modern software design relies on modular software architecture • Software is structured in components • These components interact with each other • Unit testing: Components are tested individually • Integration testing: Targets interactions between different components Our Contribution • Combinatorial modelling methodology that adapts to this modular approach of software design • Combinatorial constructions to merge test suites of the components to a test suite for the whole SUT • Formalized the concept of t-way coverage inheritance 5/30

  12. Nested Test Suites from Nested Models Methodology 1. Given a composed SUT with components C 1 , . . . , C k 2. IPM of composed SUT is comprised of many different sub-IPMs 3. sub-IPMs have test suites S 1 , . . . , S k 4. Test suites may or may not form a t -way CA 5. Combine the test suites to obtain a nested test suite for the SUT t-way Coverage Inheritance Property If the test suites are CAs of strength t , then the resulting nested test suite R is again a CA of strength t • Formal statement ( proof ) and more general properties (see paper) 6/30

  13. Nested Test Suites for Composed SUTs Algorithmic Procedure 1. Select test suites S 1 , . . . , S k (seeds) and desired interaction strength t between the component C 1 , . . . , C k 2. Compute meta array M := MCA ( N ; t , k , ( | S 1 | , . . . , | S k | )) a 3. For each test suite S i identify the tests with the values occurring in column i of M , via a bijective mapping 4. Replace each value in M according to the mappings defined in Step 3 a | S i | denotes the number of test cases in the test suite | S i | Other Approaches • Concept of subrelations (Cohen et al, 1997) • Submodels and (informal) coverage preservation (Czerwonka, 2006) • Concept Sub-attributes (Krishnan et al, 2007) 7/30

  14. Composed SUT: Modern Car Components of the Car C 1 : Wheels modelled with two parameters C 2 : Engine modelled with three parameters C 3 : Infotainment modelled with three parameters C 4 : Communication modelled with three parameters 8/30

  15. IPM of a component: Wheels Name: IPM-Wheels producer (enum): Giti (0), Mitas (1), Pirelli (2) type (boolean): winter (0), summer (1) A Wheels a 1 a 2 producer type 0 0 Giti winter 0 1 Giti summer 1 0 Mitas winter 1 1 Mitas summer 2 0 Pirelli winter 2 1 Pirelli summer 9/30

  16. IPM of a component: Engine Name: IPM-Engine fuel (boolean): diesel (0), gas (1) drive_mode (boolean): eco (0), sport (1) filter (boolean): present (0), missing (1) B Engine b 1 b 2 b 3 fuel drive_mode filter 0 0 1 diesel eco missing 0 1 0 diesel sport present 1 0 0 gas eco present 1 1 1 gas sport missing 10/30

  17. IPM of a component: Infotainment system Name: IPM-Infotainment streaming (boolean): true (0), false (1) audio (boolean): speaker (0), bluetooth (1) remote_control (boolean): connected (0), disconnected (1) C Infotainment c 1 c 2 c 3 streaming audio remote 0 0 1 true speaker disconnected 1 1 1 false bluetooth disconnected 1 0 0 false speaker connected 0 1 0 true bluetooth connected 11/30

  18. IPM of a component: Communication Name: IPM-Communication ip_version (boolean): ipv4 (0), ipv6 (1) connection (boolean): lte (0), wifi (1) speed (boolean): good (0), bad (1) D Communication d 1 d 2 d 3 ip_version connection speed 0 0 1 ipv4 lte bad 0 1 0 ipv4 wifi good 1 0 0 ipv6 lte good 1 1 1 ipv6 wifi bad 12/30

  19. Plug-In of Seeds into Meta Array M A M # a 1 a 2 M 1 M 2 M 3 M 4 0 0 1 0 0 1 1 0 1 2 0 1 2 2 1 0 3 0 2 3 3 4 0 3 0 0 1 1 5 1 0 2 3 2 0 6 1 1 3 0 2 1 7 1 2 0 1 B 8 1 3 1 2 b 1 b 2 b 3 9 2 0 3 2 0 0 1 10 2 1 0 3 0 1 0 11 2 2 1 0 1 0 0 12 2 3 2 1 13 3 0 0 2 1 1 1 14 3 1 1 3 C 15 3 2 2 0 c 1 c 2 c 3 16 3 3 3 1 0 0 1 17 4 0 0 0 1 1 1 18 4 1 1 1 1 0 0 19 4 2 2 2 0 1 0 20 4 3 3 3 21 5 0 0 0 D 22 5 1 1 1 d 1 d 2 d 3 23 5 2 2 2 0 0 1 24 5 3 3 3 0 1 0 1 0 0 13/30 1 1 1

  20. Plug-In of Seeds into Meta Array M A M # a 1 a 2 M 1 M 2 M 3 M 4 0 0 1 0 0 1 1 0 1 2 0 1 2 2 1 0 3 0 2 3 3 4 0 3 0 0 1 1 5 1 0 2 3 2 0 6 1 1 3 0 2 1 7 1 2 0 1 B 8 1 3 1 2 b 1 b 2 b 3 9 2 0 3 2 0 0 1 10 2 1 0 3 0 1 0 11 2 2 1 0 1 0 0 12 2 3 2 1 13 3 0 0 2 1 1 1 14 3 1 1 3 C 15 3 2 2 0 c 1 c 2 c 3 16 3 3 3 1 0 0 1 17 4 0 0 0 1 1 1 18 4 1 1 1 1 0 0 19 4 2 2 2 0 1 0 20 4 3 3 3 21 5 0 0 0 D 22 5 1 1 1 d 1 d 2 d 3 23 5 2 2 2 0 0 1 24 5 3 3 3 0 1 0 1 0 0 13/30 1 1 1

  21. Plug-In of Seeds into Meta Array M A M # a 1 a 2 M 1 M 2 M 3 M 4 0 0 1 0 0 1 1 0 1 2 0 1 2 2 1 0 3 0 2 3 3 4 0 3 0 0 1 1 5 1 0 2 3 2 0 6 1 1 3 0 2 1 7 1 2 0 1 B 8 1 3 1 2 b 1 b 2 b 3 9 2 0 3 2 0 0 1 10 2 1 0 3 0 1 0 11 2 2 1 0 1 0 0 12 2 3 2 1 13 3 0 0 2 1 1 1 14 3 1 1 3 C 15 3 2 2 0 c 1 c 2 c 3 16 3 3 3 1 0 0 1 17 4 0 0 0 1 1 1 18 4 1 1 1 1 0 0 19 4 2 2 2 0 1 0 20 4 3 3 3 21 5 0 0 0 D 22 5 1 1 1 d 1 d 2 d 3 23 5 2 2 2 0 0 1 24 5 3 3 3 0 1 0 1 0 0 13/30 1 1 1

  22. Plug-In of Seeds into Meta Array M A M # a 1 a 2 M 1 M 2 M 3 M 4 0 0 1 0 0 1 1 0 1 2 0 1 2 2 1 0 3 0 2 3 3 4 0 3 0 0 1 1 5 1 0 2 3 2 0 6 1 1 3 0 2 1 7 1 2 0 1 B 8 1 3 1 2 b 1 b 2 b 3 9 2 0 3 2 0 0 1 10 2 1 0 3 0 1 0 11 2 2 1 0 1 0 0 12 2 3 2 1 13 3 0 0 2 1 1 1 14 3 1 1 3 C 15 3 2 2 0 c 1 c 2 c 3 16 3 3 3 1 0 0 1 17 4 0 0 0 1 1 1 18 4 1 1 1 1 0 0 19 4 2 2 2 0 1 0 20 4 3 3 3 21 5 0 0 0 D 22 5 1 1 1 d 1 d 2 d 3 23 5 2 2 2 0 0 1 24 5 3 3 3 0 1 0 1 0 0 13/30 1 1 1

  23. Plug-In of Seeds into Meta Array M A M # a 1 a 2 M 1 M 2 M 3 M 4 0 0 1 0 0 1 1 0 1 2 0 1 2 2 1 0 3 0 2 3 3 4 0 3 0 0 1 1 5 1 0 2 3 2 0 6 1 1 3 0 2 1 7 1 2 0 1 B 8 1 3 1 2 b 1 b 2 b 3 9 2 0 3 2 0 0 1 10 2 1 0 3 0 1 0 11 2 2 1 0 1 0 0 12 2 3 2 1 13 3 0 0 2 1 1 1 14 3 1 1 3 C 15 3 2 2 0 c 1 c 2 c 3 16 3 3 3 1 0 0 1 17 4 0 0 0 1 1 1 18 4 1 1 1 1 0 0 19 4 2 2 2 0 1 0 20 4 3 3 3 21 5 0 0 0 D 22 5 1 1 1 d 1 d 2 d 3 23 5 2 2 2 0 0 1 24 5 3 3 3 0 1 0 1 0 0 13/30 1 1 1

  24. Plug-In of Seeds into Meta Array M A M # a 1 a 2 M 1 M 2 M 3 M 4 0 0 1 0 0 1 1 0 1 2 0 1 2 2 1 0 3 0 2 3 3 4 0 3 0 0 1 1 5 1 0 2 3 2 0 6 1 1 3 0 2 1 7 1 2 0 1 B 8 1 3 1 2 b 1 b 2 b 3 9 2 0 3 2 0 0 1 10 2 1 0 3 0 1 0 11 2 2 1 0 1 0 0 12 2 3 2 1 13 3 0 0 2 1 1 1 14 3 1 1 3 C 15 3 2 2 0 c 1 c 2 c 3 16 3 3 3 1 0 0 1 17 4 0 0 0 1 1 1 18 4 1 1 1 1 0 0 19 4 2 2 2 0 1 0 20 4 3 3 3 21 5 0 0 0 D 22 5 1 1 1 d 1 d 2 d 3 23 5 2 2 2 0 0 1 24 5 3 3 3 0 1 0 1 0 0 13/30 1 1 1

Recommend


More recommend