Lesson 2: Testing Through The Software Development Lifecycle Flashcards
How can white-box testing be applied during user acceptance testing?
a) To check if large volumes of data can be transferred between integrated systems
b) To check if all code statements and code decision paths have been executed
c) To check if all work process flows have been covered
d) To cover all web page navigations
Select ONE option.
a) Is not correct. Relevant for integration testing
b) Is not correct. Relevant for component testing
c) Is correct. For acceptance testing, tests are designed to cover all
workflows defined in the functional requirements documents.
d) Is not correct. Relevant for system testing
Which of the following statements comparing component testing and system testing is TRUE?
a) Component testing verifies the functionality of software modules, program objects, and
classes that are separately testable, whereas system testing verifies interfaces between
components and interactions between different parts of the system
b) Test cases for component testing are usually derived from component specifications,
design specifications, or data models, whereas test cases for system testing are usually
derived from requirement specifications or use cases
c) Component testing only focuses on functional characteristics, whereas system testing
focuses on functional and non-functional characteristics
d) Component testing is the responsibility of the testers, whereas system testing typically is
the responsibility of the users of the system
Select ONE option.
a) Is not correct. System testing does not test interfaces between
components and interactions between different parts of the system; this
is a target of integration tests
b) Is correct. Examples of work products that can be used as a test basis
for component testing include detailed design, code, data model,
component specifications. Examples of work products for system
testing include system and software requirement specifications
(functional and non-functional) use cases
c) Is not correct. Component testing does not ONLY focus on functional
characteristics
d) Is not correct. Component tests are also executed by developers,
whereas system testing typically is the responsibility of (independent)
testers
Which one of the following is TRUE?
a) The purpose of regression testing is to check if the correction has been successfully
implemented, while the purpose of confirmation testing is to confirm that the correction has
no side effects
b) The purpose of regression testing is to detect unintended side effects, while the purpose of
confirmation testing is to check if the system is still working in a new environment
c) The purpose of regression testing is to detect unintended side effects, while the purpose of
confirmation testing is to check if the original defect has been fixed
d) The purpose of regression testing is to check if the new functionality is working, while the
purpose of confirmation testing is to check if the original defect has been fixed
Select ONE option.
) Is not correct. Regression testing does not check successful
implementation of corrections and confirmation testing does not check
for side effects
b) Is not correct. The statement about confirmation testing should be
about regression testing
c) Is correct. See reasons from incorrect answers
d) Is not correct. Testing new functionality is not regression testing
Which one of the following is the BEST definition of an incremental development model?
a) Defining requirements, designing software and testing are done in phases where in each
phase a piece of the system is added
b) A phase in the development process should begin when the previous phase is complete
c) Testing is viewed as a separate phase which takes place after development has been
completed
d) Testing is added to development as an increment
Select ONE option.
a) Is correct. Incremental development involves establishing requirements,
designing, building, and testing a system in pieces
b) Is not correct. This is a sequential model
c) Is not correct. This describes the waterfall model
d) Is not correct. Testing alone is not an increment/additional step in the
development
Which of the following should NOT be a trigger for maintenance testing?
a) Decision to test the maintainability of the software
b) Decision to test the system after migration to a new operating platform
c) Decision to test if archived data is possible to be retrieved
d) Decision to test after “hot fixes”
Select ONE option.
a) Is correct. This is maintainability testing, not maintenance testing
b) Is not correct. This is a trigger for maintenance testing: Operational
tests of the new environment as well as of the changed software
c) Is not correct. This is the trigger for maintenance testing: testing
restore/retrieve procedures after archiving for long retention periods
d) Is not correct. This is the trigger for maintenance testing: Reactive
modification of a delivered software product to correct emergency
defects that have caused actual failures
Given the following statements about the relationships between software development activities
and test activities in the software development lifecycle:
- Each development activity should have a corresponding testing activity
- Reviewing should start as soon as final versions of documents become available
- The design and implementation of tests should start during the corresponding
development activity - Testing activities should start in the early stages of the software development
lifecycle
Which of the following CORRECTLY shows which are true and false?
a) True – 1, 2; False – 3, 4
b) True – 2, 3; False – 1, 4
c) True – 1, 2, 4; False – 3
d) True – 1, 4; False – 2, 3
Select ONE option.
Considering each statement:
- Each development activity should have a corresponding testing
activity. TRUE - Reviewing should start as soon as final versions of documents
become available. FALSE – it should start as soon as drafts are
available - The design and implementation of tests should start during the
corresponding development activity. FALSE – the analysis and
design of tests should start during the corresponding development
activity, not the implementation - Testing activities should start in the early stages of the software
development lifecycle. TRUE
Thus:
a) Is not correct
b) Is not correct
c) Is not correct
d) Is correct
Given that the testing being performed has the following attributes:
- Based on interface specifications
- Focused on finding failures in communication
- The test approach uses both functional and structural test types
Which of the following test levels is MOST likely being performed?
a) Integration testing
b) Acceptance testing
c) System testing
d) Component testing
Select ONE option.
Considering the scenario:
- ‘testing is based on interface specifications’ – the test basis for
integration testing includes interface specifications (along with
communication protocol specification), while these are not included
for any of the other test levels - ‘testing is focused on finding failures in communication’ - failures in
the communication between tested components is included as a
typical failure for integration testing, but failures in communication is
not included for any of the other test levels - ‘the test approach uses both functional and structural test types’ -
functional and structural test types are both included as possible
approaches for integration testing, and would also be appropriate for
any of the other test levels, although they are only otherwise
explicitly mentioned in the syllabus for system testing
Thus:
a) Is correct
b) Is not correct
c) Is not correct
d) Is not correct
Which of the following statements about test types and test levels is CORRECT?
a) Functional and non-functional testing can be performed at system and acceptance test
levels, while white-box testing is restricted to component and integration testing
b) Functional testing can be performed at any test level, while white-box testing is restricted to
component testing
c) It is possible to perform functional, non-functional and white-box testing at any test level
d) Functional and non-functional testing can be performed at any test level, while white-box
testing is restricted to component and integration testing
Select ONE option.
a) Is not correct. It is possible to perform any of the test types (functional,
non-functional, white-box) at any test level - so, although it is correct
that functional and non-functional testing can be performed at system
and acceptance test levels, it is incorrect to state that white-box testing
is restricted to component and integration testing
b) Is not correct. It is possible to perform any of the test types (functional,
non-functional, white-box) at any test level - so, it is incorrect to state
that white-box testing is restricted to component testing
c) Is correct. It is possible to perform any of the test types (functional, non-
functional, white-box) at any test level
d) Is not correct. It is possible to perform any of the test types (functional,
non-functional, white-box) at any test level - so, it is incorrect to state
that white-box testing is restricted to component testing and integration
testing
Which of the following statements BEST compares the purposes of confirmation testing and
regression testing?
a) The purpose of regression testing is to ensure that all previously run tests still work
correctly, while the purpose of confirmation testing is to ensure that any fixes made to one
part of the system have not adversely affected other parts
b) The purpose of confirmation testing is to check that a previously found defect has been
fixed, while the purpose of regression testing is to ensure that no other parts of the system
have been adversely affected by the fix
c) The purpose of regression testing is to ensure that any changes to one part of the system
have not caused another part to fail, while the purpose of confirmation testing is to check
that all previously run tests still provide the same results as before
d) The purpose of confirmation testing is to confirm that changes to the system were made
successfully, while the purpose of regression testing is to run tests that previously failed to
ensure that they now work correctly
Select ONE option.
a) Is not correct. Although the description of regression testing is largely
correct, the description of confirmation testing (which should be testing
a defect has been fixed) is not correct
b) Is correct. The descriptions of both confirmation and regression testing
match the intent of those in the syllabus
c) Is not correct. Although the description of regression testing is largely
correct, the description of confirmation testing (re-running all previously
run tests to get the same results) is not correct, as the purpose of
confirmation testing is to check that tests that previously failed now
pass (the fix worked)
d) Is not correct. Although the description of confirmation testing is largely
correct, the description of regression testing (re-running tests that
previously failed) is not correct (this is a more detailed description of
confirmation testing)
Which of the following statements CORRECTLY describes a role of impact analysis in
Maintenance Testing?
a) Impact analysis is used when deciding if a fix to a maintained system is worthwhile
b) Impact analysis is used to identify how data should be migrated into the maintained system
c) Impact analysis is used to decide which hot fixes are of most value to the user
d) Impact analysis is used to determine the effectiveness of new maintenance test cases
Select ONE option.
a) Is correct. Impact analysis may be used to identify those areas of the
system that will be affected by the fix, and so the extent of the impact
(e.g., necessary regression testing) can be used when deciding if the
change is worthwhile
b) Is not correct. Although testing migrated data is part of maintenance
testing (see conversion testing), impact analysis does not identify how
this is done
c) Is not correct. Impact analysis shows which parts of a system are
affected by a change, so it can show the difference between different
hot fixes in terms of the impact on the system, however it does not give
any indication of the value of the changes to the user
d) Is not correct. Impact analysis shows which parts of a system are
affected by a change; it cannot
You are running a performance test with the objective of finding possible network bottlenecks in
interfaces between components of a system. Which of the following statements describes this test?
a) A functional test during the integration test level
b) A non-functional test during the integration test level
c) A functional test during the component test level
d) A non-functional test during the component test level
Select ONE option.
a) Is not correct. While this test does match the description of an
integration test, it is a non-functional test
b) Is correct. This test matches the description of an integration test and it
is a non-functional test
c) Is not correct. This test does not match the description of a component
test and it is not a functional test
d) Is not correct. While this test is a non-functional test, it does not match
the description of a component test
Which of the following statements is true?
a) Impact analysis is useful for confirmation testing during maintenance testing
b) Confirmation testing is useful for regression testing during system design
c) Impact analysis is useful for regression testing during maintenance testing
d) Confirmation testing is useful for impact analysis during maintenance testing
Select ONE option.
a) Is not correct. While impact analysis is useful during maintenance
testing it is not necessary for confirmation testing since confirmation
testing is on the intended effects of a bug fix or other change
b) Is not correct. Confirmation and regression testing are two separate
activities, and confirmation testing is not part of system design
c) Is correct. Impact analysis can be used to select regression tests for
maintenance testing
d) Is not correct. Confirmation testing is not part of impact analysis, though
confirmation testing will typically happen during maintenance testing
Consider the following types of defects that a test level might focus on:
a) Defects in separately testable modules or objects
b) Not focused on identifying defects
c) Defects in interfaces and interactions
d) Defects in the whole test object
Which of the following list correctly matches test levels from the Foundation syllabus with the
defect focus options given above?
a) 1 = performance test; 2 = component test; 3 = system test; 4 = acceptance test
b) 1 = component test; 2 = acceptance test; 3 = system test; 4 = integration test
c) 1 = component test; 2 = acceptance test; 3 = integration test; 4 = system test
d) 1 = integration test; 2 = system test; 3 = component test; 4 = acceptance test
Select ONE option.
Performance testing is a test type, not a test level. Component testing
focuses on defects in separately testable modules or objects, integration
testing on defects in interfaces and interactions, system testing on defects
in the whole test object, and acceptance testing is not typically focused on
identifying defects.
Thus:
a) Is not correct
b) Is not correct
c) Is correct
d) Is not correct
A mass market operating system software product is designed to run on any PC hardware with an
x86-family processor. You are running a set of tests to look for defects related to support of the
various PCs that use such a processor and to build confidence that important PC brands will work.
What type of test are you performing?
a) Performance test
b) Processor test
c) Functional test
d) Portability test
Select ONE option.
a) Is not correct. The test described is a non-functional test, it is a
portability test, not a performance test
b) Is not correct. Processor test is not a defined test type
c) Is not correct. The test described is a non-functional test, specifically
a portability test
d) Is correct. Testing supported devices is a non-functional test,
specifically a portability test
During an Agile development effort, a product owner discovers a previously unknown regulatory
requirement that applies to most of the user stories within a particular epic. The user stories are
updated to provide for the necessary changes in software behavior. The programmers on the team
are modifying the code appropriately. As a tester on the team, what types of tests will you run?
a) Confirmation tests
b) Regression tests
c) Functional tests
d) Change-related tests
Select ONE option.
The change in behavior may be either functional or non-functional you need
to run change-related tests, some of which are confirmation tests and
others are regression tests.
Thus:
a) Is not correct
b) Is not correct
c) Is not correct
d) Is correct