4452 - Testing Final Flashcards

1
Q

What does statistical testing reflect and what does it measure?

A

reflects: frequency of user inputs
measures: system reliability

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

What does defect testing discover?

A

system defects

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

What are the 4 testing stages?

A
  1. unit testing
  2. integration testing
  3. system testing
  4. user/acceptance testing
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

What is unit testing?

A

the testing of individual components

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

What is integration testing?

A

the testing of interactions between components

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

What is system testing?

A

testing the complete system prior to delivery

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

What is acceptance testing?

A

testing done by end users to ensure that the system delivers on business and user needs

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

What is black box testing?

A

Its where something is inputted to the system and then the output is compared to the expected output

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

What is white box testing?

A

Its where the input is selected with explicit knowledge of the internal workings of the system

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

What types of testing are included in the white box test suite?

A
  • edge (decision) testing
  • path testing
  • statement testing
  • condition testing
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

What is regression testing? What does it ensure?

A
  • Regression testing is used to make sure that a defect fix, added functionality, really any changes to the code does not change functionalities or behaviors that should not be affected
  • ensures that modified code has not broken the code it modified
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

What are the two broad techniques used during unit testing?

A

functional testing and structural testing

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

What are the two types of structural testing methods? What is the difference between them?

A

Control flow testing, data flow testing

- one is based on control flow graphs the other is based on data flow graphs

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

What does integration testing attempt to construct?

A

the system architecture

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

Integration testing wants to uncover defects associated with what?

A

interfaces

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

When is integration testing complete?

A
  • when all modules are fully integrated together
  • when all the test cases have been executed
  • when all the severe and moderate defects have been found and fixed
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
17
Q

What does system testing check the system against?

A

the quality requirements

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

A system must be constructed in a ________ for system testing to be performed

A

an emulated environment that is as close to the real production environment as possible

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

Where is acceptance testing performed and who performs it?

A

in the production environment by the end users

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

what is the key difference between testing and debugging?

A

testing confirms the presence of defects, debugging actually locates and fixes them

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

What are the activities in testing?

A

IDBEC:

  • identify
  • design
  • build
  • execute
  • compare
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
22
Q

What is “built” during the build activity in testing?

A

test cases

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

What are the activities in debugging?

A

LDRRe

  • locate
  • design
  • repair
  • re-test
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
24
Q

What is a test condition?

A

it is the goal of a test case, it is something you want to verify

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

What does a test case consist of?

A

test data to be inputted and an expected output

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

What is a test set?

A

a collection of test cases

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

What do test scripts contain?

A

data and instructions for testing

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

What is the system that performs the checking of the observed behavior referred to as?

A

oracle

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

program behavior can be specified in which three ways?

A
  • plain natural language
  • state diagrams
  • formal mathematical specifications
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
30
Q

What are automated oracles?

A

a pre determined input output relationship that is checked for all outputs

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

What is considered completeness for functionality testing and structural testing?

A

functional; the behavior of all functional partitions are tested
structural; all statement, all branches, all loops

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

What are the three reasons for test stopping?

A
  1. budget exceeded or deadline needs to be met
  2. desired coverage reached
  3. desired level of failure intensity reached
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
33
Q

What does boundary value testing do?

A

targets failures in application at the boundary of the equivalence classes

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

what does equivalence class partitioning do?

A

selects partitions from WITHIN equivalence classes

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

boundary value testing and equivalence partitioning tests may overlap (T/F)

A

T

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

What are nodes in a CFG?

A

statements or groups of statements

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

what are edges in CFG?

A

the flow of control; there is an edge between i and j if j can be executed immediately after i completes

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

what is statement coverage?

A

run tests until all statements have been executed

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

what is edge coverage?

A

run tests until all edges in control flow graph have been executed at least once

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

what is condition coverage?

A

like edge coverage but with additional attention being paid to conditionals - ensuring that all combinations have been tested

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

what is path coverage?

A

ensuring that all paths (start node to end node) have been executed multiple times

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

for loop based paths what test cases should you write?

A

three cases:

  1. skip the loop
  2. execute it once
  3. execute it multiple times
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
43
Q

