Software Unit Test

מק"ט: #1051 | משך קורס: 8 שעות אק'

Unit Test is the testing applied to a small part of code independently of its environment. Focusing on atomic units allows to thoroughly checking that basic parts of a system behave as expected.
Developers use to apply light unit tests upon the code they just wrote for resolve possible language or libraries ambiguities. Problems arise from the fact that testing objectives are fundamentally different than system development objectives so that testing methods have nothing in common with development methods. For reaching a reasonable "test coverage" developers need to learn some relevant testing methods and techniques.
Developers and QA people may use debuggers for some laborious unit tests. Unit Test Tools help to generate stubs that activate the isolated piece of code in a wide range of extreme conditions. Tools help also analyzing, sometimes statistically, the results of intensive repetitive unit tests.
In this course, developers, testers and managers learn about Unit Test methodologies, methods, techniques and tools with practical examples.

*שדות חובה
PDF version

מטרות הקורס

The participants of this UT course will know to plan, manage, perform Unit Tests and analyze the results.

קהל היעד

Developers, Testers, Integrators, Development managers, Team leaders, Project managers and QA managers.

נושאי הקורס

  1. Unit Test scope, purposes and means
    1. How early testing pays back
    2. Unit Testing challenges, UT is not Developer Test
    3. Unit test versus system and acceptance tests
    4. UT with embedded hardware
  2. Unit Test dependencies, planning and roles
    1. Developer's UT and QA's UT in the SDLC
    2. UT prerequisites
    3. Responsibilities, training, tools and time
    4. UT reuse
  3. Software scaffolding
    1. Unit in Procedural programming
    2. Unit in Object Oriented programming
    3. Stubs, exercisers, testbeds
    4. Mock Objects
  4. Introduction to Test coverage, Test economics
    1. Definition of Test Coverage and its importance
    2. Maximizing coverage while minimizing the tests
    3. When test is enough?
    4. Sponsoring testing
  5. Functional testing – Black box methods and techniques
    1. Purpose and principles
    2. Equivalence partitioning
    3. Boundary values
    4. Negative testing
  6. White box methods and techniques
    1. Purpose and principles
    2. Path analysis, Control Flow
    3. Code coverage
    4. Dead code
  7. Unit Test tools
    1. Symbolic debugger
    2. Unit testing frameworks
    3. Off the shelf tools
  8. Test-driven programming, Extreme Programming
    1. Resolving uncertainty
    2. Test-driven development cycle
    3. Testathon
  9. Complementary methods
    1. Defensive programming
    2. Static Analysis, Code review
    3. Pair programming
  10. Probing further