What is Software Testing? Flashcards

1
Q

What is Testing?

A

Evaluating software in order to derive an estimate as to whether or not it meets some criteria.

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

What can testing do?

A

It can build confidence that key properties hold.

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

Dynamic Testing

A

Form of testing that involves executing the code.

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

Static Analysis

A

Form of testing which does not involve executing the code.

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

What are some forms of Static Analysis?

A
  • Inspections
  • Walkthroughs
  • Syntax Check (Linter)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

What are some forms of Dynamic Testing?

A

White box, grey Box, Black box, functional testing, Non-functional testing…

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

Grey-box testing and why you may use it?

A

Involves prior knowledge about the system to compose tests.

  • Building tests for many implementations of a product.
  • Closed-source product
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Black-box testing

A

Involves testing a product without any knowledge of its implementation, only its requirements.

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

White-box testing

A

Involves testing that exploits full knowledge of the system and source code.

Ex: following branches

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

What is an example of a Black/Grey/White box test for an Apache Web-server

A

B: Run external request generator.
G: Run generator with prior knowledge of most taxing requests (bottlenecks).
W: Run generator with code coverage to see which parts of the code are run

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

Functional Testing

A

Involves testing the product to ensure it provides a particular functionality.

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

Non-functional Testing

A

Involves testing the product on something other than whether it provides some function.

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

What is an example of a Functional and Non-functional test for a smartphone app

A

F: Does our app link to Facebook?
NF: Does the app divulge personal information?

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

Define a Fault and give an example of one

A

A property that can cause a failure to occur in a program. It is still stable.

Ex: A for loop starts at the wrong index and thus misses that index when the expected behaviour is to check it.

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

Define an Error and give an example of one.

A

A bad state of a running program which may lead to a failure.

Ex: A variable that checks how many multiples of two appears in an array is modified unexpectedly.

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

Define a Failure and give an example of one.

A

The software does something observably bad.

Ex: A unit test case in JUnit fails.

An Exception is triggered such as arrayOutOfBounds.

17
Q

Name the strengths of unit testing

A

Can pinpoint a low-level fault precisely.

Can be easily conducted individually by the actual programmer (more knowledge of the system)

18
Q

What is a limitation to unit testing

A

Many faults do not manifest at the unit level (method or class), they manifest in the interactions within the system.

19
Q

What is System testing

A

Testing that involves the entire system as a whole (typically blackbox)

20
Q

Name the strengths of System testing

A
  • Can find faults in your design
  • Tests both functional and Non-functional requirements.
  • Can help understand non-explicit requirements (Behaviour that “seems” wrong)
  • Can pass on this task to a specialist team that is familiar with this testing.

Ex: Ariane 5 launch system simulation, would have found fault.

21
Q

Limitations of system testing

A

Some part interacting faults are still difficult to find at system level

22
Q

Integration testing

A

Testing interacting classes, modules or subsystems.

Taking a bunch of units and testing together at that level in blackbox style.

23
Q

What are the main approaches of integration testing

A

Big Bang: Put everything together and test.
Top-down: Modules tested from entry points and integrated progressively.
Bottom-up: Modules progressively integrated and tested from the most elementary ones.

24
Q

Name the strengths of integration testing

A
  • More traceable than system test

- tests the interactions that unit testing cannot

25
Q

How can we convince someone that our tests are sufficient

A

Acceptance testing. Not to really discover failing scenarios. To ensure for the customer that the product works for their need.

Ensuring the system is in harmony with the environment it is intended for.

26
Q

Strengths of Acceptance testing

A

A VALIDATION activity. Did the right product get built.
Helps build trust with customer.
Understand the customer, domain and market.

27
Q

What is a form of testing that is done repetitively over the life of a system

A

Regression testing. Automated tests are formed into a testing suite for further versions.