Top Banner
National Alliance for Medical Image Computing http://na-mic.org Testing with CTest and CDash Julien Jomier Kitware Inc.
22

National Alliance for Medical Image Computing Testing with CTest and CDash Julien Jomier Kitware Inc.

Apr 01, 2015

Download

Documents

Hudson Fudge
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: National Alliance for Medical Image Computing  Testing with CTest and CDash Julien Jomier Kitware Inc.

National Alliance for Medical Image Computing http://na-mic.org

Testing with CTest and CDash

Julien JomierKitware Inc.

Page 2: National Alliance for Medical Image Computing  Testing with CTest and CDash Julien Jomier Kitware Inc.

National Alliance for Medical Image Computing http://na-mic.org

Testing Overview

CVS/SVN

CDash

Web Browser

CTest

Developers

Page 3: National Alliance for Medical Image Computing  Testing with CTest and CDash Julien Jomier Kitware Inc.

National Alliance for Medical Image Computing http://na-mic.org

Testing Terminology

Sites

dash5.kitware

iris.elmtech

Linux-g++

Builds

Linux-gcc3

Linux-gcc4

Dashboard

Page 4: National Alliance for Medical Image Computing  Testing with CTest and CDash Julien Jomier Kitware Inc.

National Alliance for Medical Image Computing http://na-mic.org

Why Test Daily?

• Large code base too large for any single developer to understand

• Developers distributed around the world

• Identify problems as they occur

• Insure that object API remains unchanged

• Provide feedback to developers as they experiment with new implementations

Page 5: National Alliance for Medical Image Computing  Testing with CTest and CDash Julien Jomier Kitware Inc.

National Alliance for Medical Image Computing http://na-mic.org

“If it’s not tested it doesn’t work”

• Dasboards and Software Process– Roots in GE Six Sigma initiative

• Cross platform testing

• Nightly regression testing Memory (Purify/ValGrind) testing

• Coverage testing

• Style checking

• Documentation evaluation

Page 6: National Alliance for Medical Image Computing  Testing with CTest and CDash Julien Jomier Kitware Inc.

National Alliance for Medical Image Computing http://na-mic.org

How to write a good test?

• Use empirical values (5/2=2.5)

• Test most of the use cases (even the boring/most difficult ones)

• Make your tests as efficient as possible

• Have someone else write the test for your algorithm

Page 7: National Alliance for Medical Image Computing  Testing with CTest and CDash Julien Jomier Kitware Inc.

National Alliance for Medical Image Computing http://na-mic.org

Regression Testing

• Compare generated image against standard “correct” image– pixel-by-pixel comparison– can use a threshold metric– adjusted for effects like dithering

Page 8: National Alliance for Medical Image Computing  Testing with CTest and CDash Julien Jomier Kitware Inc.

National Alliance for Medical Image Computing http://na-mic.org

CTest

• Testing client

• Distributed with CMake

• Submit test results to the dashboard

• XML submission

• Independent of CMake

Page 9: National Alliance for Medical Image Computing  Testing with CTest and CDash Julien Jomier Kitware Inc.

National Alliance for Medical Image Computing http://na-mic.org

CTest with CMakeCMakeLists.txtINCLUDE(CTest)ENABLE_TESTING()# Add a simple testADD_TEST(CDashTest1 CDashTest CDashTest) ADD_EXECUTABLE(CDashTest main.cxx)

CTestConfig.txtset(CTEST_PROJECT_NAME "MyProject")set(CTEST_NIGHTLY_START_TIME "21:00:00 EDT")

set(CTEST_DROP_METHOD "http")set(CTEST_DROP_SITE "localhost")set(CTEST_DROP_LOCATION "/CDash/submit.php?

project=MyProject")set(CTEST_DROP_SITE_CDASH TRUE)

Page 10: National Alliance for Medical Image Computing  Testing with CTest and CDash Julien Jomier Kitware Inc.

National Alliance for Medical Image Computing http://na-mic.org

Testing Submission

XML Submission

XML Parsing

HTTP PUT

CTest

CDash

Backup XML File

Fill Database

Send Email

Update RSS Feed

Update.xml

Configure.xml

Build.xml

Test.xml

Coverage.xml

DynamicAnalysis.xml

Compiler/Tester

Page 11: National Alliance for Medical Image Computing  Testing with CTest and CDash Julien Jomier Kitware Inc.

National Alliance for Medical Image Computing http://na-mic.org

CDash

• New generation of Dart• Written in Php/Javascript• MySQL• Open Source• Run on top of a web server• XSL implementation• Web 2.0

Page 12: National Alliance for Medical Image Computing  Testing with CTest and CDash Julien Jomier Kitware Inc.

National Alliance for Medical Image Computing http://na-mic.org

CDash Features

• Ajax requests• Graphs: build, test times• Builds group• User management• Email notifications• Timing defects

Page 13: National Alliance for Medical Image Computing  Testing with CTest and CDash Julien Jomier Kitware Inc.

National Alliance for Medical Image Computing http://na-mic.org

Coverage Support

• Email Low Coverage• Bullseye support

Page 14: National Alliance for Medical Image Computing  Testing with CTest and CDash Julien Jomier Kitware Inc.

National Alliance for Medical Image Computing http://na-mic.org

Build Notes

• Share with other developers• Keep it simple

Page 15: National Alliance for Medical Image Computing  Testing with CTest and CDash Julien Jomier Kitware Inc.

National Alliance for Medical Image Computing http://na-mic.org

My CDash

• Personal Page• Subscribe to project• View sites• Email preferences

Page 16: National Alliance for Medical Image Computing  Testing with CTest and CDash Julien Jomier Kitware Inc.

National Alliance for Medical Image Computing http://na-mic.org

Project Roles

• Normal user• Site maintainer• Project administrator

Page 17: National Alliance for Medical Image Computing  Testing with CTest and CDash Julien Jomier Kitware Inc.

National Alliance for Medical Image Computing http://na-mic.org

Claiming Sites

• Site information• Automatic (CTest 2.6)• Information history• Manual editing• Personal view/email

Page 18: National Alliance for Medical Image Computing  Testing with CTest and CDash Julien Jomier Kitware Inc.

National Alliance for Medical Image Computing http://na-mic.org

CDash Misc.

• Automatic Geolocation from IP addresses

• Support for iPhone

Page 19: National Alliance for Medical Image Computing  Testing with CTest and CDash Julien Jomier Kitware Inc.

National Alliance for Medical Image Computing http://na-mic.org

Installing CDash

• (L/W)AMP : Apache, MySQL, PHP- XAMPP, EasyPHP

• Download CDash (www.cdash.org) in your Apache web directory

• Edit config.php• Point Web Browser to CDash

- Setup the database- Create first project

Page 20: National Alliance for Medical Image Computing  Testing with CTest and CDash Julien Jomier Kitware Inc.

National Alliance for Medical Image Computing http://na-mic.org

Style Checking

• KWStyle• C++ Style checker• Configuration via XML• HTML Generator (TBI in CDash) • Open Source• Written in C++

Page 21: National Alliance for Medical Image Computing  Testing with CTest and CDash Julien Jomier Kitware Inc.

National Alliance for Medical Image Computing http://na-mic.org

Contribute• Website

- http://www.cdash.org- http://public.kitware.com/KWStyle

• Bug Tracker- http://www.cmake.org/Bug

• Mailing List- http://public.kitware.com/cgi-bin/mailman/listinfo/cdash

Page 22: National Alliance for Medical Image Computing  Testing with CTest and CDash Julien Jomier Kitware Inc.

National Alliance for Medical Image Computing http://na-mic.org

Happy Testing!