Software Testing Flashcards

1
Q

Defect Testing

A

Involves testing programs to establish presence of defects.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Component Testing

A

Testing individual program components, usually the responsibility of the component developer.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Integration Testing

A

Testing of the groups of components integrated to create a system or sub-system, with the responsibility of this falling upon the independent testing team.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Exhaustive Testing

A

Only way to show a program is free of defects, but exhaustive testing is impossible.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Test Data

A

Inputted to test the system.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Test Cases

A

Inputted to test the system, wit predefined outcomes which the system should abide by.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Black-box Testing

A

Program is tested with no inside knowledge.
Program is considered as a black box, and it tested specifically on system specifications.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Equivalence Partitioning

A

Input data and outputs often fall into different classes where all members of a class are related.
Each class is an equivalence partition where the program behaves in a similar fashion.
Test cases should be chosen from each partition to account for all behaviours.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Equivalence Sets (Equivalence Partitioning)

A

Equivalence sets are essentially the partitions of the inputs and outputs, and normally contain some sort of range.

For example, we could have a specific range of inputs which behave similarly. Lets say we could have the inputs as integers, between numbers 1 - 100.
Choosing numbers at the very end of these scales typically are more likely to result inn erroneous behaviours, like 0, 1, 100, 101, 99 etc, and they should be chosen as test cases.
An example can be an email, where inputs with @ are valid inputs and inputs without it are invalid.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Search Routines

A

Typical search routines include:
- Inputs which conform to the pre-conditions.
- Inputs where a pre-condition does not hold.
- Inputs where the key element is a member of the array.
- Inputs where the key element is not a member of the array.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Testing Guidelines

A

Testing guidelines typically include:
- Test software with sequences which have only a single value.
- Use sequences of different sizes in different tests.
- Derive tests so that the first, middle and last elements of the sequence are accessed.
- Test with sequences of zero length.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Structural Testing / White-box Testing

A

Derives test cases according to the program structure.
Inside knowledge is known.
Detailed report is given at the end.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Binary Searching

A

Type of white-box testing, which is checking for the specifics of arrays to check if the internal workings of these arrays are as to be expected.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Path Testing

A

Ensures that the set of test cases is such that each path through the program is executed at least once.
The starting point for path testing is a program graph that shows nodes representing the program’s decisions, and arcs representing the flow of control.
Statements with conditions are nodes in the flow graph.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Program Flow Graphs

A

Describe the program control flow, with each branch shown a separate path and loops shown by arrows looping back to the loop condition node.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Cyclomatic Complexity

A

The cyclomatic complexity is the number of tests to test all control statements.
In other words, it equals the number of conditions in a program plus one.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
17
Q

Independent Paths

A

All node paths in a graph.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
18
Q

Integration Testing

A

Test complete systems or sub-systems composed of integrated components.
Integration testing should be black box testing with tests derived from specifications.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
19
Q

Incremental Integration Testing

A

Increase test cases every test sequence.
Uses the idea of regression testing, in which future tests also test previous test cases, making sure that adding new modules does not break any of the tests.

20
Q

Testing Harness

A

Program that automatically generates test data and records their results.

21
Q

Top-down Testing

A

Start with high-level system and integrate from the top-down, replacing individual components by stubs where appropriate.

22
Q

Bottom-up Testing

A

Integrate individual components in levels until entire system is created.

23
Q

Bottom-up Testing is more appropriate for…

A
  • Object-orientated systems -> neat decomposition into classes and methods.
  • Real-time systems -> identify the slow bits of code quicker.
  • Systems with strict performance requirements -> measure performance of individual methods early.
24
Q

Architectural Validation (Testing Approach)

A

Top-down integration testing is better at discovering errors in architecture

25
Q

System demonstration (Testing Approach)

A

Top-down integration testing allows a limited demonstration at the early stage in development.

26
Q

Test implementation (Testing Approach)

A

Bottom-up is more preferable here.

27
Q

Test observation (Testing Approach)

A

Problems with both approaches, since it is hard to view outputs.

28
Q

Interface Testing

A

Takes place when modules or sub-systems are integrated to create larger systems.
Detect faults due to interface errors or invalid assumptions about interfaces.
Important in object orientated development as objects are defined by their interfaces.

29
Q

Interface Types

A
  • parameter interface
  • shared memory interface
  • procedural interface
  • message passing interface
30
Q

Parameter Interface

A

Data passed from one procedure to another.

31
Q

Shared Memory Interface

A

Block of memory is shared between procedures.

32
Q

Procedural Interfaces

A

Sub-system encapsulates a set of procedures to be called by other sub-systems.

33
Q

Message Passing Interfaces

A

Sub-systems request services from other sub-systems.

34
Q

Interface Errors

A
  • interface misuse
  • interface misunderstanding
  • timing errors
35
Q

Interface Misuse

A

A calling component calls another components and makes an error in its use of its interfaces.

36
Q

Interface Misunderstanding

A

A calling component embeds assumptions about the behaviour of the called component which are incorrect.

37
Q

Timing Errors

A

The called and the calling component operate at different speeds and out-of-date information is accessed.

38
Q

Interface Testing Guidelines

A
  • Design tests so parameters to a called procedure are at the extreme ends of their ranges.
  • Always test pointer parameters with null pointers.
  • Design tests with causes components to fail.
  • Use stress testing in message passing systems.
  • In shared memory systems, vary the order in which components are activated.
39
Q

Stress Testing

A

Exercising the system beyond its maximum design load.
Tests failure behaviour; systems should not fail catastrophically.

40
Q

Object Orientated Testing

A

The components to be tested are object classes that are instantiated as objects.
No obvious top to the system for top-down integration and testing.
Testing coverage of a class involves testing all operations, setting and interrogating all object attributes and exercising the objects in all possible states.

41
Q

Testing Levels for OO

A
  • Testing operations associated within objects
  • Testing object classes
  • Testing clusters of cooperating objects
  • Testing the whole OO
42
Q

Cluster Testing

A

Integrating and testing clusters of cooperating objects, like in inheritance.

43
Q

Approaches to Cluster Testing

A
  • use-case or scenario testing
  • thread testing
  • object interaction testing
44
Q

Use-case / Scenario Testing

A

Testing is based upon user interactions with system.

45
Q

Thread testing

A

Tests the systems response to events as processing threads through the system

46
Q

Object interaction testing

A

Test sequences of object interactions that stop when an object operation does not call on services from another object.

47
Q

Scenario-based Testing

A

Identify scenarios from use-cases and supplement these with interaction diagrams that show the objects involved in the scenario.