Slide 10 of 14
Let’s bring the focus back to testing theory for a moment.
Quote from Systeme Evolutif course at http://www.evolutif.co.uk
There are fewer functional test techniques than structural techniques. Functional techiques are based on the specification or requirements for software. Functional test techniques do not depend on the code, so are appropriate for all software at all stages, regardless of the development technology. Equivalence partitions, boundary values, decision tables etc.
The most common (and simplest) functional test techniques are equivalence partitioning and boundary value analysis. Other techniques include decision tables, state transition testing.
Coverage measures are based on the behaviours described in the external specification. Equivalence partitioning is based on partitioning the inputs and outputs of a system and exercising each partition at least once to achieve coverage. The coverage item is an equivalence partition. 100% coverage requires that tests be prepared which, when executed, exercise every partition. Boundary values are the extreme values for each equivalence partition. Test cases for every identified boundary value are required to achieve 100% boundary value coverage.
Module 4: Boundary value analysis
It’s a fact that many bugs are found in the decision-making code that sets the ‘boundaries’ of the rules, or the equivalence partitions. Decision-making in code are statements like ‘greater than’, ‘less than’, ‘greater than or equal to’, ‘less than or equal to’, ‘equal to’, ‘not greater than’ and ‘not less than’. A typical program is full of these intricate little decisions and it’s easy for a programmer to get them wrong occasionally.