Code Change Impact Analysis for Testing Configurable Software Systems Mithun Acharya ABB Corporate Research Raleigh NC USA ABB: A power and automation company >125 years, >100 nations, ~150,000 employees Power products and electronics, Control Systems, Robotics, Smart Grid, Renewable Energy, … 2 ABB Corporate Research Industrial Software Systems (ISS) research group USA Germany Switzerland Poland Sweden India China Raleigh, NC 7 research centers worldwide 3 Software in ABB Hardware with software Software with few inside hardware components Pure Software 4 Software Evolution: A CSS constantly changes Hundreds of such changes committed daily 5 Change Control Board meetings Change impact visualizations for managers for decision Change impact at the code level making for developers Unit/module-level change impact for testers 6 Imp: Code change impact analysis for C/C++ programs IMP Version control BUILD SERVER SERVER CHECKOUT NIGHTLY BUILD Impact of C23567 6 8 Impact of C23586 5 3 Impact of C23712 2 Impact of changes since last nightly build C … Impact database 7 Quantifiable risk/cost analysis of changes to CSS Automated Dependency Analysis Will changes to foo.c, affect Bob’s module? Dependency analysis Automated What-If Analysis Automated Risk/Cost Analysis What is the ‘best’ way to fix this bug or implement that new feature? 3 days to release!!! Should I implement this feature or bug fix? Overlay change impact with risky areas in code 3941 lines vs. 6 lines Automated Regression Testing Should I re-run ALLof my test suite for this change? New tests required? 8 Test suite Program and System Dependence Graphs for Slicing Program Dependence Graph (PDG) for main void main() { int i = 1; int sum = 0; S y while (i<11) { s t sum = add(sum, i); e m i = add(i, 1); D } e printf("sum = %d\n", sum); p e printf("i = %d\n", i); n d } e n c e G static int add(int a, int b) r a { p h return(a+b); ( } S D G ) PDG for add 9 Code/Image Source: GrammaTech Making impact analysis practical and useful 10
Description: