What is Software Testing? Flashcards
What is Testing?
Evaluating software in order to derive an estimate as to whether or not it meets some criteria.
What can testing do?
It can build confidence that key properties hold.
Dynamic Testing
Form of testing that involves executing the code.
Static Analysis
Form of testing which does not involve executing the code.
What are some forms of Static Analysis?
- Inspections
- Walkthroughs
- Syntax Check (Linter)
What are some forms of Dynamic Testing?
White box, grey Box, Black box, functional testing, Non-functional testing…
Grey-box testing and why you may use it?
Involves prior knowledge about the system to compose tests.
- Building tests for many implementations of a product.
- Closed-source product
Black-box testing
Involves testing a product without any knowledge of its implementation, only its requirements.
White-box testing
Involves testing that exploits full knowledge of the system and source code.
Ex: following branches
What is an example of a Black/Grey/White box test for an Apache Web-server
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
Functional Testing
Involves testing the product to ensure it provides a particular functionality.
Non-functional Testing
Involves testing the product on something other than whether it provides some function.
What is an example of a Functional and Non-functional test for a smartphone app
F: Does our app link to Facebook?
NF: Does the app divulge personal information?
Define a Fault and give an example of one
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.
Define an Error and give an example of one.
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.