Astqb 2 Flashcards
Which of the following is the activity that removes the cause of a failure?
a. Testing
b. Dynamic testing
c. Debugging
d. Reverse engineering
C is correct. Debugging is the process of finding,
analyzing and removing the causes of failures in
software. A and B are incorrect because they will
find the failure caused by a defect. D is incorrect.
Reverse engineering is a process for determining
the source code from the object code.
As a tester, which of the following is a key to effectively communicating and maintaining positive
relationships with developers when there is disagreement over the prioritization of a defect?
a. Escalate the issue to human resources and stress the importance of mutual respect
b. Communicate in a setting with senior management to ensure everyone understands
c. Convince the developer to accept the blame for the mistake
d. Remind them of the common goal of creating quality systems
D is correct, per syllabus. Start with collaboration
rather than battles and remind everyone that it is
a common goal to build better quality systems. A
and B are incorrect because this type of
escalation is inappropriate. C is incorrect as it is
the opposite approach to take because blame
placing is not going to build a better team or
product.
Why is software testing sometimes required for legal reasons?
a. It prevents developers from suing testers
b. Contracts may specify testing requirements that must be fulfilled
c. International laws require software testing for exported products
d. Testing across systems must be accompanied by legal documentation
B is correct. Software testing may be required to
meet contractual requirements and commitments
and penalties are sometimes assessed when
quality goals are not met. A is not correct
because lawsuits, unfortunately, are not limited.
C is not correct because there are not
international laws covering all exported products.
D is not correct because cross system testing
may occur within an organization and require no
legal documentation.
In what way does root cause analysis contribute to process improvement?
a. Helps to better identify and correct the root cause of defects
b. Outlines how development teams can code faster
c. Specifies the desired root causes to be achieved by other teams
d. Contributes to the justification of future project funding
A is correct. Root cause analysis can determine
common causes of issues. Addressing these
common causes by process improvement can
increase quality. B is incorrect because root
cause analysis will not make the developers
code faster, better maybe, not faster. C is
incorrect because root causes generally are not
good things that should be transferred between
teams. D is not correct because it will not
improve funding.
Why is it important to avoid the pesticide paradox?
a. Dynamic testing is less reliable in finding bugs
b. Pesticides mixed with static testing can allow bugs to escape detection
c. Tests should not be context dependent
d. Running the same tests over and over will reduce the chance of finding new defects
D is correct. As tests are run repeatedly, the
pesticide (the tests) become less effective. A is
not correct because dynamic testing should be
used and helps to alleviate the pesticide
paradox. B doesn’t actually make sense. C is not correct because testing should be context
dependent.
Which of the following is the activity that compares the planned test progress to the actual test progress? a. Test monitoring b. Test planning c. Test closure d. Test control
A is correct. Test monitoring involves the ongoing comparison of actual progress against the
test plan. B is incorrect because it defines testing
objectives. C is incorrect because the activities
have already completed and the project is
closing down. D is incorrect because test control
is when you take actions to correct any issues
observed during monitoring
Which of the following is the correct statement?
a. An error causes a failure which results in a defect
b. A defect causes a failure which results in an error
c. A failure is observed as an error and the root cause is the defect
d. An error causes a defect which is observed as a failure
D is correct. The error or the mistake made by
the developer causes a defect in the code. When
that code is executed, a failure can be observed.
What type of activity is normally used to find and fix a defect in the code?
a. Regression testing
b. Debugging
c. Dynamic analysis
d. Static analysis
B is correct. This normally occurs during
debugging.
During which level of testing should non-functional tests be executed?
a. Unit and integration only
b. System testing only
c. Integration, system and acceptance only
d. Unit, integration, system and acceptance only
D is correct. Non-functional tests can and should
be executed at all levels of testing.
When a system is targeted for decommissioning, what type of maintenance testing may be required?
a. Retirement testing
b. Regression testing
c. Data migration testing
d. Patch testing
C is correct, per syllabus. Data migration to
another system or data migration to an archival
system may be needed. A is incorrect, there is
no such testing type. B is incorrect because this
is more appropriate for current systems, not the
system being retired. D is incorrect because this
is of no use for a system being retired.
If impact analysis indicates that the overall system could be significantly affected by system
maintenance activities, why should regression testing be executed after the changes?
a. To ensure the system still functions as expected with no introduced issues
b. To ensure no unauthorized changes have been applied to the system
c. To assess the scope of maintenance performed on the system
d. To identify any maintainability issues with the code
A is correct, per syllabus. By definition,
regression testing is looking for areas in which
the system may have regressed (gone
backwards). B is incorrect as the purpose of
regression is not to monitor malicious or
erroneous activities by the developers. C is
incorrect as it is not in scope of regression
testing but would be a consideration for the
impact analysis. D is incorrect because
regression testing will not identify maintainability
issues – that will have to be done via static
analysis or specific maintainability tests.
In an iterative lifecycle model, which of the following is an accurate statement about testing activities?
a. For every development activity, there should be a corresponding testing activity
b. For every testing activity, appropriate documentation should be produced, versioned and stored
c. For every development activity resulting in code, there should be a testing activity to document
test cases
d. For every testing activity, metrics should be recorded and posted to a metrics dashboard for all
stakeholders
A is correct. For any lifecycle model, this is a
correct statement. B is not correct because some
testing activities may not produce
documentation, such as reviews. C is not correct
because test cases are not always written,
particularly in an Agile lifecycle (which is an
iterative lifecycle) where only exploratory testing
might be used. D is not correct because not all
testing activities produce metrics (such as test
case creation, reviews, etc.) and, even if they
did, not all stakeholders would be interested in
those metrics.
Use cases are a test basis for which level of testing?
a. Unit
b. System
c. Load and performance
d. Usability
B is correct.
Which of the following techniques is a form of static testing?
a. Error guessing
b. Automated regression testing
c. Providing inputs and examining the resulting outputs
d. Code review
D is correct, per syllabus
Which of the following is a benefit of static analysis?
a. Defects can be identified that might not be caught by dynamic testing
b. Early defect identification requires less documentation
c. Early execution of the code provides a gauge of code quality
d. Tools are not needed because reviews are used instead of executing code
A is correct, per syllabus.