2. Purpose
• This document describes a number of questions and exercises that
could be asked to aspiring testers during interviews or other
recruitment situations
• This is by no means a complete list, and there are many other ways to
go about this
• This would only be a small part of the recruitment process, as there
are other parts such as intelligence tests, formal & informal
interviews, personality tests and so on, that are equally or more
important [1]
• The goal is to be able to complete all these questions and exercises in
under an hour
3. Four Main Areas
Basic Test
Testing Mindset
Automation
Basic Test
Basic Test
Management
4. Overview Flow
SW Development Developer
Line Manager
Basic Test
Automation
Testing Mindset Basic Test Senior Tester
Basic Test
Management
Junior Tester
Test Leader
Test Line Manager
5. Testing Mindset – Question 1
What skills should a tester possess?
• A tester can have many different roles which require different skill
sets
• On one end of the scale are testers who work in close cooperation with
the developers, supporting with automated tests, test tools and
testability, as well as manual testing
• On the other end of the scale are end to end testers who test from a
customer perspective, focusing more on manual testing, looking at
usability, quality models and customer experience aspects
• One tester cannot be an expert at everything – recruit the right tester
for the right role
• General intelligence, critical thinking, system thinking, complexity
thinking, system modelling, technical understanding,
communication skills, and similar skills are of course important, but
this is the case for almost all technical roles
6. Testing Mindset – Question 2
What is a tester’s role within an organization?
• Testing is a supporting function, not a quality gatekeeper
• Testing as a service – a tester must be able to show value added to the
project – what services does the tester provide, what do those
services cost, and what are the benefits of the services
• Always keep stakeholders in mind – don’t be single minded – a
tester’s job is not to only generate defect reports, it is to help the
developers by providing them with the information they need to
improve quality – don’t just generate information, generate the right
information
• Live user data is something that can complement the tester’s work by
providing actual data from customers or beta testers – what other
functions can complement or overlap a tester’s work?
• Be critical of your own existence - are you adding value, and how can
you be more efficient and effective
7. Basics Test – Exercise
x + y = z {−32,768 < [x, y, z] < 32,767}
Define a manual test scope for an application performing the above
equation, where x and y are inputs and z is the output
• It is important here to not focus too much on functional tests from
the start. First define some kind of model to use for setting the scope
[2]
• It is possible to use several different kinds of models, not only a
quality model like IEC 9126 – heuristics or tours are other
approaches [3]
• When discussing actual functional tests, some test techniques should
be mentioned; boundary-value analysis [4], equivalence partitioning
[5], random (fuzz) testing [6]
• Some discussion around invalid inputs; null, letters, symbols, etc.
8. Basics Test – Exercise 2
Describe a generic scope selection process; what are the inputs and
outputs of a scope selection?
9. Basic Test Automation – Scope Question
How would you set your automated test scope for the precious exercise?
• The first step is to not try to automated the manual tests previously
constructed, but to instead try to think about what is suitable to automated,
and what is suitable to test manually [7]
• Discussions regarding what can be automated on API level and on UI level are
important here
• Maintainability and portability of automated tests should be discussed
• What shouldn’t normally be automated; usability, user experience, user
performance, tests which require visual confirmation
• What should normally be automated; stability, low level functional tests, low
level performance
• Discussion around how to make automated tests continuously valuable; fuzz
testing and random input variables is one example
• Return on Investment
10. Basic Test Automation – Testability Question
What is testability, and how should a developer and a tester work
together to achieve this? [8]
• Testability is built from the bottom up – when discussing
requirements, testability should already be part of the discussion
• When designing code for testing, testing becomes easy and code
becomes beautiful [9]
• Testers must communicate throughout the development process
what they intend to test, and make sure that the developers design
the code so that it is possible to test
• Think about what types of user data you want to gather as well
11. Basic Test Management - Exercise
Outline a generic test plan overview for development of a new
application
• What is the purpose of the test plan? Who are the stakeholders?
What kind of information do they need?
• Google do 10-minute-test-plans [10] with the purpose of keeping the
test plan to a bare minimum that only holds information vital to the
project and keeping the test plan usable throughout the project
• James Bach has a different view [11] which is much more
comprehensive
• Is a test plan a vehicle for learning for the testers, or is it just a
container for test information during a project?
• Tools, test activities, test scope, risks, communication channels,
stakeholders
12. Basic Test Management - Question
What should be included in a generic test report?
• What is the purpose of the test report? Who are the stakeholders? What
kind of information do they need? [12]
• How to report manual scripted testing
• How to report manual exploratory testing
• How to report automated testing
• Reporting on different software quality attributes
• KPI and benchmarks
• Defects and prioritization
• Risks and Actions
• Test Completeness; What testing is not done
• Test Coverage
• Information overflow – what not to include in the reports
• Qualitative information vs. Quantitative information
• Quantitative information can only indicate where a qualitative
investigation is needed
13. Results
• Make the candidate write down all his comments on a whiteboard and
photograph it for further transcription and review
• Give the candidate a score on each question/exercise of 1 to 3
– 1: Non-tester Level
– 2: Junior Tester Level / Line Manager / Developer
– 3: Senior Tester Level / Test Leader
14. Summary
• These questions and exercises are only a small part of the
recruitment process, but will give a good understanding of the
candidates testing skills
• The interviewer must of course be proficient in testing and
understand all the underlying concepts
• The questions are quite open in nature, and the answers will vary –
there is not one correct answer – it is the process of coming to the
answer that is important
• Use the score as an indicator, but you will need to go back and review
the answers after the interview is done, and compare between
candidates
15. Reference
[1] Personnel Selection
http://en.wikipedia.org/wiki/Personnel_selection
[2] IEC 9126
http://en.wikipedia.org/wiki/ISO/IEC_9126
[3] Touring a new application
http://michaeldkelly.com/blog/2005/9/16/touring-a-new-application.html
[4] Boundary-value Analysis
http://en.wikipedia.org/wiki/Boundary-value_analysis
[5] Equivalence Partitioning
http://en.wikipedia.org/wiki/Equivalence_partitioning
[6] Fuzz Testing
http://en.wikipedia.org/wiki/Fuzz_testing
[7] Exploring Test Automation
http://angryweasel.com/blog/?p=412
[8] Software Testability
http://en.wikipedia.org/wiki/Software_testability
[9] Testability
http://googletesting.blogspot.com/2010/06/testivus-testability-and-dr-jekill-and.html
[10] Ten Minute Test Plan
http://googletesting.blogspot.com/2011/09/10-minute-test-plan.html
[11] Build the Plan
http://www.satisfice.com/tools/build-the-plan.pdf
[12] Examples of Test Reporting in Action
http://www.informit.com/articles/article.aspx?p=457506&seqNum=3