what does the driver component do in unit tests?

A

it takes test case data and passes it into the component being tested and returns the results

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

what do stubs do? what MUST they use?

A

replace the modules that are subordinate to the subsystem being tested. They MUST use the modules exact interface

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

why is test selection difficult?

A

because of two aspects of the input domain for the partition; its large size and complexity

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

how does equivalence portioning solve the input domain size issue?

A

by creating a relatively small number of disjoint sub-domains that allow the system to be tested with N test cases for N sub domains or partitions

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

what are the two objectives for test generation?

A

completeness and efficiency

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

what is the difference between weak and strong equivalence class testing?

A
weak; uses one variable from each equivalence class in a test case
strong; uses the Cartesian product of the partition subset
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
49
Q

what is the minimum number of test cases that can be in weak equivalence class testing?

A

the number of classes in the partition with the largest number of subsets

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

in strong equivalence classes the interactions between the represented values and any ______ is tested?

A

subsets

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

What is the foundation for partitioning equivalence classes?

A

expected behavior

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

what is the difference between normal and robust testing strategies

A

normal: equivalence classes of valid values of inputs
robust: equivalence classes of valid and invalid values of inputs

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

what is efficiency for equivalence classes?

A

identify test cases using only one element from each equivalence classes

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

what ratio is effectiveness evaluated on for equivalence class testing

A

failures exposed by equivalence class testing vs total failures in the system

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

what is the typically effectiveness of equivalence partitioning?

A

less than 1

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

what are ways to improve the effectiveness of equivalence class testing?

A
  1. unambiguous and complete specifications of the requirements
  2. carefully selected equivalence partitioning
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
57
Q

what is uni dimensional partitioning for compound data types?

A

when you consider only 1 variable at a time

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

what is multi-dimensional partitioning for compound data types?

A

the input domain is the set product of the the variable inputs

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

what are the 4 steps of equivalence classing?

A
  1. identify the input domain
  2. equivalence classing: partition the set of values of each variable into disjoint subsets
  3. combine the equivalence classing
  4. identify the infeasible equivalence classes
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
60
Q

what is the main source for identifying inputs and outputs for equivalence testing?

A

the software requirements

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

input variables don’t include environmental variables (T/F)

A

F; they do

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

how can equivalence classes be defined?

A

using multidimensional partitioning

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

what inputs are used in infeasible equivalence classes?

A

inputs that cannot be generated during the test

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

what are the three steps to boundary value testing?

A
  1. partition the input domain
  2. identify the boundary
  3. select test data
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
65
Q

when does BVA work well?

A

when program to be tested is a function of several independent variables that are physically bounded quantities and when the selected test data is chosen with no consideration for the function of the program or the semantic meaning of the variable

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

what do decision variables make easier?

A

to make sure all possible conditions have been accounted for

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

what is logic based modeling?

A

associating conditions with actions to be performed

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

what are default rules in limited entry decision tables?

A

indicate actions to be taken when none of the rules apply

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

what must you ensure before using a decision table?

A

that the rules are complete and consistent

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

how do you create a decision table? (what are the steps)

A
  1. determine the actions, conditions and values, and how many rules you want to specify
  2. encode all the possible rules and the actions for each rule
  3. reduce where you can
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
71
Q

what is TAP?

A

test anything protocol :)

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

what does it mean that drivers and stubs are considered “overhead”?

A

they must be written but are not considered part of the testing software product

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

what is the mocha testing tool based off of?

A

the javasript test framework

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

what runs mocha on server and client side

A

node-js and browser

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

mocha tests run asynchronously (T/F)

A

True

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

mocha test run in parallel (T/F)

A

False; they run serially

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

what is a test runner?

A

the driver; takes test cases and returns results

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

what is a test fixture?

A

a test environment used by multiple test cases

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

what does TAP allows in terms of communications?

A

it allows for communication between unit tests and the test harness

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

what is the test harness?

A

the automated test framework

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

what was tap initially designed for and when?

A

for the perl interpreter in 1987

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

what are the two inputs of the describe function in mocha?

A

the name of the test group and the all back function

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

what are the two inputs of the it function

A

