Chapter 5: Software Testing Techniques and Strategies

0.0(0)
studied byStudied by 0 people
learnLearn
examPractice Test
spaced repetitionSpaced Repetition
heart puzzleMatch
flashcardsFlashcards
Card Sorting

1/49

encourage image

There's no tags or description

Looks like no tags are added yet.

Study Analytics
Name
Mastery
Learn
Test
Matching
Spaced

No study sessions yet.

50 Terms

1
New cards

Testability

The degree to which a software system can be effectively tested.

2
New cards

Operability

It operates cleanly.

3
New cards

Observability

The results of each test case are readily observed.

4
New cards

Controllability

The degree to which testing can be automated and optimized.

5
New cards

Decomposability

Testing can be targeted.

6
New cards

Simplicity

Reduce complex architecture and logic to simplify tests.

7
New cards

Stability

Few changes are requested during testing.

8
New cards

Understandability

Of the design.

9
New cards

Good Test

A good test has a high probability of finding an error.

10
New cards

Redundancy in Testing

A good test is not redundant.

11
New cards

Best of Breed Test

A good test should be 'best of breed'.

12
New cards

Test Complexity

A good test should be neither too simple nor too complex.

13
New cards

Internal Testing

Tests conducted to ensure that internal operations are performed according to specifications.

14
New cards

External Testing

Tests conducted that demonstrate each function is fully operational while searching for errors.

15
New cards

Test Case Design

The objective is to uncover errors in a complete manner with a minimum of effort and time.

16
New cards

Exhaustive Testing

If we execute one test per millisecond, it would take 3,170 years to test this program.

17
New cards

Selective Testing

Testing selected paths.

18
New cards

Black-Box Testing

Testing methods that focus on input and output without knowledge of internal workings.

19
New cards

White-Box Testing

Our goal is to ensure that all statements and conditions have been executed at least once.

20
New cards

Cyclomatic Complexity

Number of simple decisions + 1 or number of enclosed areas + 1.

21
New cards

Basis Path Testing

A method that derives independent paths based on cyclomatic complexity.

22
New cards

Independent Paths

Paths derived from the cyclomatic complexity to exercise during testing.

23
New cards

Graph Matrix

A square matrix whose size is equal to the number of nodes on a flow graph.

24
New cards

Graph Matrix

A powerful tool for evaluating program control structure during testing by adding a link weight to each matrix entry.

25
New cards

Condition Testing

A test case design method that exercises the logical conditions contained in a program module.

26
New cards

Data Flow Testing

Selects test paths of a program according to the locations of definitions and uses of variables in the program.

27
New cards

DEF(S)

{X | statement S contains a definition of X}.

28
New cards

USE(S)

{X | statement S contains a use of X}.

29
New cards

Definition-Use (DU) Chain

Of variable X is of the form [X, S, S'], where S and S' are statement numbers, X is in DEF(S) and USE(S'), and the definition of X in statement S is live at statement S'.

30
New cards

Loop Testing

A testing method that includes various types of loops such as simple, nested, concatenated, and unstructured loops.

31
New cards

Simple Loops Minimum Conditions

1. Skip the loop entirely; 2. Only one pass through the loop; 3. Two passes through the loop; 4. m passes through the loop where m < n; 5. (n-1), n, and (n+1) passes through the loop where n is the maximum number of allowable passes.

32
New cards

Nested Loops Testing

Start at the innermost loop, set all outer loops to their minimum iteration parameter values, and test the innermost loop while holding outer loops at their minimum values.

33
New cards

Concatenated Loops

If the loops are independent of one another, treat each as a simple loop; else treat as nested loops.

34
New cards

Black-Box Testing

A testing method that focuses on requirements, output, events, and input without knowledge of internal code structure.

35
New cards

Functional Validity Testing

How is functional validity tested?

36
New cards

System Behavior Testing

How is system behavior and performance tested?

37
New cards

Input Classes for Test Cases

What classes of input will make good test cases?

38
New cards

Sensitivity to Input Values

Is the system particularly sensitive to certain input values?

39
New cards

Boundary Isolation

How are the boundaries of a data class isolated?

40
New cards

Data Rates and Volume

What data rates and data volume can the system tolerate?

41
New cards

Data Combinations Effect

What effect will specific combinations of data have on system operation?

42
New cards

Graph-Based Methods

Methods to understand the objects modeled in software and the relationships that connect these objects.

43
New cards

Equivalence Partitioning

A testing technique that divides input data into valid and invalid partitions to reduce the number of test cases.

44
New cards

Sample Equivalence Classes

Valid data includes user supplied commands, responses to system prompts, file names, computational data, physical parameters, bounding values, initiation values, output data formatting, and graphical data.

45
New cards

Invalid Data

Data outside bounds of the program, physically impossible data, or proper value supplied in the wrong place.

46
New cards

Boundary Value Analysis

A testing technique that focuses on the values at the edges of input domains.

47
New cards

Comparison Testing

Used in critical reliability situations where separate teams develop independent versions of an application to ensure identical output.

48
New cards

Orthogonal Array Testing

Used when the number of input parameters is small and the values that each parameter may take are clearly bounded.

49
New cards

Software Testing Patterns

Described similarly to design patterns, providing techniques for testing software from the user's point of view.

50
New cards

Scenario Testing Pattern

A technique for exercising the software from the user's point of view to determine if it meets user visible requirements.