Software QA FYI - SQAFYI

The Interview Guide for Testers

By: R. Sankara Narayanan

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.


Other Resource

... to read more articles, visit http://sqa.fyicenter.com/art/

The Interview Guide for Testers