the name of the test case and the call back function that contains the actual test

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

what is the difference between the it and describe function

A

describe –> test group (higher level)

it –> test case

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

what are the 4 hooks in mocha?

A
  • beforeEach
  • afterEach
  • after
  • before
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
86
Q

what runs first beforeEach() or before()?

A

before

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

what does SDK testing use for white box testing?

A

user code test coverage reports

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

what kind of testing does api testing use?

A

black box testing

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

what does api testing use of the server side?

A

REST

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

what function are stubs written in for EQT?

A

beforeEach and afterEach

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

what does the spy function solve?

A

it prevents the program from not calling subsequent arguments after an invalid return

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

what are the three types of functional testing?

A
  • equivalence class
  • boundary value
  • decision table
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
93
Q

what three basic metrics can be used to evaluate functional testing methods?

A
  • effort
  • efficiency
  • effectiveness
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
94
Q

what functional testing method requires the highest identification effort?

A

decision tables

95
Q

what functional testing method requires the highest execution effort?

A

boundary value testing

96
Q

what is the most efficient functional testing technique?

A

decision tables

97
Q

How do we measure efficiency in functional testing?

A

you can’t really do it

98
Q

what is single fault assumption?

A

that faults rarely occur as the result of two or more simultaneous faults

99
Q

if single fault assumption is assumed what functional testing method should be considered?

A

equivalence class testing with robustness

100
Q

if variables are independent and refer to physical domains what functional testing method should be considered?

A

equivalence class testing

101
Q

if variables are logical quantities what functional testing methods can be considered?

A

equivalence class testing or decision table

102
Q

if variables are dependent what functional testing methods can be considered?

A

decision table

103
Q

structural testing provides test definitions relating to what?

A
  • control flow
  • data flow
  • program language semantics
  • coverage criteria
104
Q

what is used to select test data in structural testing?

A

the internal workings of the system

105
Q

data flow testing uses a test strategy based on what?

A

selecting paths through the programs control flow graph

106
Q

if a program has compound conditionals what must you ensure?

A

that all the combinations have been tested

107
Q

what is the fault assumption in path testing?q

A

that the program may make take a different path then the one expected

108
Q

what are the characteristics of a dd path graph

A
  1. that all nodes are DD paths from the CFG

2. edges represent control flow between DD paths

109
Q

what graph enables the precise description of test coverage?

A

DDpath graphs

110
Q

DD path testing provides metrics and coverage criteria for what?

A

effectiveness

111
Q

what does predicate coverage aim to reduce all program predicates to?

A

a true or false (single predicate)

112
Q

for n conditions how many test cases are there typically for MC/DV coverage testing? For regular multiple decision coverage how many should there be?

A

MC/DC: n + 1

MDC: 2^n

113
Q

what is the issue with C1 (simple coverage criteria) for DD path testing?

A

it only covers all edges of the DD path but does not take into consideration dependencies between paths; for example if a variable is declared in one path and then referenced in another, they will be tested independently from each other which isn’t what happens in practice

114
Q

what is Cd and what does it solve?

A

data flow dependency modeling coverage criteria for DD path testing; ensures that all edges as well as all dependent DD path pairs are tested

115
Q

what is C2 and what are the two basic outcomes?

A

loop testing

  1. traverse loop
  2. exit loop
116
Q

how can C2 be extended to consider the loop index?

A

by doing a modified boundary value analysis on the index

117
Q

statement coverage ensures that all loops reach their termination condition (T/F_)

A

F; only ensures that all statement within the loop were executed

118
Q

it is not acceptable to release code based exclusively on statement coverage (T/F)

A

T

119
Q

what is the flaw with decision coverage?

A

it can produce gaps in programming languages that support short circuit logic operators (will skip the evaluation of logic if some other condition is accepted)

120
Q

what is function coverage?

A

it ensures that all functions in the program have been called

121
Q

what is call coverage?

A

ensures that all function calls in the program have been executed

122
Q

what is mutliple decision coverage?

A

ensures that all possible combinations of Boolean sub expressions occurs

123
Q

for languages without short circuit logic operators what is multiple decision coverage equal to ?

