Verification Flashcards

1
Q

What is validation?

A

Validation ensures that the software systems meets the customers expectations

(are we building the right system?)

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

What is verification?

A

Verification ensures correctness against system specification

(are we building the system right?)

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

Static Verification Techniques

A

do not require executing the program

  • code review
  • static checking (automated analyses)
  • formal verification (program satisfies formal property)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Dynamic Verification Techniques

A

require a program to be executed

  • Testing
  • runtime monitoring (check for safety/security vialoations)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Code review - definition

A

structured inspection process, performed in a team, to find possible defects

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

Code review - advantages and obstacles

A

+ distribute knowledge among team
+ can find defects before they show in tests
+ can improve code quality
+ no executable system required

  • only work well when properly conducted
  • team members may feel criticized or not productive
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Steps in test Design

A
  1. identify and analyze the responsibilities of the IUT
  2. add test cases based on
    - use case, design, minimal successs guarantess
  3. determine how verdict is reached through providing expected results

-> testing must be based on fault model

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

Which aspects of testing can be automated?

A
  • running the tests
  • generating test inputs
  • generating test verdict (test oracle)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

What can be achieved by testing?

A

establish sufficient trust into the system

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

Definition - Test (Data) Point

A

is a specific value for

  • a test case input or
  • a state variable
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Definition - Test Case

A

consists of

  • pretest state of the IUT
  • test point/ condition
  • expected results
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Definition - Test Suite

A

Collection of test cases

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

Definition - Test Run

A

execution of a test suite on the IUT

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

Structural Coverage - Statement Coverage (SC)

A

all statements were executed at least once

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

Structural Coverage - Basic Block Coverage (BBC)

A

(Basic Block: max sequence of instructions without branch points)
all basic block are executed at least once

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

Structural Coverage - Branch Coverage (BC)

A

all edges in the CFG were executed at least once

17
Q

Structural Coverage - Path Coverage (PC)

A

all path in the CFG were executed at least once

unachievable in practice

18
Q

Logic Coverage - Decision Coverage (DC)

A

any decisions in the program were at least once false and once true
(desicion: a < b && c == d)

19
Q

Logic Coverage - Condition Coverage (CC)

A

any conditions in the program were at least once false and once true
(condition: a < b, c == d (from a < b && c == d))

20
Q

Logic Coverage - Modifies Condition-Decision Coverage (MCDC)

A

for one occurrence condition c in decision d

  • d evaluates at least twice
  • once where c is false
  • once where c is true
  • d evaluates differently in both cases
  • and other conditions in d evaluated identically or not evaluated at least once

(often required when developing safety-critical software)

21
Q

Automated Test Case Generation

A

White Box

  • Syntactic approaches: scanning for contitions, evaluation -> suitable to achieve logic based coverage criteria
  • Symbolic execution: unwinding CFG with symbolic values -> suitable to achieve also structural coverage criteria

Black Box
- analysis of input data or model of IUT

22
Q

Automatic Static Verification Techniques

A

Static Checking (based on CFG)

  • Runtime exceptions, liveness, information flow
  • fully automated
  • many false positives
  • scales reasonably well

Bug Finding