27
Tessy A software tool to automate the unit testing of embedded software Frank Büchner Hitex Development Tools GmbH [email protected]

Tessy presentation 1 - Automotive SPIN · Easy fault isolation, fast error detection 3. ... Tessy - Code Coverage Tessy features ... Palfinger Pegaso Pepperl&Fuchs

Embed Size (px)

Citation preview

Page 1: Tessy presentation 1 - Automotive SPIN · Easy fault isolation, fast error detection 3. ... Tessy - Code Coverage Tessy features ... Palfinger Pegaso Pepperl&Fuchs

Tessy

A software tool to automate the unit testing of emb edded software

Frank Büchner

Hitex Development Tools GmbH

[email protected]

Page 2: Tessy presentation 1 - Automotive SPIN · Easy fault isolation, fast error detection 3. ... Tessy - Code Coverage Tessy features ... Palfinger Pegaso Pepperl&Fuchs

TessyFrank BuechnerMar 2009 -- Page 2Copyright © Hitex 2008

Some Questions

� Does testing waste too much of your time?

1. Do you manually test your software?

2. Do your test efforts for small bug fixes consume more time than the actual bug fixes themselves?

3. Do you have to maintain a proprietary test environment?

4. Do you manage the test data by yourself?

5. Are you continuously in doubt whether you’ve test ed enough?

Page 3: Tessy presentation 1 - Automotive SPIN · Easy fault isolation, fast error detection 3. ... Tessy - Code Coverage Tessy features ... Palfinger Pegaso Pepperl&Fuchs

TessyFrank BuechnerMar 2009 -- Page 3Copyright © Hitex 2008

Some Questions

� Are you required to develop in accordance with standards?

1. Are you required to plan the tests in advance?

2. Are you required to do unit testing?

3. Are you required to do regression testing?

4. Are you required to document all tests?

5. Are you required to check your test coverage?

Page 4: Tessy presentation 1 - Automotive SPIN · Easy fault isolation, fast error detection 3. ... Tessy - Code Coverage Tessy features ... Palfinger Pegaso Pepperl&Fuchs

TessyFrank BuechnerMar 2009 -- Page 4Copyright © Hitex 2008

Contents

1. Introduction / Some Questions

2. Unit Testing In Standards

3. Unit Testing Of C Programs

4. Unit Testing With Tessy

5. Advanced Topics

6. Conclusion

What is a unit?

Page 5: Tessy presentation 1 - Automotive SPIN · Easy fault isolation, fast error detection 3. ... Tessy - Code Coverage Tessy features ... Palfinger Pegaso Pepperl&Fuchs

TessyFrank BuechnerMar 2009 -- Page 5Copyright © Hitex 2008

/* Function A */int funcA(int a){

…}

/* Function B */int funcB(int a){

…}

/* Function Z */int funcZ(int a){

…}

Mod2.c

. . .

Unit Testing Of C Programs

� What is an “unit” ?

Units

Two units … ?

/* Function 1 */int func1(int a){

…}

/* Function 2 */int func2(int a){

…}

/* Function n */int funcN(int a){

…}

Mod1.c

. . . . . .

Page 6: Tessy presentation 1 - Automotive SPIN · Easy fault isolation, fast error detection 3. ... Tessy - Code Coverage Tessy features ... Palfinger Pegaso Pepperl&Fuchs

TessyFrank BuechnerMar 2009 -- Page 6Copyright © Hitex 2008

Unit Testing Of C Programs

� Software application, initial

Unit, unit test not passed

Function call, untested

Page 7: Tessy presentation 1 - Automotive SPIN · Easy fault isolation, fast error detection 3. ... Tessy - Code Coverage Tessy features ... Palfinger Pegaso Pepperl&Fuchs

TessyFrank BuechnerMar 2009 -- Page 7Copyright © Hitex 2008

Unit Testing Of C Programs

� Software application, initial

Unit, unit test not passed

Function call, untested

Page 8: Tessy presentation 1 - Automotive SPIN · Easy fault isolation, fast error detection 3. ... Tessy - Code Coverage Tessy features ... Palfinger Pegaso Pepperl&Fuchs

TessyFrank BuechnerMar 2009 -- Page 8Copyright © Hitex 2008

Unit Testing Of C Programs

� All units are tested one by one, comprehensive and isolated from each other

� Isolation � reproducibility � prerequisite for regression test

Stub function

Unit, unit test not passed

Function call

Unit, unit test in progress

Tessy

!

Page 9: Tessy presentation 1 - Automotive SPIN · Easy fault isolation, fast error detection 3. ... Tessy - Code Coverage Tessy features ... Palfinger Pegaso Pepperl&Fuchs

TessyFrank BuechnerMar 2009 -- Page 9Copyright © Hitex 2008

Unit Testing Of C Programs

� Unit testing checks, if input values yield expected output values

Output variables+

return valueInput variables

Interfacetest

object

stubfunction

ParametersOutput variables

+return value

Page 10: Tessy presentation 1 - Automotive SPIN · Easy fault isolation, fast error detection 3. ... Tessy - Code Coverage Tessy features ... Palfinger Pegaso Pepperl&Fuchs