A

path coverage

124
Q

what is MC/DC?

A

multiple decision coverage but only combinations whose result can effect the decision are evaluated

125
Q

what are the problems with path testing?

A
  1. the number of paths has an exponential relationship to the number of branches
  2. some paths cannot be exercised due to the relationship of the data
126
Q

path coverage includes decision coverage (T/F)

A

T

127
Q

statement coverage includes decision coverage (T/F)

A

F; the other way around

128
Q

what is a baseline path?

A

corresponds to a normal execution of the program, from start node to end node, that encompasses as many decisions as possible

129
Q

what is the difference between topological feasible paths and logically feasible paths?

A

topological is strictly based on the graph, logical incorporates program logic and identifies constraints that eliminate certain paths that are present in the topological model

130
Q

what selection criteria exercises every statement or instruction?

A

C0; statement coverage

131
Q

what selection criteria exercises each branch and case statement at least once in each direction?

A

C1; branch coverage

132
Q

what selection criteria exercises each condition in a decision with all possible outcomes

A

C1p; predicate to outcome

133
Q

what selection criteria exercises every compound predicate outcome?

A

C2; multiple condition coverage (MCC)

134
Q

what selection criteria exercises every path from entry to exit?

A

C(infinite), all possible execution paths

135
Q

what is the core difference between functional and structural (path) testing?

A

functional testing is directly derived from the software quality requirements and specifications and is not based on the source code, whereas structural testing is directly based on the the source code and the resulting graph

136
Q

path testing is based on the logic of the code (T/F)

A

F; it is based on the graph

137
Q

data flow diagrams explore the events related to what?

A

the status of variables

138
Q

what are the 3 types of data flow anomalies?

A
  1. variable is defined then defined again
  2. variable is referenced but no defined
  3. variable is defined but not referenced
139
Q

what is the difference between a defining node and a usage node in CFG?

A

a defining node is DEFINED at the statement

a usage node is USED at the statement

140
Q

what is the triple that defines def-use?

A

x - variable
d - node containing definition of x
u - statement or predicate node that uses x

141
Q

what is a du-path

A

for variable x, its a path whose first node is a definition for x and last node is a usage node for x

142
Q

what is a dc-path

A

a du-path where there are no other defining nodes for x

143
Q

what is AduP

A

a testing coverage where every du-path from every definition of every variable to every use of that definition is exercised under some test

144
Q

what does integration testing attempt to construct?

A

the system architecture

145
Q

integration testing attempts to uncover errors associated with what?

A

interfaces and interactions among units

146
Q

what are the three testing areas of integration testing

A

internal, external, interactions

147
Q

what are the three approaches to base integration testing off of and what is the associated dependency?

A
  • function decomposition (functional dependency)
  • call graph (interaction dependency)
  • paths (flow dependency)
148
Q

what are the three types of incremental integration functional decomposition?

A
top down (module --> stub)
bottom up (module --> driver)
sandwich testing (mix of above two)
149
Q

what are the pros and cons of top down integration testing?

A

pros
- test cases can be created based on the functionality of the system
- makes sure that the majority of control points are tested early on
cons
- stubs are a waste
- stubs are tricky
- stubs make it so no significant data flow can occur until later level testing

150
Q

what is a test driver?

A

a fake routine that requires a valid subsystem and passes a test case to it

151
Q

what are the pros and cons of bottom up integration testing?

A

pros
- low level data processes are tested early on
- no stubs
cons
- you need to build test drivers which constitutes overhead
- testing may be incomplete

152
Q

how does sandwich testing work?

A

functional groups are tested alternatively between high level and low level modules, once complete its on to the next functional group

153
Q

what is the advantage to sandwich testing?

A

it has all the positives of top down and bottom down while minimizing the need for stubs or drivers

154
Q

what are the two methods of call based integration testing?

A

pair wise and neighbourhood

155
Q

what is pair wise integration testing?

A

uses test sessions that are restricted to a particular pair of units, corresponding to one edge in the call graph equally to one integration test session

156
Q

what is neighborhood integration testing?

A

where a test session makes up all nodes that are one edge away from the current node, meaning that all predecessor and successor nodes are in the session

