Changing your testing as your world changes Flashcards

1
Q

What are the 5 worlds of Software

A
Shrinkwrap (open-source, configurable, web-based)
Internal
Embedded
Games
Throwaway
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Exploratory Testing

A

Simultaneous learning, test design and test execution. Learn about the software as you test.

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

Limitations of exploratory testing

A
  • no concept of completeness
  • not systematic
  • expensive in terms of tester skill, may want more explicit process.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Specification Based Testing

A

Evaluating software based on explicit claims in specification.

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

Benefits of specification based testing

A
  • Systemic (follow SRS)
  • Spec is usually simpler than software
  • Captures what matters most about the purpose of the software
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Limitation of informal specs

A

Hard to verify. Perhaps no mechanical way to convert it into tests

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

Model-based testing

A

Using models of expected behaviour to produce test case specs that can reveal discrepancies between actual program behaviour and the model.

Goal: test a program specified by a model to find faults.

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

Fuzz testing

A

Feeding random inputs until program crash or assertion violations.

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

Give an example of model-based testing

A

Creating a control flow graph and testing inputs to ensure the program follows the same behaviour of the model.

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

What is a test oracle?

A

Tells you whether a test result is good or not. Not always able to do this, however! you can use an oracle to determine if an answer may be invalid.

a, b > 0
oracle can make sure sum of a, b is above zero.
a + b > 0

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

Partition testing

A

Partition the input domain based on their significance for the program. Then select values within those partitions to test. Recall Parnas Tables!

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

Boundary Testing

A

Choosing inputs on semantically significant boundaries.

int increment(int i) {
    return i + 1;
}
You may want to set i to MAX_INT? this is a boundary since + 1 would set an error!
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Coverage Based Testing

A

Testing until you meet some pre-agreed code coverage goal.

Could be: All modules, All classes, All methods. Maybe every statement? or True/False decision?

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

What if coverage criteria shows you do not hit every part of the code?

A

You could have dead branches of code that are never able to be run.

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

Fault Injection

A

Introducing faults into the software to test.

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

Give an example of partition testing/Boundary Testing/ Coverage based Testing and Fault Injection for an Instagram like app.

A

P: Partition state of file types and upload to see what can happen.
B: Different files sizes to see how the app reacts. Very large and very small. Try an empty file. Does it break?
C: If app implements different ways to search a target, ensure they all work.
F: Try to upload invalid files, see how the app reacts.

17
Q

Partition, Boundary, Coverage, Fault, Exploratory, Fuzz, Model based. Give an example for Blackbox, Whitebox and Greybox

A

B: Exploratory, Fuzz,
W: Coverage based, Fault injection
G: Model-based, Spec based

Mostly, these tests can be pretty fluid between the categories.

18
Q

Partition, Boundary, Coverage, Fault, Exploratory, Fuzz, Model based. Functional or Non-functional?

A

Combination of both. You can look at all attributes whether functional or non-functional within the context of these tests.

19
Q

How does testing change between Agile and Waterfall?

A

Agile: Might test frequently but often without a specification.
Waterfall: May define tests before any coding is even done. Pure waterfall may not allow for testing to be much use.

20
Q

How do you know the right way to do testing?

A

You have to examine:

  • Software “World”
  • Stage of development
  • Skill of test team
  • Novelty of product
  • availability of reference models
  • Availability of explicit specifications.
21
Q

Exhaustive testing

A

Almost never possible and extremely costly.

22
Q

When to stop testing?

A
  • meet coverage goals
  • Meet defect discovery rate
  • Marginal cost (cost of shipping with a defect? Cost per defect discovered?)
  • team consensus
  • Management wants you to stop!