1. What statement do you consider to be most important and why?
a)
Testing has the primary intent of showing the system meets the users
needs.
b) Testing has the primary intent of finding faults
Answer: They are both accurate! The purpose of testing is to find faults AND
ensure it meets the users needs (fit for purpose).
{mosgoogle left}
2. You have run all your tests and they all pass. Is this good news or bad
news?
Answer: It depends on how good your tests were and what they were testing. To
have justified confidence in the software we must have confidence in our tests,
data and environment.
3. What would you do if you were asked to test a system which is
unfamiliar to you has out-of-date or inadequate documentation?
Answer: Talk to users, developers and analysts to understand what the system
is supposed to do. Document this understanding and get it reviewed and use this
as a substitute for the Requirements/Design documentation. Talk with testers who
have tested the system previously Read whatever is available and clarify
assumptions
4. In running a test you find the actual result does not match the
expected result what would you do?
Answer: The tester should first establish whether the reason is because of a
test fault (i.e. they have made a mistake) or whether it is an environment
fault. If neither of these are true then they should then check to see whether
this fault has already been raised. If not then either raise the fault or more
preferable talk to the development group to check the fault out.
{mosgoogle left}
5. Do you consider positive or negative testing to be most important or
trying to break the system - and why?
Answer: They are as important as each other. However testers need to have a
different mindset to developers and therefore should actively look for potential
faults. If we only concentrate on positive tests (show that the system does what
it should do) then we will potentially experience problems when the system goes
live. If we only concentrate on negative tests (showing the system doesnt do
what it shouldnt) then again we could potentially miss significant faults.
However if we look primarily at breaking the system then we may find lots of
faults (the what if scenarios) but we may not establish if the system is going
to meet the users needs and requirements. A balance is needed with all three
approaches.
6. How would you define a good test?
Answer: A good test is one that can potentially find a fault in the system.
If this test does not find a fault then it will give us a certain amount of
confidence. Tests must also be efficient we should not have tests which all do
the same thing.
7. You have been assigned to test the new Triangle Determination
Application (see screen shot below).
As you can see the
screen consists of three text fields and a single button. The user is expected
to enter an integer value into each of the three text fields. Upon hitting the
OK button the program will print a message in a separate dialog box stating
whether the triangle is scalene (all sides are different lengths), isosceles
(two sides are the same length), or equilateral (all three sides are the same
length).
Write a set of test cases (i.e. specific sets of data) that you
feel would adequately test this program. Write the tests so that someone other
than you can run them.
Answer: Do you have a test case:
1. for a valid scalene triangle?
2.
for a valid equilateral triangle?
3. for a valid isosceles triangle?
4.
for each of the three permutations of two equal sides in valid isosceles
triangles?
5. in which one side has a length of zero?
6. in which one
side has a negative length?
7. in which the sum of the length of two sides is
equal to the length of the third?
8. for each of the three permutations of
case 7?
9. in which the sum of the length of two sides is less than the
length of the third?
10. for each of the three permutations of case 9?
11. in which all side lengths are zero?
12. which uses non-integer input
values?
13. which uses the wrong number of input values?
14. did all your
test cases specify the expected output?
Myers states that experienced
professional programmers score on average 7.8 out of the first 14 questions.
Extra points can be given for further tests such as performance, reliability and
configuration
8. In testing the above application you identify what you believe to be a
fault instead of printing the message concerning the type of triangle in a
separate dialog box the application is printing the message in the space between
the 3 text fields and the OK button. What should your next step be (answer and
state why)?
a) Continue testing to the end of the script, and then
report the bug.
b) Stop testing, report the bug immediately, then continue
alternative scripts
c) Stop testing, report the bug and await a fix.
d)
Continue testing and report the bug later, along with those found in other
scripts
Answer: This is not a serious problem. The message is being printed. The best
solution would be (a) or (d) it is essential that faults be raised as soon as
possible so that Development can fix them. However this is dependent on the
severity and priority of the fault. This fault is not stopping any further
testing on this script it might be that other similar problems occur with
other messages and this extra information might assist development with further
investigation
9. You have raised a fault, but Development are unable to reproduce it.
What should your next step be? (Give answer and state why)
a) Let
development sign off the bug as not reproducible.br> b) Sign off the bug
yourself as not reproducible.br> c) Tell development the bug definitely
exists and you will not pass it unless fixed. br> d) Re-test and upon
confirmation provide more detailed information to Development, talking them
through each stage if necessary.
Answer: The answer is (d) it might be our environment or it could have been
fixed by some other fault fix in the new version.
10: Scenario:
You have two sets of tests to run on the new version of
the software.
Test Set 1: a test set to provide confidence that software has
not regressed from the previous version.
Test Set 2: a detailed test set to
investigate potential faults in the new release of software.
Having run test
set 1 you discover a number of faults in the new version of software what do
you do?
Answer: First we should investigate the faults is it because we had run our
tests wrongly, or that we were running the tests on the wrong environment?
Assuming that it is because the software has regressed then we must establish
the nature of the faults and severity of the faults. It is probably inefficient
to run any further tests at this stage. We should work with development in
getting a new version of the software with the faults fixed and re-tested before
running test set 2.
11. Draw and explain the V Model and how testing fits into the
Development Lifecycle. Indicate on the model where you would design your tests.
Answer:
The key aspect here is that testing should happen throughout the
Development Lifecycle. Also designing of the test cases should happen as soon as
possible
12. Describe the stages of testing and what the objectives are at each
stage.
Answer: Component Testing
Lowest level of testing, detail, finding
faults, performed by the developers
Component Integration
Combining
components, testing interfaces, performed by developers, various types of
integration (top-down, functional, bottom up and big bang). Business scenarios
and non-functional aspects if possible.
System Testing (functional and
non-function)
Testing the system as a whole. Testing requirements and
business processes. Also testing non-functional aspects such as Performance,
usability etc.
System Integration
Testing the system with other
systems and networks
Acceptance Testing Testing by users/customers to
gain confidence that the system is going to support the business as well as meet
their requirements.
13. Explain what you understand by the terms: Regression Testing and
Re-Testing
Answer:
Regression Testing:
Running tests to ensure that the software
has not regressed in anyway as a result of changes to the software and/or
environment. Regression testing is running passed tests again to ensure that
they still pass. Re-Testing
This is running a test again that had found
a fault to check that the fault has been fixed correctly. Re-testing is running
a failed test again to ensure that it now passes.
14. Scenario: You have planned to run 600 tests on your own. Each test
will take approximately 10 minutes to run. Your manager has told you that you
must complete these tests within one week. What would you do?
Answer:
Assuming there are 7hours per working day. This task would take
you: 600x10 = 6000 minutes = 100 hours = 14.286 days
There are a number
of options that could be considered:
.. Work overtime (this should not be
considered as a first resort)
.. Ask for more staff to help (again this may
not be the best approach, particularly if you need to spend time training and
mentoring the new staff)
WE SHOULD:
.. Re-prioritise our tests and
run the most important tests first
.. Assuming that not all the 600 tests
would have been run within this time, risk assessment need to be made as to the
consequences of not running the extra tests.
.. After this initial week and
the system is implemented there is no reason why the extra tests could not be
run (assuming that you are given the time)
15. Do you consider testing tools to be valuable during the testing
process why/why not?
Answer:
Testing tools are very important to assist the tester in their
work. Using tools can also potentially make the tester more efficient in their
work they are able to run more tests (using regression testing for example).
Or they can quickly compare 3 reports (comparison tool).
The tools in
themselves however do not make good testers and also should not be considered if
the test process is in chaos.
16. List 3 test tool categories and describe what each can do.
Answer:
.. Test Design Tools
.. Test Data Preparation Tools
..
Regression Testing tools
.. Debug Tools
.. Dynamic Analysis Tools
..
Coverage Measurement Tools
.. Static Analysis Tools
.. Performance
Testing Tools
.. Test Management Tools
.. Network monitoring tools
..
Test Harness or Simulation tools
The importance of this question is to
see if the candidate has any knowledge about tools. We do not want the names of
tools but want to know if the candidate can distinguish between the types of
tool.
17. Name 2 standards that refer to testing
Answer:
Any of the following:
BS 7925-1 (Glossary of testing terms),
BS7925-2 (Component Testing), ISO9000 and ISO9001 (Quality standards), IEEE829
(Test Documentation), IEEE1028 (Reviews), IEEE1044 (Incidents)
18. How would you test these requirements:
a) The system must be
user-friendly
b) The system must be easy to install
c) The following
response times are to be achieved with the new system:
Initial loading
of the web application must be achieved within 3 seconds
Updating of the
information on the web page must be no more than 5 seconds
Answer:
How would you approach these requirements:
a) The system must
be user-friendly
What do we mean by user-friendly? Questions to ask:
..
Friendly to whom?
.. Who are the users?
Test approaches:
..
Talk to the users
.. Document assumptions
.. Compile test scenarios for
people who have not seen the system
b) The system must be easy to
install
What do we mean by easy? Questions to ask:
.. For whom? ..
Is there any installation documentation to follow?
Test approaches:
.. Follow installation documentation (if there is any)
.. Allow tests to
be run by an inexperienced user to see how easy it is
.. Document tests and
review these with the users
c) The following response times are to
be achieved with the new system:
Initial loading of the web application
must be achieved within 3 seconds
Updating of the information on the web
page must be no more than 5 seconds
Once more we need to ask some probing
questions surrounding this requirement:
.. What happens if we dont meet
the times?
.. Would a range of values be better?
.. What is happening on
the network?
.. Are these average times or are they peak times?
.. What
is involved in updating how much information?
In attempting to
test this requirement we would document the exact criteria for the test and the
simplest way would be to time a number of tests and supply the average.
With all these 3 requirements, what we are looking for is to see whether
the potential tester will challenge the requirements of whether they would just
accept them and try to test to the best of their ability
19. Why do you consider testing to be necessary?
Answer:
.. There are faults in the software
.. Failures in live
operation can be expensive
.. Sometime a legal or contractual
requirement
.. To asses the quality of the software
.. To preserve the
quality of the software
.. To help achieve quality software (by finding and
removing the faults)
20. A hotel telephone system can perform 3 functions:
Call another
hotel room by entering a room number (201 to 500)
Call an external line by
entering a 9, followed by the number
Call various hotel services
0
= Operator
7 = Room Service
8 = Reception
Write a set of test
cases to adequately test this telephone system
Positive/Valid Tests
Input Expected Result
----------------------
0 Operator
201 Room 201 (valid boundary)
405 Room 405 (valid partition)
500 Room 500 (valid boundary)
7 Room Service
8 Reception
9 Outside line
Negative/In-valid Tests
Input Expected Result
--------------------------
1 Error
6 Error
200 Error (invalid boundary)
501 Error (invalid boundary)
550 Error (invalid partition)
Any other button Error
Destructive Tests
What if I accidentally hit multiple buttons?
What if I entered an 0800 number without first
getting an outside line (operator should answer)
21. Describe what you understand about the term Static Testing and list
3 static testing techniques.
Answer:
Static Testing is non-execution of the code. Techniques include;
reviews, inspections, walkthroughs, individual techniques such as desk checking,
data-stepping and proofreading. There is also static analysis (data flow and
control flow analysis).
22. How would you prioritise your tests (list 5)?
Answer:
ask the customer to prioritise the requirements
ask the
customer to prioritise the tests
what is most critical to the customers
business
test where a failure would be most severe
test where failures
would be most visible
test where failures are most likely
areas
changed most often
areas with most problems in the past
most complex
areas, or technically critical
23. Scenario:
You are testing 2 programs and have 3 weeks to test them
both. Having run all of your tests on both programs you finish testing within 2
weeks. You need to decide which of the 2 programs you would re-visit and run
further tests against. Choose which program you would re-test (can choose only
one!) and state you reasons:
Program A
Programmer:
A Complexity
Level: 2
Lines of Code: 2000
Number of tests: 100
Number of bugs
found: 10
1 high severity, 3 medium & 6 low)
Program B
Programmer:
B Complexity Level: 2
Lines of Code: 2000
Number of
tests: 100
Number of bugs found: 50 (10 high severity, 25 medium & 15
low)
Answer:
Key points:
1. Different programmers wrote A and B
2.
Complexity level of the programs are the same
3. Size of the programs are
the same
4. Tester is the same for testing A and B
5. Number of tests run
on both programs is the same
6. Number of bugs is higher in program B
Program B seems to have far more faults therefore we would be inclined
to spend the further week testing Program B, as there is likely to be more bugs
to find. We may also not be very confident at this point with Program B
therefore we need to see our confidence increased.
24. An ATM has been specified to work in the following way:
Enter a
card and if the card is invalid reject the card and exit system. If it is a
valid card then enter a PIN number. Check to see if the PIN is invalid
if
it is then display a message invalid pin number, please re-enter. If 3
attempts are made with an invalid pin then the machine keeps the card. If it is
a valid PIN then the user can select one of the following transactions:
Cash Withdrawal without receipt
Cash Withdrawal with receipt
Balance Enquiry
Statement request
Cancel
What tests would you
produce to test this application? State any assumptions when testing
Answer:
1. Invalid Card reject card and exit
2. Valid Card and
Invalid PIN error message invalid pin
(then enter valid pin)
3. Valid
Card and Invalid PIN error message invalid pin
(then enter another 2
invalid Pins)
4. Valid Card, Valid Pin & Cancel (correct length pin)
5. Valid Card, Valid Pin in a large number but the pin number contains
more than the maximum number should error
6. Valid Card, Valid Pin &
Cash Withdraw without receipt
7. Valid Card, Valid Pin & Cash Withdraw
with receipt
8. Valid Card, Valid Pin & Balance enquiry
9. Valid
Card, Valid Pin & Statement Request
10. Destructive tests include:
Putting in 2 cards Putting correct pin, but adding an extra number to make
invalid Assumptions:
1. Can insert up to 3 invalid pins and machine retains
card
2. Can only select one transaction and then have to re-insert card
3. Pressing cancel will return card
25. The following is an extract from a fault log, write down any potential
problems or omissions with this:
Answer:
Potential Problems/Omissions
.. No date on log as to when
raised
.. No keywords (i.e. screen) so that searches can be performed
preventing duplication of fault logs
.. No status of the log
(opened/fixed/closed/cleared etc.)
.. No owner of the log. .. Has priority
but no severity (i.e. risk to the customer)
.. No version number of the
system being tested it is very likely that the testers are on a different
version to development and that it was a fault but has been inadvertently fixed
on this latest software
.. Query the priority of this log (should it be a 3?)
.. No actual error message on the log this may give some clue to the
developer about the nature of the fault
.. Response seems to be leading to a
dialogue if we are not careful this fault will never be fixed! Tester should
talk to the developer rather than sending another message via the fault
log.
.. The response by the developer points to another part of the system
(security) this may be an indication of developers trying to quickly close the
issue without performing sufficient investigation. It could however be because
the tester has not spent enough time documenting the problem.