Reviews and Evaluating Testing Methods Flashcards

1
Q

What constitutes a review?

A

Qualitative evaluation of correctness based on informal techniques.
ex. Checklist

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

Define Analysis

A

provides repeatable and detailed evidence of correctness.

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

Do Reviews or Analysis involve running code?

A

No

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

Peer Review

A

Evaluation conducted by one or more people with similar competencies and expertise to the author.

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

Why is Peer review useful?

A
  • People most fit to assess expert’s work is other experts.
  • Large and diverse group finds more weaknesses.
  • Provides external validation (stamp of approval)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Limitations of peer review?

A
  • Slower than checking own work.
  • Asking people to point out errors in your work is uncomfortable.
  • Encourages Opportunism (let reviewers find errors and how to fix) and Perfectionism.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Software Review

A

Evaluation of software elements or project status to identify discrepancies from planned results and to recommend improvement.

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

Name types of Review

A

-inspection
-team review
-walkthrough
-pair programming
-peer check (desk check)
-ad hoc review
(from formal to least formal)

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

Ad hoc review

A

Focus is on problem solving (“help me figure out this bug for 5 minutes”)

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

Peer desk check/passaround

A

desk check is one person, passaround many. Author only sees output.

(“check out this pull request please?”)

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

Pair programming

A

Observer reviews each line of code as it is written.

improves quality, more a development strategy.

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

Walkthrough

A

Formal meeting where developers will attend and a demo of the code is shown.

Goal is to evaluate software or educate an audience about a piece of software. Author guides participants through code and explains how it works.

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

Inspection

A

Systematically identify defects with program. Reader presents software to team and outcome is (accept, accept with re-work, re-inspect).

  • formal, systematic and rigorous review.
  • Carried out by inspectors trained to find common defects using checklists and analysis.
  • May be used for conformance to regulations or certifications.
  • Can be used to collect metrics on defect rates.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Checklist for code

A

Reliability: fault tolerant? effective exception handling?

Efficiency: how much memory consumed? Optimized algorithms?

Reusability: Can components be used in other places?

Scalability: Can system grow?

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

Why independence in review?

A

Political view? commercial incentives
Psychological view? reviewing own work is difficult.
Technical view? independence builds redundancy
Systems view? review creates feedback loop.

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

Types of independence

A

Financial, organizational, task independence, knowledge independence (a, b make different assumptions.)

17
Q

Trade off of independence

A
  • Financial (expensive),
  • system knowledge (you’re an outsider.)
  • Relationship (seen as an outsider.)
18
Q

Review in support of design?

A

not usually good.

big loss developer is more suited to understand failures.

design and verification out of sync.

verfication doesn’t influence design.

19
Q

When to use walkthrough, review and inspection

A

W: for training.
R: for consensus.
I: improve quality of document.

20
Q

Error seeding

A

Early example of fault injection.

plant bugs and see how many are caught.

21
Q

Mutation testing.

A

Assesses ability of your test set to distinguish between original program and minor small changes (mutants). More caught mutants the better.

22
Q

Common mutations

A

Operand replacement

Statement modification operators (while-> repeat until)

Expression modification operators.

23
Q

Types of mutants

A

Do Fewer: Mutant sampling, constrained mutation, mutant clustering.

Do Faster: Schema based mutation, separate compilation approach. Runtime optimization

Do Smarter: Human error vs completeness.

24
Q

Limitations of mutation testing

A

too expensive. still lack of safety critical systems support.

25
Q

Benefits of mutation Testing

A

Increasing developments towards automation.