Experience Embedded

Professional Training, Consulting and Project Support

Embedded Software Test Object-Oriented for C++: Best Practices for Class and Component Tests

  • Content
     
  • Objectives
     
  • Participants
     
  • Requirements
     

This training focuses on tests that, due to their close relation to the programming language, are usually performed by the developers themselves and are thus also referred to as developer tests.

You get to know the development and test process and the related dependencies, extensions and interdependencies.

By making use of the synergies, this enables you to perform tests efficiently.

Static and dynamic test processes and methods for creating test cases are introduced for the optimized test of an embedded system consisting of software and hardware.

This training highlights the particularities related to the test of object-oriented systems.

Through numerous exercises, you are able to apply the respective methods when testing a system that comprises software and hardware.

Software developers, hardware developers, test engineers

A good knowledge of the programming language C++ is a prerequisite for testing object-oriented programs.

Fundamentals of Testing

  • Why is software testing necessary?
  • Causes of software defects
  • Constructive and analytical quality assurance
  • Seven principles of testing
  • The fundamental test process
  • The psychology of testing

Testing Throughout the Software Lifecycle

  • Software development models
  • Standards for testing
  • Test levels: component test, integration test, system test, acceptance test
  • Developer tests (unit test, class test)
  • Test types: functional test, non-functional test, structural test
  • Re-testing, regression test, maintenance test
  • Developing testable software
  • Definition: unit, module, component
  • Deriving test cases and test data from specifications
  • Difference between debugging and testing

Static Test Techniques

  • Review process: document Review, code Review, inspection, walkthrough
  • Static analysis with tools

Dynamic Test Techniques

  • Blackbox test: equivalence partitioning, boundary value analysis, decision table test, state transition test, use case test
  • Whitebox test: statement coverage, decision coverage, condition coverage
  • Experience-based techniques: error guessing, exploratory testing
  • Systematic approach for test case development
  • Choosing a suitable test technique
  • Assessment of test techniques

Metrics for Complexity Measurement

  • Lines of code, McCabe cyclomatic complexity, Halstead metric
  • Applying metrics in the test process

Design for Test

  • The S.O.L.I.D principles
  • Single responsibility, open closed
  • Liskov substitution
  • Interface segregation, dependency inversion

Testing Object-oriented Software

  • Testing modal and non-modal classes
  • Testing member functions of a class
  • Testing inherited functions and state machines by means of flattening
  • Testing class hierarchies
  • Testing associations
  • Testing strict and non-strict inheritance
  • Testing polymorphic class hierarchies
  • Test patterns
  • Using Google Test and Google Mock

Test Driven Development, TDD

  • Advantage of TDD
  • Embedded TDD strategies
  • TDD example

Integration of Hardware and Software

  • Test execution on hardware

Further Test Activities during the Test Process

  • Risk management
  • Configuration management
  • Software quality attributes according to ISO 9126
  • Test documentation according to IEEE 829
  • Test tool overview

Practical Exercises

  • Execution of a code review
  • Execution of blackbox tests using unit tools and mock tools
  • Deriving test cases from requirements specifications
  • Determining code metrics using the tool cccc
  • Exercise for testing classes and class hierarchies using unit test tools and mock tools
  • Replacing unavailable units by means of stubs, mocks or fakes
  • The Arm/ Keil µVision and a Cortex®-M evaluation board are used for test execution on hardware.

The training price includes:
Lunch, drinks, training documentation and your training certificate.


ALL INCLUSIVE!

Related trainings

Agile Testing and Test-Driven Development (TDD) of Embedded Systems
Training code: E-AGILETDD

Agile Development of Embedded Systems: Agile Planning, Development and Test of Embedded Systems and Agile Software Development in the Scrum Framework
Training code: E-AGILEDEV

Scrum in the Agile Development of Embedded Systems
Training code: E-SCRUM


Related trainings

Trainings

Price *Duration
2.050,00 €4 days
Training code: E-TEST-OO

* Price per attendee, in Euro plus VAT


> Registration form download (PDF)
> Training details as PDF

Onsite Training

Our customized workshops integrate your specific project tasks in our training content and accommodate your requirements on content, time, location, duration, technical environment and knowledge transfer methodology.

Please contact us for further information or an individual quotation.

> Training details as PDF

Coaching

Our coaching services offer a major advantage: our specialists introduce their expertise and experience directly in your solution process, thus contributing to the success of your projects.

Coaching: Test

Embedded Software Test Object-Oriented for C++: Best Practices for Class and Component Tests

Content

Fundamentals of Testing

  • Why is software testing necessary?
  • Causes of software defects
  • Constructive and analytical quality assurance
  • Seven principles of testing
  • The fundamental test process
  • The psychology of testing

Testing Throughout the Software Lifecycle

  • Software development models
  • Standards for testing
  • Test levels: component test, integration test, system test, acceptance test
  • Developer tests (unit test, class test)
  • Test types: functional test, non-functional test, structural test
  • Re-testing, regression test, maintenance test
  • Developing testable software
  • Definition: unit, module, component
  • Deriving test cases and test data from specifications
  • Difference between debugging and testing

Static Test Techniques

  • Review process: document Review, code Review, inspection, walkthrough
  • Static analysis with tools

Dynamic Test Techniques

  • Blackbox test: equivalence partitioning, boundary value analysis, decision table test, state transition test, use case test
  • Whitebox test: statement coverage, decision coverage, condition coverage
  • Experience-based techniques: error guessing, exploratory testing
  • Systematic approach for test case development
  • Choosing a suitable test technique
  • Assessment of test techniques

Metrics for Complexity Measurement

  • Lines of code, McCabe cyclomatic complexity, Halstead metric
  • Applying metrics in the test process

Design for Test

  • The S.O.L.I.D principles
  • Single responsibility, open closed
  • Liskov substitution
  • Interface segregation, dependency inversion

Testing Object-oriented Software

  • Testing modal and non-modal classes
  • Testing member functions of a class
  • Testing inherited functions and state machines by means of flattening
  • Testing class hierarchies
  • Testing associations
  • Testing strict and non-strict inheritance
  • Testing polymorphic class hierarchies
  • Test patterns
  • Using Google Test and Google Mock

Test Driven Development, TDD

  • Advantage of TDD
  • Embedded TDD strategies
  • TDD example

Integration of Hardware and Software

  • Test execution on hardware

Further Test Activities during the Test Process

  • Risk management
  • Configuration management
  • Software quality attributes according to ISO 9126
  • Test documentation according to IEEE 829
  • Test tool overview

Practical Exercises

  • Execution of a code review
  • Execution of blackbox tests using unit tools and mock tools
  • Deriving test cases from requirements specifications
  • Determining code metrics using the tool cccc
  • Exercise for testing classes and class hierarchies using unit test tools and mock tools
  • Replacing unavailable units by means of stubs, mocks or fakes
  • The Arm/ Keil µVision and a Cortex®-M evaluation board are used for test execution on hardware.

Wishlist


No trainings