TessyFrank BuechnerMar 2009 -- Page 10Copyright © Hitex 2008

Unit Testing Of C Programs

� After unit testing, all units are considered tested (separately)

Unit, unit test passed

Function call, untested

Benefit more

Page 11: Tessy presentation 1 - Automotive SPIN · Easy fault isolation, fast error detection 3. ... Tessy - Code Coverage Tessy features ... Palfinger Pegaso Pepperl&Fuchs

TessyFrank BuechnerMar 2009 -- Page 11Copyright © Hitex 2008

Unit Testing Of C Programs

� Benefits of unit testing

1. Reduces complexity of test case specification (”divide-and-conquer“)

2. Easy fault isolation, fast error detection

3. Finds errors early in the development process

4. Saves money

5. Gives confidence

� Tessy

Coding

Module / UnitTest

Module / UnitDesign

Page 12: Tessy presentation 1 - Automotive SPIN · Easy fault isolation, fast error detection 3. ... Tessy - Code Coverage Tessy features ... Palfinger Pegaso Pepperl&Fuchs

TessyFrank BuechnerMar 2009 -- Page 12Copyright © Hitex 2008

Unit Testing With Tessy

� Tessy …

– Analyzes the test object’s C source code module

– Lists the C functions in it

– Determines the interface of each C function (test object, function under test)

/* Function 1 */int func1(int a){

…}

/* Function 2 */int func2(int a){

…}

/* Function n */int funcN(int a){

…}

Mod1.c

. . .

Page 13: Tessy presentation 1 - Automotive SPIN · Easy fault isolation, fast error detection 3. ... Tessy - Code Coverage Tessy features ... Palfinger Pegaso Pepperl&Fuchs

TessyFrank BuechnerMar 2009 -- Page 13Copyright © Hitex 2008

Unit Testing With Tessy

� The interface determines the structure of a test case

Output variables+

return valueInput variables

Interface

42174 835

dcba

ReturnOutInOutInIn

Test case

Variable

Direction

Test app

testobject Simplifie

d!

Page 14: Tessy presentation 1 - Automotive SPIN · Easy fault isolation, fast error detection 3. ... Tessy - Code Coverage Tessy features ... Palfinger Pegaso Pepperl&Fuchs

TessyFrank BuechnerMar 2009 -- Page 14Copyright © Hitex 2008

Unit Testing With Tessy

� Tessy creates the test application– Test driver (= test harness) + test object = test application

– Test data is not included in the test application

Startup code

Stubs, etc.(optional)

Test objectTest object, unchanged source code

Test driver, source code generated by Tessymain()

Compile

Page 15: Tessy presentation 1 - Automotive SPIN · Easy fault isolation, fast error detection 3. ... Tessy - Code Coverage Tessy features ... Palfinger Pegaso Pepperl&Fuchs

TessyFrank BuechnerMar 2009 -- Page 15Copyright © Hitex 2008

Unit Testing With Tessy

� Test execution environments

Software

Hardware

Execute

Tessy

Debugger

Instruction-setSimulator

Tessy

Debugger

Debug System

Actual Target

Microcontroller

Host Microcontroller

Page 16: Tessy presentation 1 - Automotive SPIN · Easy fault isolation, fast error detection 3. ... Tessy - Code Coverage Tessy features ... Palfinger Pegaso Pepperl&Fuchs

TessyFrank BuechnerMar 2009 -- Page 16Copyright © Hitex 2008

Unit Testing With Tessy

� Test execution environments

Software

Hardware

Tessy

Debugger

Instruction-setSimulator

Tessy

Debugger

Debug System

Actual Target

Microcontroller

Executionenvironment:

Host

Executionenvironment:Microcontroller

Page 17: Tessy presentation 1 - Automotive SPIN · Easy fault isolation, fast error detection 3. ... Tessy - Code Coverage Tessy features ... Palfinger Pegaso Pepperl&Fuchs

TessyFrank BuechnerMar 2009 -- Page 17Copyright © Hitex 2008

Unit Testing With Tessy

� Execution of a single test case

test application

test executionenvironment

=?

test input data

test output data(result)

expected result

testexecution

4

3

2

1

Debugging

Startup code

Stubs, etc.(optional)

main()

Test object

Page 18: Tessy presentation 1 - Automotive SPIN · Easy fault isolation, fast error detection 3. ... Tessy - Code Coverage Tessy features ... Palfinger Pegaso Pepperl&Fuchs

TessyFrank BuechnerMar 2009 -- Page 18Copyright © Hitex 2008

Startup code

Stubs, etc.(optional)

main()

Test object

Unit Testing With Tessy

� Execution of a failed test case

test applicationtest input datageneratesunexpected result

test execution stops in debugger

2

1

test executionenvironment

Page 19: Tessy presentation 1 - Automotive SPIN · Easy fault isolation, fast error detection 3. ... Tessy - Code Coverage Tessy features ... Palfinger Pegaso Pepperl&Fuchs

TessyFrank BuechnerMar 2009 -- Page 19Copyright © Hitex 2008

