Abstract
Software
Testing is a discipline that requires varied skills. Interviewing
Software Testers for recruitment is not the same as interviewing for
other Software Engineering discipline. This paper aims at uncovering the
essential elements that the interviewers and interviewees need to be
aware of during the Software Testing interviews. In my earlier paper, I
had discussed about the essential skills that a tester needs to possess
and they are as follows: Understanding, Listening, Observation, Test
Planning, Test Designing, Test Execution, Defect Reporting and Analysis
and Test Automation. From the interviewer perspective, this paper
discusses about how to evaluate software testers in an interview.
>From the interviewee perspective, this paper discusses about the
necessary assertive skills that a tester needs to possess for getting
through the interview.
Evaluation of Understanding and Listening Skills
The
first and foremost activity of Software Testing is to understand the
system requirements of the software to be tested. The key references for
these system requirements in most of the projects are formal software
requirements specification documents or software functional
specification documents or the use case documents. In order to evaluate
the tester’s skills in understanding these formal documents, a sample of
this formal requirement specification document may be provided to the
interviewee. The interviewer may request the interviewee to read/
understand the requirements and explain the same. The interviewee shall
read/ understand the requirements and explain the same to the
interviewer without any discrepancies and ambiguity. If provided with
any ambiguous requirements, the interviewee shall identify them and seek
clarification from the interviewer. If provided with any missing
requirements, the interviewee shall provide justification as to why
he/she feels that there are few missing requirements and get them
defined by the interviewer. If the interviewee finds any difficulty in
understanding the requirements, he/ she may get them clarified from the
interviewer. The interviewer shall welcome the assertive communication
skills of the interviewee.
Software
Testing cannot be performed based on “assumed requirements” and all the
requirements shall be explicitly defined (except for implicit
requirements, which cannot be defined). The interviewee may emphasize
this fundamental software testing standpoint during the interview.
Requirement
Example: Let us take the case of the classical triangle software to be
tested. The triangle software requires 3 positive integer inputs, which
are the lengths of the 3 sides of the triangle (say A, B and C). The
software evaluates the following the logical expression: A+B>C
&& B+C>A && C+A>B. If this logical expression
evaluates to True, the software displays the status as green in the
system console indicating that the inputs are valid lengths of the sides
of the triangle and vice versa.
The
interviewer may provide the interviewee with a document explaining the
above mentioned requirement with few modifications to suit his/her need.
To evaluate the understanding/ listening skills of the interviewee, the
logical expression may not be mentioned in the document. When the
interviewee was asked to read and understand the requirement, he/she
shall raise this as an issue of missing requirement to the interviewer.
The interviewee shall not assume anything about how the software
validates the inputs and explain a new set of expressions such as
C^2=A^2+B^2 (which applies only for right angle triangle) to the
interviewer. “Defining Requirements” is always not a goal of Software
Testing. The interviewee may emphasize this fundamental software testing
standpoint during the interview. If the interviewee does not understand
any of the sections in the requirement document or if the requirements
are ambiguous, he/she shall get them clarified by the interviewer. The
interviewer shall welcome those clarifications and shall not discourage
the interviewee with respect to the clarifications sought. When the
interviewee was asked to explain the software functionality, he/she
shall explain it without any discrepancies.
Test Planning and Designing Skills
Test
Planning is an activity that focuses on establishing the path way for
all the Software Testing activities. The Software Testers shall keep
abreast of his/her knowledge about the latest industrial trends of
executing the software testing projects. The interviewer may request the
interviewee to explain the industrial hot topics/ news and have a small
talk about the same. The interviewer may not concentrate on asking
straight forward questions such as “What is Regression Testing?”, “What
is Defect Severity?”, “What is Functional Testing?”, “What is UAT?”,
etc. These questions may be good for a university question paper but not
during the recruitment interviews and that too exclusively. The
interviews shall focus on the application side of it. The small talk/
discussion shall focus more on the “Why?”, “Where?” and “How?” of these
terminologies along with “What?”. The interviewee shall be able to
correlate the testing methodologies and techniques and devise the
testing approach for the software under test and explain the same to the
interviewer. For the triangle sample, the interviewee shall be able to
devise the testing strategy and explain the same to the interviewer. The
interviewer may request the interviewee to explain about the testing
metrics that he/she need to capture in order to report the status and
progress of the testing activities to the project management team.
The
interviewer shall request the interviewee to explain about the test
plan/ approach/ designing techniques for his/her current project. This
is supposed to be illegal as these results in the dissemination of
confidential information of the interviewee’s current organization to
the public.
To
evaluate the test designing skills the interviewer may provide a sample
requirement like the triangle sample and request the interviewee to
design few tests for the testing the requirement and explain the
techniques used for designing the tests. For the triangle sample, the
interviewee shall use equivalence class partitioning, decision table
technique and the multiple condition coverage technique for designing
the tests. The interviewee shall be capable of explaining all these
techniques and the tests to the interviewer. The interviewer may request
the interviewee to write down few test cases for the sample
requirements that he/she provided. The interviewee shall write the test
cases clearly – the test steps shall have enough details up to the level
of key presses and mouse clicks and the expected results shall be
non-ambiguous.
Test Execution and Defect Reporting Skills
To
evaluate the test execution and defect reporting skills, the
interviewer may request the interviewee to explain what he/she think to
be the ideal process to be followed for test execution and defect
reporting. As mentioned previously, the interviewer shall not request
the interviewee to explain what he/she is currently following in his/her
current project. The interviewer may initiate a small talk/ debate
regarding the defect life cycle, defect attributes, defect management
tools and the test reporting tools. The interviewer may request the
interviewee to write down a sample defect providing the defect details.
The interviewee shall write the defect report clearly with detailed
steps to reproduce, expected and actual results, non-ambiguously.
Test Automation Skills
Test
Automation is a wonderful phenomenon by which the testing cost is
drastically reduced. On the other side, if there is no proper planning
for Automation Script Creation & Maintenance, there is a risk that
the Automation Suite may get outdated and may not be usable. This
renders ROI=0. The testers shall be aware of this business risk and
identify the automation candidates accordingly. The interviewers may
provide a set of test cases that includes automation candidates (simple
& complex) and non-automation candidates, to the interviewees for
identifying the automation candidates. The interviewees may ask for
clarifications, if any, and they shall be able to identify the
automation candidates successfully. The interviewer may request the
interviewee to explain the various Automation metrics that he/she need
to capture in order to report the Automation ROI and other figures of
interest to the project management team.
To
evaluate the automation tool knowledge, the interviewer may initiate a
small talk or discussion based on the respective automation tool. As
mentioned previously, the questions may not focus on the automation
activities in the interviewees’ current project.
Conclusion
The
interviewer shall use several sample requirements and concentrate on
evaluating the interviewees’ application of the software testing
principles and techniques. This paper is purely a guideline and it talks
about the basic things to focus on. The interviewers are requested to
amend this guideline with their own approaches for conducting the
interviews. The interviewees shall reply answers aptly and boldly – bold
enough to challenge the interviewer in case of any wrong questions put
forth by the interviewer where he/she may expect you to put the question
back to him in this case.
0 comments:
Post a Comment