Chapter 22 & 23: Software Testing Strategies
Stub
A S_?_ is a dummy procedure, module, or unit, that stands in for an unfinished portion of the program
Probability
A good test has a high P_?_ of finding an error.
Redundant
A good test is not R_?_.
Simple
A good test should be neither too S_?_ nor too complex
To behave in an anomalous way
A successful defect test is one which causes a program to __
Old
A system's {new/old} capabilities should be given a higher priority in software testing.
Harness
A test H_?_ , also called a test driver, is the supporting code and data used to provide an environment for testing part of a system in isolation
B (end users)
Acceptance tests are normally conducted by the A) developer B) end users C) test team D) systems engineers
Goal, Input, Expected
According to the slides, the test case has three basic components. List them. G__ I__and system state E__ behavior
B (a test team will test the software more thoroughly)
According to your book, the best reason for using Independent software test teams is that A) software developers do not need to do any testing B) a test team will test the software more thoroughly C) testers do not get involved with the project until testing begins D) arguments between developers and testers are reduced
Black-box
B_?_ testing is a software testing technique whereby the internal workings of the item being tested are not known by the tester; this tester only knows the inputs and what the expected outcomes should be and not how the program arrives at those outputs
Black-box
B_?_ testing is a software testing technique whereby the tester does not ever examine the programming code and does not need any further knowledge of the program other than its specifications.
Black-box
B_?_ testing, also known as function testing, is an approach to testing where the program test cases are based on the system specification
Corners
Boris Beizer says that "bugs lurk in the C_?_ and congregate at boundaries.
#edges - # nodes + 2
Cyclomatic Complexity = _?_ List the formula for Cyclomatic Complexity
(-) , (+)
Cyclomatic complexity = # edges _?_ # nodes _?_ 2
Capabilities
Exercising a system's {capabilities/components} should be given a higher priority in software testing.
White-box
In _?_ testing, the objective is to exercise all program statements - not all path combinations. Test cases are derived according to program structure; knowledge of the program is used to identify these additional structural test cases
Large
In software testing, we begin by 'testing-in-the-small' and move toward 'testing-in-the-_?_'
Equivalence Partition
Input data & output results often fall into different classes where all members of a class are related; each of these classes is an E_?_ P_?_ where the program behaves in an equivalent way for each class member; test Cases should be chosen from each partition.
B (rolling integration testing)
Smoke testing might best be described as A) bullet-proofing shrink-wrapped software B) rolling integration testing C) testing that hides implementation errors D) unit testing for small programs
< 100, 100-999, > 999
Suppose the program is to prompt the user for the three digit product code, the lowest of which is 100. List the three equivalence partitions for the test module.
Testing
T_?_ is the exposure of a system to trial input to see whether it produces the correct output.
Cases
Test {Data/Cases} are Inputs to test the system and the predicted outputs from these inputs if the system operates according to its specification.
Data
Test {Data/Cases} are Inputs which have been devised to test the system
Typical situations
Testing {typical situations/the boundary value cases} should be given a higher priority in software testing.
Path
The Objective of P_?_ testing is to ensure that the set of test cases is such that each path through the program is executed at least once
Unit, Component, Integration, System, Alpha, Final, Beta
The Slides List 4 Major Testing Phases . List Them. U__/ C__Testing I__ Testing S__/ A__Testing Validation / F__/ B__Testing
Smoke
The following describes S_?_ testing. Software components that have been translated into code are integrated into a "build." A build includes all data files, libraries, reusable modules, and engineered components that are required to implement one or more product functions. A series of tests is designed to expose errors that will keep the build from properly performing its function. The build is integrated with other builds and the entire product (in its current form) is tested daily
E (both b and c)
The major advantage(s) of Top-down integration testing {is/are} _?_. A) low level modules never need testing B) major decision points are tested early C) no drivers need to be written D) no stubs need to be written E) both b and c
Path
The objective of _?_ testing is to ensure that the set of test cases is such that each branch through the program is executed at least once
Cyclomatic
The program flow graph is used as a basis for computing the _?_ complexity
Independent, Programming Languages, User, Specifications
The slides list 4 advantages of black-box testing. List them. The test is unbiased because the designer and the tester are I_?_ of each other The tester does not need knowledge of any specific P_?_ L_?_ The test is done from the point of view of the _?_, not the designer Test cases can be designed as soon as the S_?_ are complete
Nodes, Arcs
The starting point for path testing is a program flow graph that shows N _?_ representing program decisions and A_?_ representing the flow of control
Nodes, Arcs
The starting point for path testing is a program flow graph that shows _?_ representing program decisions and _?_ representing the flow of control.
Flow
The starting point for path testing is a program_?_ graph that shows nodes representing program decisions and arcs representing the flow of control. Each branch is shown as a separate path and loops are shown by arrows looping back to the loop condition node.
To discover defects in programs
What is the goal of defect testing?
E(c, a, b, d)
What is the normal order of activities in which traditional software testing is organized? Select from these Activities { a. integration testing b. system testing c. unit testing d. validation testing } A) a, d, c, b B) b, d, a, c C) c, a, d, b D) d, b, c, a E) c, a, b, d
Independent tester
When testing software, it is the _?_ {developer / independent tester} that must first learn about the system; he/she will then attempt to break it in an effort to improve quality.
Developer
When testing software, it is the _?_ {developer / independent tester} that understands the system but, will test "gently" and, is driven by "delivery"
E (both c and d)
Which of the following need to be assessed during unit testing? A) algorithmic performance B) code stability C) error handling D) execution paths E) both c and d
Brute-force
Which of the three major debugging strategies, describe in the slides, is least effective; it uses memory dumps, run traces, and/or many print statements
Backtracking
Which of the three major debugging strategies, describe in the slides, is recommended only for small programs; it begin where error is found and manually goes backward examining logic and output statements until problem found? B__
Brute-force
Which of the three major debugging strategies, describe in the slides, is used most commonly? B__
Cause Elimination
Which of the three major debugging strategies, describe in the slides, uses induction and deduction to produce lists of potential causes is identified. Test cases are constructed to systematically prove or disprove each potential hypothesis.
C (error handling & execution paths)
Your text tells us that _?_ needs to be assessed during unit testing? A) algorithmic performance & execution paths B) code stability & execution paths C) error handling & execution paths D) algorithmic performance & error handling
A (Unit/ Component Testing)
_?_ is the testing of code generally written by a single programmer A) Unit/Component Testing B) Integration Testing C) Alpha Testing D) Final/Beta Testing
B (Integration Testing)
_?_ is the testing of several units, combined to form a unit or subsystem by testing team A) Unit/Component Testing B) Integration Testing C) Alpha Testing D) Final/Beta Testing
D (Final/Beta Testing)
_?_ is the testing of the finished program, by end users or their representatives A) Unit/Component Testing B) Integration Testing C) Alpha Testing D) Final/Beta Testing
C (Alpha Testing)
_?_ is the testing of the finished program, by program testers A) Unit/Component Testing B) Integration Testing C) Alpha Testing D) Final/Beta Testing
Unit
_?_ testing is another name for Component Testing
White-box
_?_ testing, also called structural testing or clear-box or open box testing, is a software testing technique whereby explicit knowledge of the internal workings of the item being tested are used to select the test data.
Integration
_?_ {Component, Integration} testing is based on the system specifications/requirements
Component
_?_ {Component, Integration} testing is usually the responsibility of the component developer; component tests are derived from the Developer's Experience
Integration
_?_{Component, Integration} testing is usually the responsibility of an independent testing team.
Component
_?_{Component, Integration} testing is usually the responsibility of the developer (except sometimes for critical systems)
D (Recovery testing)
__ testing is best describe by a "a focus that forces the software to fail in a variety of ways and verifies that regenerates back in the proper fashion" A) Validation Testing B) System testing C) Alpha/Beta testing D) Recovery testing E) Security testing F) Stress testing G) Performance testing
C (Alpha/Beta testing)
__ testing is best describe by a "focus is on customer usage" A) Validation Testing B) System testing C) Alpha/Beta testing D) Recovery testing E) Security testing F) Stress testing G) Performance testing
A (Validation Testing)
__ testing is best describe by a "focus is on software requirements" A) Validation Testing B) System testing C) Alpha/Beta testing D) Recovery testing E) Security testing F) Stress testing G) Performance testing
E (Security testing)
__ testing is best describe by a "focus that verifies that protection mechanisms built into a system will, in fact, protect it from improper penetration" A) Validation Testing B) System testing C) Alpha/Beta testing D) Recovery testing E) Security testing F) Stress testing G) Performance testing
F (Stress testing)
___ testing is best describe by a "focus that executes a system in a manner that demands resources in abnormal quantity, frequency, or volume" A) Validation Testing B) System testing C) Alpha/Beta testing D) Recovery testing E) Security testing F) Stress testing G) Performance testing
G (Performance testing)
____ testing is best describe by a "focus to test the run-time performance of software within the context of an integrated system" A) Validation Testing B) System testing C) Alpha/Beta testing D) Recovery testing E) Security testing F) Stress testing G) Performance testing
B (System testing)
__testing is best described by a "focus is on system integration" A) Validation Testing B) System testing C) Alpha/Beta testing D) Recovery testing E) Security testing F) Stress testing G) Performance testing
Integration
{Component, Integration} testing is the testing of groups of components integrated to create a system or sub-system
Component
{Component, Integration} testing is the testing of individual program components
T
{T/F} Backtracking, Brute Force, and Cause Elimination are approaches to debugging?
T
{T/F} Debugging is not testing, but often occurs as a consequence of testing.
T
{T/F} Security testing attempts to verify that protection mechanisms built into a system protect it from improper penetration.
T
{T/F} Stress testing examines the pressures placed on the user during system use in extreme environments.
F
(T/F) Configuration reviews are not needed if regression testing has been rigorously applied during software integration.
F
(T/F) Defect testing shows the presence and absence of defects
F
(T/F) In software quality assurance work there is no difference between software verification and software validation
F
(T/F) Only exhaustive testing can show that a program is free from bugs; exhaustive testing is possible.
T
(T/F) Recovery testing is a system test that forces the software to fail in a variety of ways.
T
(T/F) Software validation is achieved through a series of tests performed by the user once the software is deployed in his or her work environment.
T
(T/F) The focus of validation testing is to uncover places that a user will be able to observe failure of the software to conform to its requirements.