157
Q

neighborhood testing has more test sessions than pair wise testing (T/F)

A

F; pair wise has way more

158
Q

interface based testing is behavioral (T/F)

A

F; its structural

159
Q

interaction based testing is behavioral (T/F)

A

T

160
Q

what is a source node?

A

a node where the program execution begins or resumes (in the case of control transfer from one unit to another)

161
Q

what is a sink node?

A

a node where the program terminates can be both the end of all execution or when control is transfered to another unit

162
Q

what is a module execution path (MEP)?

A

a sequence of statements that begins with a source node and ends in a sink node with no intervening sink nodes

163
Q

what is the program mechanism that transfer flow of control from one unit to another?

A

a message

164
Q

what is an MM-path?

A

a chain of MEP & messages

165
Q

what are the nodes and edges in an MM-path graph

A

nodes - MEP

edges - messages

166
Q

what three things does continuous integration try and automate?

A

the build, tests, and deployment

167
Q

what are the three key steps to the CI build cycle?

A
  1. developer commits code to the source code repository
  2. build server executes the master build script which does the following
    - checks source code
    - builds an executable version
    - runs other jobs like testing
  3. team is notified of build results
168
Q

what is the criteria for adding new models to CI build?

A
  • must be unit tested
  • must be inspected/reviewed
  • must have some release note
169
Q

what are the 4 types of devops processes?

A

CI - uses tools to orchestrate software changes and tests
CT - uses tools to orchestrate test environment and management
CD - uses tools to manage deliverable
CM - uses tools to run analytics

170
Q

when does regression testing occur?

A

many times throughout the life of a product

171
Q

what does regression testing ensure?

A

that changes do not affect functionalities that should not be affected

172
Q

what tests should not be included in regression tests?

A

any tests that have become obsolete as a result to the changes

173
Q

what is test re validation

A

identifying obsolete tests in regression testing

174
Q

what are the 3 types of regression testing?

A
  1. test all
  2. random
  3. selected modification traversing tests
175
Q

what tests are included in the test all approach?

A

all valid tests from the previous versions and any new tests added to test new functionality

176
Q

what is the problem with the test all approach?

A

it may not be feasible depending on the size of the program

177
Q

what tests are included in the random approach for regression testing?

A

random tests from valid previous and new

178
Q

what is selected modified traversing testing for regression testing?

A

selecting a subset of the original test set such that the execution of the modified code against this subset implies that all functionality was carried over from the previous version, and then also testing any new test cases developed to test new functionality

179
Q

what is a “safe” regression technique?

A

where no test cases that will traverse modified code are disgarded

180
Q

the sequence of node that a test traverses in a CFG is called what?

A

its execution trace

181
Q

what are some examples of testable entities?

A

statements, decisions, branches, def-us path

182
Q

what does the naive algorithm do?

A

computes all subsets of the test set starting by the smallest subset and stops when one that covers all the entities covered by the test set is found

183
Q

what does the greedy algorithm do?

A

finds the local optimum choice at each stage and hopes to find the global optimum

184
Q

when do you use test prioritization instead of test minimization?

A

when you can’t discard any test cases due to quality requirements

185
Q

what is the goal of test prioritization

A

to identify faults as early as possible in the test process

186
Q

which tests get maximum priority?

A

tests with the most coverage

187
Q

what type of environment is system testing typically performed on?

A

a constructed by reasonably stable emulated production environment

188
Q

what is perceived performance

A

user perspective of system performance

189
Q

what are the two approaches to performance testing?

A

bench marking and profiling

190
Q

comparing performance against some pre determine criteria is called what?

A

benchmarking

191
Q

comparing performance against measures relative to the system statistics is called what?

A

profiling

192
Q

what type of performance testing measures the absolute performance of the application?

A

benchmarking

193
Q

what type of performance testing measures the run-time performance of the application?

A

profiling

194
Q

what are the typical criteria used in benchmarking?

A

execution time (cpu usage), response time and memory usage

195
Q

what are some ways to optimize to improve performance?

A

reduce I/O routines, lazy evaluation saves (computing/loading), hashing/cashing save (reloading resource)

