# [CALC2] The exact calculator¶

This demo is just a bit more complicated then [CALC1] A simple calculator: this product-variant has *one* extra requirement.

## A bit more complicated product¶

This calculator should work with Fractional Numbers, and be
exact for very big numbers; as defined in Warning This implies |

## The extra requirement¶

The |

### Hotfix the missing test¶

We also *repair* the missing test in demo1, but only for demo2 (Because it is still a *demo!*).

Subtract Note This test is was intentionally “forgotten” as explained in the forgotten test. Therefore it is only added for the |

## How to test?¶

The *Big fractional numbers (CALC2_1000ND)* requirement is a good example of a “*nonfunctional*” (actually: a non-distributable)
specification. It is valid for all other requirements; all parts of the implementation should adhere to it.

Testing this requirement is also different too. The same tests are valid: we have to add, subtract, multiply and
divide.

Only, now we have to use other numbers; really big ones!

### Traditionally¶

In the traditional world, using the TMAP-terms, this approximately come down to:

Reuse the

*logic test*.Change a

*physical test*(or add one).

### Modern¶

When using an agile test-automation framework this implies

The ATS (Automated Test Script) isn’t altered.

Some “Test-Vectors” (or test-data) is added: the big-fractions.

## Experience practice¶

It is possible to have multiply “toplevel” ‘needs’. Here, that are

`Demonstrators`

, but it possible to use Products, Variants, and/or Releases etc, as well.Here, a new kind of ‘need’ is introduced:

`Specification`

. As you will see on the next page, it influences not only the implementation, but also testing.In the ‘details-row’, you can see it has (outgoing) links to many (all) earlier requirements.