Tessy

� Test Interface Editor (TIE) -- part of Tessy

Page 20: Tessy presentation 1 - Automotive SPIN · Easy fault isolation, fast error detection 3. ... Tessy - Code Coverage Tessy features ... Palfinger Pegaso Pepperl&Fuchs

TessyFrank BuechnerMar 2009 -- Page 20Copyright © Hitex 2008

Tessy

� Test Data Editor (TDE) -- part of Tessy

Page 21: Tessy presentation 1 - Automotive SPIN · Easy fault isolation, fast error detection 3. ... Tessy - Code Coverage Tessy features ... Palfinger Pegaso Pepperl&Fuchs

TessyFrank BuechnerMar 2009 -- Page 21Copyright © Hitex 2008

Tessy - Code Coverage

Tessy features

� C1 coverage

– Branch coverage = decision coverage

� C2 coverage

– Modified Condition / Decision Coverage (MC/DC)

– Multiple Condition Coverage (MCC)

� MC/DC and MCC are available since Tessy V2.5

� The Tessy Coverage Viewer is available since Tessy V2.6

Page 22: Tessy presentation 1 - Automotive SPIN · Easy fault isolation, fast error detection 3. ... Tessy - Code Coverage Tessy features ... Palfinger Pegaso Pepperl&Fuchs

TessyFrank BuechnerMar 2009 -- Page 22Copyright © Hitex 2008

Tessy - Code Coverage

� C1 code coverage results

– Tessy reveals which branches were not taken

Page 23: Tessy presentation 1 - Automotive SPIN · Easy fault isolation, fast error detection 3. ... Tessy - Code Coverage Tessy features ... Palfinger Pegaso Pepperl&Fuchs

TessyFrank BuechnerMar 2009 -- Page 23Copyright © Hitex 2008

Tessy - Code Coverage

� Modified Condition / Decision Coverage (MC/DC)

– If a decision is selected in the tree view, the corresponding source is displayed

Page 24: Tessy presentation 1 - Automotive SPIN · Easy fault isolation, fast error detection 3. ... Tessy - Code Coverage Tessy features ... Palfinger Pegaso Pepperl&Fuchs

TessyFrank BuechnerMar 2009 -- Page 24Copyright © Hitex 2008

Tessy - Code Coverage

� Multiple Condition Coverage (MCC)

– If a decision is selected in the tree view, the corresponding source is displayed

Page 25: Tessy presentation 1 - Automotive SPIN · Easy fault isolation, fast error detection 3. ... Tessy - Code Coverage Tessy features ... Palfinger Pegaso Pepperl&Fuchs

TessyFrank BuechnerMar 2009 -- Page 25Copyright © Hitex 2008

Tessy – Customer List (A – K) (Excerpt)

ABB

Airbus Deutschland

ANS Medical

Baxter Healthcare

Becker Mining

Behr-Hella

Bertrandt

Beru

BMW

Bosch

Bosch Rexroth

Bosch Siemens Hausg.

Bose

Brose

Cherry

Continental Temic

Daimler

Delphi

Delphi Grundig

Demag Cranes

Diehl Ako

EADS Astrium

Electrolux

Eliop

Endress & Hauser

Festo

GE Aviation

Getrag

Gigatronik

GKN Driveline

Hanning & Kahl

Harman-Becker

Helbako

Hella

Huf Hülsbeck Fürst

Husco

IAV

IEE

Infineon

JCB

John Deere

Kiekert

Knick

Knorr-Bremse

Kostal

Krauss-Maffei Wegmann

Krohne

Küster

Page 26: Tessy presentation 1 - Automotive SPIN · Easy fault isolation, fast error detection 3. ... Tessy - Code Coverage Tessy features ... Palfinger Pegaso Pepperl&Fuchs

TessyFrank BuechnerMar 2009 -- Page 26Copyright © Hitex 2008

Tessy – Customer List (L – Z) (Excerpt)

Lamtec

Lear

Liebherr-Aerospace

Magna Steyr

Marquardt

Mentor

Nidec Motors

Palfinger

Pegaso

Pepperl&Fuchs

Phoenix Internat.

PhoenixContact

Pierburg

Preh

Pressac

Prognost

Rafi

SAB Wabco

Samson

Servomex

SEW Eurodrive

Shanghai Shen Hang

Siemens A&D

Siemens MED

Siemens VDO

Sona

Stago

Takata

Tata Elxsi

TechniSAT

Thielert Aircraft

TietoEnator

Trumpf Med

TRW

Va Tech Sat

Valeo

Viessmann

Wabco

Wago

Wago

Wartsilä

Whirlpool

Wipro

ZF Friedrichshafen

ZF Sachs

ZKW Zizala

Zollner

Page 27: Tessy presentation 1 - Automotive SPIN · Easy fault isolation, fast error detection 3. ... Tessy - Code Coverage Tessy features ... Palfinger Pegaso Pepperl&Fuchs

TessyFrank BuechnerMar 2009 -- Page 27Copyright © Hitex 2008

Tessy

� Thank you for your attention!

� http://www.hitex.com/perm/tessy.html