196
Q

what is the difference between contiguous and non contiguous memory testing

A

contiguous; assigns the consecutive blocks of memory to a process requesting for memory
non contiguous; assigns the separate memory blocks at different locations in memory space in a non consecutive manner for a process requesting memory

197
Q

how do you optimize memory access?

A

changing non contiguous memory access to contiguous

198
Q

how do you improve data structures?

A

by using hash based functions and dealing with their limitations in an intelligent way

199
Q

how do you optimize evaluation saves?

A
  • don’t do computation when you already know the answer
  • hoist computation heavy code outside of a loop
  • use dynamic programming
200
Q

what is the classic question that define profiling?

A

where is the most time being spent

201
Q

what are the two types of profiling (with definitions)

A

point; events are simple and independent

context; event consist of simple ordered events

202
Q

what is the difference between insertion and sampling profiling?

A
  • insertion means writing profiling code

- sampling means monitoring cpu at regular intervals

203
Q

what is hprof?

A

a tool built into JDK for profiling

204
Q

why should you design your profiler code to be short?

A

because profiling slows down code a ton

205
Q

where should security mechanisms be positioned?

A

in subsystems and in the communication links between sub systems

206
Q

what are the 6 steps to the treat modeling?

A
  1. identify assets with security quality requirements
  2. create an architecture overview
  3. decompose the application in terms of processes
  4. identify threats
  5. document threat
  6. rank threat severity
207
Q

what are security testing mechanisms (VESPP)

A

vulnerability scanning, ethical hacking, security scanning, penetration testing, password crackingq

208
Q

malware exploits arise from what coding problems?

A
  • buffer overflow
  • format string vulnerabilities
  • integer vulnerabilities
209
Q

how is a buffer overflow attack done?

A

injecting attack code into the buffer and overflow the buffer so that it jumps to the attack code

210
Q

how do you defend against an overflow buffer attack

A
  • non overflow buffers testing
  • array bound checking
  • code pointer integrity
211
Q

what does non overflow buffer testing do?

A

makes attack code injected into input buffer non-executable

212
Q

what does array bound checking do?

A

ensure that all read and writes to arrays are within array bounds

213
Q

what does code pointer integrity testing detect?

A

if a code pointer has been corrupted before it was de-referenced

214
Q

what is XSS?

A

cross site scripting which allows you to inject code directly into contents of a website

215
Q

what is SQL injection?

A

when you fuck with queries

216
Q

what is important do not do when building SQL queries?

A

string concatenation

217
Q

what is XSSI?

A

an attack that forces the server to perform actions that the client never requested

218
Q

what is path traversal?

A

a vulnerability that allows attackers to read from folder that they don’t have access to

219
Q

what is DDOS attack?

A

an attack where a server is unable to fulfill ordinary requests

220
Q

what are configuration vulnerabilities?

A

vulnerabilities that can allow an attacker to take control of a system given that they have knowledge of the default system configuration

221
Q

what is malware?

A

any software program that works against the interest of the user

222
Q

how to antiviruses identify malware?

A

by looking for specific signatures in the code

223
Q

what are viruses?

A

self replicating programs

224
Q

what are worms?

A

malware that uses the internet to spread

225
Q

what is the difference between a worm and a virus (not internet propogation)

A

a virus requires user intervention to initiate replication, worms do not

226
Q

what is a trojan horse?

A

a seemingly innocent program that contains malware

227
Q

what is a backdoor?

A

malware that creates a covert access channel

228
Q

what is sticky software?

A

malware that prevents the user from uninstalling it manually

229
Q

what does load testing try and expose?

A

faults that would not come up under normal conditions (only occur after a long time under full load)

230
Q

what type of testing is used to evaulate software under full load?

A

stress testing

231
Q

what do availability tests verify?

A

the systems ability to recover from hardware and software failures without having adverse impacts on other functionality

232
Q

what do degreaded node test verify?

A

the ability of the system to remain operational after a portion of the system become non-operational

233
Q

what is a p-use?

A

predicate use, statement is a predicate statement

234
Q

what is a c-use?

A

computational use, statement is a computation