Chapter 10 - Testability Flashcards

1
Q

what is testability

A

refers to the ease with which software can be made to demonstrate its faults through (typically execution-based) testing

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

what does it mean for a system to properly testable

A

it must be possible to control each of the components inputs and then to observe its outputs

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

general scenario: 5 values for source

A

with manual or automatic testing tools:

  • unit testers
  • integration testers
  • system testers
  • acceptance testers
  • end users
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

general scenario: 4 values of stimulus

A
  • a set of tests executed due to the completion of a coding increment
  • completed integration of subsystem
  • finished implementation
  • deliver system to customer
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

general scenario: 6 values for environment

A
  • design time
  • development time
  • compile time
  • integration time
  • deployment time
  • run time
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

general scenario: 1 value for artifact

A

the portion of the system being tested

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

general scenario: 3 values for response

A
  • execution of test suite and capture results
  • capture activity that resulted in the fault
  • control and monitor the state of the system
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

general scenario: 4 values for response measure

A

effort to find fault or class of faults

-effort to achieve a given percentage of state space coverage

probability of fault being revealed by the next test

-time to perform tests

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

general scenario: 4 more values response measure

A
  • effort to detect faults
  • length of longest dependency chain
  • length of time to prepare test environment
  • reduction in risk exposure
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

the main goal of testability tactics

A

to allow for easier testing when an increment of software development has completed

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

2 categories of testability tactics

A
  • control and observer system state

- limit complexity

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

6 ways to control and observe the system state

A
  • specialized interfaces
  • record/playback
  • localize state storage

abstract data sources

-sandbox

executable assertions

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

meaning of “specialized interfaces”

A

to control or capture variable values for a component either through a test harness or through normal execution

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

meaning of “record/playback”

A

capturing information crossing an interface and using it as input for further testing

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

meaning of “local state storage”

A

to start a system, subsystem, or module in an arbitrary state for a test

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

meaning of “abstract data sources”

A

abstracting interfaces lets you substitute data more easily

17
Q

meaning of “sandbox”

A

isolate the system from the real world to enable experimentation that is unconstrained by the worry about having to undo the consequences of the experiment

18
Q

meaning of “executable assertions”

A

assertions are hand coded and placed at desired locations to indicate when and where a program is in a faulty state

19
Q

2 methods to limit complexity

A

limit structural complexity

limit non-determinism

20
Q

meaning of “limit structural complexity (3 things)

A
  • avoiding or resolving cyclic dependencies between components
  • isolating and encapsulating dependencies on the external environment
  • reducing dependencies between components in general
21
Q

meaning of “limit non-determinism”

A

finding all sources of non-determinism, such as unconstrained parallelism, and weeding them out

22
Q

3 factors for binding time

A
  • ensure the components that are bound later than compile time can be tested in late-bound context
  • ensure late bindings can be captured (logged)
  • ensure full range of binding possibilities can be tested