Software testing

0.0(0)
studied byStudied by 0 people
0.0(0)
full-widthCall Kai
learnLearn
examPractice Test
spaced repetitionSpaced Repetition
heart puzzleMatch
flashcardsFlashcards
GameKnowt Play
Card Sorting

1/64

encourage image

There's no tags or description

Looks like no tags are added yet.

Study Analytics
Name
Mastery
Learn
Test
Matching
Spaced

No study sessions yet.

65 Terms

1
New cards

Software Testing

inductive inference to validate software

software executed on a sample of inputs - test set or test suite

evaluated for conformance to requirements

2
New cards

failure

runtime deviation from required behavior

3
New cards

defect, fault, or bug

a flaw in a program that can cause it to fail

4
New cards

error

human action that results in a defect or fault

5
New cards

correctness

property that program absolutely satisfied functional requirements

6
New cards

reliabilty

numerical measure of extent to which behavior of deployed software conforms to requirements (frequency of failures, mean time between failures)

7
New cards

Synthetic testing

alpha testing - tester or tool generates test data

8
New cards

operational/field testing

software tested in field (or with inputs captured in field)

prerequisite for measuring reliabilty

9
New cards

simulation testing

when field testing isn’t feasible

approx to field testing

requires probabilistic simulation model

10
New cards

goals of testing

reliability assessment

reliability improvement

11
New cards

reliability assessment

important for release/deployment decisions

often done based on inhouse testing, should be field

12
New cards

reliability improvement

defect identification and repair

13
New cards

limitation of testing

cannot generally determine program correctness or incorrectness

cannot reveal all defects

14
New cards

Halting problem

given a program and input, will program terminate?

15
New cards

Alternatives to testing

inspection

static program analysis

proofs

reliability estimation

16
New cards

static program analysis

effective for finding violations of implicit programming rules

17
New cards

proof of correctness

automatic theorem proving

finite state model checking  - checks properties weaker than correctness, intensive 

18
New cards

testing costs

analysis of specification and program

test data creation/generation

program execution

evaluation of program behavior

all manual effort

19
New cards

test oracle

means of determining if test outcome is correct

humans check test output or determine expected results manually

partial correctness checks can often be automated

20
New cards

drivers and stubs

simple test scaffolding used to isolate the component under test

21
New cards

stub

lightweight called collaborator that the unit under test depends on

returns minimal behavior so the test can run without real dependency

22
New cards

driver

lightweight caller that supplies inputs and collects/asserts outputs

23
New cards

testing phases

unit testing, integration and subsystem testing, system testing, field testing, acceptance testing, regression testing

24
New cards

unit testing

routine, module, or class tested

drivers and stubs often needed

25
New cards

integration and subsystem testing

units integrated into subsystem

interactions between units tested

subsystem tested as a whole

drivers and stubs often needed

26
New cards

System testing

subsystems integrated

entire system tested

27
New cards

field testing

system used in the field by ordinary users

users report problems

28
New cards

acceptance testing

tested by customer

basis for accepting software

29
New cards

regression testing

retesting after maintenance

30
New cards

Alpha testing

performed by internal testers

31
New cards

beta testing

performed by customers or end users

32
New cards

dogfooding

in house beta testing on own employees

33
New cards

canary releases

route small percentages of real users to new version initially

34
New cards

dark launching

deploy a feature but hide it for internal testing

35
New cards

blue green deployment

blue- live

green - new

deploy to green and run tests, then switch to green, issues go to blue

36
New cards

when to test principle

test each component as soon as it becomes possible

37
New cards

why test as soon as possible

dev has motivation and understanding

cost of repair is least - less dependencies

38
New cards

Synthetic testing goal

create and run artificial test cases likely to reveal defects

39
New cards

sources of info used for syntehtic testing

srs

code

knowledge of programming errors

knowledge of app domain

40
New cards

testing criteria

conditions that must be satisfied by test set _each req has a test, statement coverage)

41
New cards

Types of synthetic testing

functional, structural, boundary and special values, interaction testing, model based testing, fault based testing, equivalence partition and subdomain testing, random testing, hybrid techniques

42
New cards

Functional testing

Exercises each specific functional requirement at least once. Any requirement could be wrong

43
New cards

Subdomains

subset of all possible inputs

44
New cards

Equivalence partition and subdomain testing

techniques for economizing on test effort

divide input domain into finite number of subdomains

disjoint subdomains can be viewed as equivalence classes (partition of input domain)

45
New cards

category partition testing

decompose functional specification into functional units that can be tested independently

determine general categories of input params and environmental variables

partition each category into separate choices

determine constraints among choices of different categories

write the test specification

use a generator to produce test frames from the test specification

from test frame, create test case

46
New cards

structural testing

covers each program element of a certain type

statements or blocks

conditional branches

any element may be defective

percentage coverage achieved by test set is one measure of testing completenes

47
New cards

Control flow graph

depicts potential control flow between program statements or instructions

each simple statement and decision point is represented by a vertex

each potential branch is represented by a directed edge

48
New cards

Modified condition/decision coverage

ensures each condition in a decision statement independently affects the decision’s outcome

each condition is tested twice, with results true and false, while keeping the values of all the other conditions in the decision the same

49
New cards

satisfy MC/DC

each possible outcome of each decision occurs

each possible outcome of each simple condition in a decision occurs

each entry and exit point is invoked

each simple condition in a decision is shown to independently affect the outcome of the decision

50
New cards

criticism of MC/DC

difficult and expensive

not directly related to safety reqs

51
New cards

boundary and special vals testing

testing with these

used in conjunction with other tests

loops - 0,1,small,large

52
New cards

load testing

stress testing

53
New cards

interaction testing

involves testing interactions between vars, objects, events, statements, components, or features

reveals faults coverage doesn’t

feature interaction occurs when the integration of two features can modify the behavior of one or both features

problem - number of possible interactions grows rapidly with number of elements involved

54
New cards

combinatorial interaction testing

black box testing technique that samples input params and configures and combines them systematically

main goal is to ensure that software can handle different combinations of parameter values and configuration options

seeks to cover a broad range of input combinations using a min number of test cases

testing all t-way interactions

doesn’t need to make sense

55
New cards

Data flow and dependence testing

find evidence of potential causal interactions between program elements

graph thing

56
New cards

Mock object

dummy object that mimics real object’s behavior

simpler than object

57
New cards

when to use mock

real object DNE

has nondeterministic behavior

difficult to set up

hard to trigger

slow

is a ui

58
New cards

short commings of mocks

hides integration problems

adds clutter

may be fragile

59
New cards

model-based testing

any type of testing guided by model

state machine

data flow

UML activity

models abstract things

60
New cards

Fault based testing

reveals a specific type of programming fault

61
New cards

Mutation testing

small changes are injected into the program

tests are run

mutant is killed if it produces different output than original

qaulity = percentage killed

62
New cards

Does not contain fault

test kills mutant, fails on mutant program, and passes on original

63
New cards

contains a fault that mutation partly fixes

kills mutant, fails on original, and passes on mutant

64
New cards

critism of mutant

large number of mutants

no effective way to automatically generate inputs that kill mutants

65
New cards

random (fuzz) testing

random tests

inexpensive and unbiased test generation

reveals many defects

fails good coverage

run for days

check for crashes