context
play

Context NNG ships navigation solutions on a broad UNIVERSITAS - PowerPoint PPT Presentation

UNIVERSITAS SCIENTIARUM SZEGEDIENSIS UNIVERSITY OF SZEGED D epartment of Software Engineering Supporting Software Product Line Testing by Optimizing Code Configuration Coverage Lszl Vidcs 1 , Ferenc Horvth 2 , Jzsef Mihalicza 3 , Bla


  1. UNIVERSITAS SCIENTIARUM SZEGEDIENSIS UNIVERSITY OF SZEGED D epartment of Software Engineering Supporting Software Product Line Testing by Optimizing Code Configuration Coverage László Vidács 1 , Ferenc Horváth 2 , József Mihalicza 3 , Béla Vancsics 2 and Árpád Beszédes 2 1 MTA-SZTE Research Group on Artificial Intelligence, Hungary 3 NNG LLC, Budapest, Hungary 2 Department of Software Engineering, University of Szeged, Hungary TAIC PART | Testing: Academic & Industrial Conference - Practice and Research Techniques | Graz, Austria, 2015

  2. UNIVERSITY OF SZEGED D epartment of Software Engineering Context NNG ships navigation solutions on a broad UNIVERSITAS SCIENTIARUM SZEGEDIENSIS spectrum:  Automotive line fit solutions for tier 1 clients Over 30 car brands carry iGO navigation (Qnx, Android, Linux, WinCE)  White label core product After-market head units, mobile apps (iOS, WinCE, WinMobile, Android)  Mobile navigation app for B2C end users TAIC PART 2015 2

  3. UNIVERSITY OF SZEGED D epartment of Software Engineering Product Line NNG philosophy: „ Navigation for All ” UNIVERSITAS SCIENTIARUM SZEGEDIENSIS  Achieved by a single code base for core functionalities  Customizations should integrate well with core features  SPL: code variability at preprocessor level ■ Platforms (and variants), compilers, rendering engines, 32bit/64bit ■ Windows CE/Mobile/PC, QNX, Linux, Android, iOS ■ Features, customizations TAIC PART 2015 3

  4. UNIVERSITY OF SZEGED D epartment of Software Engineering Research goal  Testing release configurations is not sufficient UNIVERSITAS SCIENTIARUM SZEGEDIENSIS ■ Get a feature from Config A and turn it on in Config B  Efficient testing of the configurable core code  Research goal: Select small number of configurations which cover large amount of code TAIC PART 2015 4

  5. UNIVERSITY OF SZEGED D epartment of Software Engineering Preprocessor based Variability Block 1 #if A == 1 2 #define B 2 UNIVERSITAS SCIENTIARUM SZEGEDIENSIS Presence condition 3 #endif 4 Variable 5 #if A == 2 6 #define B 6 Configuration 7 #endif #define PLATFORM_WIN32 8 #define A 2 #define B 10 9 #if !defined(B) 10 byte x; Coverage 11 #elif B >= 4 Source code lines with 12 int x; enabled presence 13 #endif conditions TAIC PART 2015 5

  6. UNIVERSITY OF SZEGED D epartment of Software Engineering Search algorithms  Find N(<10) configurations with highest possible coverage  Approach UNIVERSITAS SCIENTIARUM SZEGEDIENSIS ■ Build each configuration incrementally (greedy approach) ■ Create new configurations until N is reached  Block-based approach ■ Try to cover the largest uncovered block  Variable-based approach ■ Select the variable which results the highest overall coverage increase TAIC PART 2015 6

  7. UNIVERSITY OF SZEGED D epartment of Software Engineering Block-based algorithm B1 1 Examine largest uncovered block UNIVERSITAS SCIENTIARUM SZEGEDIENSIS B2 2 Satisfy presence condition B3 #if X > 0 && Y ==5 B4 B5 3 Extend candidate configuration B6 #define A 100 #define B -43 B7 #define X 1 #define Y 5 B8 4 Refresh the global coverage TAIC PART 2015 7

  8. UNIVERSITY OF SZEGED D epartment of Software Engineering Variable-based algorithm 1 For each free configuration variable B1 UNIVERSITAS SCIENTIARUM SZEGEDIENSIS + B2 … … A B X B3 + 2 Compute coverage for each value interval B4 + + B5 undefined 35 #define A 100 #define B -43 [- ∞; 0] 60 B6 #define X 1 … [1; ∞] 121 + BN Extend candidate configuration 3 & refresh the global coverage TAIC PART 2015 8

  9. UNIVERSITY OF SZEGED D epartment of Software Engineering iGO Navigation Measurements Condition type Blocks LOC UNIVERSITAS SCIENTIARUM SZEGEDIENSIS Filtered (T, F, #error) 11,847 (25%) 682,300 (35%) Configuration 22,067 (47%) 920,926 (48%) Mixed 10,085 (22%) 271,710 (14%) Non-configuration 2,811 (6%) 50,064 (3%) Total 46,810 1,925,000  #error directives ■ Prevent invalid configurations  Non-configuration variables -> mixed conditions ■ MODULE1_DETAILED_DIAG, PERSONAL_PATCHES_JOE TAIC PART 2015 9

  10. UNIVERSITY OF SZEGED D epartment of Software Engineering Results: block-based, N = 10 Config coverage Search time 98.74% 22 min UNIVERSITAS SCIENTIARUM SZEGEDIENSIS Config coverage Delta coverage Config LOC 1000 900 800 Coverage (kLOC) 700 600 500 400 300 200 100 0 1 2 3 4 5 6 7 8 9 10 Configurations TAIC PART 2015 10

  11. UNIVERSITY OF SZEGED D epartment of Software Engineering Results: variable-based, N = 10 Config coverage Search time 75.56% 27 min UNIVERSITAS SCIENTIARUM SZEGEDIENSIS Config coverage Delta coverage Config LOC 1000 900 800 Coverage (kLOC) 700 600 500 400 300 200 100 0 1 2 3 4 5 6 7 8 9 10 Configurations TAIC PART 2015 11

  12. UNIVERSITY OF SZEGED D epartment of Software Engineering Results: block-based, N = 50 Config coverage Search time 99.74% 2 h UNIVERSITAS SCIENTIARUM SZEGEDIENSIS Config coverage Delta coverage Config LOC 1000 900 800 Coverage (kLOC) 700 600 500 400 300 200 100 0 1 10 20 30 40 50 Configurations TAIC PART 2015 12

  13. UNIVERSITY OF SZEGED D epartment of Software Engineering Results & plans Enhanced UNIVERSITAS SCIENTIARUM SZEGEDIENSIS #error Hybrid directives algorithm Multiple variables at a time BLOCK-BASED VARIABLE-BASED 98.74% 75.56% N=10, 22 min N=10, 27 min TAIC PART 2015 13

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