Garching, 08 July 2005 NRI (Night Reporting Infrastructure) for VLT Common Software Integration S....

12
Garching, 08 July 2005 NRI NRI (Night Reporting (Night Reporting Infrastructure) Infrastructure) for VLT for VLT Common Software Common Software Integration Integration S. Feyrin, M. Zamparelli European Southern Observatory

Transcript of Garching, 08 July 2005 NRI (Night Reporting Infrastructure) for VLT Common Software Integration S....

Page 1: Garching, 08 July 2005 NRI (Night Reporting Infrastructure) for VLT Common Software Integration S. Feyrin, M. Zamparelli European Southern Observatory.

Garching, 08 July 2005

NRINRI(Night Reporting Infrastructure)(Night Reporting Infrastructure)

for VLT for VLT Common SoftwareCommon Software

IntegrationIntegration

S. Feyrin, M. ZamparelliEuropean Southern Observatory

Page 2: Garching, 08 July 2005 NRI (Night Reporting Infrastructure) for VLT Common Software Integration S. Feyrin, M. Zamparelli European Southern Observatory.

Garching, 08 July 2005 NRI for VLTSW 2

Contents

1. NRI Generalities :• NRI/dynamic: motivation and requirements• NRI Layout

2. NRI for vltsw

3. Possible changes and extensions

Page 3: Garching, 08 July 2005 NRI (Night Reporting Infrastructure) for VLT Common Software Integration S. Feyrin, M. Zamparelli European Southern Observatory.

Garching, 08 July 2005 NRI for VLTSW 3

NRI/dynamic: motivation

1. shorten the feedback loops from manual integration

2. bring to the attention of the developers software modules with missing or insufficient testing

3. bring to the attention of the developers software modules with suspect memory fingerprint

4. diminish the labor pain when migrating to new compiler version or OS release

5. have minimal trend analysis for various performance indicators

Page 4: Garching, 08 July 2005 NRI (Night Reporting Infrastructure) for VLT Common Software Integration S. Feyrin, M. Zamparelli European Southern Observatory.

Garching, 08 July 2005 NRI for VLTSW 4

Requirements on NRI

1. Build environment should be the correct one2. All applicable platforms should be exercised3. Static and dynamic reports should correspond to

the same version of the software4. The build should take place from scratch5. Tests should be executed in isolation (FIFO)6. Ease of access to reports on the web for

diagnosis7. Tests running amock should not halt the

integration

Page 5: Garching, 08 July 2005 NRI (Night Reporting Infrastructure) for VLT Common Software Integration S. Feyrin, M. Zamparelli European Southern Observatory.

Garching, 08 July 2005 NRI for VLTSW 5

Configuration Management

Static Inspection

host1

Database WebServer

host3host2

(dynamic inspection machines)

CodewizardJTestsloccountcmt/cmtjavaJDependdoxygengraphvizPurify/ValgrindsplintJContract

source

reports

NRI Layout

Page 6: Garching, 08 July 2005 NRI (Night Reporting Infrastructure) for VLT Common Software Integration S. Feyrin, M. Zamparelli European Southern Observatory.

Garching, 08 July 2005 NRI for VLTSW 6

Machines

HOST PROJECT OS WHAT TOOLS

te64 VLT SL3 APPLIC. Purify SCI/OCI

te53 VLT SL4 CS Purify OCI

te26 VLT HP-UX 11 CS Purify OCI

te44 ALMA RH9/rtai APPLIC.Purify SCI

valgrind

te31 ALMA RH9/rtai CSPurify SCI

valgrind

te48 ALMA RH Ent. 4 CS Purify SCI

te58 ALMA SunOS CS Purify OCI

te89 ALMA RH9/rtai APPLIC. Purify SCI

Page 7: Garching, 08 July 2005 NRI (Night Reporting Infrastructure) for VLT Common Software Integration S. Feyrin, M. Zamparelli European Southern Observatory.

Garching, 08 July 2005 NRI for VLTSW 7

Integration Steps

1: normal build

2: normal test (TAT or otherwise based)

2,5: additional purify and test (if applicable)

3: purified build (vltMakefile based)

4: purified test (TAT or otherwise based)

Page 8: Garching, 08 July 2005 NRI (Night Reporting Infrastructure) for VLT Common Software Integration S. Feyrin, M. Zamparelli European Southern Observatory.

Garching, 08 July 2005 NRI for VLTSW 9

NRI for VLTSW

1. Dynamic (build and test)Adapt NRI to work with non Makefile based approach of VLTSW

Align results of automated integration and tests with the manual ones

Solve problems related on LCU availability and usage

Solve display related problems

2. Dynamic (coverage and memory reports) Run through PureCoverage and get consistent results!!

Improve layout and readability of coverage reports

Separate the weed from the crop in memory reports

3. Notification (responsibility assignment)

4. Static part

Page 9: Garching, 08 July 2005 NRI (Night Reporting Infrastructure) for VLT Common Software Integration S. Feyrin, M. Zamparelli European Southern Observatory.

Garching, 08 July 2005 NRI for VLTSW 10

Links to the Web

• http://websqa.hq.eso.org/vlt/snapshot2/• http://websqa.hq.eso.org/vlt/snapshot3/vltsw-

Reports/TestCoverage-Linux

/

Page 10: Garching, 08 July 2005 NRI (Night Reporting Infrastructure) for VLT Common Software Integration S. Feyrin, M. Zamparelli European Southern Observatory.

Garching, 08 July 2005 NRI for VLTSW 11

Purify

Purify

Compiled Test DIRMakefile

test target

make test

test output

UNDETERMINED

FAILED PASSED

UNDETERMINED

TAT

TAT signature

Test result determination

Page 11: Garching, 08 July 2005 NRI (Night Reporting Infrastructure) for VLT Common Software Integration S. Feyrin, M. Zamparelli European Southern Observatory.

Garching, 08 July 2005 NRI for VLTSW 12

Problems and Solutions (?)

• Execution time on HP-UX is prohibitive

• LAST or non LAST ?

• How frequently should it run ?

• Tools license availability ?• pkingBuild should build a partition of the

CMM modules space (http://websqa.hq.eso.org/vlt/PackagesAnalysis.html )

Page 12: Garching, 08 July 2005 NRI (Night Reporting Infrastructure) for VLT Common Software Integration S. Feyrin, M. Zamparelli European Southern Observatory.

Garching, 08 July 2005 NRI for VLTSW 13

NRI: dynamic + static

Implementation of Integration steps on a “daily” basis• Daily build report on appropriate OS from last code revision• Coding Standards (actually industry best practices) reports (

VLTSW20030379 VLTSW20030380)• Naming conventions, dependency diagrams, subsystem partition in

modules.• McCabe Cyclomatic Complexity and Halstead Volume, in-line

documentation sufficency• in-line documentation• Lines of code at subsystem and global level• test lines of code at subsystem level• Unit test coverage• amount of check-in operations• SPRs per subsystem