06 Testability Flashcards

1
Q

Developer

A

A person whose primary responsibility is to write source code

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

Quality Assurance

A

To ensure that few, if any, defects remain in the software when it is delievered to its customers or released to the market.

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

Testing (Operational)

A

The execution of software and the observation of its behavior or outcome demonstrated using controlled experiments

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

Testing (Operational) Purpose

A

To demonstrate quality/ proper behavior.
To detect problems that need to be fixed.

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

Defects/Bugs Types

A

Errors
Fault
Failure
Bugs

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

Error:

A

A mistake made by a programmer or SE which caused the fault which in turn may cause a failure.
- Conceptual mistake.
- Human misunderstanding

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

Fault

A

Condition/Internal characteristic that may cause a failure in the system.

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

Failure

A

Inability of the system to perform a function according to its specification due to some fault.
- Deviation from expected behavior
- Something goes wrong at execution.

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

Relationship of Defects

A

Errors can cause Faults.
Faults can cause Failures.

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

Testability

A

The degree to which a system or component facilitates the establishment of test criteria and the performance of tests to determine whether those criteria have been met.

How hard it is to find faults

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

Testability is dominated by two practical problems

A

How to provide the test values to the software
How to observe the results of tese execution.

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

Testability is linked to our:

A

Prior experience.

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

The more testable the software

A

The greater the chance that somebody will test it

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

Testability Benefits

A

If the software is developed so that its behavior can be verified, it’s easy to confirm that it supports a certain features.

Fewer Suprises.

More easily changed (Fear results in duplication of defects)

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

When a program element is testable, it means

A

That it can be put in a known state, acted on, and then observed.
Can be done without affecting or interfering any other program elements.

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

What are hiding often at odds with each other?

A

Observability and Information

17
Q

Controllability :: Isolability

A

The ability to put something in a specific state.
Is important to testing because it leads to reproducibility.

The abiility to reproduce a given condition depends on the ability to isolate it and manipulate its internal state.

Components with lots of dependencies are diffcult to modify and test.

18
Q

Controllability :: Deployability

A

Is a measure of the amount of work needed to deploy the system into production.

Affects the developer’s ability to run their code in a production-like environment.

19
Q

Smallness

A

The smaller the software, the better the testability.

Broken up into:
1. Singularity
2. Efficiency
3. Level of Abstraction
4. Reuse.

20
Q

Correctness Definitions:

A

In Traditional Methods, correct behavior is defined completely at the beginning.

In Agile Methods, One way to redefine correctness is to be relative to a specific set of tests.

21
Q

Test Harnesses

A

Are automated.
Include a test oracle that can evaluate whether that test executed correctly.
Server as a specification of requirements.
Must be high quality and must run quickly
Run every time we make changes.

22
Q

Continuous Integration

A

A software engineering process where isolated code changes are immediately tested and reported on as they are added to a larger codebase.

Provide rapid feedback to identify and correct defects as soon as they are introduced.

Enable automation.