Posts

Showing posts from October, 2012

What is LCSAJ Testing?

Image
LCSAJ testing requires a model of the source code which identifies control flow jumps (where control flow does not pass to a sequential statement). An LCSAJ (Linear Code Sequence and Jump) is defined by a triple, conventionally identified by line numbers in a source code listing: the start of the linear code sequence, the end of the linear code sequence, and the target line to which control flow is transferred. Test cases shall be designed to exercise LCSAJs. For each test case, the following shall be specified: - the input(s) to the component; - identification of the LCSAJ(s) to be executed by the test case; - the expected outcome of the test case.

What is Random Testing?

Image
Random Testing     Random Testing uses a model of the input domain of the component that defines the set of all possible input values.   The input distribution (normal, uniform, etc.) to be used in the generation of random input values shall be based on the expected operational distribution of inputs.   Where no knowledge of this operational distribution is available then a uniform input distribution shall be used. Test cases shall be chosen randomly from the input domain of the component according to the input distribution. A test case shall comprise the following: -      the input(s) to the component   -      the expected outcome of the test case. The input distribution used for the test case suite shall also be recorded.  

What is Modified Condition Decision Testing?

Image
Modified Condition Decision Testing Modified Condition Decision Testing requires a model of the source code which identifies decisions, outcomes, and the individual Boolean operands within the decision conditions. A decision is an executable statement which may transfer control to another statement depending upon the logic of the decision statement. A decision condition is a Boolean expression which is evaluated to determine the outcome of a decision. Typical decisions are found in loops and selections. Test cases shall be designed to demonstrate that Boolean operands within a decision condition can independently affect the outcome of the decision. For each test case, the following shall be specified: - the input(s) to the component; -   for each decision evaluated by the test case, identification of the combination of Boolean operands to be exercised by the test case, their values, and the outcome of the decision - the expected outcome of the test case

What is Branch Condition Testing?

Image
Branch Condition Testing Branch Condition Testing requires a model of the source code which identifies decisions and the individual Boolean operands within the decision conditions. A decision is an executable statement which may transfer control to another statement depending upon the logic of the decision statement. A decision condition is a Boolean expression which is evaluated to determine the outcome of a decision. Typical decisions are found in loops and selections. Test cases shall be designed to exercise individual Boolean operand values within decision conditions. For each test case, the following shall be specified: - the input(s) to the component - for each decision evaluated by the test case, identification of the Boolean operand to be exercised by the test case and its value - the expected outcome of the test case.

What is Data Flow Testing?

Image
Data Flow Testing uses a model of the interactions between parts of a component connected by the flow of data as well as the flow of control. Categories are assigned to variable occurrences in the component, where the category identifies the definition or the use of the variable at that point.   Definitions are variable occurrences where a variable is given a new value, and uses are variable occurrences where a variable is not given a new value, although uses can be further distinguished as either data definition P-uses or data definition C-uses.   Data definition P-uses occur in the predicate portion of a decision statement such as while .. do, if .. then .. else, etc.   Data definition C-uses are all others, including variable occurrences in the right hand side of an assignment statement, or an output statement. The control flow model for the component is derived and the location and category of variable occurrences on it identified. Test cases shall be designed to execute co

What is Branch and Decision Testing?

Image
Branch/Decision Testing Branch testing requires a model of the source code which identifies decisions and decision outcomes.   A decision is an executable statement which may transfer control to another statement depending upon the logic of the decision statement.   Typical decisions are found in loops and selections.   Each possible transfer of control is a decision outcome.   Test cases shall be designed to exercise decision outcomes. For each test case, the following shall be specified: -   the input(s) to the component; -   identification of decision outcome(s) to be executed by the test case; -   the expected outcome of the test case.

What is Statement Testing?

Image
Statement Testing   Statement testing uses a model of the source code which identifies statements as either executable or non-executable.   Test cases shall be designed to exercise executable statements. For each test case, the following shall be specified: -   the input(s) to the component; -   identification of statement(s) to be executed by the test case; -   the expected outcome of the test case.

What is Syntax Testing?

Image
Syntax Testing uses a model of the formally-defined syntax of the inputs to a component. The syntax is represented as a number of rules each of which defines the possible means of production of a symbol in terms of sequences of, iterations of, or selections between other symbols. Test cases with valid and invalid syntax are designed from the formally defined syntax of the inputs to the component. Test cases with valid syntax shall be designed to execute options which are derived from rules which shall include those that follow, although additional rules may also be applied where appropriate: -   whenever a selection is used, an option is derived for each alternative by replacing the selection with that alternative; -   whenever an iteration is used, at least two options are derived, one with the minimum number of iterated symbols and the other with more than the minimum number of repetitions.   A test case may exercise any number of options.   For each test case the

What is Cause-Effect Graphing?

Image
Cause-Effect Graphing   Cause-Effect Graphing uses a model of the logical relationships between causes and effects for the component.   Each cause is expressed as a condition, which is either true of false (i.e. a Boolean) on an input, or combination of inputs, to the component.   Each effect is expressed as a Boolean expression representing an outcome, or a combination of outcomes, for the component having occurred. The model is typically represented as a Boolean graph relating the derived input and output Boolean expressions using the Boolean operators: AND, OR, NAND, NOR, NOT.   From this graph, or otherwise, a decision (binary truth) table representing the logical relationships between causes and effects is produced. Test cases shall be designed to exercise rules, which define the relationship between the component's inputs and outputs, where each rule corresponds to a unique possible combination of inputs to the component that have been expressed as Booleans.   For ea

What is State Transition Testing?

Image
State transition testing uses a model of the states the component may occupy, the transitions between those states, the events which cause those transitions, and the actions which may result from those transitions. The model shall comprise states, transitions, events, actions and their relationships.   The states of the model shall be disjoint, identifiable and finite in number.   Events cause transitions between states, and transitions can return to the same state where they began.   Events will be caused by inputs to the component, and actions in the state transition model may cause outputs from the component. The model will typically be represented as a state transition diagram, state transition model, or a state table. Test cases shall be designed to exercise transitions between states.   A test case may exercise any number of transitions.   For each test case, the following shall be specified: -   the starting state of the component          -   the input(s) to the compo

What is Boundary Value Analysis?

Image
Boundary Value Analysis Boundary Value Analysis uses a model of the component that partitions the input and output values of the component into a number of ordered sets with identifiable boundaries.   These input and output values are derived from the specification of the component's behaviour. The model shall comprise bounded partitions of ordered input and output values.   Each partition shall contain a set or range of values, chosen such that all the values can reasonably be expected to be treated by the component in the same way (i.e. they may be considered 'equivalent').   Both valid and invalid values are partitioned in this way.   A partition's boundaries are normally defined by the values of the boundaries between partitions, however where partitions are disjoint the minimum and maximum values in the range which makes up the partition are used.   The boundaries of both valid and invalid partitions are considered. Test cases shall be designed to exercis

What is Equivalence Partitioning?

Image
Equivalence Partitioning Equivalence partitioning uses a model of the component that partitions the input and output values of the component.   The input and output values are derived from the specification of the component's behaviour. The model shall comprise partitions of input and output values.   Each partition shall contain a set or range of values, chosen such that all the values can reasonably be expected to be treated by the component in the same way (i.e. they may be considered 'equivalent').   Both valid and invalid values are partitioned in this way. Test cases shall be designed to exercise partitions.   A test case may exercise any number of partitions.   A test case shall comprise the following:            - the input(s) to the component:          -   the partitions exercised:          -   the expected outcome of the test case. Test cases are designed to exercise partitions of valid values, and invalid input values.   Test cases may also be desi