Software Testing Infrastructure

  • 1,548 views
Uploaded on

 

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads

Views

Total Views
1,548
On Slideshare
0
From Embeds
0
Number of Embeds
0

Actions

Shares
Downloads
14
Comments
0
Likes
2

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. Software Testing Infrastructure status LCG Software Process & Infrastructure (CERN, 10/23/02) M. Gallas IT-API LCG SPI project: testing 1
  • 2. Index: • Overview • Unit-test • Unit-test frameworks • CppUnit • Oval • Unit-test structure and documentation • Status & future plans M. Gallas IT-API LCG SPI project: testing 2
  • 3. Overview: LCG applications area project: • software testing will be an integral part of the software development process • All level of software testing should be run as part of an automatic process Software testing SPI project System test Software testing: We will select : Integration test •simple techniques, tools and methodologies Individual • run the tests in automatic way Unit test developer (work package test) domain M. Gallas IT-API LCG SPI project: testing 3
  • 4. Unit Test: Unit-tests Should validate expected •Important code should have unit tests functionality at the level of: •Tests should be written together with the code • individual class •Code should pass all unit tests before it can be • small groups of released collaborating classes • work package CODE Automatic software test run process Code Documentation Software developer Unit-test SPI component (Version 1) • Test execution framework • Testing naming and structure • Test case specification template Test programs M. Gallas IT-API LCG SPI project: testing 4
  • 5. Unit-test: Test frameworks (I) Aim: to help developers: • to produce code for unit-testing • to run tests in automatic way Our constrains: Our inputs: • Avoid commercial software and • Contacts within HEP-community (CMS licensing problems. and G4 mainly, until now). • Avoid “do it yourself solutions” • What is available as free open source •Try to adopt commonly used code. open-source software. What we propose: CppUnit Oval What we are doing: Our plans: •Trying CppUnit and Oval • Analysis of the CppUnit and Oval in the LCG-POOL project tools in the POOL environment. • Preparing “HowTo” documents to • Feedback from the experiments make easier the installation of these and big HEP software projects. tools and the start with process • Deliver and document the component soon. M. Gallas IT-API LCG SPI project: testing 5
  • 6. Test frameworks (II): CppUnit A simple test: CppUnit: 1. Subclass the TestCase CppUnit class Like JUnit but for C++ 2. Override the method runTest(). 3. When you want to check a value, call http://sourceforge.net/projects/cppunit CPPUNIT_ASSERT(bool) and pass in an USED: expresion that is true if the test succeeds • in eXtreme Programing (XP) • proposed for DataGrid • Similar tools: Junit, PerlUnit, PyUnit, QtUnit • Output in XML, compiler or text •Windows version for MVC++6.0 • Just starting in LCG-POOL project (1 test running) M. Gallas IT-API LCG SPI project: testing 6
  • 7. Test frameworks (IIcont): CppUnit M. Gallas IT-API LCG SPI project: testing 7
  • 8. Test frameworks (III): Oval Oval build Oval: Test • validation and regression Source Executable • used in CMS Code Oval run Ovalfile • Can be use for Unit-test. (configuration) Log • It is possible to set different run file environments. Reference • Can run external scripts and file Oval external binaries. • Authors modified it to run it with or diff without CMS specific environment (SCRAM …) (Thanks to David Chamont for the changes) • Just starting in LCG-POOL project (1 test running) M. Gallas IT-API LCG SPI project: testing 8
  • 9. Test frameworks (IIIcont): Oval M. Gallas IT-API LCG SPI project: testing 9
  • 10. Unit-test: structure and documentation SPI-CVS_structure component • CVS testing structure ßWill help to have a •Test-naming automatic way to run test code SPI-TESTING component Test documentation: src doc test •Test cases specification template testA testB Ovalfile Nametest.ccp Nametest.ref Nametest.log [Nametest.in] M. Gallas IT-API LCG SPI project: testing [Mametest.out] 10
  • 11. Unit-test: documentation M. Gallas IT-API LCG SPI project: testing 11
  • 12. Status & Future Plans: Future Plans: • Produce a first version of the SPI- Testing Component (V1) which will provide: Status: - unit-test organization • Installing the component • Supporting the component at POOL project - test execution framework • Doing some test cases with them - test documentation and • Preparing Howto’s templates - complete user-documentation • Feedback with the HEP experiments and big software projects. M. Gallas IT-API LCG SPI project: testing 12
  • 13. INDEX review: • Overview Thanks to: • Unit-test • contacts within the experiments • LCG-POOL team • Unit-test frameworks • D. Chamont (Oval) • CppUnit • Oval • Unit-test structure and documentation • Status & Future plans Howto for installation and examples will be available soon… Feedback and interaction are always welcome!! M. Gallas IT-API LCG SPI project: testing 13